I recently did yet another game jam, it seems like a hard and fast deadline is the only way to get me to work. This time, it was Game Developer League’s game jam to celebrate their 2 year anniversary. Here is how I developed the Duality of Man, and what I learned.
The theme of this game jam was “Double Trouble,” where something had to be doubled or otherwise related to the number 2. It was rather vague, and if I do say so myself, rather uninspiring. I mean, nearly any game would count. Pong has 2 players, Tetris has 2 axis of movement, and Mario has 2 arms!
But, after grumbling a bit to myself (and somewhat jokingly suggesting that the theme should’ve been “the only number that can be used ANYWHERE is 2”), I buckled down and tried to come up with a good idea.
The easiest thing for this sort of thing, where you are stuck and have no idea what to do, is to take an existing game concept, and apply the theme to that game. In this case, I thought of shoot-em-ups and how that could be doubled.
My first thought was a game where you had to alternate between dodging and colliding with enemies. I was thinking that it could be implied that the player has schizophrenia or something, and that is why the formerly harmful was helpful and vice a versa. But, this was quickly shot down as “not intuitive” and “too complex” and “actually pretty dumb when you think about it.”
So, instead of trying to be exceptionally cerebral, I went back to basics and made a “normal” shooter, but with a twist: You control 2 players!
Of course that’s not the whole thing, there are many other shmups that have you control multiple characters. So I went and played a few shmups, and found something interesting: in almost all of them, it would be good to just be completely off the board. You wouldn’t gain points, but you wouldn’t die.
I took that revelation and tried to combine my first idea with my second. What if, there were situations where you wanted to be hit, but also situations where you didn’t want to be hit? The two character idea fit this perfectly, where one character needed to be hit and one character needed to not be hit.
So I started making the game. Throwing a few sprites together, plopping them in the scene, and fixing one of them to mouse. It moved, it collided, and it even shot! Now what?
Here’s today’s lesson: Plan your game BEFORE you start implementing stuff.
My biggest problem was getting the second character (the Princess as I started dubbing it) to work. I wanted her to follow the player, and not be directly controlled. But, getting the joint system to work with the player was such a bear. Compounding this was my crippling fear of creating extra work, which prevented me from scrapping and remaking the player control script.
The other lesson is to build with the future in mind. Try to be as flexible as possible when you are implementing features, and don’t lock yourself out of future ideas. The 1-1 mouse-position-character-position worked fine as it was, but it made me unable to change the mouse sensitivity. Handling all the health and stuff for the player character was fine on its own, but made me make an almost identical and ultimately redundant Princess Health function.
Thankfully, I was able to fix these problems, but at the cost of a lot of time. One of my big goals was to have a boss monster at the end, but I was unable to get that done between creating, debuggin, scrapping and recreating the same functions over and over again.
But, enough of my personal shortcomings. What worked in the Duality of Man? I think the wave spawner and pattern manager was actually pretty well implemented. It allowed for a fairly flexible ability to create and spawn waves. My only regret is being unable to import waves based on text files. Manually inputting the waypoints was a bear.
I also thought the gameplay itself was actually fun. The key to the thing was figuring out how the player character was going to interact with enemies. My idea was that somehow the main player character was a type of knight, protecting their princess from the slings and arrows of the enemy. I was able, through a few booleans and negative signs, make the player character pretty unique.
The player is constantly losing health, and GAINS health when hitting enemies. The only thing I can think of that is similar are the Super Sonic levels, where your ring count is ticking down and you need to pick up rings to live. But, this was the first time (that I saw, at least) where the things keeping you alive are the enemies themselves. So, I thought that was interesting.
If there was one big flaw in the game right now, that would be the overall polish. The characters are static sprites, there is no music or sound of any kind, and I didn’t even label the mouse sensitivity in the options! This can all be prevented by proper planning and following your plan.
I’ll repeat it again, if only for my benefit, DON’T START WORKING UNTIL YOU HAVE AN OUTLINE!
You can play the game at https://gamesofawe.itch.io/the-duality-of-man.