The tools of the trade

Welcome back. Today I want to talk about the tools I use while developing games (well I talk about the development tools for GalaxiTaxi).

The choice of the right tools and development environments is an important task. After I know on which platform I want to develop I have to adjust and learn new tools almost every time. But fortunately some tools stay the same. The first tool I use most often is a pencil and some paper – believe it or not. I use it to get my brain sorted and quickly scribble some ideas or solve math or logic problems. I always carry a pen and paper with me – even on holidays as I never know when inspiration hits me.
My second most used tool is Omnigraffle Professional for the Mac. Since I develop most of my games on a Mac (but not necessarily for the Mac) it is the best choice in mind mapping software combined with an incredibly easy to use vector drawing tool that I know of. It is close to perfect for working on my ideas and interface layouts since it does not hinder me while thinking and creating. That said it is only good enough for scribbling vector art or interfaces.
The main graphical tools I use are  of course Adobe Photoshop and Illustrator. Both programs are relatively hard to master, but if I want to compete on a professional level, that is the way to go. A rather excellent addition to Photoshop is FilterForge. I use it alot when creating e.g. starmaps or textures from scratch. It combines Photoshop filters and macros to do some of the more tedious tasks more efficiently. Without such great tools, that make my life easier, I would have to spend much time working around the game than actually for the game. I hear a lot of small developers complaining about the high costs of professional tools like Photoshop. While it is true that there are many cheap alternatives to professional tools like the aforementioned (like gimp) they do not have that army of professional users in most cases or the expandability. The community are the people that make a good tool great and feed me with information on how to get most out of these tools. This is a very important truth that I learned over a long period of time: Without a dedicated community a tool is only half as good. I still need to learn Flash for animations. I think it would make my life easier, but until now I really didn’t have the time and I animate mainly using Photoshop.
For GalaxiTaxi I started programming again. I learned programming a long while ago in my life and I was not to keen to get into it again, because I designed and wrote documents or lead teams most of the time. But since the beginning of this year, I am a real lone wolf and want to do everything on my own. A task that is both interesting and challenging. To succeed I need a programming language that is easy to get into and that will bring back the fun of coding to me. I tried to get into Unity, C#, Objective C and never felt right at home. But then I discovered the Corona SDK, which really brought back the fun and was so easy to understand, that I set out to do the whole project on my own. The scripting language is LUA and I am still amazed how fast the whole process went. I started about Christmas and I have now a game with physics, cute little aliens, multipliers, stars, level unlocks, savegames, highscores, a dozent levels, tilesets, transitions and even music and sound. I am really impressed about the progress.
Speaking of music and sound. I mainly use Garageband on the Mac – another incredible tool to do both my own music and sound. For cutting and converting music and sounds I use Audacity (which is available for free on different platforms). You can listen to a small ingame track here:
For the level design of my small game I use tilEd, a not yet finished but relatively stable 2D tile editor. It still has some issues, but beats working with raw XML datasheets by great lengths.
So I have to learn a lot for my dream job, but every second I spend is just pure fun as I am doing what I really want to do for a living. Thanks for reading!

Tomorrow it is time for some infos to the Corona SDK and some third party tools I use. So, see you tomorrow!


Platform specific development

Whenever I develop for a new platform I try to see its weaknesses and strengths. Be it a gameboy, the Xbox, the iPhone or a PC or (insert your device here). The Xbox for example has a really good controller which is both precise and can be used from the couch. But since most xboxes are connected to all kinds of TVs I have to think about safety zones, PAL, non PAL, TV-resolution and so on, just to name a few problems. It is really important for me to “feel” and understand the device. Without that knowledge, I cannot develop successful games for that platform.

Every platform just does some things slightly different. This keeps it entertaining for both the developer and the player. As promised I will show a first picture of my current project GalaxiTaxi and describe the thoughts that came up with  the development on its specific platform . My idea is to release GalaxiTaxi for the iOS. This means I have to look into the iOS platform. There are currently some devices that fall under this platform. The best known is probably the iPhone4, but also iPhone3, iPhone3GS, iPhone4S, iPod4, iPad and iPad2 have to be considered. Each of these devices has slightly different screen resolutions, size, points per inch (ppi), processor power and some are even phones! Some of theses devices get carried around a lot and have players that have just a few minutes while waiting at the bus station and others are used by people lying down hours on a couch at home. But they all have a touch screen in common and the same market place (the “App Store”). From this point of view some decisions can be done:

  • The game should be easy to handle
    If the player is on a bus and the controls are getting unprecise because the bus shakes the player might blame it on the games controls.
  • The game should be understood in a very short amount of time
    If the player has only a few minutes he may not be interested in a complex learning curve
  • The game can get more complex over time
    If players are playing it at home they might not want to do the same things over and over
  • The game has to work on any resolution
    The “old” iPhone only has 320 x 480 at 163 ppi display size, while an iPad has 1024 x 768 at 132 ppi, and a iPhone4 960 × 640 at 326 ppi. This may greatly change the way the game looks on all devices. Either the game graphics are to be scaled or they have to be big enought to be clearly seen on a small device.
  • The game should be universally built
    This means a player who bought it for his phone and has a pad does probably not want to spend money again for each of his devices.
  • The save games/scores have to be accessible over all platforms
    The player might play the game on his phone on the way to work and later at home switch to another device for better visual quality.

