Sponsored By

Knock Knock On GameDev Gate

Introduction to the Game Development. Compare couple of Game Engines to give you heads-up where to start. Resources to start making your first game!

This article summarize my talk at "Microsoft Developers UAE Meetup #1"(3d Session "Game Development")

Mamdouh Tarabishi, Blogger

January 27, 2015

1h 40m Read

Knock Knock On GameDev Gate

 

Why do we play games?

 

It is an important question to be asked. Most likely people play games because they can do what they cannot do in real world, like being a warrior, Commander, thief, hero & much more.
People ran from reality to games because they can achieve more with games and they can sense that achievement. After long nights at work, you do not see (+1) at your skills. Sometimes your boss or people around you do not appreciate the extra effort you did and there is no scoreboard where others can see what you have achieved so far.

 

 

Why gaming is important?

 

Gaming is more than some people thinks, a waste of time. Games has a great role improving our lives and adding values to it from so many different aspects. Games Improves Health, awareness regarding social issues, Art, education, economy, architecture, etc… (For more details check this link - Games improving what matters)

An interesting example the game “Mine craft” This video game wants to help redesign actual cities, plans now are for LA 2050 and there is thousands of dollars prize for the winner prototypes. More details in the following link: Real-World Examples and Possible Future Applications of Minecraft

  Jane McGonigal, a famous game designer, believes that she can make the world a better world with gamers and more gaming hours per week, she wants to see more of the “epic win” face. Epic win is: “The moment when you do something, you never expected that you will be able to do and you have no idea how you did it!”
The following photo shows a person on the edge of an epic win! For more details regarding this matter I recommend watching Jane at Ted talk “gaming can make a better world”         Real world Application for Games: ·        Military applications   The following photo shows U.S Navy personnel using a VR (Virtual Realty) parachute trainer.       While the Next Picture shows U.S Marine, train with the Future Immersive Training Environment. Those marines are practicing on places they never went to yet! Which they might visits in the future so they will be familiar with it.     ·        Medical Applications: The following photo shows “Baby Simulator”, instead of the ER team gets their experience with real life cases, which unfortunately sometimes unintentionally may costs lives! Now they can practice with this baby simulator. For more details.     ·        Flight simulators: now you can learn how to fly an airplane without even getting on a plane! Try, learn & get the experience with 100% safety.     Flight Simulator Cockpit

Interesting Stats about Games:   The average game player is 31years old!  
From below chart we can notice that people uses their consoles for entertainment media a lot!
Which brings to my mind “Xbox One”. There so many comparison between it and PS4.
Many neural opinions were saying there is not much difference between the two consoles;
mostly gamers prefer one console over another base on the exclusive game available on each. However, Xbox one shines when it comes to the entertainment media and how it can collaborate with your Microsoft Eco system (Tablet, Laptop, mobile…).

 
Back to our subject how important games are in our lives? The two charts below shows how games can emphasise the relationship between the kids and their parents.
      Form Below charts we can see that social games are favorable among people. May be this because humans at the end is a social creature and technology somehow caused a (-1) to people social life so they recover this decrease with social games. I know this is a very long topic and there are many other reasons why people prefer; let us say the digital socializing.     
Check this link for the original documentSource: Entertainment Software Association


The Technical section

  Among the first things you may want to know about building games is what are the main roles required to do the job. The roles can be divided on a team, at the case of a starter studio or indie developers, multiple roles has to be done by the same person.  The major roles are:   •      Producer
