Monkeys With Guns is a retro inspired local multiplayer platformer arcade game. 2-4 players attempt to be the last monkey alive by the end of the 30 second round. If more than one monkey is still alive at the end of the round, the spikes enter to force an end.
I have been working on the game off and on for around a year and a half.
I built an alpha version that I brought to small conventions and posted for players to try out around December of 2018. But I was still new to game development at the time and the code base was an unreadable mess.
I put the game on the back burner for 5-7 months until finally making the decision to re-write the entire backend, keeping only the art. For the last few months I have brought the now beta version back to and beyond the state of the alpha.
This second iteration (beta) will be available to download and try out November 16th.
I didn't write many notes in the beginning. It was more a list of elements I new I wanted.
The list pretty much consisted of
- double jump
- screen wrapping
- and spikes.
The rest was monthly iteration after showing progress to my local indie game dev meet up. I'd make a change, bring it in and ask it it was fun.
If I got a yes I kept it, if it was a no I cut that element out of the game.
I went to my first indie game dev meet up and was able to test out my now friend's couch co-op game.
It had been years since I had played games with other players in the same room. This made me want to make a multiplayer game myself.
The game started as a 4 player shooter with little guys as placeholder art. After a while of testing at the meet ups I needed to theme the game. Talking with my wife she said "What if it was a bunch of monkeys that throw poop at each other." I said "but the game is about getting different types of guns." She said "Fine, make it monkeys with guns then." We loved the name so much that it stuck.
Working on this game has taught me so much because when I began I had only been making games for around a year.
From mechanical aspects, I learned how to use arrays and structure code to not repeat myself. To design lessons of figuring out what I wanted from the game and focusing all elements to that.
For example, with Monkeys With Guns I wanted to make a game that would demo well in a convention setting. Over time the key elements became short rounds so the game play doesn't drag (30 second), an exciting ending (spikes) and a stats screen showing who shot who to encourage players to go for "one more", and giving players the ability to express themselves with skins the monkeys can wear.
I have made many games with this engine. Nothing large.
I am a huge fan of participating in game jams which has me making a new game every time.
I'm a graphic designer with no coding experience before using Construct around 3 years ago and I love that I can still figure out and write all the logic, I just don't have to deal with syntax.
For someone like me with 20+ years working in Photoshop, I find Construct to function in a very familiar way which allows me to work in a similar process to the one I have used for decades.
It was more about what was possible for myself. My initial prototypes only had the one gun.
I knew I wanted the players to be able to pick up better weapons but at that stage of my abilities I had no idea how to keep track of all the elements that went along with more weapons.
Damage, speed, shooting player, etc all needed to be tracked and it seemed very complicated. I followed a tutorial to add in multiple guns using an array. I had never used an array at that point and implemented it without full understanding it all. But over time of tweaking it to fit my project I began to understand how they work.
Now after the rewrite of the game mostly every thing in the game is tracked by arrays.
To keep track of animations from 4 players, each with the ability to choose their own skin I think works well. I have an array that tracks most elements for each player and a single sprite that contains all animations for each player and skin.
Each animation is labeled "(Player Number)_(Skin)_(Animation)".
For example, if player 3 is running while wearing the pirate skin, in the player array the cell for player 3 skin would be "PIRATE" and animation would be set to "WALK".
That is all brought together to call the animation "3_PIRATE_WALK". This has been very helpful as I add more skins to the game.
There is a lot to this but I wanted a retro aesthetic with modern details. While at first glance the monkeys can appear to be from the 8/16 bit era that is really only because of the outline and silhouette.
They have the block-y pixel-y look but when you get to the face and shading details there is much more definition. It's a hybrid pixel art style that gives me the ability to play on the nostalgia look I love, get more interesting details, and best of all keeps animation requirements low.
The higher resolution you go, the more animation frames are needed to make something look correct while moving.
By using the outline and shape to appear lower resolution, the brain lets it get away with less frames of animations to look correct. A great asset as a solo developer that so far has 11 skins each with 5 animations made for 4 player colors.
I bounce back and forth between Photoshop and Aseprite.
I started using Photoshop at 14 and still use it everyday in my full time job. So it is my go to program for art but it is very lacking in animation tools.
I usually mock everything up in PS and then take any elements that need to be animated into Aseprite to finish.
For Photoshop, if you want to make pixel art make sure all scaling is set to "nearest neighbor" and turn off anti-alias on any tool you use.
Right now it doesn't much. I do have one good level and menu song that was kindly made by RareDigs. But other than that, sound is still mostly placeholder.
Retro and Arcade game fans. As well as party/group gamers.