Introduction To Game Design For Beginner Programmers

Charles Brant

Game Designing Introduction For Beginners

Some indie developers have all the luck. Minecraft by Notch and Stardew Valley by ConcernedApe are just few examples. They created successful games containing months of satisfying gameplay, and did it completely alone. Not only that, their names got worldwide recognition. Finally, they’ve earned ton of money, more than you will ever get.

And it sucks, right? Because their productions are good, but far from great. Minecraft is just a block-building simulator, and Stardew Valley is simple 2D adventure.

And you know what’s worst? They didn’t advertise, made simple visual assets because couldn’t better, ignored every significant factor. And still became successful. How could such simplicity steal players from top productions like WoW and LoL that were made by giants?

Answer can’t be stuffed in few lines, however… They never stopped. They continued the development at inhuman pace until products took off. And it paid off more than they could’ve imagined.

This introductory article is part of bigger guide about how to make a 3D RPG with help of Unity, C# and Blender. If you are beginner programmer that wants to learn Unity game engine, code C# scripts, create 3D models, and make his first game, then you should give it a read.

Reading this chapter is optional, it doesn’t teach you how to code games. If you don’t feel like reading it, then skip it and go to the next chapter. This article explains:

  • How to speed up the game development process.
  • How to optimize your efforts to maximize results.
  • How to obtain a lot of value for free.
  • How to structure your game to interest and hook players.

Why Indie Devs Don’t Finish Their Games

Most of people won’t develop their games to the point where people consider it worth playing. It’s true for over 99% of cases. Including you.

Wait what? You know nothing about me.

I don’t. And many successful productions were created by just one person. But considering all the people who tried, many means… Less than 0.1%.

Of all the people who tried to make a game on their own, less than 0.1% finished it and acquired players. Sounds heartbreaking? I know it does.

You should strive for greatness despite low global success rate. Maybe you are concealed genius? You won’t know unless you try. So… Why does everyone fail to finish game, let alone acquire players?

Issue 1: They Are Weak

I don’t mean that you should hit gym. The thing is, people are weak. Not physically, they have weak will. Everyone wants results, but no one wants to work. And the small percent of people that will work, most likely will give up after 3 months without seeing any results.

People are impatient and focus their efforts on things that give instant profit of any form. That’s why if you want money, then getting a job is more appealing idea than working on your game. You can at least earn a living this way, without worrying whether anyone will buy your game.

To most of us, spending many long months (if not years) on the development of our game won’t pay off. But to create a successful product, means to put a lot of work in, despite not seeing fruits of your labor in a long time.

To stick through the endless production phase. Only then you’ll become recognized, acquire players, and profit. If you are too lazy to work on your game, then you may still finish it, but it most likely will be ignored by gamers.

Issue 2: They Have Busy Lifestyle

Do you know what’s the most daunting trait of this hobby, even if you love it? It takes a lot of time to produce results. You don’t want to regret not experiencing enough whatever activity. More over, you have responsibilities. And you can’t finish your game in just few weeks. Well, you can, but then no one will play it.

Joseph Hall: Perfection is the child of time.

This is not like… A job where you get paid every month for being 8 hours daily at workplace, with money that you will use to pay rent and buy food. This is more like… A long, frustrating journey that requires ton of time and work, and won’t bring any profits unless you are exceptional.

Can you afford the time needed to make a quality product? If the answer is no… Then again, you may finish your game, but its quality will be questionable.

Issue 3: Their Empty Wallets Interfere

This hobby costs too much. Not only it takes insane time amount, but huge expenses as well:

  • Tools, libraries and features.
  • Models, textures and sprites.
  • Sounds, songs and melodies
  • Servers and website.
  • Social media and game advertising.

What’s worse, if you hire 3D artist that’ll disappear after a while, you’ll have to find new one. And your assets won’t have consistent style. This also applies to downloading free assets.

As an independent developer you don’t know if your creation will take off and become popular. You don’t know if it will generate income. And you don’t want to spend money unless you must.

That’s why you should do majority of work on your own. But even then, you will encounter more problems. You need to pay rent, bills, and buy food. Therefore, if you don’t have a job, you will not make it through the production phase.

