Hi, my name is Saifullah Usmani. I am a Passionate Game Developer. I have been programming since I was 13. My initial motivation to learn programming was to be able to make a game. So since then I learned a lot about programming and game development and I made a lot of personal games that my cousins love to play.
This is one of my game that my cousins loved the most:
NOTE: Don't assume that this article is only for unity or unreal engine developers, it is for anyone who wants to make personal or industry level games. This article is going to cover everything from "How game engines are created" to "What can you do as a game developer". I will teach you what you should learn to be able to create a game in any game engine so you can get a job at an AAA game development company(as they all have their own game engines). I will use the help of common open source free game engines like unity or unreal to guide you.
Roadmap is like a known road to your destination. And when you know the route to destination, reaching there gets so much easier.
There are multiple types of jobs/Roles in Game Development(AAA companies need game engines developers too, plus Producers, marketers etc are part of the team, So I will also include them here as a category):
There are sub categories within these fields as well so it is on you. Select a field and then choose a sub-field (niche).
Game Producers raise the capital(money) for the project. Before production starts, producers work with the designers, lead artists and lead programmers to work out on characters and scenarios in a game.
They hire the talented staff on board and make sure that the best possible game gets created, no matter what challenges comes in their way.
They might test the ideas on different players, to get the know which type of users are gonna play this game(the target audience) and they work on how their product(game) is gonna be different from the competing products.
Producers find Publishers for the game. Producers also control the capital(money) and negotiate the contracts with people coming on board.
In larger companies, they hand over the day-to-day management of the project(game) to a project manager. But in smaller companies, they do the project management themselves.
Producers work closely with the publisher and both of them are responsible for taking decisions on implementing changes in the game while development. Producers are often the people who speak out about the game to the media once it’s released.
The Game producers are the owner/main-part of the project and they play a very important role. They make sure that the project goes in the right direction.
It is my favorite part🥰.
There are two types of programmers in AAA Game Industries:
Game Engine Programmer
Game Programmer: Game programmer is responsible for creating logic of the game. Game programming is the process of bringing the video game to life. As you know that art, design and sound are separate and static so programmer uses programming languages to glue them together with logic and make the game feel real. For example to move a player we take the design of player and we apply gravity and movement logic (w, a, s, d to move) to the player, we take the animations created by animators and apply them to the player when w, a, s, d keys are pressed. Programmer dictate the speed at which your character runs and how high they jump, to how many enemies appear and when, and how they react when attacked etc. Also programmers add the sound of footsteps to the player when he walks, they add background music and change it depending on the situation of the level etc.
Programmers work closely with producers and other departments (e.g. game design, art and animation, Sound etc) to translate the project's vision into a fully functioning, playable game.
As they know the limit of the technology that is why they play an important role in decision making of game mechanism.
Game Engine Programmer: The programmer who develop the game engines are called "Game Engine Programmers". Some example of game engines are:
and many more other that are available to use and download.
To understand the work of Game Engine Developers/Programmers we need to understand what is a game engine.
What is a Game Engine?:
A Game Engine is a software that provides game architecture and game framework or game-frame to game creators(Game Logic Programmers) with the necessary set of features to build video games quickly and efficiently. Game engine handles all the necessary work like physics, lightening, audio, math etc so the game development process can be faster and more efficient. Game engine developers usually work in C++ programming language.
What does game engine developers create:
Game engine developers create everything needed for the game engine to be able to produce games. Game engine developers create rendering engine for 2D or 3D graphics, a physics engine or collision detection, lighting, audio, special effects, animations, networking, memory management, scene graph, AI, interactive gameplay logic** plus much much more.
There are different types of programmers depending on the size of the studio and the project's complexity. A programmer may be highly specialized in one area (e.g. an audio programmer who focuses on connecting certain sounds with actions or events, or an AI programmer who dictates how a non-player-character will respond to your next move).
In a smaller studio, the role may require the person to do a little bit of everything.
Math and Physics is a must for game engine developer.
Other niches of game engine developers include:
User Interface (UI) Programmer
Rest is on to you. Choose a niche and research on that.
I found this article helpful.
How to become a game engine developer.
Creation of all of the above functionality as a software is the process of creating game engine.
Sound gives life to the game. The game without sound is boring. That is why companies hire people who are talented and have control over creating sounds.
Sound designers collect, edit, and create sound effects, ambient effects for video games, applications, or any other form of interactive media.
It is a very interesting and creative field that I personally love.
Video Game Composer writes evocative musical scores for video games, including individual themes for each main character. To do this, the composer will watch the game to see what's happening in the game, the scenario, the story and then creates music that brings up the appropriate emotions to match what's happening in the game.
Sound Designers can also create music if they want.
Right music is very important for the game and that is why Video Game Composers and Sound Designers play an important role in the development of game.
A game designer is a person who designs gameplay, conceive and design the rules and structure of a game.
They bring the concept into reality. They are the creative force behind the game development process.
Development teams usually have a lead designer who coordinates the work of other designers. They are the main visionary of the game. One of the roles of a designer is being a writer, often employed part-time to conceive game's narrative, dialogue, commentary, cutscene narrative, journals, video game packaging content, hint system, etc. In larger projects, there are often separate designers for various parts of the game, such as, game mechanics, user interface, characters, dialogue, graphics, etc.
A game artist is a visual artist who creates video game art. The art production is usually overseen by an art director or art lead, making sure their vision is followed. The art director manages the art team, scheduling and coordinating within the development team.
The artist's job may be 2D oriented or 3D oriented. 2D artists may produce concept art, sprites, textures, environmental backdrops or terrain images, and user interface. 3D artists may produce models or meshes, animations, 3D environment, and cinematics. Artists sometimes occupy both roles.
I am also very found of 3D art and I am not good at it as much as I am with 2D, but I am still improving.
A level designer is a person who creates levels, challenges or missions for video games using a specific set of programs[level editors]. These programs may be commonly available or specially designed and tailored for a specific game. Most big companies prefer good control over the niche of game so they come up with custom software usually.
Level designers work with both incomplete and complete versions of the game. Designers design assets for the level editor to use in the level design process. This eliminates the need for level editor to access or modify game code. Level editors may involve custom high-level scripting languages for interactive environments or AIs[i.e Unity C# framework for coding]. Level designers often work with placeholders and prototypes to develop consistency and clear layout before required artwork is developed.
According to Darby Christopher McDevitt(An American game developer and writer best known for his work on the Assassin's Creed series), the writer’s job changes quite a lot over the course of the game’s development process.
Early in the game, during the conception phase, the writer spends a lot of time doing research. For example, if your game is to be in a certain historical time period, then you’d need to read up on that time period to help you develop an understanding of what it was like for people living at that time, how people talked and dressed, and other aspects of the world that could inspire the game’s story and characters and make the game feel more authentic.
Once the game development is in the production phase, that’s when the real writing begins. Writing the backstory, the story, the dialogue everything.
But the game writer doesn’t just go into a room and write everything all at once by her/him-self. It’s a highly collaborative process. You’ll work with others from the game team, like the game designers, the mission designers, and even the voice actors and the directors. As these people are working on the game they also can relate to the story and come up with great ideas. Darby said that on Assassin’s Creed, he got some of his best story ideas from the designers, artists, and other contributors on the game team. It’s the writer’s job to pull it all together and write it into a cohesive whole.
In the later parts of the game’s production when things are mostly finished, the writer works tirelessly to playtest the game and proofread everything to make sure that their work is well represented.
The quality assurance(QA) is carried out by game testers. A game tester analyzes video games and document software defects. Testing is a highly technical field requiring computing expertise, and analytic competence.
The testers ensure that the game falls within the proposed design: it both works and is entertaining. This involves testing of all features, compatibility, localization, performance etc. It is necessary throughout the whole development process, testing is expensive and is often actively utilized only towards the completion of the project.
A tester plays the whole game with a very focused eye to the details such as features, compatibility, performance etc. if there is any bug or defect in the game or any lag on a certain area they note all of that with the proper detail of how and when that problem occurred.
Publishers play an important role in the games industry. They publish and market games and invest in projects.
They hold the copyrights to the game. Control over game related things and stuff.
Without them marketing the game to a much bigger scale would be near to impossible. They buy advertisements and contact the media to promote the game.
Incase you have a much bigger audience of yourself then the need of publisher reduces to zero.
I briefly introduced every field. The truth is you already know the roadmap. And now you might have noticed that their is no one roadmap for any of this
The only thing is direction.
And that is what I will give you.
If you want to be a programmer think what you need to learn what's the roadmap?
Simple go to google and search "which programming language is best for making games."
After choosing one language go to YouTube(YouTube is best resource for learning anything) and search for Complete Beginner course for "that language".
And keep learning.
That's all that is the roadmap.
Same with every other field
Search for best software, go to YouTube and search it's beginner tutorial.
Same for becoming a writer. Go to YouTube and study other peoples work and their strategy(through their tutorials)meaning their thinking process. Start with small stories such as 100 words story and then step up i.e 500 words story, a fiction story, a horror story. Then study games and then start writing game stories. Start with small games and step up slowly.
learn, Practice, perform and repeat.
If you need any further advice, contact me freely on my discord server:
Get free $15 Hosting: Cloudways free hosting(No credit card required)
Host you site where you can trust.
Hire me: https://www.fiverr.com/saifullah02 (For web development Purposes)
My New Blog: saifullahusmani.com
Follow me here: https://dev.to/saifullahusmani
YouTube: http://bit.ly/saifullahusmani (Programming Tutorials Coming Soon).