📜 ⬆️ ⬇️

Game design from scratch: how to start making games without experience

Nikita Golubev, commercial author and translator, specifically for the Netology blog, translated the article by game developer Angela He on how to create your first game without programming skills.

Just 2 years ago, I was a 17-year-old schoolgirl and did not know anything about programming. This did not prevent me from starting to learn and in a few months to release my first game on Steam. Today I have more than 10 games for PC, Internet and mobile devices and over 1.9 million players.

It doesn’t matter that you can do it now - if you wish, you can make games too. Two years ago, this seemed impossible: it was the most difficult thing I did in life, and it was worth it. Now I understand that in game development, as in any other business, you grow only when you try, make mistakes, and improve.

All that I know, I learned myself, and now I will teach you.
')

To make the game, you need to go through 6 stages:



In the article for each stage I will highlight:
- Tips that I learned from my own and other people's experience.
- Tools that I find most useful.

image

Concept


The board


You have a great idea. But how to make it on paper?

Everyone has his own path. Some compose design documents of 60 pages, others will write a list of illegible notes. I do not know how it is more convenient for you, but be sure to note the following:


When inspiration comes, drop everything and write. The next time the thought goes, no need to suck the idea out of your finger.

Instruments


Keeping notes:


Teamwork:


I make games on unity. Then we will talk about it, but do not be afraid to use another engine.

Inspiration:


Graphics


The board


If you cannot program, first read the “Programming” section. It is unlikely that you want to spend time on graphics and throw it out because you can’t write code for it.

Even if you cannot draw, the game can be made beautiful using three visual principles: color, shape and volume.



Thomas Was Alone is a simple and beautiful game.

Interface


Think about how to make the game unique with the help of color schemes, fonts and icons without losing the convenience for the player. Is important information clear and readable?


Unsuccessful and successful font

2D animation


Animation can be implemented in two ways:




What else might come in handy


Tips that apply not only to game graphics, but also to other programs:




Without tiles and with tiles




The stain expands, but the angles remain the same.


Instruments


Interface creation:


Principles of creating an interface:


Creating 2D objects:


Creating 3D objects:


Free game assets:


Inspiration:


Programming


The board


Select the game engine, development environment and start to dive into the code.

