Software Developer's Guide to Game Development
Tags: programming, beginners, career, tutorial
Published: 2022-02-28 11:34:27

👋 Hello, World! Software developers spend the whole with complicated problems and they need to learn almost everything about algorithms, structures, frameworks, and bla-bla-blah. While games and coffee become the stress-busters, why building games can't be the best one? 

Even though some people find game development is an insane thing to do, software developers must feel it easy-peasy' because they have almost every skill game development needs! Math, Programming, UX/UI,  and the usual stuff. If a normal person takes 6 months to learn a Game Engine, the Developer will take a maximumly of 3 months or less. You can be a game developer by understanding soft skills such as algorithms and structures. 

If you don't trust me, [check out this article](https://lo-victoria.com/why-software-developers-should-build-games) where @[Victoria Lo](@victoria) shows the importance of building games as a software developer. Moreover, you can read [this amazing one](https://blog.tarynmcmillan.com/5-excellent-reasons-why-you-should-be-developing-games) by @[Taryn McMillan](@tarynwritescode) too.

## Making Your  First Game

Software developers who are interested in game development have a remarkable head start. Programming skills are the core of game development. Even if you’re more comfortable with Swift or Ruby, which is not commonly used in game development, you can quickly pick up other Object Oriented programming languages that are much more commonly used for game dev, like C# or C++, easier than no one!

If you're a python ever, you will love to hear this: They're really good, AAA games made with Python just like Battlefield 2, EVE Online, Civilization IV, and more!

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1646026118736/6S7RTOJmx.png)

Not only Python, almost every commonly used Programming language has libraries that support making games. For example:

- Flutter has flame, a game engine that supports Flutter language.
- Ruby has Gosu, a library that makes it easy to develop 2D games.
- Python has PyGame, a library that empowers you to create both 2D and 3D games.
- Phaser allows you to create games with JavaScript and HTML5.

## Start Small, Grow Big
For every beginner, either a software engineer or a novice, I give one common piece of advice— Start Smaller as possible. It doesn't matter how small pieces of code it has or how messy it is, you've won the challenge!

If you love simple 2D games, I would recommend you to make a Pong game. Pong features simple graphics(2 rectangles and a circle) you can create on your own, minimal sounds, and a game loop. If you want to learn about making multiplayer games, allow matches to occur between two human players over a network. If you want to learn about AI, allow the player to challenge the computer.

And if you love 3D games like me, start with Cube Run. I haven't made it without a Game engine because, 3D becomes a bit harder with Python or others but with Unity, it's the best game I recommend to take a start. 

> 
![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1646026973234/J6HRl5qvg.png)
Read the tutorial: [Make A Simple Game With Unity - Mr. Bud](https://mr-bud.hashnode.dev/how-to-make-a-simple-game-with-unity-beginners-guide-part-1)

## Major Ingredients of A Game

If you make a cake without Sugar, no one would eat it.


![disguesitng.gif](https://cdn.hashnode.com/res/hashnode/image/upload/v1646028064781/cdkaD5-1t.gif)
Similarly, if you make a game without one ingredient it needs, no one would play it. Everything is required!

### 1. Level Design
In many games, the level itself is a challenge, trickier than the smartest AI enemies. Series like Tomb Raider also emphasize complex and challenging level design.

While the advent of open-world games like GTA, may make the level design seem less important than in bygone times, it’s worth noting that even open-world games have ‘levels’, such as a particular building, structure, or map area you must enter to achieve a goal. 

To reduce player feelings of being railroaded, levels will ideally have multiple possible paths through them. 

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1646031486711/bb1-f92TH.png)


### 2. Lighting

In games, you can’t rely on natural light sources to illuminate your video game. Every light source in a video game must be added by hand and light manipulation is incredibly important. Light can be used for all of the following:

- Controlling the player’s ability to see. In horror and survival games, light is a resource that must be carefully managed.

- Controlling a player’s ability to be seen. In games with an element of stealth, dark areas can provide cover while well-lit areas represent a difficult challenge.

- Setting the mood. The quality of light can be used to set the mood, with sunny and bright lighting associated with happy times and brooding light associated with dark times.

- Lighting the way. Light can be used to direct the player’s attention. The best-designed levels in video games often make clever use of light to guide the player in the right direction when they might otherwise be lost.


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1646028813294/zWhttsDAt.png)

