Behind the donut

Jam Donut Games is the development studio of hobbyist games developer Adam (Jam) Dougherty (Donut) a developer from the UK.

I've been developing software for 10 years professionally now but have never been a professional game developer. I enjoy making games in my spare time and hope to create a small niche for myself in the simulation market for desktop and mobile :P

In my About page I have tried to add details of the technical aspect of my games as well as personal opinions in order to allow other developers and creators to get a sense of the challenges involved in the project. Maybe there will be some take away for others.

Why do I make games?

For me, making a game is just as fun as playing a game. I also try to get in as much gaming time as I can since it's an amazing hobby to have.

Sometimes though, when no game is scratching the itch I just have to open my editor and code something, it's just like any creative or challenging game. Even making this webpage is part of that fun side of "making my own game".

That doesn't mean game development is just as easy as playing a game though... As a seasoned technical engineer I try my hardest to complete a personal project and take away from it anything that I can learn.

Some of my inspirations are obvious and I'm not shy about admitting it, Prison Architect and Rimworld are two amazing games which inspired the gameplay loop and art style of Arcade Builder. Reminds me of some saying about the sincerest form of flattery.

Aside from my influencers some other great games I love to play include Kerbal Space Program, Oxygen Not Included, Ark Survival Evolved and Kenshi. I highly recommend playing these games if you enjoy strategy or simulation!

Latest game showcase: Arcade Builder

Arcade Builder is a mobile, desktop and browser game built from the ground up as a solo project over a few years by myself.

It's a great little game that let's you:

  • Build your own arcade business from the ground up.
  • Hire and manage your staff
  • Get hundreds of customers in your arcade
  • Unlock research and find new suppliers
  • Place loads of furniture and arcade machines

Creation

The development started out as a simple "I wonder if I could make a 'flatland' in javascript"... which lead on to realizing the game potential for what I was developing. Here's some footage on youtube from that version: https://www.youtube.com/watch?v=wyhPWiRk3Pc

After creating the demo previously shared I really wanted to make a game with what I had started. After staring at the screen and the little shapes walking around for a while it started to remind me of games I've played before... Prison Architect and Rimworld

With this in mind I came to realise a lot of the fundamentals that could go into making this game, such as the building of walls, placing of furniture, and staff/ai interacting with the furniture. I'm not gonna lie, the thought of my own little dudes walking around doing stuff was pretty cool.

The idea for the game has evolved since day one, originally the game was going to be a hotel simulator but it just felt too obvious. In the end I decided to go with an Arcades Business simulator; inspired while on a trip to one of the arcades in my home town Blackpool. Now I had a game idea I wanted to go with... All that was left was making the damn thing!!

The 'art'

When starting development on the game I had to face my fears of needing art for the game... In the past I have used mostly Pixel Art in my projects, but with this project I wanted to learn a new 'style' and so picked up Inkscape to do the art for the game. The overall goal was to get the art to look similar to other successful indie games, I'd say I got a solid 5/10 on that goal :P

With an understanding that my art wasn't going to be amazing I tried to ensure I would focus on the AI working, and having enough gameplay elements to make a fun game.

What about the code?

The games engine is developed in pure javascript using Notepad++. I do use IDE's and other tools in my work but for my hobbies I love using just a simple editor, sometimes I'll even write entire applications/chunks of code just in the chrome console

26k Lines of code excluding tooling/build scripts as of Jan 2020

Honest opinion: The code has it's upsides and it's downsides... the UI is a big mess of spaghetti and probably contributes to about 30% of the overall code (its just bad c+p code, trust me) but atleast I've controlled it by seperating code off into different files... The missions, research, upgrades all that is pretty basic but powerful so I like that. The saving system is quite good too.

The worst part to make: AI is just a pain.. Once you've nailed it you'll realise you're only 10% through the nightmare haha

I utilise a few Open Source projects that really enable the development of my games, these include:

Why not Unity/Unreal/Phaser etc?

My professional roles take me across several languages (PHP, Powershell, C#, JS) and my favourite was always JS... when HTML5 emerged years ago I decided I wanted to focus my efforts there only.

I have used HTML5 engines such as Phaser and Construct (AstroColonist & Attraction are both Construct 2) which are brilliant tools, but I always wanted to dig deeper into the code and how each individual "tick" was processed.

In the future I want to learn even more about the rendering layer, such as GPU rendering and Shaders.

Other Credits

As a solo developer I rely heavily on friends, family and open source and therefore I would like to credit the following for helping in all my projects.

  • My parents
  • Friends - Everyone who helps me test
  • WensdiMade - For all sorts, no value can be placed on her contributions.
  • Pash - For all sorts, no value can be placed on his contributions.
  • Daniel Winfield - For patient testing and feedback
  • PixiJS Contributors - If I didn't find this renderer, I wouldn't have had this much fun.

Tips for other creators

Some really simple tips that seem obvious but you have to keep reminding yourself... just keep going, set goals, make what you want to make...

If you stop for a while, that's fine just pick it back up again later, it'll feel nice and fresh in your mind when you come back to it.

Remake as you go. Especially true for UI, code and art. You might have made an art asset or a piece of code already, but I bet you could make it better a second time round or even the third time round... So if it ever comes down to improving something by replacing it, don't get precious about the thing you're throwing away. Life goes on.

Appreciate feedback, even the bad feedback. It'll be hard sometimes but even bad feedback is probably *real* feedback. You should seek feedback at every chance you get. My family and friends are probably sick of receiving 2-3 screenshots every day or so asking what they think. But it helps me and my project :)

Future

In the future I hope to release at least a couple more games on the same engine I've developed for Arcade Builder. I have a few ideas in the works such as a Casino building game, as well as potentially using the engine for more complex games, such as a survival builder or colony simulator.

Talk to me!

If you want to keep up to date with my development or give me feedback you can follow and tweet me on twitter @aJamDonut

If you like what I'm doing and want to chat please drop me a pm on twitter! If you want to join my community on discord then use the link here: Discord Server

TLDR

Some British Tea lover made a simulation game in Javascript that works on mobile, desktop and browser. He learnt a lot along the way, it was hard but fun and everyone lived happily ever after.

Other Games

I always endeavour to complete a game project even if it may mean there are certain shortcomings with gameplay, for this reason ofcourse the games are always free and available online:

You can check out some draft games and devlogs here: https://www.youtube.com/channel/UC5yH3WaxAWLYRVLIWveh7dg

Here are a selection of some of the games I've developed in the past!

Attraction - A short simplistic platformer where your arrow keys control two players at once.

AstroColonst - A 2D space RTS with planet management, alien attacks and RNG solar systems.

Arcade Builder Classic - The original release of Arcade Builder

World-Mafia - A multiplayer text-based mafia game with missions, heists and a great community

Copyright jamdonut.com 2020