So, how can we actually build a video game? We meet two subjects at this point. The first one concerns mechanisms, meaning, the technologies available for game development. The second one is more about business, or how to make a game appealing for the player.
Today we’ll learn about the former.
Due to technological advances, there are several ways to create a video game. As we’ll see, there’s no imperative need for programming skills, even not drawing skills. The only vital element at this moment is game design. But we will leave that for the next post.
Today we will focus on the most popular tools, which are mods, game engines, and game frameworks.
A mod is the alteration of the original content from a video game. The alteration may consist in small modifications, or may result in an aside new game.
The main advantage of mods is that no programming skills are required, so they’re quite accessible to everyone. Another good point is that you are allowed to use the original game’s assets, like graphics, music, maps, skills…
In the example above, user can select a hero from the toolbox on the right and drop him into the map, and just start using it, because he borns fully operative.
Altogether, your work will look professional immediately, releasing you from technical issues and allowing you to focus on the particularity you prefer. For instance, a novelist may concentrate on the lore, while a designer may choose map modeling or gameplay.
People usually start modding a game when there’s something they dislike or they want to improve. The most elemental case is physical modification, like creating custom hair styles for the characters.
Familiarized players tend to recognize poor or faulty statistics balance, which leads to point management and skills modifiers.
The most complex grade of game modification is the creation of a fully new game. It’s funny to imagine that these new games born as small modifications that grew exponentially and went out of control.
Some companies provide mods to customize their own games, namely:
- Construction Set – Elder Scrolls see
- World Editor – Warcraft see
- Obsidian and Aurora toolset – Neverwinter see
- Valve Hammer Editor (Source) – Half Live see
Game engines are tools that allow an easy but extensible game development. They provide game’s core functionalities, like rendering, physics engine and AI, all enclosed inside a GUI assistant.
So the best of them is that you can manipulate complex game utilities with drag and drop. Most engines supply code editors as well, but they are often hidden in some degree, depending on the user’s expected programming capability.
They grant a high customization level because the user can combine features in any way, without the game-gender bounds a mod establishes. Also by their accessible GUI but powerful tools, they are useful for both profane and versed programmers.
The later, GameMaker, is also the one that we use at CoderDojos, because it is handy enough for 12-years-old children to build a game in 2 hours. Here’s a picture of our proud game dev team ^^:
So we’ve discovered wonderful tools that were created to ease our job. But if you like coding and you are not afraid of getting your hands dirty, then this chapter is for you.
Video games can also be created from scratch, using a programming language. You may rely on third-part libraries for game features like physics and rendering, but not imperatively.
Basically, you are unbounded. Your game will be customized as far as you want. There are no limits nor rules except for the ones you establish. This means that you could concentrate on low level components (like performance), or set up your own code style, but also you can make characters use rude language.
And of course, you are the owner of your creation and hold the intellectual property.
For game coding you may use an existing game framework, some of the trendiest are LibGDX, XNA, DirectX, cocos2D, Godot, Phaser… there’s a list somewhere. You are free to develop your own framework as well…
But first, think about what language you are going to use, and select the one that suits you more depending on how comfortable you find it, its performance, its license, its portability…
I personally like using Java with LibGDX.(actually, this blog is an external LibGDX tutorial) The main reason is that I really enjoy working with Java for learning because it is a very restrictive language that prevents newbies like me from using bad practices. On the other hand, Java can be debugged and specially I find IntelliJ IDEA quite friendly.
Many notorious games have been developed from scratch. Minecraft was made in Java using LWJGL. Fez and Terraria used XNA (C#). And finally, the guys of Super Meat Boy built their own framework for C++ game development.
As you can see, there are many good options available for us. It’s important to know these tools in order to choose which one suits us better. But I don’t think the success of a game will depend on this. In the next post we’ll be learning about game design and business, which is far more relevant.