Description
The purpose of the project was to learn both C++ and the basic of games engines. And, by the way, if the time allowed it, a game using the game engine. Actually, the game engine is more or less finished and I have the intent to completely finish it and make a game.
The game engine uses SFML and rely on xml, with TinyXML 2, for the definition of maps, characters, quest, behaviours and conversations, so the entire game can be made without changing and recompiling the code, altought some details are on the code. Also, I used Tiled Map Editor for the maps and its generated xml with some modifications.
If you feel confident with spanish, a lot of details about code are available in this pdf. The interesting part start on chapter 4.
Demo
Again, the video demo is not a good example of the quality, as you can see in screenshots. Also with the bad camera effect when you move around. Does not exist on the game, it's just the bad software I used to record. Also, the music doesn't play, but not a big lost.
Screenshots
Experience
This was my real first project with C++. I had two or three projects before this, but no so far in time and much tinier, much like toy projects to learn the basic of C++. However, with the project I had to learn a lot about the language and some of its advanced features.
I used basicaly one book to learn about game engines, Game Engine Architecture, and I only have good words about it. A big part of the code was a light implementation of the theory and basic ideas presented on the book.
I said it once, I said it twice and I will say it a thousand of times: the horrible part of the project were the collisions, to the point of taking me at least a quarter of the total time in this project, and making assumptions about the colliders defined on xml. On the other hand, I remember animations as the other part that take a lot of work and time, in the opinion of the book, but in my case, I made it as simple as posible, so was not a big deal.
Also, sometimes you can feel the game is a bit primitive, but still has a good punch