The Week of Awesome II - And So it Ends... (post mortem)
Published September 29, 2014
Previous Entry: https://www.gamedev.net/blog/1922/entry-2260272-the-week-of-awesome-ii-day-7-crossing-the-finish-line/Edit: Attached an image of my last day's notes.
What went right? What went wrong? What did you learn?
What went right?
Planning - Before the competition started, I took some time to get my affairs in order. I cleaned up some of my framework code and came up with a rough plan of attack.
Day 1: Setup Project, Brainstorm, Hack
Day 2: Decide game type, start hacking out game play
Day 3: Commit to the idea, hack out more game play
Day 4: Finish up game play, cram in graphics, wire up sounds
Day 5: Test Deployment (friends, family computers), Polish, bugs
Day 6: Gameplay tweaks/balance
Day 7: Submit EARLY, minor bug fixes, don't break it.
I ran this plan by my friend and he said, "It sounds crazy at first getting a game going in 4 days, but for a week-long contest, there's really no other way." How true that was.
Laurie (graphics/sound editing) dedicating a full week to the task. She poured over 45+ pages of free music to find the right stuff for our game. She did the same for sounds. I think she did this for about 1.5 days. She drew up graphics, her first foray into sprites and animations and I think it turned out pretty well. My wife is Awesome. Without her, this game wouldn't be half as cool as it is.
Kaylee (piggy sounds/monster sounds) I included my 7 year old daughter in the game dev process. We snorted into the computer and had a good time. When I showed her my weird abstract monsters, she made a sound that I was already thinking about so we recorded a few and I loved the results. So we went further with it and she wound up recording nearly all the monster sounds. My daughter is Awesome. Without her, this game wouldn't be half as cool as it is.
Management/Checklists - There was so much to keep track of that we just used a couple of notebooks. Any time one of us noticed a problem, we wrote it down. About twice a day, we'd review the mish-mosh list of stuff and prioritize what NEEDED to be done.
Bloging/Journaling - Every morning, I started out by reading the latest journals and commenting on them to offer words of encouragement. Then I wrote up my entry for the day and other people would comment on mine. This was highly motivating for me. Even though it took up precious time, I think it was well spent. I think I even made a few friends. Awwwww.
Time Crunch - I decided to pull an all-nighter on Saturday, and try to be done Sunday morning. At the start of Saturday the game was still very rough, and it was still rough that evening. The next day, I showed my wife and after getting over her initial grumpiness she was thoroughly impressed, "It looks like a completely different game."
Only 7 days - I'm happy the contest was only 7 days. There's still more I want to add, but I don't think I could have handled another day of speed-coding. By the end, I was cramming poorly named code wherever it would fit and it was tough to mentally keep track of everything.
XML Settings Files - Lots of my game logic is driven by settings files which was pretty darn cool. It allowed me to quickly change unit stats, game balance, cut scenes, and music without having to code. This was cool because I actually handed off some tasks that I might normally do to Laurie who was able to wire up some cut scenes on her own. They also let Laurie stay productive and made me less of a bottleneck. She could see how things looked in the game by changing some xml instead of waiting on me to test it.
It was EXTREMELY cool when my game crashed on a judge's computer when it tried to play a song. Well, that wasn't the cool part... The cool part was when I had him disable all the songs in the settings files and then he was able to play it.
The helpful microsoft error message blamed a DRM on the song (there is no drm on the song). It turns out XNA requries MediaPlayer be installed. After he installed that, the music started working again.
Visual Unit Choice - I was able to make some weird and cool looking monsters just from rotating and wiggling the sprites around. The tank, race car, and piggy required little to no animation work. The Bear and the Robot were the tough ones for Laurie to get looking okay. It was more
complicated than that at first. We replaced the Toy Soldier, helicopter, and ambulance. This gave us more time for other things.
Play testing - I made some friends of mine play test the game, and I implemented several suggested features the last day. Declutter the UI, scroll the map with the mouse, movement and attack indicators.
What went wrong?
Guessing at the theme - we spent some time brainstorming about the theme. Last year's Week of Awesome theme was dinosaurs. I thought this years might be pirates, sharks, zombies, or ninjas. My gut told me Ninjas was going to be the theme this year... So, we spent a day coming up with ninja game ideas, and came up with a pretty good one. Toys was nowhere on our radar and our idea didn't fit at all.
Posting to the wrong thread - Looking at the judging thread, it says I only have 2 posts in the competition thread. Like a freaking noob, I was putting my updates in the admin thread. >.< I hope I didn't screw up the easy participation portion. Hopefully my journals and participation on other journals will snag me those 10 points. Luckily the judges were nice enough to count those up as well.
Working directly next to my wife - While she was working on graphics, any time she got flustered I jumped in to "help". This was bad for me because it pulled me out of the coding zone, and bad for her because I was "help"ing. We corrected this the next day by switching locations.
XNA - I don't feel like this is a truly "what went wrong" for the contest, but I think I need to switch technologies. For the contest, it was the right call for me. But I was very impressed by the various unity teams that were out there. After my brain comes back online, I plan to give it a serious look. I was very impressed by many of the Unity submissions.
Bugs/Lastminute feedback - There are still a couple of bugs. I put in mouse scrolling on the tactical map on the last day. On my standard monitor it's fine, but on a shorter wide screen monitor, it felt like the scroll up and down regions were too big.
When I decluttered the UI, I left the stat blocks off by default, and I think this was a mistake. If you don't know about the different unit's stats, you may not realize that a certain unit has lots of health, or does alot of damage.
Right clicking on an enemy out of range moves him into range, but just stops without attacking. You can right click the enemy again to attack but it bugs me.
There was time to attempt to fix theses, but I was on zero sleep and my code base got pretty brittle those last few days. Fixing them likely would have broken the boats in Everquest somehow.
Using some free* clipart - The first jack in the box graphic we used was free*. Reviewing the * said that we couldn't modify the picture in any way, but my graphic's artist had done several things to him in each slide of the cut scenes. This was discovered when I was packaging the build for submission on Sunday! O.O So, she scrambled to draw and color a new Jack. Luckily she had damn near everything in Layers in her Paint .NET files, so it was only about an hour or two of work to paste him back in.
Missing tutorial - I wanted to get a tutorial in there to show the nuts and bolts of how to play. Show different unit stats, explain the movement system and hope mechanic, etc. I included the instructions in a text file, but lots of people wind up missing it.
What did I learn?
1. This is actually my first "full" game. By that I mean, music, cut scenes, visual effects, sound effects, different game states, etc. So, I learned a TON. During the contest, I blazed a hacky trail to the finish line that got hackier and hackier as the time ticked off. Towards the end it was all poorly named global variables, and random code bits crammed into whatever classes I had. I'm looking forward to sifting back through the code to see what kind of treasures and horrors I left in my wake.
2. XNA has some prerequisites that are really kind of annoying. The .NET 4.0 framework takes about 30 minutes to install. The XNA 4.0 Refresh takes a while to install too. And to have music in your game, it requires Windows Media Player to be installed. >.< I think it's time for me to leave it behind...
3. I learned not to back-seat graphics design, and be more specific in my requirements. As a coder, I've often complained about not getting specific requirements.
4. Keeping a dev journal is pretty motivating, and I'll probably keep doing it.
5. Wiring up sounds is a multi-stage process. Different sounds are recorded at different volumes. Independently they might sound fine, but once wired into a game, you have to even out their audio levels. Then once that gets done, the sound effects may not sound "right" together.
6. Gameplay movies are cool. Other people had them, and I think it benefited their game.
Wrap up
All in all, it was a very positive experience and I'm happy with the game we delivered. My wife and I worked pretty well together, despite that one day of friction, and we're still married so... bonus!
If you made it this far, thanks for playing my game, and thanks for reading my big-wall-o-text.
Congratulations to everyone with a submission, and I look forward to the judge's results.
Still Flying,
- Eck
Next Entry: https://www.gamedev.net/blog/1922/entry-2260314-the-week-of-awesome-ii-sifting-through-the-aftermath/