is the person in charge of overseeing development of a video game. •      Artist (Visual & Audio)
is the person who is responsible for making 3D models in the game, Textures, making or picking the appropriate sound tracks. •      Developer
Here where most of the work will be. There is many inner roles under this role (AI, Physics, Game Logic, Scripts…) •      Tester
is the person who will test the game and gives his feedback about any bugs or issues he may find. At indie developer case, this could be the audience i.e. -people, friends, family- who played the game and commented back on it. For more details     Now let’s take a fast look about a screen shot from a game and try to identify the elements needed to be taken care of:   This is screen shot from the game “Splinter Cell”:   Below we can notice the bullets coming out of the weapon which they are an imported 3D models from another program such as (3ds, Maya, Blender,…) but still they are following the physical rules (gravity, speed, acceleration, collision,…), well that doesn’t happen by itself! It is just a bunch of pixels at the end. You as a developer needs to apply these rules to these objects.     In addition, we can notice below the fire coming out of the rifle during shooting. This is a pre created animation and just played at the right time in the right position and direction. -also, animations made by application such as (3ds, Maya, blender …).     Below we can see the enemy or other players controlled by the “Machine – The mother Matrix!”, They will move, shoot specific targets, differentiate between enemy’s & friends. In other words, making their own decision; Artificial Intelligence; which is in a simple words a predefined rules by the AI Developers and this rules can be smarter than just a simple rule to learn and identify the patterns it may face. That’s why sometimes while playing some games you may face a situation where you say “How the hell is this happening!! This is not possible! Not logic! This is cheating! This is stupid!!” and many other words, well actually the blame here is on the AI developer who set the rules for this situation, he didn’t put in to his consideration the situation you faced or he couldn’t simulated it well but do not blame him much! Because it’s not easy but extremely hard to simulate the human intelligence.     In addition, behind the walls, there is other buildings and streets but we are not there yet! & we do not see them! So why to render them? This is what is called scene management, and there is various ways to manage your scene to lower the load on the processors.
  Never the less, we have the different lights in our scene, which makes it more natural.     Moreover, walking into streets or hallways, what is allowed? what is not? Entering a door, getting into car, flying in a plane & many other actions, which leads you to other worlds/Levels. In addition to many other things. Level design is both an artistic and technical process.     Even an artist will gets you the right Sound track but still you have play it at the right time too.     Many of the games now rely on playing online with other players and as we have seen before from the stats, socializing with its different form is a good promoter to your game.

  Now the Big Question: How to develop a game? Games are being developed on to top of a graphic library’s such as (DirectX & OpenGL). These Library’s talks with GPU and let it handle the required processing. Because GPU’s are, a way faster than CPU’s when it comes to heavy parallel workloads (Sure with many other factors). BUT & the big BUT this all has to be done in code (C++, C#,…). For Ex: we drew a box in to our scene, then we wanted to move to the bottom right corner, we have to go back to our code and modify the transformation vector, which will look something like this ( 10.0f, 20.35f, -12.82f), the more objects you have on screen the more complex this number will become! Now you may say OMG! Is this how they develop games! Well it is yes & no! There is what is called a Game Engines built on top of these graphic library’s which will do this dirty job for you!   What is Game Engine? Game engine simply is a program provides you with visual designer to your game, where you can drag and drop visually move and create your scene with so many integrated features such as (Physics, collision, even Simple AI, Cameras, Lights, optimizing your game, etc…). Big game studios like (EA, Ubi Soft …) build their own game engine. Some companies makes their game engine available to the public to use it, either with free versions or paid versions. Some Game Engines: •      Unreal •      CryEngine •      Unity3D •      Construct2 •      And many others.. Before talking briefly about them, here is some games have been made by these engines:     Compare Engines
I will briefly talk about (Unreal, CryEngine, Unity). “Unreal engine” The oldest between them. It is a very powerful, has an amazing lighting and many AAA Games have been built on it! Previously its main drawback from my point of view is that you had to learn “Unreal Script” which is a C Like language. Now with “Unreal 4 Engine” you can write your scripts in C++. Its learning curve is moderate. “CryEngine” it’s relatively a new engine. It is the best when it comes to graphics & open scene worlds. There is not a many AAA games made by it BUT most of the games made by it are AAA games! Such as the famous “Crysis” which made a blast at games world! Its main drawback its learning curve which is very steep! In addition, its only support windows platform.

“Unity” well for sure it is not a competitor to “CryEngine” or “Unreal” when it comes to the graphics , even though it provides a quiet decent graphics as we have seen in the previous screenshots, actually it was not meant to compete with them, it belongs to a different category. What makes it special is: its learning curve which is very easy comparing to the other game engines and it supports almost all the platforms (Windows, Linux, Mac, Mobile, web…). From my point of view, for and indie developer or starter game developer definitely this is your choice.   Below I gathered some information about the following game engines, hoping this will be helpful for you to choose which engine suites your needs most. PS: UDK is the free version of “Unreal Engine 3”.  

Engine

Price

(in USD)

75-245/Month

No Source

Free Version

    3D Support

    2D Support

Platforms

Play Station 3

Xbox 360

Play Station 4

Xbox One

Windows

Mac

Linux

Android

WP8

iOS

Web

Wii

BlackBerry

Availble on

Features

Graphics

Physics

Unlimited Sized Worlds

Learning Curve

Primary programming language

JS

C#

C++

Lua

UnrealScript

Boo

Notes:

·        Unreal Engine 4 is free to use for colleges and universities.

·        The primary difference between (UDK & Unreal Engine 3) that UDK does not include Unreal Engine 3 C++ source code access.

·        More details info regarding UDK click here

 

Below you can see a small commercial comparison between UDK & Unity:

 

UDK

Dev’s

Profit

Licensing

Remainder

Licensing

Remainder

4

$-

$-

$-

$-

$-

4

$50,000.00

$99.00

$49,901.00

$-

$50,000.00

4

$100,000.00

$12,599.00

$87,401.00

$-

$100,000.00

4

$200,000.00

$37,599.00

$162,401.00

$6,000.00

$194,000.00

4

$500,000.00

$112,599.00

$387,401.00

$6,000.00

$494,000.00

25

$500,000.00

$112,599.00

$387,401.00

$37,500.00

$462,500.00

100

$500,000.00

$112,599.00

$387,401.00

$150,000.00

$350,000.00

25

$1,000,000.00

$237,599.00

$762,401.00

$37,500.00

$962,500.00

100

$1,000,000.00

$237,599.00

$762,401.00

$150,000.00

$850,000.00

 

 

How to Start?

•      Set your target

•      what kind of games you want to make? (mobile, PC, ….)

•      who is your audience? Study them well

•      what is the size of your team? Or you are an indie developer?

•      What are your resources? How much can you invest?

•      Choose you tools

•      Which game engine you want to use?

•      What programing languages you will need.

•      Learn how to use it

•      Microsoft bizSpark

•      Keep this in your mind! It’s a gift from Microsoft to small business and starters, It will give you free software’s such (Visual Studio, Windows Azure, Windows 8, Windows server, SQL Server, Office, Sharepoint…) for 3 years! For more info about how to benefit from this program, click here.

•      Here is few articles could be helpful to you:

•      How to make a videogame (with no experience)

•      How to Make a Video Game from Scratch

•      How to Make Your Own Video Game

 

Why Unity3D?

•      Easy GUI

•      Learning Curve very smooth

•      Tutorials & Documentations
comparing to other engines it has more tutorials & their official documentation is very good too!

•      Visual Studio 2013 Tools for Unity (unityvs.com)
If you do not know how visual studio is helpful to developers, then give it a try and you will never use another IDE ever!
Now you can use the power full feature of VS with unity (debugging, intellisense…) it’s a way better than “mono Developer” which unity uses as the default Code Editor.
This is tool brought to us by a company called “SyntaxTree” which now is Acquired by Microsoft, so expect more to come ;)