For GalaxiTaxi I started developing mainly for the iPad. It has a reasonable resolution and from there I will scale everything as needed.

GalaxiTaxi on the iPad

Tomorrow I will talk about some of the development tools I use.


The two methods of game development

Welcome back. Today I promised to talk about the methods of game development. For me there are basically two main ways to develop a game. One is called top down and the other bottom up. Top down development resembles the grand scheme. I do not worry about details (yet) and just let my mind wander, structure it and write it down. I use this technique mainly when I do contract work for the mainstream game industry as I can make a whole team understand the idea the company wants to create and delegate smaller tasks or whole branches of the idea-tree to my fellow developers. A good readable and structured design document is a must for this approach. It is time consuming and sometimes very hierarchic. In big projects this is also the normal approach as everything a team develops has to work together. You normally have to deal with some strict timelines and project plans, milestones and whatnot. The worst about this approach is that it is hard to change direction once the project has been started. Since game development sometimes is a bit like rocket science (one develops stuff that nobody might have done before) I still find it hard to put an excact date on every item that needs to be developed.

As an Indie developer I mostly prefer the second method: bottom up.
Bottom up lets me invent a game mechanic and built a game around it. I use it in my current project GalaxiTaxi which is a space taxi like game for iOS with some nice twists in it. In GalaxiTaxi everything evolves around the idea of the player beeing pulled down by gravity while transporting small aliens from one platform to the other. This is the basic gameplay mechanic. As soon as I think a bit over this basic idea I immidiately start to program that basic concept and draw some first graphics. I then play around with this basic mechanic until I find it to be satisfactory or I drop the idea completely. If the idea is fun enough, the next step is to try more and more small ideas (like adding wind or water physics) and tweaking here and there. Whenever something is not fun it gets dropped and if it is fun it may get enhanced. This does work very well in a small team or as a solo developer as long as one gets not carried away. I always try to keep my focus on completing a game in the time span I set for myself. Luckily today I can create one part of the game and release pieces and addons without much hassle whenever I have the ressources. But that will be covered on a different day. 🙂

So thanks for dropping by and reading until here. Tomorrow I will post some first pictures of GalaxiTaxi and let you in on the development process a bit more with: Developing for a specific platform.

Tagged , , , ,

From idea to game: the idea

On fairs and conventions I get asked quite often: “How do you come up with your ideas?”. Well, to be honest, they just pop up. The good thing is – it requires some training, but I think it can be learned by anybody. First thing: I open up! Ideas float around me and if I start to listen it is hard not to see them everywhere. I see ideas in movies, other games (obviously, isn’t it?), nature, people, hobbies, dreams, books, paintings, daily situations, the list goes on. I get inspired everyday – mostly because I love to see creativity everywhere. Inspiration comes to me at every corner and more often than I like at everyday places – like the shower, in the bed or on a walk. Why I don’t like this? Because sometimes I cannot shower, sleep or walk in calm, always ideas pop up and want to be written down.

Many game developers are very secretive about their ideas. But ideas are cheap – sorry to say that. Good ideas are what counts and ideas that are good and can be done are the only ones worth following. (That should not keep you from dreaming up your evil masterplan, though!) Whenever I have an idea, I sit back and think a minute or two about it. I chew it and spit it out on some piece of paper. I do not overdo it – I try to keep my idea tight. 1-3 lines should do the trick. A good idea takes time to grow. I never give in to its calling until I thought it thru. Meaning, I will think further about my idea, talking about it to my friends (sorry for that!) and making it more solid, before writing anything further down. This idea may stay with me (and anyone connected to me) for months and years to come so it better be something at least I am interested in seeing everyday.
Tomorrow I will continue about the two main methods of game developing.

Tagged , , ,

First Entry…

Since so many people seem to be interested in the process of developing games, I thought it might me a good idea to add some personal insights to this. I will try, and I can not stress this enough, try to keep this blog up to date. Since my developer day normally consists of 12 hour shifts I am not too confident, that I will always find the time to post. But let’s give it a try. Sincerly, Barghest.

Small Avatar

A small avatar picture of myself.

Tagged , ,