Smashy Town post mortem

Since I just released a new little game in Smashy Town which was a collaboration between myself and my friend James Id made for the Subzero festival in San Jose I figured I should post about it-

You can download the game here  

So I needed to make a game to be played on the street at night projected on a wall or screen and it needed to be 4 player local multiplayer- those were the guidelines-

The whole project took about two and a half weeks or part time work to complete-

My friend Sean Boyles came up with the idea to model it after the vintage arcade game Rampage as we were going to work on it together but never got the chance too-

I wanted to try something different on this little project in that I wanted to work with someone acting as a producer to help steer the project toward a definite goal- I've known James Id for about 7 years now and I value his opinion as he has good taste in stuff and is a no bullshit type of guy-

So what we did was- I would come up with some ideas- then we would talk on skype and I would pitch him the ideas- he would challenge my ideas and/or tweak them which helped come up with better/stronger ideas- then I would go prototype those ideas- and I would prototype what he suggested I prototype- this helped really focus on the core gameplay as I had added a claw machine functionality and two plains of gameplay initially-

After having 60-80 people play the game at the street fest and having watched them all play- those initial ideas I had would have made the game way too confusing and therefore not fun for the people stopping to play for 90 seconds with no setup-

I think we talked on skype 3-4 times over those 2 and a half weeks- for maybe 15 minutes each time- but it really made a difference for me in that I'm an idea machine but when making a game that needs to be done on a specific date throwing in new ideas everyday isn't a good way to get it done- also when you start adding new mechanics before the core ones are polished you're asking for trouble-

James really helped me focus on what the game was- as I have a tendency to focus on mechanics and he would explain that a bunch of mechanics are not a game-  He also had me keep any and all art out of the game until the core mechanics were solid and fun- since I create stuff I have a tendency to rush into that before polishing the mechanics- So I worked primitive objects as placeholders for most of the dev so it looked like this

So yeh it was really helpful and fun to work with James- if you need a consultant to help you with your game check out his site and contact him

On the tech side of things it was the first time I had done a game with more than one player- it was tough at first but once I learned how Unity handled the joysticks it wasn't too much trouble with lots of help from Unity Answers of course- I didn't use any 3rd party assets to handle the multiple joysticks- I just have the joysticks and buttons discrete names in the input manager like-

I was never able to figure out how Unity assigned player #'s from USB ports though- I would just have to figure out which joystick was which player # each time we ran the game

The game was 2.5 in that all the assets were 3d and I just used an isometric camera to make it look 3d- 

I initially had 2 layers of buildings like Rampage did wherein I had each block that made up the rear buildings fire a ray in front of them to see if a building was there- then I figured out how big the buildings climbing collider should be and scaled it accordingly- each time a building fell these rays would fire to see if the colliders should rescale- it worked until I tested the multiplayer- when another player was climbing that building and a child of the collider it would rescale the player when it scaled the collider so I scrapped it- here's an early proto with 2 layers of buildings and the claw machine in back

Then over Ramen with my friend game developer Ash Blue last week- he gave me a tip that I could have used to save my layered buildings but I had already finalized the game for the fest pretty much- if I end up updating it I'll look into it for sure- he told me that if you had an empty graphic object and use that to parent objects too their scale will not be affected by the parents changing scale- its an awesome tip I'm sure I'll use in the future!

Here's the fsm that managed the gameplay- so based on the number of players that pressed start in the games start menu it set a playerpref int for number of players- this fsm got that int and spawned the correct number of players- then when the game was over it took their scores and added them to an array- then sorted them and picked the high score selecting the winner- it then compared it to the high score stored in the playerprefs- if they beat that then a UI popped up to input their initials and added the players name and score to hash tables on a singleton named "god" that was created at the games start-

A look at god's fsm- he never dies btw ^_^

So god held the high scores so that if the players chose to quit the game it would rerun the start game/highscore/demo menu's and the high scores would be displayed in the high score menu courtesy of god-

I have no idea why the games characters are giant babies with triangle hats btw- I was just messing around modeling this weird character- then animated it and threw it in there as the games playable character/s

Here's the fsm that controller the players climbing the building- I just copied Rampage's functionality for the most part- you learn a lot when you try to reproduce the mechanics of vintage games

I don't want to write too much more or it will take longer to read this than it took to make the game ^_^

It was a fun process- I learned a bunch of new stuff- go check out the game