Eternal Crisis by cerno-b
Eternal Crisis is a timed Shoot-em-Up where each hit you receive knocks time off your clock and the only way to survive is to defeat boss after boss until finally time runs out.
Inspired by the amazing Warning Forever.
This was the first time I made a game with Godot and I am never going back to GameMaker. Despite a learning curve I had a blast with it. I love the scripting language and the camera system and the awesome particle generators.
Fonts by http://www.imagex-fonts.com, used with kind permission.


Controls: Mouse and WASD
Bugfixes:
Version 1.1 fixes a bug that did not reset the difficulty level after restart.
If you want to play the official entry for rating, you can find the original build next to the bugfix build.
Post Mortem
I wrote an extensive post-mortem analysis of the design process
Timelapse Video
I made a timelapse video of the creation process:
https://youtu.be/jPx5rfK00VU
| Link | https://cerno.itch.io/eternal-crisis |
| Link | https://cerno.itch.io/eternal-crisis |
| Link | https://github.com/Cerno-b/eternal_crisis |
| Original URL | https://ldjam.com/events/ludum-dare/50/endless-crisis |
Ratings
| Overall | 103th | 3.816⭐ | 40🧑⚖️ |
| Fun | 73th | 3.908⭐ | 40🧑⚖️ |
| Innovation | 364th | 3.158⭐ | 40🧑⚖️ |
| Theme | 400th | 3.432⭐ | 39🧑⚖️ |
| Graphics | 168th | 3.803⭐ | 40🧑⚖️ |
| Audio | 111th | 3.703⭐ | 39🧑⚖️ |
| Mood | 260th | 3.348⭐ | 35🧑⚖️ |
| Given | 17🗳️ | 26🗨️ |
Nice work!
+ Awesome sense of attack (camera shake, time slow)
+ Classical graphic, I like it
- rules are not interesting enough
Some "I hit the enemy" feedback would be nice as well as a visual indicator on how damaged a specific part of the enemy is.
Balancing was very nice.
@leorid I was playing around with audio hit feedback but in all the chaos that's going on that didn't work out. Some visual feedback could have worked, but then again there's a lot going on on screen, so I'm not sure I could have pulled it off.
I thought about adding damage indicators for debugging and ended up not needing it. I found not knowing how long it would take to break a particular part was one of the charms of Warning Forever on which this game is based on. Although I didn't quite nail the feel of the original in the end.
I'm glad that you liked the balancing, that is something I often struggle with.
If you enjoyed the game, please give its inspiration a go. Warning Forever is abandonware and it is amazing!
@flawed-gamer You can attack the main ship, it will just take longer to destroy. However, it is faster than destroying each individual part. More dangerous as well, though.
I have never tried to make a PICO-8 game but I have very fond memories of games made in that engine, I toyed with the idea of actually trying my hand at it, but I think there is still much to learn about Godot. It took me a bit to transition, and this LD was my first attempt at actually making a game with it, but I'm totally sold.
Feels very polished and great. Like a complete release if it had some different weapons or something. I think this perfectly captures what was intended with the game and could be a mini-release. Bravo. Thanks for sharing! the weapon firing is also very satisfying. The infinite barrage of bullets reduces the penalty when you aim incorrectly.
And btw The html5 build worked fine!
I also agree on the font, probably yellow wasn't the best choice and maybe I should have made it a bit larger. It was one of the things at the edge of my brain and it simply got shoved away by more pressing matters.
The impossible situations are a problem of course and hard to prevent in an RNG-based game, but I think a skilled player might be able to survive the situation since the lasers are recognisable as such and they don't fire right away. Since they always move towards the player, the first thing to do is to move somewhere so that all lasers are on one side of the player instead of both sides, but that would probably take a lot of skill. Thank you for you feedback!
@vilmantas Thank you. I originally wanted to make it clearer that the boss in invincible while the timer is not running in the beginning, but didn't make it on time.
@emil-sunesson Thank you, especially for the HTML5 feedback. It's really nice how easy it was to set up. Glad it works. The whole layout of the boss and the choice of weapons attached to it is randomly generated. Was that your question?
@polymathld Glad you liked it.
(p.s. the game slowed down a lot when a stage starts for me, possibly because there are too many things at once.)
I did not notice any slowdown here. Would you mind giving me some info about this effect?
Does this only happen in the later rounds or also in the beginning? Web build or exe? Could you give me some idea about what PC you are running?
If the game is more hardware-demanding than I thought I might have to read up on ways to optimize Godot games, but I think the game itself is not extremely complex or badly written, so it might be interesting to figure out what's going on on your side.
Maybe I'll try to get access to an older laptop and try to run the web build there to check on this issue myself. Sounds a bit weird to be honest. Maybe there is a specific slowdown pattern that helps me figure out the cause.
Were those procedurally generated bosses, or did you make them by hand? Either way, it was really impressive how you made such interesting enemies out of all those puzzle pieces. Each weapon really was unique, and during my second playthrough I knew which gun did what. This made me able to target specific weapons I found annoying (those heat seaking missiles for example!) and destroy those. Of course, this does take a lot of time, so maybe I should just focus on the core instead? All-in-all I think there was a lot of decision making that needed to be done and it was great :D The music and art were both really nice as well. Very impressive that you managed to do all that in 48 hours!
If I had to be picky I would say that the impact of the bullets on the bosses was a bit unimpactfull. The destruction of stuff was great, but the bullets themselves impacting did not have any effects. Maybe some small explosions/particles or something would be nice?
Anyway, really well done! I enjoyed this a lot :D
I couldn't make it past level 8, really loved the randomness to the bosses. Maybe some more 'node' modules would be cool.
Dunno if you ever played the Captain Forever games - which were also a homage to Warning Forever, that had some cool assembly / propulsion mechanics.

