Thanks for the complements. Glad you liked it.
I think the art, especially the backdrops - done by our 11-year-old - are the best part too.
Thanks for the pointers.
I'd never heard Iron Pig so I looked it up & I can see what you mean about the similarities.
if there's ever a Zombie Bash 2 there's some ideas in Iron Pig that could inspire us. We'd already thought about different sword and gun types & also different fighting moves but didn't have time to implement those. It was our aim to keep the fighting as simple as possible and make it more timing based - more about rhythm than doing combos. But I think we could have expanded on this a little, we could have done some combos and also kept it simple and timing based.
We should also have made the game sprites animated especially the player sprite, we didn't think we had time but looking at our game now I think it's a problem. Seeing a game like Iron Pig shows how good the fighting animation sprites could/should be.
The artwork and the character animation are outstanding. Worthy of a full priced game.
I love the ascetic and minimalist look of the game.
Jumping works well but I found actually moving backwards and forwards to be a bit "sticky", he seems to get stuck on slopes. Also I found it really difficult to control the height of the jump when getting past low spike ceilings. But I am just awful at platform games so it may just be me.
Overall I think it's great and hope that you go on to make this into a fully fledged game.
What We Set Out to Achieve
The main aim on this GameJam for us was to get my 15-year-old son some realistic experience of game development.
We also both wanted to learn to use Unity.
I also wanted a refresh on my C++ skills.
What Worked Well
Getting Jack Experience
I really think Jack got a lot out of this and learn far more out of this than he gets in his Computer Science lessons at school.
With deliberately no preparation up front and learning the tools as we develop, Jack and I were really pushed. We both learnt a lot of new stuff.
Whilst it may have hindered our GameJam submission we spent a lot of time making the experience as realistic as possible; setting up and using focus group, canvassing options on the design and game play, setting up customer surveys, doing brainstorming sessions, etc, etc. I think Jack really learnt a lot from “doing” rather than “listening”.
Most of all Jack really enjoyed it all.
Separating Game “Guts” From Unity
We always planned to write the main guts of the game outside of Unity and just use Unity for presentation. This allows us to test the game outside Unity in a non-visual way that works well for unit tests so we can retest quickly and often.
As always with unit testing, we ended up with more code in the unit tests than in the game code and writing this slowed us down. For a longer project the time saved on retesting would make this completely worthwhile. With such a short project – 5 days - it’s a toss-up if was worth it.
In the main this worked as intended and we were able to turn around changes and fixes fully tested in no time at all.
Subversion and Tortoise
These were the stars and allowed us to work on the same files of code at the same time. Of 301 check-ins, probably 150 required a merge of Jack and my code changes – only about 5 times did the auto-merge fail and even then Tortoise’s conflict resolution tool made short work of it.
Whilst the backdrops we created with MS Paint weren’t Mona Lisa standard they do have a real charm about them. There’s a lot of art you can do with MS Paint, I really hope MS reconsider and keep it as a core part of the Windows.
We were obsessive about using JIRA for everything – no “Remember to add X later” conversations or notes. Everything we had to do, change, fix, improve etc had a JIRA ticket raised for it.
It meant we forgot nothing and had solid goals to aim for.
I use this at work but it was so useful on this GameJam that I had now forked out for a personal copy, the only software we paid for in this Jam.
Excel, Level Design Macros.
This one came out of the blue, we hadn’t considered this until we needed it.
On the last day we had the last 20 levels to design. We started at 9 and had only 2 done by 11 and later levels have more zombies and take longer to design.
It was taking too long to design and edit them in Visual Studio, just the typing (and typos) took ages. But the main problem was designing the “rhythm” of the levels, the zombies spawn in cycles; we also had to consider chain-reactions of killing zombies and making sure the player wasn’t placed in an unwinnable situation. We were a bit stuck.
It just came to us to use Excel to design the levels; using cell validation to ensure that the data was correct (no typos or badly order spawning) and using a few macros to ensure all was good. Then we could design a set of game play cycles we knew were good and just “glue” them together in Excel.
Without this there would be no chance we’d complete all 25 levels in time.
What Didn’t Work
I didn’t realise the free version of Unity was C# only. Experimenting showed we could call from Unity C# scripts to C++ but the work was taking too long and the marshalling was not “elegant”.
So we decided just to stick to C# instead, so missed one of my goals for the project.
I’m still on the fence about Unity. I can’t decide if it’s too restrictive as it forces you to develop in the way it wants rather than you develop the way you want and use Unity as a tool. I can see the pros and cons of this and why Unity is like this.
I think as I learn Unity more I will grow more favourable to it.
We also had several issues with Unity crashing and locking up. On my PC Unity wouldn’t load the project at all for several days until I had time to reinstall it.
Speed means Compromise
The 5 days deadline on the Jam was both a blessing and a curse. It put a lot of pressure on us on one hand – on the other it made sure we got things done. We enforced a 9am to 6pm work day and only broke that with a two hour "crunch" on the last but one day to ensure we have the game code complete ready to do level design only on the last day and a one hour "crunch" on the final day to get all levels designed and tested.
Really we spend the first day on brainstorming, game design and focus groups etc and the last day on level design so only days 2, 3 & 4 were spent developing code.
Developing fast like this is so different to my day job where I need to ensure code is well-written and rock-solid and so takes longer. As we learn Unity as we went, there was plenty of code we should have gone back to and refactored, improved or otherwise cleaned up but we just didn’t have the time.
As expected we both learnt a lot about Unity – we both realise we really only scratched the surface though for this Jam and there’s lot more to learn.
Animate the Characters
We decided early on not to have animated sprites due to the time that would be taken to do this.
Looking at the finished game I think this is a mistake. If we had animated the sprites it would look so much better and would not have really taken that much longer to do.
Complete Game vs Demo
We developed a full game, with 25 levels, pause screens, alternate controls etc. It may have been better to spend the time just doing one level and really polishing it.
The game also starts the user off slow and “eases” them in to the game. It takes a while to get “good” at the game and learn the rhythms to play well. Given most people rating the game will only spend at most 15 minutes playing this may count against us. That said, any game should “grab” the player immediately though.
Tools We Used
Websites We Used
Whilst it was tough, pretty exhausting and a lot of work we both really enjoyed it. We both want to do another when I can arrange more time off work. It really got me out of my comfort zone code development wise.
Thanks to TomDev for the inspired idea of an GameJam for MS Paint.
And Finally, Things I’m Really Proud Of
I’m really proud of Jack, I put him under a lot of pressure to learn new stuff and develop a game. He did really well.
Tom our 11-year-old also drew 19 of the 25 level backdrops – personally I think they are fantastic.
Also, Fred, the 12-year-old games fiend of the family helped a lot in gameplay testing and proved that all the levels were doable.
In the end, everyone in family was involved in producing the game, so thanks to Sarah and Seth too.
And Finally, Finally, Something That We Are All Stupidly Proud Of
The last level, “Hell”, has 666 zombies 😊
A great unique idea of a game. One of my favourites for this jam.
I like the risk/reward of how much to shake the red rag to enrage the bull more to get more points. It seems a bit easy to just always play it safe though to get maximum points over a long time. Some kind of time constraint might help?
I like the melding of Pokemon and MS Paint, you managed to nicely get the feel of both. The graphics are nice especially the game over screen.
I can't get past Garchomp - he one shot kills me.
The animations are great & I like the controls and the responsiveness.
However as cortop has mentioned below you need to improve the AI as if you just keep pressing the same buttons you win; there's no challenge to the game. I never had to block to win.
Needs a bit of work on how the enemy fights and reacts to you and this would be a nice game.
I really liked this.
The chameleon character was cute and I like the way this chimes in with him changing colours in the world.
I had a few problems with crates getting stuck too. & this mean I needed to restart.
Very unique app. More of an experience than a game.
I had to look up what ASMR was to get the point of this, maybe a explanation in the game or on the game page would be nice.
Interesting to use visual onscreen tools to drive an auditory experience.
It's cool to set all the paths up and then close your eyes and listen with the headphones on. I didn't get any ASMR response (I don't seem to with anything though - maybe I am immune?) but I did find it quite relaxing.
Nice clone of the Simon game.
I had a few problems I had to play it in windowed mode else the "Start" button overlapped the buttons. Also often for some reason, on the second round, I lost the game even when I pressed the correct colour?
Good game but needs some tweaking, it's a bit too tough and frantic as it stands.
I felt everything moved way too fast so I didn't feel in control. Ship left/right was too quick. Maybe make the sprites a bit smaller to make some room to dodge & so top to bottom movement of enemies give you more time to react.
Need some feedback the enemies get hit rather than just disappear. Also some feed back that you are getting hit would help - not just the health bar.
Some variety in the enemies or what they shoot would be good too - maybe that comes in later levels but I wasn't able to survive long enough to see those.
Some progression to make the game a bit easier to start with would be good too.
I think a littlle more development could turn this into a great little space shooter.
Graphics were good and have the MS paint feel. Love the hand drawn font too.
Could do with a few different enemy types? Or maybe I didn't get far enough into the game to see those?
Really enjoyed this game. Nice retro MS Paint feel graphics.
I like the way the different guns work & that they each have different use in the game.
Exploring and opening new areas with the keys was nice.
Great MS Paint feel for the graphics. Great graphics and animation overall in fact, it gives the game a great vibe; loved the tanks, helicopters and "movie screen".
Had a few issues; playing full screen doesn't show the bottom half of the game and often the keys seemed to get messed up in the browser until I refreshed the page.
Also really tough - got to the end several times but couldn't kill the president. But end-bosses are mean to be tough.
A great little game., really good.
PS I get the image you have on the game page is a presidential palace but it's a bit of a put-off, I was thinking "What has this got to do with MS-Paint" before playing the game. Maybe change for a in-game screen shot, your game graphics are good enough.
For some reason this would not recognise key presses in my browser but worked OK on other PCs.
The sprites really capture the MS Paint feel. Also the sound effects really suit the feel of the game. As other have said 10/10 for the walking animation.
Nice unique idea. I enjoyed the game.
Is it intentional that when you pick things out to place in the hand you have to take them off-screen partially to get them over the lip of the bag? That threw me for a while.
Pro Tips for Playing Zombie Bash
I will add these here in case someone misses them in the game page.
Thanks for the review.
Collision detection was an issue we had throughout development. We wrote the collision detection ourselves in our game library rather than let Unity do it for us so we could port this to another game engine if we wanted.
All the math and unit tests shows that the hit detection is technically correct but we also felt something wasn't quite right.
We ran out of time to fully resolve it. I think the issue is the that code is right but the sprites aren't drawn quite in the centre of the sprite images. Also you often get hit multiple times by very close together zombies. We should redo the sprites to make them narrower with a narrower hit box and also give the player half a second of immunity after being hit.
Note that if you time your jump up right you can "jump through" zombies jumping down and vice versa - this is intentional.
It's is a bit tough especially the later levels. I'm rubbish at the game but our resident 12 year old expert (that has played games like Mario and Binding of Issac to death) is pretty good at it & has a high score in the 500s.
There are patterns in the way zombies spawn in the levels, once you have learnt these it becomes easier.
We have tested each level and each level is doable but they are tough on the later levels.
Day 5 and it's completed and we just hit the button to submit the game.
What a final day - there were a few last minute bugs we had to sort out. But most of today has been level design, play testing and ensuring that the levels are actually playable.
96 man hours of work, 301 version control commits and 68 Jira issues/tasks and bugs.
I will post more tomorrow about our experiences once my brain has cooled down. But it was fun (I think) :)
Day 4 of the build and fingers-crossed the main development is now done. We'd planned to complete main development today and just leave the final day for writing levels and tuning them and finessing the game play. We had a bit of a crunch today and broke our rule of only working 9 to 6 and had an extra 2 hours today just to ensure we were good for tomorrow.
It's interesting just how different working on a GameJam is to my day to day development work is. I normally work with "low-level" code & messaging and can spend days or weeks on just one issue. With the GameJam I find we're swapping constantly between lots of issues and there has to be constant communication between the two of us. I can say version control has been invaluable and allowed us to work on the same pieces of code – merge changes when we are both done. Same with JIRA, by being rather anal with this we’ve ensure that neither of us has missed or forgotten anything.
We’ve finally managed to get Unity to “behave” for the both of us; again, maybe because my day to day work is low-level is why I find the “high-level-ness” of Unity to be restrictive. Still we’re getting to learn it now; with what we have learnt I can look at the code and know that if we were to do this again we’d do a lot of it differently.
The art work done by Jack’s younger brothers has been great – MS Paint can be used to make some very cool stuff. Tom in particular has been a star and produced 19 of the backdrops.
So tomorrow we start building the levels and tuning them.
As a teaser this is the background to the final level – I post it here as it’s likely few players will ever be able to get that far into the game.
Day 4 of the build and much to our surprise we have a playable game - sort of...
There's only one level at the moment and only one zombie type but we should address that tomorrow and add additional levels and two new monster types.
There's still a lot of finish off but our Kanban board now has most tasks on the right hand side.
It also turns out that Jack is quite good at the game whilst I am rubbish, just Zombie fodder.
Sounds cool - a bit like Mario Meets Portal. The animation looks nice tool.
We've really gone to town with the MS Paint circle tool, the backgrounds look so bad with it they're almost good again - if you know what I mean :)
Day 3 of the build and we have the player movement completed. The player and the zombies all move around as they should but currently don't interact. We've started coding on that but not completed it.
We decided to code the majority on the game in a library, this just exposes a few objects (Game, Player, Zombies) that we use Unity to visualise. This allows us to set up unit tests on the game library to allow us to test as we go. But Unity is continuing to hobble us; I took a download of a new version of Unity this morning and now I can't load the project so I'm stuck just using Visual Studio & can't run the actual game now at all but I can run unit tests to check things are working. Meanwhile Jack can't get any of the unit tests to run on his Visual Studio, something in Unity seems to be preventing his copy seeing any tests, despite the fact we're using the same VS solution and projects.
So I'm finding Unity pretty frustrating to use at the moment, I'm unsure if it's just because I'm unfamiliar with it or if it really does "straight-jacket" you and stops you developing code in the way you want to. Normally we could spend some time working out these issues with the development tools - but for the Game Jam we don't have the luxury of time so we have to live with it. Maybe next time we'll use XNA and do everything in Visual Studio?
Anyway, hopefully by early tomorrow we should be killing zombies...
So our 2 person team, my son and I started a day later on this and have just finished our second day.
First day we came up with 3 ideas - which when put to the focus group (mum and siblings) surprisingly all scored near similar scores. We discounted one idea as it would take too much development for the game AI. So it was really a toss up between the other two ideas; we went with "Zombie Bash" and the other game idea "Shatter" is up here on this forum in case anyone is stuck for ideas.
We're both learning Unity and having never used it before it's taking a while to get up to speed for us both. Seems like Unity really wants to work in "its own way" and trying to be more flexible with it isn't easy for beginners, so we've had to rework a lot of early code to be "Unity Friendly"; there's probably ways to get to work the way we wanted but as we're short of time we don't have the luxury to experiment. All that said we have finally got our zombies moving in the game - cue cries of "It's Alive! It's Alive!".
I have also shelved my idea of writing the main game code in C++ as the interfacing to C# for Unity would just slow us down too much when debugging. So it's now all in C#. I'm happy with that as just learning Unity will be a win for me.
We have recruited a couple of artists to draw us some backdrops for the game as it'll need many of them, it helps to have younger brothers. They have agreed to be paid in Overwatch Loot boxes :)
Here's the first draft of the backdrops for the first 2 levels:
Tomorrow we're working on player movement and animation and collision detection.
Having fun and learning lots so far...