Diner Dive - Post Mortem

During this LD I wasn't able to really clear my calendar. Still, with the time available I entered for the Jam and actually finished. The result is Diner Dive, a Diner Dash/Subnautica crossover. Let's see how my weekend went.
Theme
First, I'd like to take a look at the theme, at other themes in the voting rounds.
I really like the theme. There, I said it. I like this theme. Why? Because in my opinion it forces us to do what jams like Ludum Dare are meant for. It forces us to innovate,
to improvise, to experiment and prototype. Two incompatible (or never-before-combined) genres will only go together if we leave every premise of those genres behind, if they are stripped
to their bare minimum and then re-assembled. Who knows what brilliant new insights might arise? Wo knew MMO and shooter would one day combine to drown the gaming market in Battle Royale games?
Who knows where the peanut butter will meet the jam?
There were a couple of themes I really disliked in the theme-vote too. Especially 'indirect control' and 'your not the main character' are themes I would have trouble with jamming to. These themes take away agency from the player. When playing a game, the player should have the feeling that they are the center of the world. What actions they take matter in this reality, the game responds to their actions. These themes cut away that feeling in their very premise.
All in all, I was very happy with the theme! Inspiration wasn't a problem. When my first idea wasn't panning out I could switch to a second one quickly. After the jam, a generator brought me a third idea.
Diner Dive, the making of
Before I started, I thought it would be fun to live-stream development. Now, I don't know the first thing about Twitch / YouTube, screen captures etc. But I am on Twitter. So I decided to post hourly on Twitter about development, with screenshots or GIFs if possible. This was really fun to do, and it also helped in time-keeping. Would've been a shame if my tweets would
look like this:
- Working on feature X
- Stuck on feature X
- Still stuck on feature X
So in that sense, live-tweeting worked as a time-keeping mechanism and it sorta prevented feature creep I guess?
Right from the start I had an idea for a crossover between a Streets of Rage fighting game X Phoenix Wright, called Lawyer Up. You'd beat your opponent's arguments senseless, collect evidence and with enough scraps of the Book of Law you could use your screen-clearing move 'OBJECTION!' (spelled in big red letters over your head). I liked that the combination seemed to work quite well (pun title and all), but I dreaded animating 'walking' , 'punching', 'kicking' x 4 for player, enemy 1, enemy 2 and boss. Needed a Plan B, and since I couldn't start right away anyways I had some time to think it over. Time, but not the opportunity. I usually start a Jam by throwing out about 5 ideas but my mind was on Junior's Judo tournament that morning. Lawyer Up would have to do.
After the tournament Junior and I had a train ride back home, where I told him what I was thinking about. Together, my 7-year old son and I started pitching examples of mixed genres and we stumbled upon a Diner Dash / Subnautica crossover. The idea immediately clicked, as I thought it would be way less work to do art for this and I really liked the concept.
When I finally sat behind a computer, LDJAM was 12 hours old already. I quickly set up a project in PyCharm, got PyGame to render a window and wrote down what gameplay elements would need to be in the game. I made some pen and paper mock-up of the level, opened Paint.Net and got busy. Progress was really quick. I hadn't done anything of this magnitude with Python yet (I used it in the Euler Project), but after the Jam I think I got a feel for the power of Python.
There was one hitch though. Python doesn't come with a 'Build EXE' button, you need 3rd party tooling for that. I decided on PyInstaller, but the build failed to run on saturday night. PyInstaller ran fine, but the resulting EXE couldn't be run in Windows. After digging through the Winows Event Viewer, it turned out that `PyGame.font` was the culprit, and switching to `Sysfont` thankfully solved it. Onwards!
All through Sunday and the better part of Monday development continued. I'm pretty content with what speed features were added, and with how little bugs I got throughout the development.
What went well
- I finished! Not a given, especially since I had some IRL things to do this weekend. Thanks go out to my supporting wife and kids!
- No scope creep! I put in exactly what I wanted to from the start.
- The genresa are both in to a playable extent.
- Used Python / PyGame for the first time.
Even Better If
- The graphics are awful. I can't draw my way out of a wet paper bag...
- There could've been more variety in sea-life: aggro sharks, sea weeds.
- Same goes for the kitchen.
- You don't get money for filling orders, which you can't spend in the upgrade store.
- I don't yet have mastery over Python/PyGame technically: no scene transitions, no state management, no restart on death.
- No Web build. I really feel releasing for Windows only is not of ths age, but PyGame doesn't do web...
I'm off rating your game now. I'd appreciate if you would do the same!
Source: ldjam.com archive