Many of you will know Artur Moreira, who’s a Protuguese game developer and also goes by the nickname Grimshaw on the SFML forum and other places. He recently released his first game through is newly founded indie company Daeva Theory Studios (former www.daevatheory.com) and since he’s a good friend of mine, I thought it would be nice to hear his story on the development process. Without further ado here goes the first guest post on this blog:
Hello! My name is Artur Moreira. I am the founder of Daeva Theory Studios, a startup games company which is already established with a published game, but is still trying to find its place in the world.
Our first game, Terra: Rise of Mankind, was an attempt to explore a mix of genres, in a rather experimental perspective of the world. This is a 2D game where you take control of a planet, being able to build structures, space ships and use them to combat in space battles! The game is quite unique, so it was very hard to get it right, even though I think it has its flaws. It feels like an RPG in some ways because you need to level up by obtaining experience, which unlocks new things to make you stronger or richer. The space ships also evolve as they gain experience, becoming stronger. However, I think the game feels even more like a real time strategy game, because of the way you move your ships and fight the battles.
In sum, this was a vision of a game I had and started improving on it over time. Had I not been so naïve in the beginning, it would have probably turned out a way better game. There was a bad planning in the start, some bad designs which eventually had to be removed and replaced and overall productivity faults along the road. I guess this is normal for someone still beginning, creating his first commercial game, so I just learned my lessons and kept going in the direction of better games. Either way, I thought someone else could benefit from knowing on what I failed and what I’d do differently.
Now that we published our first game and can now be called an independent games company, I wanted to share our experience up until this point, as well as the conclusions we made through development. It would be great if any of my tips could favor you and help your life in some way.
And here goes the first tip:
1. Don’t overestimate your designer skills
Unless you are some kind of genius, you probably need to practice a lot your game design ability before you can make actual good games. They usually say you need to make quite a few bad games before making a good one. I believe this to be true in most cases because at first your “cool ideas” for games that you keep having, are usually too vague to be worth it or even to be captured correctly in an actual game. These cool ideas fail because of being infinitely bigger than you can handle.
Having ideas with actual value, which are feasible with your current resources is not an easy task. You also need to be able to figure all tiny details about your game from early stages, like where every button goes, what screens you will need, what colors you will use. If you care about providing decent game experiences, you just can’t throw random stuff together. Each game you make needs to be well thought and polished to avoid frustrating the player. Reading good books, playing good games along other activities will help you have better game ideas from the start, with richer details, but the more you create as games or even just writing down ideas, the better you will become. Don’t be too hard on yourself but practice a lot! Either way, do a favor to yourself, work on things you love. You shouldn’t be making games you aren’t passionate about because you will secretly grow a grudge against them and in the end you will want to ditch them rather than love them as your baby.
In our case, this had a big impact while making our first game. I had a really vague idea and prototyped it. It seemed promising so I continued development over that prototype. It was a really bad idea. The game was then re-designed both graphically and conceptually too many times, by lack of a clear direction, losing precious time while doing it, which leads to the next tip.
Whatever is the size of your project, trust me, lose time on pre-production. Even if you are cloning Pong, lose an adequate amount of time preparing yourself. It is a mistake I never want to do again. After all the time that was wasted while making Terra, I swear to myself to never again handle things the same way. You really should be a man with a plan, in what comes to making a game happen. Because I did not do proper research, writing, user interface planning and other things, the development advanced in semi-random directions. If you like redoing the same thing more than you can count and wasting time, this is the way to go. Otherwise, do pre-production. Before starting your game, write down your idea, do some sketches for characters and menus, structures your systems, do research on what tools you need, what algorithms you will need to know, create prototypes. If you keep making decisions before the real development starts, you will win a lot of time, save a lot of headaches and even be awarded with a better game in the end. For me, preparing is now a big chunk of the process. Preparing everything beforehand effectively makes the game development procedure fluid, interesting and effective.
Now that you have a plan, you need to execute it, use all your available willpower into fulfilling the plan you made before starting. My first tip to stay productive, whether you work fulltime or part time on games, is to avoid straining at all costs. Keep exercising, hanging with friends and don’t work more than you can handle. From my experience, whenever you push yourself too hard, you end up losing more than you earned later from being tired. Don’t forget game development is not a regular mechanical job; you need to be very focused for nearly all tasks. If that means you need to work a bit less than other people, that is fine, as long as your productivity stays up. It is not about the number of hours you are sitting on your chair, it’s about what you get done!
Another thing I had to get used to was productivity schemes, or how you want to call it. Some people are fine with simple to-do lists, but I found myself completely lost with them. They don’t impose any kind of time schedule and you inevitably work too much or too little, being unable to predict accurate deadlines for yourself. Because of this, I “developed” my own productivity method. Very roughly, here is how it goes: I decide I want to work N hours per week, let’s say 48. Ideally, that would mean six day weeks, working 8 hours a day. To keep me from losing track, I make one task plan per day in a sheet of paper. Finishing the work week means finishing all the task lists for each day, whether I finish early or later. This helps me keep on track, while giving me full flexibility on when I want to work. I write the task lists at the beginning of each day or week, with the single rule that each sheet will have 8 tasks, one per hour. I decompose my work in less-than-a-hour-long tasks and write them down. Believe it or not, this takes a lot of stress out of my back, as the work feels lighter and more flexible, and I get a bigger sense of reward at the end of the day, when looking at the significant progress. As long as in the end of each day/week all tasks are crossed, I know it’s time to be a little proud of myself. In your case, follow this or any other method, as long as you stay sane and on the line. The more chaos you bring into your life, the more you sink in your work affairs.
To finalize this set of tips, I would like to give my personal insight on polishing games. When I first started, I believed one should write the entire game very rough and iterate on that roughness until it becomes something great. Now, I fully disagree with my older self. Ever heard about the saying which claims that painting the lips of a pig makes no difference as it is still a pig? Yeah, that is what I think about my older method. Roughness will lead to bad technical design, to refactoring and rewriting of code and other problems. That is why I decided to focus all attention on pre-production. Having a clear idea of what the game is and looks like from the start, will mean you make better systems, correctly designed from the start. Not only you will be making better stuff at the first attempt, it will be more flexible if you want to change something later. So, lots of pre-production will assist you in creating polish in your systems from early development stages. This is a win-win situation. Your game will look better making you feel good about yourself. When you share promotional material about your game, people will be more impressed, give you better feedback engaging you in a vicious cycle of increased productivity and feedback with the users. This is a unique catalyst that makes humans transcend themselves and create incredible productions (sometimes even alone).
To be even more aggressive towards polish, I went a bit further. I used to like making all systems of a game in their most elemental, unoptimized and undeveloped form, and then build upon that. This only led me to frustration. I was at late development stages, with a fully playable game which still looked awful and played awful. That early feedback would really help me feel better through the process if only I had decided to approach things differently.
So, my conclusion was to polish from the start. Adding a new jump system? Make it feel perfect as in your imagination now. Not later, now. Don’t procrastinate a little polish in the jumping, then in the fighting, then in the networking, then in anything else, until you have a mess. Once you take a task within your game, do it properly and chances are you don’t need to think about it again.
For now, this is it. I am sure that in another year I will have probably shifted my philosophy towards game design and development a bit more, but that’s the point. Design, create, improve, repeat! This was my personal conclusions on optimizing the process of making games. My goal is to row towards as much swiftness as possible in making good games, while making them as awesome as possible. To finish of this post, here’s a little peak on a level design concept for the upcoming game, that is currently in development: