jueves, 9 de mayo de 2013

AI with Neural Networks

Hi all!

Searching information about artificial intelligence for the game I'm working on, I came across this interview to Jeff Hannan, who used neural networks to implement the artificial intelligence in Colin McRae Rally 2.0. Hope that you enjoy and learn something new.

In posts-to-come, I'll further discuss different techniques to implement artificial intelligence, which is a fundamental component of any enjoyable game. But something that it's worth pointing out now is that we tend to think that the best AI is the one that makes it harder for the player. However, I personally believe that the best AI is the one that, as Hannan states, performs realistically. This a subtle but important difference to consider.

See you!

martes, 7 de mayo de 2013

Starting off!

So at last the moment has arrived when I'll tell something about the project I'm working on. The keyword here is 'simplicity'. I won't aspire to make a God-of-War-like 3D adventure game (in spite of how much I love this game). I have to be realistic. I'm just one person and I lack the necessary technical knowledge to program staggering 3D effects. Therefore the game must be simple, something I can be sure I'll be able to finish. Once I've done the first one, I'll probably feel like doing something more elaborated.

The game will be a classical 2D side-scrolling platform game. I think that this kind of games can be very fun, and they can be very profound too. If you don't believe me, just take a look at Blow's Braid. Also, you can ignore some intrinsic difficulties to 3D games, such as culling algorithms.

I'm currently in the process of making a small engine to support several features. In the following posts, I will be explaining these features in detail, as well as the difficulties I came across along the way. My idea is to cover each aspect of a typical game, from basic physics to artificial intelligence and graphics programming.

Regarding the technology, I'm using C++ as programming language and SFML in order to retrieve keyboard inputs and as render library. The choice is simple. I love C (as I read in one programming book lots of years ago, C is the language that God used to create the world; mmm... maybe this is the reason why there are so many buffer overflows...), and as far as I know, many current game engines use the Object-Oriented version of C, that is, C++. However, I must admit that it is not the easiest language if you've never faced a programming language before. I'd never recommend any aspiring game developer to begin with this language. I chose C++ because I already know enough C and Object-Oriented principles and patterns as a result of studying computer science. If you're new to programming though, I'd advice you to go for a more accessible language or game-making solution such as GameMaker.

As for the graphics library, you may find many out there. However, SFML seems to have an easy learning curve and builds upon OpenGL. For now, I'll use the abstraction with which SFML provides me (remember, abstraction is our friend), but in the future, I'd like to add some graphics programming by using vertex and pixel shaders, something that the library easily allows.

As a final comment, I'd like to add that the first game (my game in particular) might be a 'shitty game', but at last it'll be a game, 'my game', and you need to start off at some point anywhere. The following video shows advices for people wanting to become game developers. I found some comments challenging and inspiring. Remember, don't be afraid of simplicity. It's the natural path. Actually, I'd say it's the only possible path. 


viernes, 3 de mayo de 2013

How to make a game in 48 hours

I came across a time lapse video of a game making process for Ludum Dare, the name of which is Dream Fishing. For those who don't know it, Ludum Dare is a game making competition where developers must create a game in 48 hours. As you can see, the game author, Sophie Houlden, only took breaks to eat, have some short naps and watch some Anime.