So I finished my game. That’s good. What else was good? What wasn’t? Read on.
When the theme was announced, I was asleep. That’s probably good, you shouldn’t be too tired. After reading the theme, I had a couple of ideas. Those were mostly settings though, no game designs. Maybe I should’ve picked one and thought of a game around it.
So when I couldn’t really think of a game I would’ve liked to make, I just started coding with no idea where I was going. Well, that’s not completely true – I knew I wanted something 2D with Physics (at least collision etc.) so I went for SFML and Box2D. I thought I might make something where you explore a world in a top-down perspective, not encountering anyone, feeling alone.
I previously often used text editors to create levels – I knew I didn’t want that, it’s tedious and once you make enough levels, creating a level editor is faster. Ingame editing seemed like a nice thing so it was just a matter of giving all my classes Serialize/Deserialize functionality and adding an Edit Mode in which various tools can be used to edit the level. (I really shouldn’t have created a new class for each tool though, function pointers would’ve worked just as good.)
The first thing I added were rectangles and the ability to place them in the level. The first visible thing anyway. Unfortunately you have to code pretty much before you have any visible progress when starting from scratch. Visual progress motivates, so having none is kinda bad.
So when it came to gameplay I took the easy path and went for a Super Meat Boyish platformer. Not innovative or anything, but I’ve never actually done a platformer before so it at least was something new to me.
And when it came to art… oh, right, it never came to art. I have colored rectangles. Which I don’t really mind – I won’t win the best graphics award, but it allowed me to focus on what’s important to me – coding. I’m not too good at art anyway. Well, I’m okay, I suppose. Art… I’ll come back to that in a moment.
As far as sounds go – well, I slapped on some bfxr effects for good measure, and it does make the game better, but I’m lacking music. I tried recording some but neither did it turn out well nor would it have fit the game I ended up making. I also tried recording some rain. Somehow I even managed to screw that up. I wouldn’t've had use for it anyway though.
So what have I learned?
- Clean code/good archticture pays off. Two hours or so prior to the deadline I decided to add movable crates and was done within about 30 minutes – without any dirty hacks. (Sure, there are a couple of bad things in my code, but for the most part I’m quite happy with it.)
- Creating stuff that would usually be part of an engine takes a lot of time – using a premade engine is advised if I want to focus on an actual game. I don’t mind learning about the kind of coding that does into an engine though.
- Terraria is fun, but time consuming. I did defeat the Wall of Flesh though!
- After staying up until 4 am you won’t be able to sleep until 12 am – the phone will ring at least twice.
- A level editor is useful, but creating levels is still quite some work. I might want to look into procedural generation.
- Probably more I can’t remember right now. Wait, does that mean I didn’t learn it?
- We need a mfxr for music.
- We need a gfxr for graphics/art.
About that gfxr – that’s possible, isn’t it? Actually, I’m pretty sure anything humans can do can be done by computers because in the end we follow physical laws that could be programmed into a computer and should lead to the same results (yep, I’m a determinist), but is it realistically possible for us to create such a program at this point?
I’m not talking about mix & matching different torsos/legs/heads or something like that, that wouldn’t be allowed in the compo, it needs to be completely procedurally generated. I’d kinda like to try that, but I already have multiple projects which should be finished first. May look into this later, we’ll see.
I’m looking forward to the next (mini) Ludum Dare, it’s when I get most stuff done.