On the other side of the coin, if you have a job, you go back home tired, and have very limited amount of time. So… If you want to make a quality game, then first make sure you will have enough time to work on it.


How To Actually Finish Development

Lack of commitment, time, and money made success of indie developer outrageously rare. That, and competition. It kind of makes sense. Bigger companies may have over 50 skilled & educated employees working on their game.

Therefore they can do 50 times more work than you in the same time. Or more, considering that they are pro and you’re just starting. That takes us to the next section, focused on taking huge shortcut…

Shortcut that will save our time and money, and make us work less while getting more done. And achieving even higher quality.

What Shortcut Will Make My Game Worthy?

All the problems I mentioned are absolutely real issue among indie devs but there’s one way to get stupidly huge boost for free and without doing any additional work. In fact, it will make us work much less, save our money, and time, even up to 50%.

It will let us achieve same things in shorter time while also getting results of higher quality than if we didn’t make use of it. The solution to all issues of the above is… Using a tool that will do some of the hard work for you.

And… That tool is called “game engine”. They are popular, so you may have already heard of them. What are the major benefits of using an engine?

Benefit 1: Easier To Scale

It’s simpler to implement new features using an engine. Growing your project without one is tedious process. Simple things without it will take a lot of time. Your discipline and confidence will take a hit whenever you add new features to your creation.

There’s no reason to reinvent the wheel and create your own semi-engine if the main plan is to create a successful game. Chances are, you will spend some weeks this way, then abandon all work and use engine anyway.

Benefit 2: Literal Life Saver

You decided to add physics to your game. And you did it just fine. However, it took you few weeks and caused a lot of headaches. That time could be spent doing something else, something productive. Something great.

But how how to add physics without coding it? The solution is straight-forward. Engines have all the basic things (like physics) already built-in.

Instead of spending long weeks (if not months) on coding physics, you could achieve even better effect by just adding a component that they made specifically for this purpose. And it would take you just a few clicks. So you could spend next days on something else. Isn’t that awesome?

Benefit 3: All-In-One Solution

Before game engines and libraries became mainstream, you would search for framework to speak with GPU to draw simple 3D cube. Or you would have to code your own…

You would struggle a lot, waste time. In the end you would just buy ready solution from someone, and then you would face another problem. Sounds frustrating?

Without engine, even importing a 3D model to your project will take lot of effort. You just have to drag it with mouse to achieve this effect in engine. And this is how much easier they make the process.

Not only engines have very useful, easy and functional user interface, they also have all the basic tools built-in. Map designer, 3D shapes, physics, water, character movement, networking are just some of the most common things you would have to spend months working on, or half your salary. These could be spent in better way.

Which Engine Is The Best Choice?

Every producer steals. Singers borrow words and topics for their albums from other musicians whether it’s conscious or not. Every successful person checks competition and thinks:

Damn, this is so hot, maybe I should add it to my product.

And it’s completely alright as long as you don’t make a literal duplicate. So… Search, borrow, steal. It’s all fine as long as you don’t commit real theft and just derive inspiration instead. That takes us to next section. Lets check what tools are the professionals using.

P.S. Even the design of this website was significantly inspired by other websites!

What’s Used In The Professional World?

Most popular engines and frameworks which produce titles that actually sell are:

  • Unity – multi-platform 2D and 3D engine. Devs use C#.
  • Unreal Engine – heavy open source 3D multi-platform engine. Devs use blueprints and C++.
  • GameMaker – simple 2D engine for beginners.
  • Godot – MIT license open source 2D and 3D engine.
  • AppGameKit – engine for beginners targeting mobile.
  • CryEngine – console and VR focused 3D engine.
  • Amazon Lumberyard – easy Amazon engine.
  • RPG Maker – simple 2D RPG engine.
  • LibGDX – most popular Java framework.
  • BabylonJS – modern and fast 3D Javascript framework for browsers.

These engines are exceptional among hundreds of mediocre engines. However, even on this list some engines are significantly better than the rest. But to pick them we need to know what factors are important.

What Factors Are Critical?

You may feel confused, and that’s okay. There’s a lot of engines, languages, and platforms you could choose. Years ago I was like you. I was deceived by meaningless slogans like “compile once, run anywhere”. Or “3 billion devices run Java”. I didn’t know which factors are critical. I switched frameworks and languages over and over.

