Spectra - Postmortem and Thank You!
Before I start, I want to say: THANK YOU!

I put a lot of the 48 hours into making Spectra play and feel as good as possible, and getting rewarded 13th out of 400 or so compo games for fun is so cool! I'm not sure I really deserve it since the standard of competition was so high, but regardless: THANK YOU!
But enough about that, let's make a postmortem - because I think there are some lessons for me, and you can learn from my mistakes.
The Good
Colour!
The game is colourful!
When I sat down to start working on the jam, I hadn't spent any time coming up with ideas in advance (this is probably a mistake!). When the theme was announced, I spent about 30 seconds coming up with something, but immediately got distracted looking at my other LD game. That had a dark colour theme with one or bright spots of colour, and I thought: "I don't want to do the same thing again. What's the complete opposite of darkness?"
A rainbow!
And with that, I started working on the game. I used a shader and began tweaking and rerunning the game to get the look close to where I wanted. This took a lot of running and rerunning the game. Maybe over 20 times, plus the shader didn't work initially.
Although I wasn't able to spend the full two days on the game (it was more like 0.5 days on one day, and a full workday on the second day), and the first 0.5 days was spent on the background, and the shape effects, which was the second idea I had for the game. I found a calculator online that could spit out co-ordinates for polygons on a grid, which helped, but these lines all needed adjusting and testing (and retesting).
The biggest problem was that when transitioning between shapes, the lines could cross over each other. This started shoving enemies and the player around randomly and throwing them off-screen! I ended up cutting some shapes where this was a problem, and adding some special rules to slow some shapes down, which helped.
All this tweaking and changing the look and the shape effects took about half a day. When I sat down on the second and final day, I realized: "oh yeah, this is supposed to be a game, right?!"
At this point development became very frantic.

The Boss
I started throwing in enemies, playing and replaying the game until I was happy with it. Surprisingly for me, some elements like the enemy and player movement speed and shooting speed/rate barely needed changing. I just typed in what I thought would work, and it did! Working in such a tight resolution helped, but also I have made several games with shooting elements before, so I knew exactly how I wanted everything to work.
The biggest tip I wish I would've known when starting to make games is this: make the resolution of your game the smallest it can be, but no smaller. It makes making art so much faster, it makes balancing so much easier, everything just works better at a smaller resolution. Does it work for every art style? No. But if it works for the one you're using, then crank down that resolution!
After adding two enemy types, reworking their graphics and spawn patterns several times, I was happy with them, but time was running out and I was worried.
The game was fast and fluid, it felt good, but it was too repetitive. I had two enemy types and a power-up, but people had seen stuff like that before and I got really worried people would be bored. I looked at the clock and realized I had two hours to finish everything. No time for anything new.
Immediately my sleep-deprived mind asked me a single question: "do you think you could add a boss?"
I knew exactly how to add it if I had a day or so, but I was paralyzed. I didn't want to run out of time and break the game trying to add this. All the previous enemies worked totally different to a boss, after all, so could I do it?
I jumped into it head first, furiously coding and tabbing through GameMaker, reworking stuff, changing inheritance, adding health, changing hit effects. This was probably the most intense period of game development I've ever done, and the fastest I've ever worked.
When I looked at the clock I was shocked, it only took me like 20 minutes to get it working in a janky way, where it had health and it's attacks weren't too overwhelming. At that point I knew I could include it, it just had to be spawned in the right place. Sorting out where the boss and power-ups would go in the round order needed further tweaking, but I was so, so happy to get it in and working. When someone kindly complimented that it had a boss, I felt like that work really paid off!

Polish
This time for me, polishing was all about the background colours, the shape movements, and the enemy spawn-in visual effect. The moment I started making an arena shooter with claustrophobic movement, I realize I had a problem: how can I prevent the enemy spawning on top of the player and instantly killing them?
Polishing this aspect I came up with the idea of enemies quickly growing from the flashing light into their final form, which worked pretty well! I think in jams, it's really easy to focus on the drawing parameters that are easiest to work with: scaling, rotating, blending, and alpha. And remember, you can (and should try to) polish all you can in your game: hit effects, screenshake, transitions, anything at all!
The Bad
Too shaky!
I knew I had to add as much polish as possible, but when adding screenshake, something just didn't feel right. I ended up scrapping the system I'd come up with, and frantically threw something in there, right near the end. People called me out for the screenshake being a little too much, and I agree. It can be a little headache inducing.
Movement bugs
Because the lines can be drawn at a very specific angle, and because my movement code was pretty basic, sometimes you can get stuck on the lines that make up the border of the game. That's no good!
Fixing both of these issues was actually trivial, and if I'd had a few hours away from the game near the end, I would've recognized and fixed them immediately. This is a lesson learned: if you add something big near the deadline, like screenshake, you can't be mad when you don't notice that it has a few rough edges.
The Ugly
Where's the audio?
This is unfair, but I almost always leave audio to the last possible moment. And this time was no different.
When I tried adding audio I quickly realized I didn't have enough time, and figured it was better to have no sounds rather than one or two crappy ones. And while I think that decision was the right one, it definitely hurt the game.
So my lesson for next time is this: fully clear the 48 hours. That would give me and extra 12 hours at least to work on the game. At that point, I would have time for audio.
For music, this experience has pushed me into learning how to make electronic music. I'm working on first techno track at the moment, and I'm liking learning Ableton.
For sound effects though, I'm struggling. My issue isn't learning how to use the software, it's on coming up with sounds that fit the "mood" of the game. And most painfully of all, coming up with sounds that when they repeat, don't become incredibly annoying.
Does anyone have any tips? Any help is appreciated.
Conclusion
So my lessons learned are:
- Make extra time for audio + get some additional audio skills
- Try to implement stuff that will need tweaking earlier (screen shake)
- Try to take an hour or so away from the game near the end, so you come back and spot obvious problems
- Keep up with the heavy polishing + play testing
- Keep practicing!
Those are my obvious lessons learned. But next time, after making two low-res crunchy pixel games about shooting, I want to branch out and do something a bit weirder. I did notice my scores were lower for innovation, and I think that is totally fair. I don't think I will score as highly for fun or overall next time, but hopefully I can come up with something more innovative.
Thanks for the fun LD, everyone! I will hopefully see you all next time!