I've spent the past decade developing games in my spare time (which I don't have much of) with unique game play that aren't side-scrollers, first-person shooters, RPG's, MMO's; and aren't even multi-player. Recently I felt the urge to just break out from trying to make not-done-to-death games and make a good old multi-player side-scroller because:
- I want to see how fast I can make one by myself using only Unity and third-party fonts and music (I'll make all the other assets myself)
- I want to jump on the bandwagon of people who have made side-scrollers
- I want to make just one game in under three months, and to have released one multi-player action game in my life that people might enjoy.
- Sooner or later I will get burned out with game development, and I wanted to make a side-scroller before I do.
I decided to do this in a total of 48 hours so that I don't dig myself into a deep hole and ignore my primary project "Dominoze" for too long. Rather than doing this project over a weekend, I spaced it out over several weeks because I just can't stay up as late as you younger folk, and I have a full-time job doing other things. If I don't get plenty of sleep during the week and rest up over the weekends, I'll burn out.
Paper Cowboys was done in 48 hours spanning about 4 weeks. I would have been done a week sooner, but the cloud network that powers the multi-player features was down for a few days.
Gameplay / Plot
The game play is simple and there is no plot. I chose to model my game off the existing game Sunset Riders. The controls were very simple, and the plot was very simple (just shoot bad guys). I studied YouTube footage from the game, and it helped me make decisions on how players would interact with enemies and the environment. I did decide to add freestyle jumping and crawling so that players had more maneuverability. It also just played more naturally.
To me, using the Photon Cloud for Unity was a no-brainer. Not having to deal with players having to open ports to host games, and a layer of network management to manage "master" clients versus non-masters as well as player names and other information was a huge convenience. For the actual implementation, I chose 8 players because I'm tired of 4 player games that force LAN party goers to have to make multiple games. More than 8 is a bit much to handle on the screen. As for enemies, I simply multiplied their default HP by the number of players in the game. I felt that was the fastest, cheapest way to adjust the enemy difficulty.
I'd rather have people complain my games were too hard than too easy, and I don't like waiting more than a few seconds to respawn in any game. I therefore made it so the game ends if nobody is alive at a particular moment. One player mode is nearly impossible to beat; with a team it still gets pretty hard toward the end.
I went with the simplest art theme I could think of: Stick figures. I did all the drawing in MS Paint and I looked online for reference material to draw from. My personal favorite was sketching the grand canyon.
Sound and Music
I got all the audio effects from http://www.audiojungle.net
All 48 hours are detailed on my various blogs on IndieDB and GameDev.net. Here are the GameDev.net ones:
Preparing for the Release
Having released several games before, my instinct was to tell as many PC gaming news portals as possible. I also considered taking a poll to see how many people want me to finish the game...
...After a short discussion of these things on a thread I started in Reddit's gamedev forum, I changed my mind about doing both. I concluded that no matter how many times I would say "This is a prototype," non-developers will treat it as a finished game.
I resolved instead to simply embed links to the game's home on IndieDB and to my Twitter feed in the game, and leave it at that. If someone wanted to contact me, they could.
In all cases, I still had to make a game play video with at least four players. I recorded and posted a game on YouTube of myself, two friends from IRC and a third person from the develteam.com chat room. Except for my other video game trailers, I think it is the best video I've ever posted on YouTube. I also took footage from the video to make a half-dozen screenshots.
I uploaded the game to my website and to GameJolt. Then I sent out a Tweet and a news posting on both GameJolt and IndieDB. For kicks, I also made a post on Reddit's PlayMyGame forum.
As expected, the response was fairly quiet with under 300 plays over 4 days, and varied on the kind of person who played. Developers patted me on the back for accomplishing so much in such little time, and gamers on /r/PlayMyGame complained that it wasn't finished.
I'm happy with how it turned out. When I was playing it with friends, things were really chaotic in a fun way. I'm a fan of "I have no idea what's going on but it's awesome" and "a lot of players do a lot of stuff on the screen" game play because the situation usually ends up being comical. I otherwise got bored with it rather quickly because there were no permanent rewards or story line, and the graphical novelty only lasted so long.
It was also a pleasure to not take a project so seriously. For my last few games I had to worry about organizing press releases, getting feedback from testers, studying other games, in-house testing, prioritizing features, strategic tweets and news postings, coordinating with vendors and budgeting. In this project I was just free to code and create assets that I felt like creating while keeping the time constraints in mind, and I did just that. I think it's a good thing to do every once in a while.
The only difficult aspect of the project was dragging myself to work on it even two weeks after the project's inception. Sure I didn't have to deal with the sleep deprivation or exhaustion of game jams than run a contiguous 48 hours, but the payoff is getting distracted or losing interest over time. I also had to stop myself from designing code and assets in my head while not on the clock.
These are the leftover bugs I didn't have time to address:
- PC Version has no way to quit without closing the window
- No gamepad support
- Sometimes you can jump extra high
- Sometimes you can't jump toward a ledge but you can't get through it
- Level 2 Boss Fight: You can respawn in front of the train and not see the boss
- Level 3: When you respawn, the camera doesn't follow you down, so you're pretty much toast if you die.
- Level 3: Sometimes you can't move (got it to happen once)
- In some installs you can't move at all (happened to my friend using Chrome)
I'm keeping the code as it was at the 48 hour mark for posterity, but I'm weighing two options:
A. Fix the remaining bugs, add more comments and documentation and make the project open source as an educational tool. I don't intend to do this unless I get asked by a lot of people (and nobody has asked me so far). The other caveat here is I want to do it right; and that means having someone from the Photon Cloud development team to review it and say "you're using our library correctly in all places" and someone more versed with general game networking than me to say "you're doing things robustly and correctly."
B. Work with another studio to build a polished game out of the framework I programmed for Paper Cowboys. I'm talking to one right now, but talks are still in the very early stages, and I'm open to other inquiries. For fun, I looked at some possibilities for how this would look:
- Keep the stick figure theme
- Have a 2.5D theme with 3D cardboard cutouts.
- Make it look like Sunset Riders (high res pixel art).
- Make it look like Metal Slug (medium res pixel art, smaller characters).
- Make it look like the Contra remake created for the PC (also 2.5D but with realistic backgrounds and medium res pixel art).
I think option 5 in a western theme would be amazing and somewhat unique (how many western side scrollers have you played lately?) Either way, this is technically a valid post-mortem because I'm not changing the code at the 48 hour mark.
Feel free to play and enjoy!