Which resulted in wasting a lot of time, that could be used to create outstanding product. Luckily for you, I’ve checked most of them, done the needed brainstorming, and realized what’s important, so you don’t have to waste time like I did. The truth is, you want to boldly choose the best option available.

Don’t limit yourself with language that’s not efficient in making games. Don’t choose only one target platform. Don’t pick framework over engine. What’s important is performance, how easy to use the engine is, its visual limits, and how significantly it will speed up the work.

Narrowing The Engine List

Most interesting choices from the list are Unity, Unreal Engine 4, CryEngine, BabylonJS and Godot.

Babylon is a modern, fast and optimized 3D Javascript framework created specifically for developing browser games. If you for some reason have a huge need to target browsers, then you should add Babylon to your list of top choices. You can also export to browser using Unity. In fact, there are many Unity browser titles on the web right now and they’re not laggy at all.

Godot is 100% open source and 100% free 3D engine that supports C#, C++ and more. I wouldn’t recommend it to beginner, though. It’s not popular at all and there’s not much sample code a beginner can find whenever his own code doesn’t work. Not only that but its relatively new and has only three developers.

CryEngine is not exceptional at anything but it’s probably better choice than GameMaker, RPGMaker, Amazon Lumberyard and the like.

The Battle-Tested Final Choice

Now that you know that Babylon, Godot and CryEngine are not so bad, let’s be even more greedy and pick the best engine available. There are two other options left and they are Unreal Engine 4 and Unity. And here’s why they are considered the best:

  • Best quality and performance.
  • Free except royalties (small fee after you start making sales).
  • Target major platforms.
  • Support 2D and 3D.
  • Suitable for all genres.
  • Biggest userbase.
  • A lot of solutions in internet.

We are left with two engines of insanely high quality. You may already prefer one over the other if you heard about them before. The engine I consider significantly better is Unity.

Why? Because major factors, such as performance are on par with Unreal Engine. However, there are more reasons to use Unity, and these are not minor things:

  • C# destroys C++. Not only it’s easier, it’s also newer, better thought, higher level and used more often (it’s common practice to make websites and many other things with it).
  • It’s more popular. This one is huge. We choose things already recommended by others. Unity, since years, has been the most popular engine (about 16 times more than Unreal). With popularity, more benefits arise.
  • Your skills are on demand. Even if you failed to make money on your indie game project, there’s a huge chance you will find Unity job (about 20 times more offers than Unreal), as it’s most popular engine.
  • Huge community. The last thing you want is dead end situation. You encounter problem, ask on internet, and never get a reply. That doesn’t happen with Unity.
  • Solutions and sample code everywhere. Huge community made it simple to implement features. Anything you will ever need can be found in internet, and there’s always space to improve it.
  • It speeds up the development. Due to the nature of modern game development, amount of sample code online, and huge documentation, a lot of your coding will be in form of copying and adjusting, especially if you are an beginner. That’s not possible in case of Unreal Engine 4, because everyone works with Blueprints – you can’t copy them from web page, Blueprints take ages to replicate from screenshots and videos.

How To Attract & Hook Players

Most indie developers don’t follow proper direction and that’s why they fail time after time, so much that they give up in the end. You can make your game quickly, maybe it will even be playable, but that’s not enough. Your invention needs to be addicting, great projects steal attention of gamers all the time.

When they go to sleep, wake up, are in school or job… They think about your game (at least they should). You won’t see many unsuccessful games that are truly interesting, well-made, and addicting.

Gaming addiction is a real issue (and a blessing to developers), many gamers can’t really stop thinking about their favorite games. They get invasive thoughts throughout the day about how great it would be to play again, even if they are in school or work.

They should be learning math or serving customers, but their minds are busy thinking about their favorite game. I bet that’s what currently happening to at least 25% of Fortnite players. And this is the place where your game should be.

What Genres Are Popular?

That’s why I’ve made this introduction article first, before actual coding and development tutorial. You need to be aware of how significant is going through development process having player, gameplay and marketing in mind.

Because if you won’t think about it, then your project will be just another boring, soulless, forgotten production that people want to quit as soon as they launch it.

