Things we used to make Robots and Zombies


We were amazed at how well this project went and were immensely proud of what we acheived in 7 days. We're a two man team of a programmer (former C#/Unity professional) and an artist (Blender/Substance Painter guru). We also roped in my daughter to help us play test the game during the week. That was invaluable as well as she saw things that we just didn't notice like typos, graphical glitches and she played the levels without taking any shortcuts that we do while testing, like removing all the enemies to test the level flow.

Game Design Document

This was the plan we put together the week before the jam so when we started we were effectively working from a list of things we'd already decided to do. Essential to remove decision dilemma and prevent too much procrastination. There were quite a few items we didn't get to and we ended up dropping the oxygen stat entirely during the jam week and just going with Health and Battery:


Unity Asset Store

We didn't start with a completely from scratch though and we wouldn't have been able to make this without these amazing Unity Asset Store assets that I've bought over the years (whenever a sale is on). OK some aren't so amazing (I'm looking at you Party Hat):

  • Zombie [free] - The star of the show. The textures are great, the animations are simple but all you need and the skinned meshes come in 3 flavours. You can even break the body parts apart (a stretch goal we never got to).
  • Shiny SSRR 2 - Screen Space Raytraced Reflections - An absolute must for URP developers. I can't understate how important this was to the look of the game, especially with metallic floors, walls and robots.
  • Ultimate Hat: Party [free] - When you fail in a level we wanted the Zombie to celebrate. What better way than with a Party Hat. can really didn't like it but there wasn't enough time to swap it out. 
  • Mouse & Keyboard Icons Pack - To improve the HUD, which is just a TextMeshProUGUI object we wanted to show keys for keys and symbols for the mice. I bought this the week of the jam, hoping it would go on sale in the Spring Sale, but it didn't. Still well worth it though.
  • Toilet [free] - The rest room needed a toilet. The asset store delivers. The lid doesn't open but we had other things to worry about.
  • Sci-Fi Arsenal - Buy it now. All the projectiles and laser effects were straight out of this asset, almost completely unchanged. The effect is amazing. If you get to the last level and pick up the Rocket Luncher (that's the name of the asset but I think it was a typo from the author) and fire it it's just so satisfying
  • Sprite Camera Maker [deprecated] - It may be deprecated but it's still my goto tool for producing top down images from Unity for use in the Tiled Map Editor.
  • Animated Loading Icons [free] - If things go really well you'll never see them but if the map takes a bit of time to load then you'll briefly see one on a black screen. Just what we needed and free.
  • FinalIK- This is only use for the AimIK on the start screen. Behind the camera a sphere moves up and down in time with the music volume, move if the volume is higher, less if lower. The Zombie uses AimIK to follow at this sphere which makes it look like he's banging his head to the beat. Yes I spent 3 hours on this and it probably wasn't worth it but it was good fun.
  • Space Graphics Toolkit - A bit gratuitous to use this to be honest but we needed a good looking picture of the Earth for the end game screen(s) and I knew this had it via a free downloadable pack. This increased the download size for little gain but it looks good when you see it.
  • GUI PRO Kit - Sci-Fi - Great for those Sci-Fi panel borders and used on the keypads, door location signs and menu buttons.
  • Sci-fi Weapons Arsenal - Just incredible looking 3D guns. They even have animations, although we didn't use them. The grenade was used as our Intel asset that you pick up on the last level.
  • Ultimate SFX & Music Bundle - Everything Bundle - All the music and almost all of the sound effects come from this package, including all the zombie noises. I kept looking at other sound packages but cam back to this one every time. It has almost everything you would need for a game. 
  • [Graphy] - Ultimate FPS Counter - Stats Monitor & Debugger [free] - If you press CTRL-ALT-G you see a frames per second counter. Keep pressing it and you see memory stats, audio usage and a whole host of useful diagnostics. This is the first thing I drop into any new Unity project. Why would you use anything else?
  • Random From Distributions: Statistical Distributions Random Number Generator [free] - I prefer my randomness to be shaped and this provides a very simple to use set of functions for applying normal distributions to Unity's random number generator.
  • SpaceNavigator Driver [free] - You've never been as productive as when you're moving around a Unity scene (and now Substance Painter) with a 3DConnexion SpaceMouse. They're not cheap but I used to use one for CAD and they're just so much more intuitive than using a mouse.

Software Libraries

  • TiledCS [free] - I forked this on github a while back and used it to develop a tiled->prefab loader for a game we're working on. This is the backbone of the Robots and Zombies game. It allowed us to concentrate on creating the levels in the Tiled editor, which is much more restrictive than Unity but with that restriction comes control. There are no rogues MonoBehaviours that you added in that you forgot about. You have a set of well tested prefabs and the corresponding PNG in the TileSet.
  • DOTween [free] - I tend to use a lot of Unity animations (in Legacy mode) to do simple things. The drone robot (Zeek) is just a very simple movement (and then rotation added by Dan). Then again sometimes you just need a quick animation that you can wait on in a Coroutine easily and DOTween is perfect for that. The Zombie Jaw shake was the out of the box DOTween DOShakeRotation.

Sound Assets

Freesound is my go to place for sound assets if I can't find it on the asset store and these guys deserve the attribution for their efforts. Many thanks guys:

Font Assets

I have a love of typography and Google Fonts is my go to place for free to use fonts for games. There are two fonts used in the game, the main one is Teko, which is also used on the itch.io pages and Permanent Marker, which is used for the decals on the walls that reveal the codes needed to open doors.



Tools Used

  • Unity [free-ish] - Just the best game development environment around. Impossible to do this kind of thing without it. Almost all the logic is in Coroutines which are just magical (I know async is better but...). Here is what our levels look like in the editor so you can see how low-poly it all is. The red bits are blocked tiles (not visible in game) for player/enemy source/destination squares and locked doors.
  • Blender [free] - Is there another 3D modelling package? Dan doesn't need one, although he is very good with 3DS Max!
  • Tiled Map Editor [free] - The key to how we managed to develop 5 full levels in a week, together with logic, dialog, etc. The constraints of a 2D layout system work to your advantage because it leaves less time to procrastinate inside Unity - a huge time sink.
  • Substance Painter - Dan swears by this for creating cool looking textures, especially the metals on the two robots, which dan did all from scratch in Substance Painter. This was also used to render out textures for the walls,  which were made in 3D in Blender, to keep the level lightweight
  • Photoshop - You always need to fiddle with images (Dan). I use Paint.Net myself but the effects aren't as good as the ones Dan gets.
  • Visual Study Community [free] - Why code in anything else?
  • ClipChamp [free-ish] - A last minute find. At 2am on the morning of submission I said to Dan we need a video teaser to persuade people to download and install 300Mb of windows exe. I took all the "fail" clips my daughter sent me showing bugs and cut together the bits before the bug happened to make a really quick trailer for YouTube. In all it was 20 mins start to finish. Very easy to use.
  • Audacity [free] - The elevator clip from Freesound was a single clip but I needed a start, middle loopable bit and an end, so I used Audacity to cut the clip into 3 and then played them at the right time.
  • Skype [free] - Dan and I live in different parts of the UK so we have to be able to commuinicate. Skype is very competent and works for our needs. Plus Dan already had it installed so he didn't have to learn a new tool.
  • Slack [free-ish] - Regular chats throughout the day would take place on Slack, together with images, videos and sound clips. We also spent a bit of time trying to understand what a dungeon crawler was because there aren't really hard an fast rules about them. My childhood spent playing Dungeon Master on my Atari ST informed most of the game play mechanics.
  • OBS- For recording videos of the game play and for our tester to record things going wrong to show us so. The Play Through and Trailer were created using clips from OBS recordings.
  • Trello [free-ish] - If I don't write something down straight away, I forget it. The instance I have an idea or spot a bug I put a card in Trello on my TODO list. Here's a screenshot of our Trello board mid-jam. The dreaded Decals not showing up was spotted there but we switch from URP Decals to vanilla UGUI and it seemed to fix it. We nearly went with bosses from the Protofactor asset but they didn't fit in the 1x1 square and we thought the AI would be a nightmare for them, so we switched to the Zombie.

  • Excel - We managed one round of game balancing on the last jam night using a quick Excel spreadsheet to make sure the guns on each level scaled roughly linearly with respect to damage per second, even though they each did different amounts of damage per shot and had different fire rates. You may also notice that you walk slower with heavier weapons. We had 3 enemy types, the Zombie which could only attack when he was on an adjacent square, a drone (Zeek) which could attack at any distance as long as they were in line with the player and the big/slow robot Chunk which could attack with a devastating flame thrower when you were within 3 squares of it.

Assets That Existed Before The Jam

These assets weren't created for this game but part of the reason we did this particular game jam is that we had these assets made for a top down strategy game we're working on. We weren't sure how they'd look in first person so this Jam gave us a chance to experiment with exactly that.

  • The starting Tiled Tileset (not the map files) had the walls in and a few other things that you won't see in the game because they're part of the other game we're working on.
  • The Drone robot (Zeek) and the Large Dalek style robot (Chunk) were created for our top down strategy game, although Dan did tweak the textures in Substance painter as the week went on to get the lights to appear in the dark.
  • The walls/doors/windows, floor tiles and ceiling tiles were all taken from the top down strategy game we're working on, however they are incredibly low poly (each wall is 12 vertices) and we combine the individual prefab meshes into a larger mesh when we load the tile map in so it renders very quickly. The walls and furniture all use a single trim sheet texture as well.
Wall Mesh         Walls and Furniture Trim Sheet
  • The C# code to use TiledCS and swap out tiles for prefabs of the same name (255 lines). We may open source this as it's really simple but very powerful.

Assets Created During The Jam

Creating artwork is not easy and everyone takes it for granted how much time it takes to make something looking good. Kudos to those asset store publishers who do such an amazing job with this kind of thing. Anyway, here's a list of what Dan made:

  • All 5 Tiled maps - roughly one per day. Dan did all these and the game design with them while I coded the prefabs.
  • Tiled Tileset Extras - Zombie, Keypads, Door Locations, MiniMaps, Entry/Exit lifts, Terminals, TV, etc.
  • Inside Helmet - This was a 3D model Dan made in Blender and then raytraced in Cycles before using it as an overlay for the player.
  • Cracked Visor - We wanted to represent the damage a player had received without using blood splats (they give you a mature rating for that kind of thing these days). Dan created a broken glass texture with Photoshop layers that we fade in using AlphaClipping.
  • Visor Distortion - This is just a one of the six faces of the default cube in blender when you distort it to almost be a circle. This mesh had its UVs set and onto that we rendered the HUD to a rendertexture and put that as a material on the player UI to give the distorted glass look. We got the idea from see this SpaceX/IronMan mockup image and Dan said he could do that really easily:


  • TV Distortion shader - Random whit noise on the TV screens, all generated procedurally in Shader Graph.
  • Animations - all the animations for the robots, doors, UI effects, screens, etc. were created in Unity's Animation Editor.
  • Cursor, EXE Icon, Splashscreen - All the little things that say we dotted the i's and crossed the t's.
  • Game Screens - Main Menu, Pause, Level Completed, Level Failed, Game Complete (with two alternate endings with different graphics and sound)
  • Minimaps - Just an orthographic camera taking a screenshot of the map from above, with ambient occlusion turned up and no post processing, and then putting UGUI red and blue dots on it that represent the positions of the player and the enemy.
  • 62 C# files - The code that makes it all happen. According to Visual Studio there are 1,458 lines of code in those files. 

Child Labour

I persuaded my daughter (with pocket money and easter eggs) to be our tester for the week and she did a great job. She was the third member of the team and although she wasn't full time she put in quite a few hours. All the videos you see, including the trailer and play through, were made using OBS. The Trailer is actually a series of test videos she made to show us what had gone wrong and we cut them just before the bug happened - zombies walking through doors, drones firing lasers through walls, etc.

Time

Adam (Arlorean) is a retired programmer (30+ years of C++/C# development) who has a lot of time on his hands but really pushed the boat out and burnt the midnight oil on this one. Dan (Carodan) is a full time artist (30 years+) but was willing to spend a week working on this game so we could see what we could deliver in 7 days. We previously did an Asteroids clone called Viroids but it wasn't for a Jam, it was just to see if we could work well together and finish a project.

We probably each spent at least 12-16 hours a day for the full 7 days on this project. Many nights I counted 5 hours sleep. It's unsustainable in the long term but for a short sprint like this is was doable, although I slept for a long time on Friday/Saturday before we started playing everyone's games. They're all great BTW.

Thanks

We hope you liked our game. If you have any questions, feel free to reply to this post or DM us directly.

Thanks,

Adam & Dan


Bonus Update

We just did a MacOS build for any diehards out there who refuse to use Windows:

MacOS Build (Allow apps from Anywhere to run as it's not signed)

Get Robots And Zombies

Leave a comment

Log in with itch.io to leave a comment.