### 3. Game Art and Textures

Game art is the medium through which the game world is presented to the player. In a sense, all the programming effort that goes into making video games is an attempt to turn game art into something that feels responsive and alive. Game art is an umbrella term that includes textures, 3D models, sprites, particle effects, and lighting.


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1646030809886/Q6HaeAsM8.png)
### 4. Music and Sounds

Unlike in the real world, video game sounds cannot be made by accident. Every sound in the game universe must be added by hand, and it is through layering these sounds that the game world starts to feel lifelike. You also need to be mindful of sounds triggered by the player, by other characters, and ambient sounds that create the game world environment.

As an example, a metal object is felt by the Player. If it doesn't emit a sound, it doesn't feel natural or the scientist who found metals have sonorous property become wrong. 

Another ever-present facet of video games is music, used to create an emotional response in the player or removed entirely to leave behind an eerie silence. Unlike most compositions, video game music must loop seamlessly. It must also transition smoothly to new compositions based on in-game events, such as being spotted by an enemy.

Here are some of my favorite places to find sound:

- Soundcloud
- Fesliyan Studios
- Bensound
- Freesound.org

### 5. Programming
You have made graphics, levels, and everything but the whole game feels like a dead body. If you want your game to be alive, you need some lines of code.

You are already a developer, and you know the importance of programming in anywhere so I'm not going to teach about "what is programming", but I will show you about Programming in game development.

First of all, you need to decide one thing: You're making a game by using a Game Engine + Language or building a game from scratch with Python or something? It's your choice but lemme help you. If you're going to build games for fun, choose the first option because it's easier. As I said in the beginning, developers always fight with complex problems so you shouldn't take more stress with that too. 

Wait, what are those Engines? Game engines are tools that make game developer's life easier. There're many of them, but the most popular ones is: 

- Unity (Great for beginners, recommended)
- Unreal Engine
- Godot

And next, choose a language to get started. Mostly, C# and C is used. Don't worry, you will get it sooner than anyone!


![screenzy-1646031339884.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1646031362963/V3pqK2ICN.png)

### 6. Story

Storytelling in video games is different from the kind of storytelling found in fiction. Even if the story is fundamentally linear, the player must feel like their actions have an effect on the story and are driving it forward. For non-linear storylines, the player’s choices actually do shape how the story unfolds, but this introduces extra complexity in ensuring that all possible choices lead to a satisfying.

The reason for making this the last one is not that it's not important; but every game doesn't have a story, especially, casual type games just like [Wheel Rider](wheelrider.github.io). 

## Conclusion
Starting game development is easier for software developers than anyone. As someone with programming skills, you have a massive head-start on the average video game hobbyist who wants to learn how to make a game. If I scroll to the top of the article, I can list the below points as key takeaways.

- It's a lot easier to find a game dev library that your comfortable language to get started. 
- Start with a small game, maybe a clone of an existing game.
- Game Engines make your life a lot easier.
- If you want to make a big, impressive game but don’t have a lot of time to spare, consider teaming up with others or joining a modding community.

And after considering all of these, all I have to say to fellow software developers is, Why not?

And that's all for now, Happy Designing! 🏎

P.S. Before you go, make sure to sign up for my n̶e̶w̶s̶l̶e̶t̶t̶e̶r̶ cliff-notes [here!](https://www.getrevue.co/profile/wheelrider)

![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1646030434814/j2U-fTY4o.png)

## References
- [Flame package for Flutter](https://pub.dev/packages/flame)
- [Pygame](https://www.pygame.org/)
- [Unity Official Website](unity.com)
- [Wheel Rider official webpage](wheelrider.github.io)