Picking genre will significantly impact the outcome, either positively or negatively. So what genre will attract the player? Most popular genres as of last years include:

  • RPG – Role Playing Game.
  • MMORPG – Massively Multiplayer Online Role Playing Game.
  • MOBA – Multiplayer Online Battle Arena.
  • BR – Battle Royale.

And Why Are They Popular?

Saying briefly, all these genres have one or more major features or mechanics that keep the players hooked.

Addicting gameplay mechanics in MOBA and BR:

  • That gamer’s skill matters.
  • Constant competition.
  • Killing others gets you either items, experience, or upgrade to next level.
  • When you kill someone there’s announcement “X killed Y” or “Penta Kill” and everyone knows you’re a badass.

In RPG and MMORPG you feel good whenever you:

  • Level up character or skill.
  • Find not-yet-cleared grinding spot.
  • Finish hard quest.
  • Obtain over-powered item.
  • Kill powerful monster or boss and take his loot.
  • Kill someone in PvP or successively run to safe zone from higher level PK.

Our brain actually can make us feel better when we level up than when we pass exams with best grade among our peers. Best video games work like drugs, especially to young players who are new to these patterns.

That’s why such humongous part of Fortnite player-base are 10 year old kids. For older players, Fortnite is nothing new, it’s essentially just another shooter death-match with small teams and parachutes in it. For younger people, it’s probably first time they’re exposed to such addicting game. And that’s one of the reasons why Fortnite is so successful.

So What Genre Will We Choose?

Maybe you want to create MMORPG or MOBA instead, and that’s okay. I love to play MMORPGs, and I encourage other developers to create them.

However, RPGs are much easier to create. And they are almost equally interesting. We can insert literally everything in it and it will seem like perfectly fitting addition. They are perfect choice for your first project.

For MMORPGs, you will need huge playerbase from day one (no one will play multiplayer game alone), money for servers, and much more time. And I encourage you to try, but “you should learn to walk before you run”. That’s why let’s start from simple RPG.

You Also Need Exceptional Gameplay Mechanics

You need strong idea. If you copy existing patterns – your project will never become popular. That’s why you won’t only pick very addicting genre. That fundamentally could only interest players completely new to the genre.

You will also have to implement unique ideas that will convince and hook players for long. Unique ideas can be in form of gameplay mechanics, such as submarines, dungeons, building things, enemy with smart AI that learns and becomes stronger with time, and so on.

Your distinctive game traits will fit perfectly with RPG genre. And this huge tutorial will guide you through creating your first game of this kind.

The Closing Note For Beginners

Think strongly what addicting and entertaining key features your project should have. Transfer your ideas to code. Play it and see if its enjoyable. Is it entertaining? That’s already huge advantage over your competition.

If you want to have players and potential income or recognition, you need sick ideas. That’s why if you’ve spent years on gaming, you could derive inspiration and ideas from the creations you played. But this time it will be different, roles will be reserved and you will be the one trying to bribe players.

Now you know why we choose Unity and RPG. Chances are, these were already your preferences when you visited this article. However I needed to explain this so you don’t consider switching genres or engines for some minor reason after you spent months working. Next parts of guide are below. And they contain everything you need to know to not be like this dude.


What Are You Waiting For?

This guide is written in a way that makes it simple to follow even for not tech-savvy people. It’s detailed at first but with each lesson it gets less repetitive, detailed and obvious.

It goes through the development phase from downloading the tools to implementing major features, then adding details that will finalize our work. Despite following the guide, you still need to put your own invention and a lot of work.

I am only explaining the basics and introducing you to game development world. The actual design of a product that sells requires ton of creativity, planning, and work. And I am here to help you, but consider this project as a prototype of your game, not its final version.

This way after you learn and create a working prototype, you will be able to transfer everything to your final project, or perhaps, rewrite it even better! Keep that in mind, work hard and smart, and you will reach your aim.

This was first lesson of my guide about how to make our first 3D RPG game using Unity and Blender. One more thing we need to do before we start creating assets and coding our game is getting Unity engine and account. So in next chapter we will be installing Unity Editor, Hub & registering account as well as explaining the price of this seemingly free game engine.

Comments