@johnnysix I just looked up *Captain Forever: Remix* and it looks like a stupid amount of fun, thanks for the tip. It goes right on my shopping list!
Here is my playtest:
https://youtu.be/2_UCEby1plM
First, thank you for being the only Godot game I played that supported fullscreen... and straight from the browser, too! Every other Godot game was a download that opened in a janky unresizable window, in some cases even an unmoveable borderless windows that cut off parts of the display! Whatever you did, it worked really well with my setup and was a much nicer experience in that regard. (Edit: Wow just noticed you also have ESC go back to the main screen, another nice detail!)
In fact the whole game was really well put together.
Very nice background music. I'm not sure it totally nailed the mood, it was a little relaxed for a frantic death battle, but it was pleasant and added a lot of life to the experience. And it never wore out its welcome.
Graphics were really nice. The star backdrop and slightly-shifting camera were import for selling the space theme, given that the controls had no floating drift that's sometimes used to sell "you're a spaceship." But for the dodge-based gameplay, the non-drift was definitely the right call! It did seem like the ship should have its thrusters better aligned with movement though - it was always thrusting in the one direction it never went.
The procedural enemy was nicely done. Visually interesting and relevant to gameplay. I appreciated that the weapons were visibly distinct so that I could choose what type to target. The different weapons themselves were very nice. The red warning mode on the laser was a key design touch, so thank you for that.
Game was a little easy and slow at the start, which was fine for learning the ropes but that stood as a barrier to a "one more try" feeling at the end.
Then I hit a difficulty spike around level 9 and started getting boxed in in more interesting ways. I found myself juggling dodging shots, turning to fire at missiles, and trying to make sure I got out ahead of the sweeping lasers and didn't get trapped. It was nice that the game asked me to plan into the future and multi-task like that.
So maybe there was a more ideal pacing. The objective is also a bit bland, but that's the theme's fault, and you would have had to buck the theme to avoid that I think.
Really good all-around entry here. You hit every element from art to sound to features, and there were zero annoying splinters in the experience, which says a lot about your jamming chops! Well done.
The graphics and music very really nice especially the starfield in the back. Procedurally generated bosses are such fun with lots of turrets to dodge and blow up one by one. I enjoyed the enemy variety, one might spam loads of missiles, another lasers. I even had one which had all the weaponry on the left side and none on the right.
The time penalty mechanic worked well and let you keep going after a tough match. I also appreciated that the timer paused until the next boss was fully onscreen.
How complex was the procedural generation of the bosses? I recall that Warning Forever adapted the weaponry of the bosses to what it managed to hit you with the most. Was there anything like that going on here?
Excellent that you already have a post mortem and a time-lapse up. Will definitely check them out :D
This is also very addictive. :clap:
I actually didn't do a lot to get this running in full screen. The standalone version also uses an unresizeable window because I don't want to skew the pixel art, but you can still go full screen at the push of a button. That seems to work just like that in the browser. Tbh, I was a bit surprised myself.
For audio I fully agree. I decided on writing an orchestral soundtrack before I actually decided on the game. When I came up with the melody it was a bit faster and pushier, but orchestra instruments are a bit sluggish (at least in my VST), so I ended up with a slower piece that clashed with the game a bit. Maybe next time I'll try to make a game that's more mellow and try to get the music to fit better.
Totally agree on the thrusters as well. I added them as a final touch and originally had them move like contrails (as with the rockets), but I realized that the unnatural motion of the ship would make that look very strange. Looking back, it would have been cool to have the engines of the ship rotate in the opposite direction of the ship's movement. That would have looked more realistic.
I would also agree that the balancing is a bit off, fairly easy to get to round 10, but very hard to beat round 12, so the progress ramps up too slowly and the true test of skill is too narrow.
Again, thank you for your very valuable feedback
The procedural generation was a bit tricky to get my head around, but manageable in the end. I treated the boss as a tree from graph theory and implemented it as a nested list with letters representing the different piece types: line (`L`), split (`S`) and gun (`G`).
So an `L` piece would be defined as `[L, list]`, where `list` would be what's mounted on the other end of the piece. An `S` piece would be defined as `[S, list, list]`, because it has two children. The `G` piece would just be defined as `[G]` because it cannot have children.
So one of the three arms of the boss could be defined for instance as `[L, [S [G], [L [G]]]]`, which would be a line piece, followed by a split piece which has one node mounted with a gun node, the other node mounted with a line node with a gun node at the end.
I then wrote a recursive function that decided randomly for each node of the current piece whether it should have a `L`, `S` or `G` piece mounted on it. I controlled the depth of the recursion and by that the length of the arms.
The problem was that once you had a gun piece in place, the tree would not be able to continue, so if you wanted a difficult boss with lots of guns, you could end up with bad RNG and just get the core with three guns attached and that was it.
So the solution was to decide the number of guns I wanted (the value increases every level) and create a set of 100 bosses randomly. Then I would pick from that set the one that matched the required number of guns as closely as possible. Then I would create the boss from that definition.
I really wanted to make the boss grow like they did in Warning Forever. I loved the spider graph that told you in what direction you were evolving the boss, but unfortunately that proved too much to realize in the time I had.
@velvetlobster I have Nimbatus on my wishlist somewhere, so I might give it a spin if it's on sale some time. Looks a bit like Captain Forever that someone else recommended in the comments.
One thing i would suggest is to make the main base hp a bit lower to encourage precision gameplay. i felt that just blasting it from all sides until all weapons were down was the best but more boring way to play.
That said the weapons were really really good and thought through. I honestly think we need a game-design category or something similar as it is really impressive how the different weapon systems force you to adjust your gameplay. One could easily fall into the bullet hell trap and just orbit the thing - but that wasnt the best strategy because of how the weapons synergized. The lasers brake up or prohibit your movement and the missiles keep you running and make you aim somewhere other than the middle of the screen.

I think i did good btw^^
Really a great job and glad to see you back again!
Thank you for your kind words as well.
The further away you move your attack up an arm towards the core, the more damage you have to deal to destroy that part. So attacking the core with everything attached will take longer than attacking a stripped down core.
To reward taking the risk, you will need to deal less damage to destroy a part with attachments than the sum of whittling down the attachments bit by bit.
I take that your suggestion goes in the direction that this bonus could be greater, and I think you are right, especially since attacking a core with a lot of guns attached is significantly harder than destroying the guns first.
I'm surprised you actually managed to get the WARNING FOREVER system down in 48 hours, it really felt like the boss was adapting to cover up my weaknesses.
The gamefeel is excellent. I think the only thing I think is sorely missing is displaying the time as a bar somewhere in the HUD as well, to make it easier to visually gauge how much time I have left, and a way to regain just a _little bit_ of time besides having to kill the boss, so that you can feel like you're "delaying" your destruction for just a few more seconds even if you would have otherwise lost the DPS race.