Here’s my gameplay video and postmortem for “EvoWord”. I had a great time, and I think this entry, though not without it’s share of problems, turned out really well. I’m definitely getting better at making complete, if not yet very polished, entries.
Unfortunately youtube squashed the video so it’s a little stretched, apologies.
What Went Right
- Time Management – Yep, I can finally put this one in the “went right” column. I certainly didn’t have enough time, but for once I feel like I budgeted it well and if I had spent more time in any one area others would have been even worse.
- Waiting for a good idea – I had some ideas initially but I wasn’t sure about them, but I thought it through and waited until I had an idea that felt both realistic and fun. I’m really glad I didn’t just go with my first idea, in retrospect they seem pretty ridiculous.
- Making a game that I want to play – I really like word games, even capturing the gameplay video above there are long stretches where I got absorbed in the gameplay. Thankfully I’ve edited most of those out.
- Gameplay first – I had the basic game working with just floating letters and no graphics at all before I started on anything graphical. That’s always been difficult for me to do, but this time I stuck to it and I think it paid off.
What went wrong:
- Overcomplicating the creature evolution algorithm. My initial algorithm seemed simple enough on paper, but as I got to coding it it kept revealing itself as too complicated. The final creatures don’t have nearly enough variety (only size and color scheme, really) . I think I could have gotten further if I started with the simplest thing that could possibly work, and then building on that.
- Testing and Release Builds – I waited until the last hour to try a release build, and it crashed. Because of this I was unable to include the cool floating bubbles. There are also a handful of small bugs that I could have fixed if I had stopped and took breaks for testing every so often. I’ve made this mistake a few times, maybe this time it will sink in.
- Overcomplicated the graphics – I had big plans for the graphics, including blender sculpt mode and normal maps and a shader that wasn’t terrible. I wasted a bit of time on those things, but not too bad, I fell back on the simple creature soon enough. However, those few hours of experimentation would have been better put to gameplay.
- Clarity – It’s obvious to me how to play because I wrote it, but it’s not at all obvious to a player, especially with no tutorial or instructions. In the future, making sure the user is aware of what they can do at every step is going to be my top priority. Even so, this was more discoverable than a lot of my previous entries so I’m getting better at this.
- glBindFramebufferEXT() – I spent over an hour trying to debug my thumbnail rendering code, thinking it was something complicated wrong, when really I just forgot to bind the framebuffers again after the first draw. Always go back and recheck the simple stuff, verify your assumptions and make sure your code is actually doing what you think.
Anyways this was a lot of fun, and I hope I’ll get a chance to go back and add more depth to the creature evolution code and tune the gameplay a bit to somehow eliminate the long stretches of waiting for the right letters. This was a lot of fun, as always!