•      Microsoft Unity Offers
Microsoft is encouraging GameDev on Unity, Previously they had a contest with 50K$ 1st prize! (for more details)
Currently they have another program which offer (Unity Pro License, Win 8.1 License, Vouchers on Microsoft & Unity Stores & more ) (Check it out here)

 

Where to Start? (Unity3D)

•      Official Unity Website
The have very nice Tutorials & helpful Documentation

•      MVA (Microsoft Virtual Academy)
it’s a free online courses & live events! It is amazing! Gives you an awesome Jumpstart!
for Game Development
For Unity Check this course: Gaming Engines for Windows 8 Jump Start
They talk inside it about 3 Game engines (Construct2, GameMaker, Unity). Also other important information regarding GameDev. It is a great course, my advice do not miss it!
Also within 2 – 3 weeks they should release another course: “Developing 2D & 3D Games with Unity for Windows Jump Start” it’s a two days course. I have seen it live, it is very nice and they show some advanced technic about unity and about making your own game in general. Also my advice do not miss it!

•      Game Institute
This website provides advance & professional Training regarding GameDev but its Paid! But its price is affordable , and now they have offer (49$) for 1 Year membership & (99$) for 5 Years!  They offer a Free instant access so you can take a look by your self.  Also they have an academic degree.

•      World Wide Events:
its good to attend such an events at least online. You can see the latest updates in the GameDev World.

•      Game Developers Conference
Game Developers Conference (GDC) is the world's largest and longest-running professionals-only game industry event

•      E3
E3 is the must-attend event where the video game industry unites to debut, showcase, and experience the future of games.

 

 

 

Downloads:

·        Game Engines:

o   CryEngine (Free Non-Commercial) Only for education purposes.

o   Unity3D Free Version

o   UDK (Unreal Development Kit is the free edition of Unreal Engine 3)

·        Addons to GameEngines

o   UnityVS (Addon to Unity3D so you can use Visual studio to debug and get the benefit of its intellisense
-requires VS Pro at least, it will not work on VS Express edition- )

·        This link 18 essential game development tools will talk about many tools I’ll list them down, for more details check the link and read about each tool:

§  Engines:

·        Unreal Engine 4

·        Unity

·        CryEngine

·        BitSquid

§  Physics/AI/Animation

·        Havok Physics/AI/Animation Studio
PS: Havok is the engine used in Half-Life game.

·        Morpheme 4 & Euphoria

·        Gameware

·        XaitControl

·        PhysX & Apex

·        Ikinema RunTime

§  Visuals/Graphics

·        Tech: Enlighten

·        Yebis 2

·        Umbra 3

·        Bink 2

·        Simplygon

·        Substance Designer

§  Audio

·        FMOD Studio

·        Wwise

·        Assets: (definitely you will need 3D models, sound tracks & many others to be used in your game, check the following sites ;) )

o   3D Models & Tectures

§  http://tf3dm.com/

§  http://www.unitymagic.com/shop/en/free-stuff.html?limit=all

§  http://opengameart.org

o   Audio

§  http://www.freesound.org/

§  http://opengameart.org

 

Here is the slides used in the Meetup: Knock knock on GameDev gateway! - Introduction to Game development from Mamdouh Tarabishi By Mamdouh Tarabishi  

Read more about:

Blogs
Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like