Mittwoch, 26. November 2014

What tools are needed for game development

Ok, so the logo for this blog is designed and the first configurations are done. It has to be enough for the time being and I can go to the first game development related post.

Game Engine


What tools do you need to start developing games - or in our case, android games. Many people go on and try to start from scratch, simply choosing a programming language and trying to program a game engine on their own. When you google and read some indie blogs you find that almost everyone agrees to the fact that this is not the best thing to do for an indie developer or even a small team - the time you will spend basically reinventing the wheel and having something that is probably much more limited than any available solution out there can be much better spend in actually shaping and developing the game itself. There are many engines that are more than good enough for a beginner, like AndEngine or even Unity - which is free under certain conditions and used by many professional developers. Even libgdx, which is a little bit harder to learn and use than AndEngine, would still be a much better start and is free as well.

We chose AndEngine for our projects so far, simply because we played around with it for some time and think that it is really quite easy to get into it and do something productive real quick. Of course there are also some down sides with this choice. The first thing to notice is that engines like Unity or libgdx offer deployment to not just android, but also to iOS or even PCs - which is probably a must in the long run. But targeting the mobile market and not having any iOS device to test and develop on, this was not a real matter for us. At least for now. And being able to use all the stuff we produced while playing with the engine enabled us to get a really quick start with the project we plan to release in the near future. There are other drawbacks like performance issues e.g. when having "too many sprites at once" on the screen, we had this problem in our project and had to change some game mechanics to work around it. But the time we were able to save using AE was enough reason for us to stick with it for now.

So the first thing you need to choose is a game engine. Don't try to reinvent the wheel, there will hardly be any benefit from that. There really is enough work to do with the game logic, graphics, sound effects and music you need.

If you are interested in AndEngine you could start looking here:
http://www.andengine.org/

The other mentioned engines can be found here:
http://libgdx.badlogicgames.com/
http://unity3d.com/unity/multiplatform/mobile

Graphics


The second important thing you need is of course the visual part, you need graphics. If you have something to spare there are some sources where you can hire freelance artists, one example would be here: http://forums.indiegamer.com/forumdisplay.php?20-Art-Portfolios

Not having any real budget - like in our case- means that you need to produce this graphics yourself. Assuming most of us are not skilled artists this part of game development can be really tough, you need to find ways to produce something that is acceptable and you need to do it in a reasonable amount of time. We all know the approaches of some developers, opening up paint and producing some crap. We know the games and we know that they are hardly ever being downloaded, if we are honest to ourselves than we would also have to admit that we would not want to play something like that as well. Do not get this wrong - graphics are not the most important thing - but only IF they are not complete rubbish. You have to take some time, choose the right tool and learn some basic stuff. You need to produce something that the end user is not instantly repelled by, giving your game a chance being played at all.

I for myself found that Inkscape is a really great tool to accomplish this. It has many advantages:
  • The first, obvious one is that it produces SVGs, scalable vector graphics. This is really great especially for the mobile market, where you have lots of different resolutions out there. With SVGs as your raw format, you can generate your sprites in any resolution you want without (or almost without) any extra effort and get neat graphics.
  • The second advantage is that there are really awesome tutorials out there that teach you to generate pretty decent graphics without requiring too much talent, basically by adopting basic geometrical shapes to your needs. One tutorial (or collection of tutorials) that you probably already know - otherwise every indie developer should really know - is this one: http://2dgameartforprogrammers.blogspot.de/
  • Another obvious reason is - it is completly free! Something I really appreciate as a poor indie developer :).
Something like Gimp might also be the right choice for you, I guess it really depends on the skills one already has and on the style that you want to produce.

Inkscape can be found here: https://inkscape.org

Music and Sound Effects

And of course your game will need some background music and sound effects. I heard people using tools like Fruity Loops and similar stuff and are doing pretty well. I used it for some basic sound effects and still trying to learn the basics of this. But if you are - like us - in no way blessed with talents in this field, it will probably not be enough for some decent background music. There are also many sound effects that can not be produced this way.

In this case a really nice source out there are all this sites that offer royalty free music and sound effects. The first thing to do here is to create yourself some knowledge about the license types out there. The best thing you can find is something that is licensed under "public domain" - this stuff is completly free and you can use it however you like, wihtout having to do anything.

For sound effects that I can not produce myself with a microphone most of the time http://soundbible.com/ was a really good source for me. One should also know KevinMacLeod, in my eyes a very talented artist who is offering his work under the CC Attribution 3.0 license, which basically means that all you have to do is putting his name into the credits of your game. https://www.freesound.org/ proved to be a very good source for me as well. I am always looking for other sources, feel free to leave a comment if you know more :).

This should be enough for the first post.I hope some of you found at least pieces of information useful for you. Thank you for reading :).

Opening up a blog.

Hi.
After months of game development and seeing that the first game is ready for a release in the near future (or at least it is that far that I believe it could be :) ) we started to feel like it is time to open up a blog and share our experiences with anyone who would care to listen.

We - that is my wife and me. Being fresh university absolvents (or soon to be in my case), not desiring "life sucking jobs" too much and having the luck to have a little bit of something we can live off for a year or so- we felt like we could dare to try and dive into indie game development for a while, which we expect to be at least a great learning experience. We both have a background in computer science, so the programming part is well covered. Plus I am somewhat into art, I was dreaming about becoming an artist when I was a kid, which was of course not really an option when I entered the age where I had to choose what to do with my education/life. I am nothing compared to a real artist, but it may be just enough to start something like this.

For our first game (or the first to be ready), we chose AndEngine GLES 2 as our game engine. Of course there may be better engines out there and I am well aware that there are many limitations to AE, one of the main things would be performance issues in some situations - but it is also a very easy start for a beginner, something that will let you accomplish just "something" without spending months on basic things like displaying and moving a sprite. Just enough to show you that your idea is doable in a reasonable amount of time and so hopefully enough to simply get you started.

We chose GLES 2 and not GLES 2 AC simply because we already played around with this version for quite some time and have many code snippets that we wanted to reuse that just would not run on the newest version without lots of modifications.

So the first thing that we want to happen here is to shape this blog into something that is acceptable. We chose a ready made blog solution because we do not want too much extra stuff on our minds - so our options here are rather limited. But - just like with AE - it might just be enough to get us started.

After that we plan to blog about the stuff we learned (and still are learning) during our experiment, share some knowledge, make some tutorials. Maybe receive some comments.