The knowledge below is enough to get you started. All examples are written in C ++, one of the programming languages ​​in Unity3D. ( Translator’s note: in fact, Unity uses C #, which is similar to C ++ ).

  1. Data types and variables. The code is based on data that is stored in variables. You can declare a variable like this:

    int i = 0; 

    int is the data type, i is the variable name, = 0 is the value of the variable.

    Frequently used data types:
    int and long - for integers,
    float and double - for floating point numbers,
    string - string data.
  2. Conditions. Using the if statement, you can create conditions for executing code:

     if (true){ //   !   doThings(); //   ,   ! } 

    Using the else operator, you can extend the condition and display what to do if the condition is not true:

     int i = 1; if (i == 0){  doThings(); } else if (i == 1){  doOtherThings(); //   ! } 

  3. For / while loops While loops repeat parts of the code as long as the condition remains true. As soon as the condition ceases to be true, the cycle ends.

     while (someBool == true){ //   doThings(); //  ,    } 

    For-loops are like while-loops. For while, we write this:

     int i = 0; while (i < condition){   doThings();   i++; // ,     } 

    The equivalent for-cycle will be as follows:

     for (int i = 0; i < condition; i++){   doThings(); } 

  4. Data structures We have data to interact with. In addition, they can be stored in a special structure - an array, list, queue, stack or set.
    A simple array example:

     /* ,      0  9.     ! */ int[] arr = new int[10]; /*  []    .     10   arr.    : arr = [ 0 0 0 0 0 0 0 0 0 0 ] */ for (int i=0; i<10; i++){   arr[i]=i; //    i  i. //,     ? } /*       : arr = [ 0 1 2 3 4 5 6 7 8 9 ] */ 

  5. Functions and exceptions. A function is a short line of code that replaces a huge number of lines of code. For example, display the function EatBread () , which contains the following:

     void EatBread(){ //<---   breadAte=true;  printf("  ,    "); } 

Then when the function is output, two expressions are executed inside it.

If something goes wrong in the code, exceptions come to the rescue. They kind of say: “So, wait, here you did something illogical. Check back again. ”

What else you need to know:

  1. Tongue. What language will you program? Most often, games are written in C ++, JavaScript or C #. Languages ​​differ in syntax and scope.
  2. API (Application Programming Interface). As soon as you familiarize yourself with the database, proceed to study the application programming interface for a specific game engine. They are a collection of useful tools packaged in simple classes and functions. The API greatly simplifies the programmer’s life.
  3. See examples of projects on the selected game engine. You can find many free examples of games on the Unreal and Unity engines. This will allow you to see the result and the whole process of work as a whole, as well as draw ideas for your future game.

A little inspiration. I know programming is scary at first. Everything seems meaningless, you constantly stumble and in the face of constant mistakes you want to give up, but this does not mean that programming is not for you.

The code is a challenge to yourself. And to understand nothing at first is normal.

Like any skill, programming needs to be learned. And maybe it will be quite interesting.

Other important programming fundamentals:


Unity-specific things:


Instruments


Game engines:


Development environments:


Unity Free Assets:

In the Unity Asset Store, bitbucket and GitHub a lot of free assets. In my projects I use at least two. They simplify life, but are far from perfect. Noticed a mistake - correct and tell the developer about it.


An important, even the main source for solving problems with code is Google!

Sound


The board


Audio is able to create mood and immerse in the game, but it needs memory.

First decide: do you want sound? If so, will there be music, sound effects, voice acting or narration in the game.

In any case, you will need to record and mix in such a way that the sound fits the mood of the game. For example, Bastion uses organic and instrumental sounds that fit well into the game world. Crypt of the Necrodancer included a mixture of electronic rhythms and eight-bit rock to convey the tempo and brightness of the game.
Immersion solves. If the sounds do not match the mood of the game, the player will be difficult to immerse in your world.

Instruments


Audio applications:


Creating retro effects:


Free sounds:


Preparation for publication


The board


There is a small chance - at 99.99 percent, that there are mistakes in the game. And that means it's time to do a bug test.

How to test the game on bugs?


  1. Let others play the game. It is advisable together with you, in case they encounter an error and cannot understand or explain it.
  2. Check out the game on different platforms. There may be no problems in the editor, but does it work where it will be run? Be especially attentive with Linux and Android.

So, the bug is found. Now what?



  1. Check the console for exceptions. If you find an exception, find the file and line where the exception worked. If it sounds like Martian, look for the solution on the network, and think about why an exception is triggered in this line.
  2. Write to the console. Try to display logs (system files) in the estimated places of error. Enter different variables and verify the values ​​obtained with the expected ones. If there is a mismatch, correct it.
  3. Check the logs. The system records of your project will give more information than the console. Read the lines where the exception worked. Google everything you don't know.
  4. Sleep Everything will be fixed in the morning. This is just a bad dream :)

Typical mistakes



When done with errors, proceed to optimize performance and memory usage. Users will be able to run the game faster and not experience problems with heating devices.

Optimization Tips



Tools (Unity only)


Scripts:


Graphics:


Memory:


Platform Optimization:


Publication


The board


It's time to show the world your creation.

Promotion - the most exciting stage. If in doubt, the game design community will help you. Remember that you are not alone, and since you have gone through so much, you need to finish the job to the end.

You will not know if a game will become a hit until you publish it.

  1. Description

    Take screenshots of the “About the game” pages and create descriptions for each platform on which you plan to release the game.
  2. Networking

    If you want everyone to learn about the game, write announcements for gaming media, participate in festivals and conferences.

    Send a description of the game to the press a week before the release - give people time to write about it. It may happen that they will not write about it, but remember: journalists love beautiful stories about developers, a unique or controversial idea and a media kit.

    Where to get addresses?
    • Find online contacts of authors that you like: mail, LinkedIn page, Twitter.
    • Find the publication mail in the “About Us” section or at the bottom of the page

    Do not write to game publications that do not cover your genre or target gaming platform.

  3. Streamers and video bloggers

    They will shoot a video of the game if:
    • The game will become popular on the platforms.
    • You will write directly. Do not talk about yourself, briefly, beautifully and convincingly tell about the game. Use gifs and screenshots to attract attention.

    Usually addresses of bloggers are listed on the page. If not, try to find contacts on the Internet.



    A letter to Markiplier, a blogger whose channel has more than 21 million subscribers.



    Markiplier game video
  4. Social networks

    This is a great tool for promotion: Agar.io gained popularity on 4chan, Butterfly Soup jumped in downloads after attention on Twitter.

    Which is better: publish through the publisher or yourself. Want to follow the Devolver Digital Hotline, Miami, or learn from the Farmville and Doki Doki Literature Club?

    To collaborate with a publisher , you must first find it. After that there will be a small pile of paperwork, but you will get enough funds to develop the game.

    If you are going to publish yourself , get ready to spend a lot of time studying marketing. You can fail the promotion campaign, but in the process you will gain valuable knowledge and save money.



    The number of installations of the game is growing

    I prefer to publish games on my own. I like to learn, and I believe that a really good game will be successful regardless of progress.
  5. Click on the "Publish" button!

    Happened! Now relax, take something tasty and relax. You worked hard and deserved it.

    Do not worry, if the game has not received the expected attention - this is normal. My first game has only 255 downloads on Steam.

The main thing is that you made the game and learned a lot. Now this is enough, and there is always the opportunity to try again with new knowledge.

Instruments


The presskit () service helps developers make a description of the game for the press.

Publication platforms:


Magazines about games:


Festivals:


Game Conferences:


Conclusion


There is no easy way to create a game. There is only your determination and effort.

For every Half-Life, Minecraft and Uncharted there are oceans of blood, sweat and tears.
Ken Levine, creator of Bioshock

You will make mistakes, feel at a dead end and cry. This is normal - it means you are growing above yourself.

From the Editor


Source: https://habr.com/ru/post/420689/


All Articles