Creating a video game software project is a daunting challenge, even with the existing tools we find today.
Depending on the complexity of the game, a team of about 10 professionals, could take about 3 years to make a video game.
Video games are made with two different approaches:
- Indie Developers.
These are self-managed computer programmers, 3D artists, Sound Engineers, Level Designers, usually small teams that don’t have the financial support to develop such projects.
Once the game is developed, they need a video game publisher and distributor.
Things are becoming easier for Indie developers to create and distribute their games with the current industry, they can use existing tools to develop, such as advanced 3D and 2D game engines such as Unity, and distribution channels such as Microsoft Xbox Network, Sony PlayStation Network, Steam, Google play store, Apple App Store, and more…
- Video Game Companies, usually they do their own publishing and distribution.
These have the labor power for massive size projects, (massive as in thousands of lines of code, and very complex custom made 3d models from scratch that takes weeks to make).
For a computer programmer, there is an elementary discipline that makes video game programming different than developing software for regular programs.
Usually a regular program “waits for some kind of input, command, or response” so it can execute and process data, either local or across a network.
With a video game, everything is executed inside the famous “game loop”, this game loop is where directives are preset statically, or dynamically changed in real-time.
The game loop is responsible for physics calculations, most of the time loaded into memory before other functions can take place, for example: if you are going to animate and program a person running in a open free world, you have to first setup the rules of this world, like gravity, wind, and very important “ the collision detection”.
Collision detection is so important as well because most inputs, or commands to execute functions, will happen during a detection of collision, for example: the foot, and the body of the 3d runner must collide and stop as it touches the ground, or mathematically saying… as the values and position of a polygon, becomes the same value of the position of another polygon.
Video game development is a complex and vast subject, enough to write a book, and it would be impossible to describe everything in just a blog post, but we are going to give you a glimpse, by showing a real example of a game here.
This game is called “Bruce the super Ninja, the kidnapping of Jade”.
The game is a simple side scrolling arcade genre, but make no mistake, simple is an understatement, This game has physics, artificial intelligence (The red ninja, throwing fire balls) will detect your proximity, and decide on its own what to do, most of the time he will attack you!
The flying jetpack ninjas will use a famous algorithm called “The travelling salesman problem”
“The Travelling Salesman Problem (often called TSP) is a classic algorithmic problem in the field of computer science. It is focused on optimization. In this context better solution often means a solution that is cheaper. TSP is a mathematical problem.”
Also, many more advanced features such as slippery terrains, drag stopping when Bruce runs too fast and tries to stop, he will not stop suddenly, and
lots of shuriken.
The game was a project I created, and developed the code for about 14 months on my spare time.
The level design, and character’s design was a close friend of mine; Rodrigo Araujo, a cartoonist, and history professor in Sao Paulo Brazil, and winner of the Microsoft Gamification Award, he and others went to Europe (Prague) to compete in the Gamification contest.
Rodrigo Araujo will be interviewed on Artificial Routine.
The game was developed in HTML5, so it can play in any web browser.
To play the game, please click the buttom below and have fun.
4,170 total views, 2 views today