Pages

Wednesday, March 27, 2013

6 Years Old Boss

One of my biggest fan is my older daughter, who is 6 1/2 years old. She is probably not really objective, but she is always asking to test the game and new features.

So a few weeks ago I wanted to make something special for her: Even if I recently killed boss fights from my design (for consistency reasons), I've asked her to draw me one, plus a missile. Then I've quickly created a new level and well, here is the result :-)


The original piece of art : Boss and missile


Boss moving around. Just added a shadow on the road and smoke on top


Boss firing missiles (added missile trails)






Getting Started : What do I Need to Start Making a Game?

Note : This post, a bit long, is mainly intended for people who want to develop a game and don't really know where to start from. (as asked by some friends of mine)
For experienced devs, it will probably feel boring :-)

So after deciding that you wanted to make a game, you have to figure out how to do that.
In my case, I was looking for a framework that save me some low level tasks (Display, sounds etc...) Indeed I'm ok writing script but not skilled enough to create an Engine from scratch.
A few years ago, I gave a try to the XNA "platform". Maybe I was not in the right mood at that time, but after making a basic scrolling system and a simple player sprite controller, I felt that it was lots of efforts for a small result. So this time I wanted something more straight forward.


Unity3D

So I decided to try Untity 3D. And that's an amazing piece of technology.
Of course this is not the best tech in term of performance or so, but that's powerful enough to make a very decent professional looking game. But why exactly is it a really good pick? Here are some reasons:

Multiplatform
The first one is that it is multiplatforms. As I was intending to make a mobile game, knowing that I can have my game running on both Androïd and iOS with (almost) just one click was awesome. If in the future I want to go for a PC game, I'll be able to re-use  part of my code.

User Friendly
Then this is a real "Visual" interface, kind of What You See is What you Get (WISIWYG for acronym enthusiasts) . You put stuffs in you scene, and you see them in the editor the same way (with a few exceptions) you will see them in your app once built and executed. You can also drag and drop components and assets directly on objects. Really after that, all you need is scripting.




Easy Script
And scripting is made easy in Unity, as it allows you to use any script language among javascript, C# and Boo. You can even have different script languages coexisting within your project. That's pretty useful, especially if you grab some code among guys from the community.

Amazing Community
Indeed, one of the huge advantage of Unity3D is the huge community of developers around the Internet. There are specialized forums where devs help each other. It is so huge actually that each time I face a problem, I can find someone who already encountered the exact same issue, or at least a similar one, so that I've never been stuck for too long.
Sometimes I even found information about Unity functions faster on these forum than in Unity sripting references :-)
Thanks to that community, I've found outstanding video tutorials on the Walker Boys Studio website : you can learn there Unity basics, including scripting and make some simple games from scratch. Just perfect.

Asset Store & Sharing
The Unity asset store is a place where devs can sell their modules to other Unity enthusiasts  It can be useful of you need to make something complex in your game which would require lot's of time to do or issue too complex for you . Just buy it on the store if you can afford it. Other independent stores exist around the web, and some nice devs are sharing their work even for free. So really, if there is something you can't do yourself, you are likely to find it somewhere.


ex2D

But still Unity was not perfect. I am using version 3.5 which missed an important feature for my point of view : 2D sprites management. Fortunately, that was fixed thanks to exDev and its ex2D.
Ex2D is a kind of "mod" of Unity, an extension, which helps you managing sprites, sprites animation and font very easily and efficiently: Really cool.
I have bought that tool on exDev website for around 25$, as it was a key element I needed and had no idea how to do it myself. It is also available on the Unity Assets Store.

ex2D animation editor


Source Control

One thing I've learned while developing games (I mean for real, during my day life) is that the most important thing in your game are your files (scripts, sounds, graphical assets etc... And computers being what they are, you can't really rely on them and just keep your data on a hard drive : if your drive crash, your game is dead.
So you need backup. Preferably somewhere online where your work won't be destroyed if your neighbor initiates a fire that turns your own place into ashes, along with your data.
So I've searched free source control solutions (I have no money to spend there) that was simple to use. It was not so easy as most source platforms on the web are to be operated via command lines. So I also needed a visual interface software replacing command lines by buttons etc.
So after several tests I ended with a Git deposit on BitBucket (the place where my assets are stored) and sourceTree application, available for both MacOS and Windows. This offers the user many functionalities,  but the main ones for beginners are :
  Commit : Validate the files you've modified and want to backup
  Push :   Send your committed files online into your deposit
  Pull  : Get the latest files from your deposit online to your local folder

The other key feature of any source control solution is that it keeps an history of all your files, so that you can get an old version of a given file if you need it.



So basically this is it. If you have read the post down to this point, you are really brave. But most important,  you should now be able to go and make a game on your own. So good luck, and happy developing :-)


Related links


Unity3D : http://unity3d.com/
Community :
     - Unity Forums : http://forum.unity3d.com/forum.php
     - Unity Answers : http://answers.unity3d.com/index.html
Unity Assets Storehttp://unity3d.com/asset-store/
Walker Boys Studio Tutorialshttp://walkerboystudio.com/html/unity_training___free__.html
exDev ex2Dhttp://www.ex-dev.com/ex2d/
BitBucket https://bitbucket.org/
SourceTreehttp://www.sourcetreeapp.com/




Saturday, March 23, 2013

Once upon a time...



Alright. For the first post of this blog, I quickly agreed with myself that the best topic would be to explain why I decided to make a game on my own. So is my analysis on what may have happened in my head to trigger this strange idea.


I Love Video Games



I guess the main reason is that I love games. Not only as a player, even if I'm playing video games since elementary school (yeah, that's a long time ago...). But also as a developer. I've discovered that pleasure as I got lucky enough to jump into a dev team 13 years ago, and even if the magic I felt playing games as a student mostly disappeared, one other smashed me in the face : the creative process.





Creating Stuffs is Good For Your Brain

Making a game is basically creating something with your brain and a couple of computer based tools. And that's it. Imagination is your limit (well, ok, skills may also be an interesting factor) and taking your ideas from your head and making something real with that is a fascinating process. Most important, when you accomplish such things, you feel happy, proud of yourself. there is some chemical reaction somewhere between your ears that is triggered to notify you that you have just done something pretty cool, just like an achievement popup.

If you are a bit creative, and as your creativity is not always challenged during depending of your job, you may feel that something is missing somewhere in you life. A small thing, but you know it may grow with time. If that's your case, don't think, just create something : a painting, an application, a crazy invention, a card game, a book, anything, and you will immediately feel good.



Don't Regret Anything When you Get Old

The clock is running. Fast. When you are a student, you have so many projects for the rest of your life! Then you get your first job and enter a new life : you are asked to do your best to progress and get reward (bonus, promotion etc...). Then you may get married, and a brand new set of joys appears in front of you, and so many new projects rise in your mind.
But one day you realize that your initial projects, you initial objectives are not there. You may have an incredibly happy life, wonderful wife and children, something is missing. And you know that if you wait more,  you may be unable to accomplish it. You may not be able to do them all, of course, so chose one, and go for it.


So I think that the combination of the elements above (among many smaller others) made me take the plunge  almost one year ago, as probably many other guys around the world. And right now, even if it is not easy everyday, I'm quite happy about that decision.


(note : more posts to come, like explaining why, after 1 year the game is still far for being completed :)