When you want to become a developer, the best way to progress is to program known games, such as Tic-Tac-Toe, Connect 4, or Chess. But there comes a time when we have gone through the main games, and we would like to go beyond the classics. For me, BomberMario was the opportunity to create my first real video game entirely made by myself, and which would be above all unique in the world. Unlike a project that already existed, everything was to be imagined for this future masterpiece, from the number of levels to the color of the menus.
Except that this was the main difficulty of such a project : I didn't know where to start or where to go…
When I started my previous projects, I knew about what I had to do : Start with a moving character, add enemies, include a menu, and finally design the levels. But here, even the development plan was not defined… So I started by programming the most important : A character who moves and can set bombs. And I was stopped by my first problem : How to program the bombs and their interactions with the set ?
In the world of 2D video games, there is a technique to simplify the development of levels : Tile-Mapping. The principle is simple : In a level, or on a map, most elements are identical and repeat themselves. All you have to do is create a texture containing each of these elements (Called "tiles") and display them one by one on the screen. This process has two advantages : First, it is enough to draw the different tiles once on a single texture, which is much more practical than manually drawing each level of the game. Then, you must assign, or not, properties to each tile, such as whether the player can walk on it, (Wall) or whether a tile can be destroyed by a bomb. (Brick) Once I understood this principle, I had to define my tiles and resume development.
The tiles system being particularly powerful for such a video game, the rest of the gameplay could be programmed quite easily.
Finally, another problem that particularly disturbed me was the connection between BomberMario and its server for multiplayer mode. To synchronize a game between several players over the Internet, it is necessary to have the information transmitted through a server. Each time a player moves, he will inform the server, which will in turn notify each of the other players. This is called a "Client-Server" architecture.
Except that such an architecture has many technical constraints that must be balanced. For example, you must define a frequency at which the data will be saved. If this frequency is too low, the movements will be jerky, and synchronization will not seem natural. But if it is too high, the server may overload and cut off any connection, if too many players are connected to it at the same time. Not to mention that there is a lot of data to synchronize, and not all of it needs to be updated at the same speed… So I had to find the right balance between each request, and this was done at the cost of many hours of testing.
Fortunately, the development was able to continue and come to an end. The result is a video game in my image, which no other developer had done before me !
Certainly, the work I finally had to do was much more important than what I had in mind when I started this project… But it still brought me two things : First, I gained a solid line on my CV, that of a project that I developed and managed entirely by myself. And then it allowed me to understand why the preparation of a project is important, and even vital, to its completion.
If you want to know more, I invite you to download BomberMario and discover it for yourself !Download BomberMario