
The finished game PhaseShift
With this game, my 4th ludum dare concludes. PhaseShift turned out to be a arcady bullet-hell game about colours and bullets (obviously) and it’s the first time I would call a LD game of mine finished!
What went right
Pretty much everything.
The idea
Since the theme ‘Connected Worlds’ came out with about 600 votes more than any other theme in the final voting round, I started thinking about ideas on friday. This was a slight gamble but it worked out well for me. Normally I take ages to find an idea I like, so being able to think on the idea earlier was very helpful and freed up lots of time.
Luckily I came up with a very simple idea for the game which really played to my strengths: Simple geometric shapes as visuals, gameplay that does not require levels, no fance mechanics that take ages to implement.
Because of this simplicity and headstart I was able to implement almost all of the mechanics during the first day. I did spend a few hours adding some progression to the game on sunday, but overall the choice of the right idea enabled me to do lots of polishing and also include music for the first time!
Polish
The most important lesson I learned during this LD was that visual polish goes a long way in making your game look and feel better.
As an example, compare these two screenshots. Overall they are only about 4 hours in work time apart:

The visuals after the first day

Visuals after some polish
Simply adding a gradient in the background and moving the score to the middle already made a huge difference in how nice the game looked.
Another helpful way of making the game look nice was Paletton with which I spend most of my first day finding a good colour palette for the game, and I think it really helped making the game look nice.
(Pro tip for Paletton: First select a few nice colours through one of the “composition” modes, then change to custom and fine-tune your colours by holding shift. This really helped avoiding some colours just completely blending in with the background.)
Even more polish with Tweening
Because I’m bad at animations and I am using simple geometric shapes, I had to add responsiveness and juice via tweens. In this game almost everything is tweened, from the rotation of the cannon barrel to the portal “animation”.
It was also a great way of making the game feel more responsive by tweening the size of the bullets every time something happened in the game, in this case when the player collected a bullet or a new bullet was shot. This, in addition to some camera shake, made the game feel alive.
Music and sound effects
This was the first time I was able to include my own sound effects and a background track in my game. I spend about 4 hours just on composing a track in LSDJ (which is also the first track I ever finished in LSDJ!). I think that gave the game a complete feel and made it really responsive.
Making all the sound effects in LSDJ also had the advantage that I could re-use sounds from the background track for the sound effects. This made the overall sound design a bit more cohesive.
Use shortcuts and hacky code
Another important lesson I learned this weekend that I can totally write hacky code for a jam. Adding some of the later features in quickly became a big ball of callback functions and uncaught exceptions, but in the end it all worked out well!
Additionally, I was able to reuse some of my code quite nicely which saved time. Instead of making a nice-looking title screen, I simply duplicated most of my game code, applied a blur filter on the level (which took longer than I thought, but I learned a lot) and put some text on it. With just a few modifications I had an interesting title screen without adding much compexity!
Conclusion
Overally this was the best ludum dare for me so far. I got to complete a full game with visuals, decent gameplay and sound, and all that without being overly stressed.
I also learned to use new tools, such as Paletton, improved my knowledge with others (HaxeFlixel, LSDJ) and got closer to knowing what I’m good at and what kind of games I am able to make.
If you want to see all of this in action, you can play and rate my game here.
You can also follow me on twitter @KeyMaster_ where I post about my ongoing game development projects.
Thank you for reading and until next time!
KeyMaster