of the game In June 2017 I decide to embark on a Journey: A quit my job as a Software developer and with my girlfriend, we decided to travel around Asia for as long as we wanted to.
During this trip, a side project was born: Square Maze a minimal puzzle game for mobile devices.
In this article, I will tell you this story, the story of a software developer that during his trip around the world decided to develop a video game for the sake of his passion to make makes.
But let’s start:
The beginning of Square Maze
We start our trip on the Trans-Mongolian railway and after a month and a half we ended up in a nomadic Mongolian family for about a week.
It was an amazing and tough experience.
We were spending most of the time riding and taking care of the cattle, but on the other side, we had a lot of free time and since it was so hot during the day, we didn’t have much to do.
The problem was that my mind was still on “software developer” mode, which means that I was so used to solve problems that I need something to keep my mind busy.
So I said to myself: Why not make a video game? It’ll be fun.
So instead of doing sudokus like all the normal person would have a done, I decided: “I will make a video game”
So for the next days, I start to do some brainstorming, I wanted to make a game that It is not too complicated to make and mostly it should have been easy to make because in the end… I was traveling the world and this was just a side project to keep me occupied while the long time spent on the train or doing nothing.
The concept and the tools:
I wanted to make a 2d mobile game where the main goal was to escape from a maze full of obstacles to avoid and little puzzle o resolve.
All the levels should have been hand designed and with an increasingly difficult and since I’m not a graphics guy, I decided to go for a flat a minimal style which is something that I can handle.
I decided to use Unity because I’ve already used it to make some other games and I’m very good with C# so that was the obvious decision.
And since I was traveling around, I couldn’t make a timeline for the project, but I really like making plans, so I decided that It would take no more than 3 months to make the game:
- 1 month to develop the tools
- 1 month on to develop the prototype
- 1 month to make all the levels
- 1 month to make all the others stuff (UI, IAP, ADS, etc)
What I didn’t know at the time is that end the end I would have been able to realize the game after 3 years because making games is so f****g hard.
The development:
What I thought would have been a side project that would have taken me just a few months, ended up to be a side project that took me 3 years to make and here is what happened.
The first phase was ok, I didn’t have much time to use the computer during the long hours spent on trains or transportation, so I designed all the code on paper.
And that means all the algorithms, the logic and the UML, everything on paper.
This was a big advantage because I had time to find the problems and solve them on paper.
So I spend countless hours thinking about the logic of the game and testing the pseudo-code on the paper ad this resource a lot the number of bugs that ended up on the game.
I used Trello to keep track of all the tasks to do and have an overall vision of the status of the project.
But after 5 months and the road, my girlfriend and I were pretty tired of traveling so we decided to go back home and have a “break” from the trip.
When I came back home I had a lot of things to think about: how to pay the bills and how to make a living that would imply spend my entire life in an office realizing someone else dreams.
So the project was officially on hold and for the next 2 years, I just had time to make little adjustments and bug fixing.
It was a pity not having enough time to spend on the game but I was focused to find a way for having the lifestyle that I wanted wich Is: having the time and money to travel as much as I want and essentially be free.
So my girlfriend and I spend the next few years making a travel blog a tour it into a business, we continued to travel from time to time and at the time I’m writing this article, I’m in Australia living in a motor home in the middle of nowhere.
Since we are stuck here because of this coronavirus s***t, I decided: “what I minute, now is time to finish this game, it’s now or never.”
So there I am after another month of work while traveling, the project has finally seen the light and here are the 5 things that I learned while making this crazy game.
1 You must have a plan
Making a videogame without a timeline/ schedule is almost impossible. I’m my case this was particularly important since I was traveling, It was really important to have all of your project defined on “paper”.
I had all the UML design on paper along with the uses cases (see the spiral model for game development) for the game.
The uses cases are very important to understand which are the parts of your game that you need to develop and you prioritize them base on the time that you have and on the importance o the uses cases.
So my suggestion is to plan and think as much as you can before you start to write your first line of code.
2 Keep your code clean and simple
One important think of my project is that sometimes the project was “on-hold” for months and months without anyone touching a line of code.
And as you know working on a codebase that you haven’t seen for months can be challenging.
To avoid having problems I strongly suggest to keep your code as simple and clean as possible.
For Square Maze, I use a simple pattern to achieve the “simplicity” goal: The Single Responsibility pattern.
And also I massively use events as a way to decouple the communications between objects.
This was enough to give me a nice and stable code base to work with.
But if you plan to have a big project, I suggest using the SOLID principles to develop your codebase.
I won’t get into SOLID now because it is beyond the scope of this article, but is a collection of patterns that can dramatically increase the quality, reusability, and flexibility of your codebase.
3 Keep it simple
Square maze is a very simple game but despite this, I encountered a lot of problems to make this game, just to mentions a few:
- Create all the Unity tools to generate and design the mazes.
- Create all the tools to play with the design of the game like (velocity, colors aspect ratio, etc, etc)
- Design and play all the levels to have and increasingly challenge balance all the levels.
- Deal with pathfinding algorithms, performance, UI that will fit al the screen, etc, etc
- Deal with platform-specific problems like adding achievements or IAP
- Testing on various devices.
- Create all the graphics, video studying the ASO for the stores, etc, etc
Not the mention al the technical problems and bugs that I had to fix.
So my final and maybe the most important suggestion that I can give to you is: Keep it simple.
Start with some very small projects and increase the difficult project after the project.
4 Use your strengths
I’m a coder and even if I would like to create super fancy looking games with and heavy graphics components, it much more whose to use your strengths as much as I can.
Square Maze is a minimal and flat game, a that it’s not only because I love minimal and flat design, but also because I’m felt pretty confident that I can make a nice looking game if I adopted a minimal style.
Otherwise, I would have hired a graphic designer and invest money, something that I couldn’t have done it since I was traveling and I needed money to travel.
So I decided to rely on my ability which is: write code.
4 It is a hobby, not a full-time job (Yet)
Making games should be a hobby, especially if you have other jobs or you are traveling the world as I did.
And like every hobby you should dedicate your self to it but not too much otherwise you are seriously going to born out yourself.
Assuming for a moment you wont to be a good football player: You can start playing football 8 hours a day with there risk that after a month you can even see a ball without throwing up. Or you can play 2 hours a week, and slowly slowly become better.
The last strategy is the same for game development, I had the chance to work at the project for few hours a week, some week maybe a lot and some others any, but at the end that wasn’t my primary goal, I took it as a hobby and this will help a lot to reduce the stress and decrease the risks of burnout.
5 You won’t get rich
Making games for a living today is getting really complicated if not impossible. You have so many competitors and your game will probably be forgotten on the 15th page of the app store.
If you want to get rich you have to become an entrepreneur and not a simple game developer (at least from my point of view)
But if you simply love to make games, then go ahead, you will probably make some extra money but you won’t get rich.
There may be some exceptions of course, but statistically speaking, if you can get out some hundred dollars per month with your game, you can consider yourself lucky.
Conclusion
What you have read is just my personal opinion based on my last experience, I do hope that my story will give you some interesting advice and some interesting insight into what it takes to make a game, even a simple one.
Having said that, I hope that you play Square Maze, and of course, leave a good review. I will really appreciate it. Yer the buttons to download the game on iOS and Android:
Thanks
Marco