How are computer games made? Creating games for beginners

How to develop an RPG game in a week from scratch and without a budget. Part I

RPG in a week? From scratch? Is it even possible?
I took a risk and I did it.

The Internet is full of information resources available to small, independent (indi) game developers. In one such public forum, during an argument, I had the imprudence to blurt out that if I was given a week of time, a computer with a fresh install of Windows, and a good Internet connection, I could create a decent game without spending a dime on it. No, it certainly won't be able to compete with Halo 2 or something of the same level (if I could make such a game in a week, I would have quit my job long ago), but it will be quite interesting and playable.

Tom Bampton, author of the monthly Game of the Day Game Reviews (www.gameinaday.com), said: "Go for it!" Then he added an additional condition - I must do this without using existing game engines. I'm only allowed to use core libraries/APIs.

At first I gave up on this idea. I did not have too much time to take a week off from the development of the current game project at work. But then I thought: to hell with it, because what is a week? In a typical company, such as EA, the workweek is 40 hours. So why not make a game not in a calendar week, but in 40 clean hours? It's already more real - but I didn't want to create another Tetris or Arkanoid. And what about the role-playing game - one of the most difficult game genres? Is it possible?

I knew it would be extremely difficult. But I accepted the challenge.

In addition, I wrote down in detail what and how I do, described the development progress. I thought it might be interesting for game developers - or at least get entertaining records of how I fell on my face in the mud, if I suddenly fail. All I came up with was a long, rambling record of my hourly activity. I tried to change it in such a way that reading does not cause boredom. How it happened, judge for yourself.

So here's how I created a game in one week from scratch, and with no budget. If you're too lazy to read and want to quickly jump to the end of the story to see what the final product looks like and see all of its bugs, you can download the Windows version of the game here: http://www.rampantgames.com/hackenslash.html

PLANNING
Target
Create an old-school RPG in the style of old games from the early 80s, with a top-down view, such as The Temple of Apshai, Ultima III, and Telengard. The player will move through rooms in a typical dungeon, fighting various monsters with "sword and magic". Gradually, he will improve his abilities by gaining experience, leveling up, acquiring magical equipment.

However, the game will consist of more than just combat itself. The player will also have the option to sneak past the monsters, or negotiate with them. There will be locked doors and chests, and unique dungeon features that have unexpected effects. The game will not have long descriptions or dialogues - it will mostly be a typical hack & slash. You will follow the path until you are strong enough to face the final boss, complete the quest, and return home (your starting room) safely.

Development rules

Rule #1: Development time is limited to one week (including 40 hours)
A total of no more than 40 hours should be spent on game development. These will include time spent actually working on the game and thinking about it. Development breaks greater than ten minutes will not be counted. This would be a "perfect" work week of 40 high-performance hours.

A fully functional alpha version will be made in 40 hours. Further finishing, such as the final debugging of the game, the creation of an installer for distribution in the total time will not be taken into account, no new functionality will be added at this stage. Documentation of the development process is also not taken into account.

Rule #2: Only Use Free Tools
With the exception of the software that comes with the Windows installation, only free software is used, if possible open source. The point of this is to show that you don't need expensive (or even cheap) tools to develop a game. Equipment such as a scanner, microphone, and digital camera is not affected by this rule - if you do not have them, we will assume that they can be borrowed from someone.

Rule #3: No Engines, Only Standard Libraries/APIs
The game must be created "from scratch" without using existing game engines. No cheating, and creating a game or any of its parts using game designers or using similar software.

Tools
The code:

Python 2.3 (http://www.python.org/)
Python Win
PyGame (http://www.pygame.org/)
Py2exe - to compile what happens into an executable file for distribution. (http://starship.python.net/crew/theller/py2exe/)

Gimp 2.0 (http://gimp-win.sourceforge.net/)
MS Paint (the one that comes with Windows) - to paste screenshots captured with the PrintScreen key (GIMP for some reason refused to do this)
Free textures were taken from (http://www.textureartist.net/textures/index.htm) and (http://www.mayang.com/textures/)

Audacity (http://audacity.sourceforge.net/) plus my microphone or free ones.

Schedule (Plan) of work
Schedules are made to be broken later, but they are still needed to control progress and lines, and make adjustments as necessary.

Hour 1-10: Basic architecture
Engine design and main components. Get the display of the world on the screen. I have to implement the ability to move a test player around the world, and look at things, and then turn what happens into a game editor.

Hour 11-20: Player options
The implementation of all the main features for the player - moving, attacking, opening doors, death, picking up things and using inventory. Create a wireframe representation of all objects in the environment to test the player's ability to interact with the world.

Hour 21-30: Revitalization of the world
Add artificial intelligence, game events, traps, special effects. By the end of this period, I should have a fairly complete tech demo, including all the main features of the game.

Hour 31-40: Adding content and rules
Get a full-fledged game from a techno demo. Add all additional content. To achieve completeness and balance of game mechanics. Polish everything for which there is enough time, add special effects, animation, etc.

After 40 hours: Testing and release of the game
Test and fix the found errors (without adding new features!) Gather everything together and put it on the Internet. Complete documentation.

Hackenslash Dev Diary: Game of the Week

Hour 1 - Wild Design and Base Classes
This hour was spent creating some base classes for the game - and using them in further design. The world will be presented as a sequence of rooms connected by a portal. Everything in the world is based on rooms, just like it was in old adventure games or MUDs. Most of the objects in the game are represented as a "GameObject" that has a position and content (it can contain other objects as well - a map can contain rooms, a room can contain a chest, a chest can contain a sword... and I think a sword can contain several rooms, but we will not do this.)

I create objects creature (creature) and player (Player)
I'm generating a set of attributes for creatures and injecting them into a class. Apparently I'm a nerd who plays too much RPG games. I don't yet know exactly how the game mechanics will look and work.
I'm making a room object that inherits from GameObject. A room has a width, a height, and walls - and nothing else at the moment.

Gradually, I begin to understand how everything will work, and make the necessary corrections. I'm not even trying to use PyGame at this stage and the program doesn't show anything but the console. But I feel that all that has been done is great progress!

Hour 2 - PyGame 101
The purpose of this hour is to initialize PyGame, well, and start drawing at least something on the screen. In fact, I spend most of my time reading the PyGame documentation, trying to figure out what's in there and how, since I have little to no experience with PyGame or SDL.

This hour ends with a program that displays a blank screen filled with black. Not impressive. In fact, there is a lot behind this window. There is a game loop, frame switching, multiple class calls, and a lot of idle stubs. But that doesn't make the black screen any more impressive.

Hour 3 - If the walls had ears, I would scold them strongly.
The purpose of this hour is to define the contours of the room with walls, and display this on a still black screen. To do this I need room and I need graphics. You have to spend a lot of time at GIMP, editing textures downloaded from the Internet, so that they turn into suitable tiles. I am creating a texture manager class. And I fill in the sample room structure. I also spent a little more time looking through the PyGame documentation to find anything else I could use to make the job easier.

The hour has passed. I still have the same black screen. There were no walls, and no.

Hour 4 - The hotel has a free room
After struggling with some syntax errors, I was finally able to get the walls to appear on the screen. True, they are displayed incorrectly, they are not in the indicated place, and even with slots between the segments. It's horrible. But with a bit of tweaking and editing, I got what looked like a room on the screen, 10 by 10 squares.

Without a detailed project plan, it's really quite easy to get confused when you've done a certain job and wonder "What's next?" I decided that if drawing one room is good, then drawing two is doubly better.

To store the created rooms, I created a "minidungeon" file.
I'll start adding the logic for "portals" - openings in the walls to go to other rooms (and providing all the offset information needed to display adjoining rooms correctly).

Hour 5 - Hackenslash gets more rooms

I changed the title of the window to "Hackenslash!". Just because it's cool.
I created an object map to store rooms, and a MapMaster class containing several maps.
I added a second room and connected to the first through the portal.
Adjacent rooms are connected to the current one through portals, and are now displayed on the screen.
I fixed some clipping errors so that walls that partially extend beyond the window are displayed correctly.

Hour 6 - during which we improve our drawing skills

Added a door class, and also set up maps for door placement (the door must be common for two rooms). (Edit: Too bad I never used it!)
I created 3 more wall tiles, combined them into one image.
The graphic appearance of the walls varies depending on the type.
I'm making a simple graphic for a top down view.

Hours 7-8 - Spins and exclamations!

I figured out how to rotate bitmaps in PyGame.
I achieved smooth rotation of the test player. Many adjustments are needed to correct the angle of rotation.
I have learned how to use fonts in PyGame and I am creating some classes to display and animate text.
Added a class for automatic text processing, since this functionality will be used frequently in the future.

Hours 9-11 - Elements - brrr!

And here again, I need to solve the question "What next?".

Rooms need more interesting elements, so you need to make a list of them. I don't know how to systematize them, so I decided to start with the general ones. I have introduced three static elements that can be found in a typical dungeon room: a carpet, a column (a block with the same functionality as walls), and a ladder (allows you to move to a new location)

I decided that elements can take up more than one tile and can be rotated by any degree. (Edit: In retrospect, a very dumb solution - I spent too much time implementing it, but it turned out to be almost useless.)

All in all, I spent about three hours working on the elements, torn between creating graphics and writing code.

Hours 12 - 13 - We need Loot!

I create graphics and code for things. It's amazing how long drawing can take. It is especially annoying when the image looks like the chicken was drawing with its paw, no matter how much effort was put into it.

I've added a lot of stats to items, including their cost, size, equipment slots, and more. They can't be interacted with yet, but at least they show up in the right places in the room.

Hour 14 - Carpets

I'm way behind schedule, what should I do?
The black background seems too ugly, so I paved the floors inside the room with carpets - separate tiles.

After that, it suddenly turned out that I forgot to add a transparent background to the sprites of the player and things. I had to spend a lot of time correcting this oversight.

But the level now looks cool. Well, at least cooler than black.

Hours 15-16 - Click! Click!

I got busy with mouse control and event handling.
Added mouse control. While the movement is jerky, there is no smooth scrolling of the level.
The player can move out of the room, there is no collision check.
I've fixed a few bugs.
Tortured GIMP and created beautiful stairs.
.
It's been almost 17 hours of development already, so I'm starting to get a little nervous. I went 2/5 of the way to create the game - the second "working day" of development ended. What I have already done is impressive, but I understand that there is much more left to do. I have four more hours to finish the core player features and get on schedule. It will be difficult... but I still don't regret spending the extra time drawing graphics!

Hour 17 - Slowly move until we hit our forehead against the wall

Most of the time is spent fine-tuning the graphics and fixing bugs.
Added collision detection and smooth scrolling when the player moves.
The player can now take multiple steps (turns) in response to a mouse action.

Hour 18 - Crossing the thresholds

The player can now go through portals to other rooms.
This causes a cosmetic bug with overlapping walls and floors between adjoining rooms.
Fixed a lot of bugs related to rotation, which made portals impassable.

Hour 19 - Stairway to Heaven, Hell's Menu

My brother volunteered to make music for the game. He made the music for Void War and it worked out pretty well. This reminded me to do sound (and music) playback. It seems to be quite easy to do this in PyGame, so it shouldn't take too long. (Edit: I never found time for this, unfortunately you won't hear a single sound in Hackenslash.)

My next goal is to handle interactions with creatures and objects. I really like the way it's done in The Sims and Neverwinter Nights, when you want to interact with a game object, a context menu appears. I am planning to implement something similar.

Teaching stairs to move the player to a new room.
I've been poking around the internet and the PyGame documentation a bit, looking to see if there's an open source menu for a similar menu in PyGame. And didn't find anything.
I started making my own menu.

Hours 20 - 21 - What's with the menu?

I continue to work on the menu. The menu can be easily connected to the object, or rather the object, as it were, generates a menu, which made it easy to implement feedback for processing the player's choice.
I started working on the item menu. It already appears in the right place, and allows you to select some item, but when pressed, it does nothing yet, only the button to close the menu works.

Hour 22 - Fall asleep in progress

I continue to work on things - trying to implement their functionality and teach them to respond to menu commands, including the ability to add contextual information. Now it has little functionality, but still works, displaying information about the running command
I improved the calculation of movement when performing various actions, getting more mobility.

I notice that it is already late, and that I have gone far beyond the hour allotted for this work. If I did not pay attention to the total development time, I would probably sit out until the morning. But since I'm limited on time, an almost wasted hour is really bad news. It's interesting how priorities shift when there's not enough time. In general, I go to bed.

Hour 23 - Battle parameters!

I'm modifying (well, actually just getting started) some of the class attributes created in the first hour.
In the upper right corner, I create a panel that will display the player options.
I've optimized this window by turning it into an image that draws faster than fonts. This image only updates when the associated character parameters change.

Hour 24 - Player Menu

I completed the optimizations for the options window.
Created a popup menu that appears when the player clicks on a character.
I created a quick menu for using potions, casting spells, etc.
I fixed some bugs in the menu.

Hour 25 - Before (once) sawing floors and walls

This morning I had an idea in my brain (do I really have such a big brain that it can fit so many ideas?) how to fix the problem of overlapping walls in adjoining rooms (see description of the eighteenth hour). What if I paint only half of the walls? This way there will be no overlap at all, and no complex logic needs to be added to detect and fix overlaps.

I'm starting to work on the implementation of this idea. Unfortunately, in fact, the simplification invented makes it even more difficult to draw the room (in particular the floors), and it may not be implemented as quickly as I hoped. It took about an hour to create and debug this system. But it was worth it.

While debugging the code, I found a few more errors related to the transition between rooms.

BREAK - Crisis!

I just realized that more than 3/5 of the development time has passed, and that there are less than fifteen hours left to finish the game. After looking at the schedule of the necessary features of the game, and estimating that it would take an hour on average to implement each, I realized that it would take me about twenty-five hours to implement everything. Ten hours ahead of time. The project is officially in jeopardy.

I can't go beyond the time limit. It is also impossible to attract an assistant or buy code / resources, since it is provided that I will make the game in 40 hours by myself. I need to figure out how to work even more efficiently - but I'm already working at maximum productivity. It looks like I have no other choice, I'll have to rethink the functionality, and decide which features to throw out of the game.

Doors: Cut! I really want to make doors in the game. It is a pity to part with this function - especially since I have been working on it for some time. But there is still too much work, such as artificial intelligence. And it will probably take 2-3 hours to get them to work, which I don't have.
Inventory: Simplify! Forget about additional inventory, and the ability to change weapons at will. Everything that is picked up and does not become the current equipment will be immediately converted into money.
Pitfalls: Simplify! I would like to have many traps with interesting and varied consequences for activating them. It's not meant to be. Traps will have a simple visual effect, deal damage and temporarily increase the chance of running into a random monster
Bows (Small Weapons): Cut! The game will only have melee weapons, at a distance you can attack with spells.
Save/Load Game: Simplify! Only the character can be saved, not the state of the world. (EDIT: I didn't do that either!)
Particle System: Postpone! Moved particle system creation to the bottom of the priority list. I doubt they will need to be done. It would be nice to have impressive visuals with spell particles...but it probably never will.
Spells: Simplify! I had a serious concept about spells: they could be found in the form of scrolls, and the number is more than a dozen. It's sad, but there will only be a few spells: Heal, Damage, Weaken, Empower, and Restoration. By leveling up, you can allow the player to enhance spells by increasing the number of magic points.
Animation of monsters and players: Cut! I'm a poor artist to do it fast enough.

When deciding what I won't do (or what I'll put off until later), it's equally important to decide what needs to be done first.

There are a lot of things that are planned in the game that I consider very important - finding traps, secret doors (well, secret passages now), and opening chests. But still the basis of the game is combat. So I decided to focus on it, to make it a top priority. I set a goal for myself, in a hour and a half, my monsters will come to life so that they can be killed.

Great, we figured out the priorities, we continue to develop.

Hour 26 - Let's roll the dice

I'm working on the mechanics of "dice", a mechanism by which an element of randomness will be introduced into the game. Since we don't have a real dice constraint, we can get a random number in any desired range. For example, from 1 to 33, or from 6 to 17. So I can roll the dice, compare what fell with my attack and the enemy's defense. If the rolled number is higher than the defense, the attack is successful.

For example, let's say I have a total attack value of 15. I'm attacking a monster that has 10 defense. My chances are 15 out of 25 (25 =15 +10), or 3 out of 5. So the game will generate a random number between 1 and 25, and if it's higher than ten, I'll win.

Damage dealt is calculated in a slightly different way. I added "armor" to the defender and "damage" to the attacker. I generate a random number from 1 to their sum and then subtract the armor. If the result is less than one, no damage is dealt. Otherwise, it is equal to the result. Thus, if a monster with 10 damage attacks a player with 5 armor points, the game will generate a number from 1 to 15, from which it will subtract 5, what happens is the damage dealt.

This explanation and description took longer than its implementation.

At the end of the hour, I reduced the size of the dungeon display area, now the part of the window on the right is completely devoted to the user interface, this change gave a slight increase in performance. I also made sure that the player's movement does not depend on the frame rate.

The first thing we need is to decide on our goal. What do we want to end up with? If you want your game to "shoot", you need to start with more accurate aim, and not hit at random.

The stage of the concept and definition of the goal is engaged in Project Manager.


genre

You can present your finished game in the smallest detail from the very beginning, or you can think out the plot, style, and features of the game during development. In this case, excessive precision is not necessary, but, at a minimum, we need to set the direction for the development of our game project. The genre of the game must be selected at the very beginning without fail. Genre and will be the main direction of development of the game.

We look at the round table of genres as a target, and select the game gameplay elements we need (more about the table of genres can be found in the article " Genres of computer games"). Some elements will give us high popularity among the players (destruction, competition, hero, care), some - loyal, but picky fans (tactics, control, evasion), and some - the absence of serious competitors (training, logic, travel, economy).

The chosen genre can be slightly adjusted in the course of work, but its essence should remain the same. Genre is a kind of foundation for the whole game. If you want to change the genre of your game, it will be easier to start developing a new game anew than to remake what has already been developed.


Setting


The division of computer games into genres is very specific and does not resemble the genre system of films and books. Game genres determine only the main actions that players will perform during the game, thus they only answer the question "WHAT?". To the questions "WHERE?" and when?" meets another main characteristic of the game - the setting.

The setting is the belonging of the game to some plot theme or to a certain virtual world. Some of the most popular settings have formed in the computer game environment: fantasy, science fiction (sci-fi), World War II, the Middle Ages, steampunk, post-nuclear world, anime, comics.

Creating a game in a popular setting ensures its own popularity, and players feel cozy and comfortable in a familiar world. Some games are created in their own unique settings or unusual combinations of standard themes. Such games are less popular, but, nevertheless, they have their own audience of special players who can not stand the stereotype and monotony.

2. Remedy

The goal of the game project is set, now we need to choose the means (materials and tools) to achieve it. And here we are faced with an unusual phenomenon of the computer world - both the material and the tool of the game project are the same entity - the program code. Code as a building material is digital images, three-dimensional models, sounds and texts in the form of sequences of ones and zeros. Code as a tool is commands in lines of program code that control game objects of all listed types.


Creating game material (filling, content) is a purely creative part of the process, we will consider it a little later, but for now we will analyze the program code only as a tool. In this case, the program code is a framework (skeleton) on which the results of all subsequent stages of development will be strung.

This stage is carried out programmers.

First of all, we must choose the programming language that suits us best. After that, hard and painstaking work lies ahead to write a program code capable of operating with two-dimensional or three-dimensional objects in space, binding images and sounds. To create a virtual three-dimensional space, you will have to use complex geometric formulas to build a projection of 3D objects on a plane (in the mind of a computer, objects exist in real three-dimensional space, but you have to do recalculations to display their image on a flat two-dimensional screen). In the course of development, you will have to study all the image and audio file formats, all kinds of codecs and encodings.


The use of game engines does not completely free us from the use of programmers, but reduces them to a minimum. The standard software module will still have to be customized, add something of your own to it to make the game project more unique.

3. Game mechanics


The most important creative part of any game is the game mechanics. This thing is not on the surface, so it often escapes the gaze of inattentive connoisseurs of games.

Young teenagers (the main part of the gaming audience) for the most part evaluate games by the quality of graphics, and do not notice that beautiful games, although popular, but their popularity lasts only a few months after the release. And in the hearts of the players and in the golden lists of the eternal gaming classics, completely different games remain forever, maybe a little unprepossessing in appearance, but with amazingly addictive gameplay. The more diverse and interesting the game features, the longer the player stays in the game. For example, why did "MineCraft" get universal love? Certainly not for the primitive cubic graphics, but for the fact that this game gives truly limitless gaming possibilities.

If we imagine the game as a living organism, then the game mechanics will be its nervous system and brain. And if you imagine the game in the form of a house under construction, then the game mechanics will appear as electrical wiring, pipelines and other household utilities. Imagine what happens to beautiful and fashionable, but not thought out games from this point of view: you can live in a beautiful house, but if it does not have lighting, running water and sewerage, then at the first opportunity you will leave it in search of more comfortable housing.

Game mechanics, at its core, is a set of rules by which the game will function. What action will happen if the player takes this bonus? If the player touches an enemy, what will happen then? Will he lose health from this contact, or will it only happen after being hit by an enemy? If the player walks up to the car, will they be able to get into it and drive? Will the player be able to build something or at least move objects? There may be hundreds or even thousands of such questions. The answers to all these questions will be the game mechanics.


Objects

The basis of all mechanics are game objects. The main character of the game, computer opponents, secondary characters (NPCs), power-ups, movable objects, scenery - all these are game objects with their own properties and possible actions.


Control

Game mechanics determines which keys will control the main character or the main game object, what action will take place after pressing a particular button. This also includes the laws of behavior of game objects (physics engine) and the behavior of enemies (artificial intelligence).


Physics engine


If "control" is responsible for the movement of the character under our control, then the physics engine is responsible for those movements that occur without the direct intervention of the player. These actions imitate the physical laws of the real world (sometimes a little distorted towards fantasy). A thrown ball bounces off the floor, an overturned barrel rolls down an incline, a shot from a powerful weapon throws the shooter back, a fragile object thrown from a height shatters - these are all examples of the action of a physics engine.

In ready-made game engines, physics engines are most often implemented. You just have to assign ready-made physical characteristics to your unique objects: weight, density, elasticity, destructibility. If you decide to create your own physics engine, then for this you will need a talented programmer who understands the principles of object-oriented programming (OOP) well and knows a little about classical physics.


Artificial Intelligence (AI)

AI is responsible for the behavior of computer enemies or allies.

The role of AI varies greatly depending on the genre of the game. In action games, the actions of enemies are extremely primitive; in RTS strategies, a couple of dozen scripts are enough to give the opponent an apparent reasonableness; in stealth, slasher and fighting games, you need to create a unique behavior system for each type of enemy, otherwise stupid enemies will make the game uninteresting. A serious strategy game requires a lot of AI work, and in simple casual games and online projects focused on battles only between real players, artificial intelligence is not needed at all.

4. Levels


The rules of the game in the form of game mechanics are ready, now we need to create platforms where these rules will start working. The created game objects are placed in separate virtual spaces - levels (locations). Games most often contain many separate levels, the transition between which occurs in the course of the story. But recently, thanks to the increased performance of computers, games have been released with one large whole world, only conditionally divided into different locations (GTA, Skyrim).

At each individual level, game objects, walls, platforms, scenery, backgrounds are placed. Levels are created in games of all genres. Even in a simple casual game of rearranging colored pebbles, there are levels - playing fields and arranging stones act in their role. In browser games, individual html pages act as locations.

If, again, we imagine the game in the form of a house, then the construction of game levels is the layout of the floors, and the number of levels is the number of storeys of the building.

Doing level building level designers.

Ideally, level designers are taken from among avid players. This is because any other person from the outside, even if creative, but very far from the topic of games, will not be able to cope well with this task. The level designer must have a good idea of ​​the gameplay and feel how the game situation will change from the movement of objects on the level.



Quite often, the game comes with a level editor, with which ordinary players can create new maps and levels for themselves. Game developers support the distribution of homemade maps to players and often put the best work on their official servers. Level editors are created not only to entertain players and increase the lifespan of a single game, but also to find the most talented people among the game audience. Thus, game studios solve their staffing problem. As mentioned above: the best level designer is an avid player.

It is from the design (not the design, but the layout) of the levels that the most important component of the game depends - the gameplay. (This rule does not apply only to most casual games, fighting games and sports games where the levels are extremely primitive). Uninteresting and monotonous level layout ruined many games with great design, backed up by the latest technology. If you want to create a full-fledged exciting game, and not a dummy in a beautiful wrapper, then you need to spend maximum creative effort on level design.

5. Decoration


Are engaged in the creation of graphics painters, game designers.

Of course, if you are developing a simple 2D game, then you can draw something from the pixels yourself, but in more serious and large projects, it is better to hire professional artists and designers.


arts

First you need to create images of heroes, enemies, game items, backgrounds. Initially, they are drawn either on paper or on a computer using a graphics tablet. For small game studios, this stage is not mandatory, but it is simply necessary in large companies, so that not on the fingers, but on visual images, to explain to all designers what they should end up with.


2D, 3D models

Based on the art, designers create either 2D sprites from pixels or 3D models from polygons.



Animations

For game objects that will move during the game, animations are created. It will be especially difficult with heroes and enemies, the number of animations of which sometimes exceeds a whole hundred different movements.

Currently, to create humanoid 3D characters, there is a special technology "Motion Capture", which allows you to create animations based on the movements of real people. This technology is available only to large and very rich companies. To use Motion Capture, you need not only to purchase expensive equipment, but also to hire a group of actors from whom motions will be recorded.


backgrounds

With backgrounds, everything is much simpler - I drew once, put it in the right place on the level without any changes, and forgot.


special effects

Visual effects are essentially the same animations, but instead of moving objects, they use the movement of particles and filters. Rays of light in different directions when taking power-ups, fire on a burning building, a smoke screen after a grenade explosion, laser beams from the muzzle of rifles, the imposition of blur filters when underwater and blackout filters in poorly lit places - all these are special effects. Without such effects, the game will seem bland and too mundane. The use of special effects adds brightness, richness and expressiveness to the game.



Screen and menu design

It is necessary to design not only game levels, but also a system that combines them into a single whole - the game menu (lines, buttons, settings pages). The initial menu is generally the hallmark of the game, and it should look perfect. The game screen also has many elements to which you can apply the design - the number of lives, lifebar, minimap, quick action menu, hero inventory, task lists, dialogue screens. In English, all this is called one abbreviation - GUI (Graphical User Interface - graphical user interface).

Interface and menu design painters, programmers and html page designers. (Site site)

6. Plot


It is very difficult to attract a player to your project, but it is even more difficult to make sure that the player goes through the game to the end. Any disappointment, boring or difficult place can instantly push the player away from further play. In most cases, the player will leave and forget the game without any regret. And only a well-written high-quality story can make the player gather strength, go through the whole game, which means listening to your interactive story to the end.

At the dawn of its existence, computer games did without a plot, dragging players only with their gameplay. But at present, even the simplest casual game is screwed with a plot, not to mention large AAA-class game projects.

Although, the existence of a plot in the game just for show does not give any positive effect, the developers continue to come up with more and more new stories, one more stupid than the other. A story is only useful if it can hook the player's feelings. This requires the uniqueness, interestingness and plausibility of the plot; each character must have their own unique personality, and act according to it; there should be no more characters and events than the human brain can perceive, otherwise the plot will turn into an incomprehensible vinaigrette; events should occur logically (mysteriousness and nebula are welcome to maintain plot intrigue, but at the same time there should be logic hidden from the player).


Scripts, events

The best option is when the story exists right inside the game. This is achieved through the use of scripted scenes.

The script is the following: the player enters a certain place, or performs the necessary action, or some other necessary conditions are met, and after that the actions programmed by you for this case begin to be performed. For example, in a military 3D shooter, we rise to a hill, approach the installed machine gun (the condition is met), 10-15 seconds after that, an enemy massive attack suddenly starts below, and we have someone to use the machine gun on (events have occurred).

With the help of scripted events, you can add variety to the gameplay or even turn the game into an attraction of never-ending scripts (this is what the Call of Duty series of games is built on). The only disadvantage of this method is that the player's freedom of action is reduced. Everything happens at the behest of the scripts, and depends little on the actions of the player.

Thinking through scripts screenwriters, and their implementation programmers.


Dialogues, narration


In the old classic games, the story exists apart from the gameplay. For example, when loading or finishing levels, we are introduced to the storyline, talk about the relationship between heroes and enemies, explain what needs to be done on the level and why. In the process of the game itself, none of the above matters, and the player can safely skip all these texts. Most often this happens - the texts remain unread. And all because there is no good reason to read them.

Another thing is in-game texts or dialogues. They take place during the game, but in safe places, or with game time stopped so that the player can only focus on the text. The player has to listen to the narratives, as the game freezes for this time, but does not stop at all. And in the dialogues, you also need to choose the answer option. Choosing an option gives interactivity to listening to the text and at least some practical meaning - the right answer can bring an additional bonus, make it easier to play further, or save the chosen character of the hero in role-playing games.

When creating a game, it is better to store the texts of narrations and dialogues in separate files that are loaded during the game. Separating artistic text from technical codes will help in the future if you decide to create a localized version of the game in other languages ​​of the world.

Writing texts and dialogues screenwriters and writers.



video inserts

Between the levels of the game or at certain control points of the levels, instead of dry text and voice acting, you can show players video inserts (cutscenes). Such intros can be created either with the help of separate video files or with the help of a game engine.

Video files allow you to transfer a picture of any quality and complexity to the player, but when creating a game distribution kit, they take up a lot of disk space. Intros created on the game engine are almost as good as pre-rendered videos in terms of quality, but to view them well, the player must have a powerful enough computer, which is not always the case.

Are engaged in creation of video inserts painters, animators, 3D modelers, screenwriters, directors.

7. Sound

A beautifully drawn and spectacularly designed project silently looks at us, and waits for us to add sound to it. This is another important part of the game.


Sound effects


For any small game movement, you need to add the appropriate sound. These can be sword strikes, hand-to-hand strikes, the sounds of a car moving, receiving a bonus, detecting a hero by an enemy. Don't think it's overkill and you can get by with just a few basic sounds. For example, in most 3D-Action games, the addition of footstep sounds of the protagonist and enemies is neglected. As a result, when viewed from the first person, it is clear that the hero is moving in space, but it seems that he is not walking, but smoothly gliding forward. And enemies without voiceover steps at all can completely silently run up to the hero from behind and greatly spoil the nerves of the players.

Good sound effects not only fill the silence, but are an extension of the graphical style of the game. The merry arcade is filled with no less cheerful melodic sounds, the sports car simulator is filled with the roaring rumble of engines and the clanking of brakes, the 3D action movie stuns with machine-gun bursts, falling shells and clattering bolts of rifles.

Most often, real sounds recorded in digital form are used as sound effects. There are many free collections of sound effects on the Internet, you just need to find them and choose the most suitable ones.


Music


In addition to sounds, for a full-fledged game, music (soundtrack) is also needed. It will be the sound background for what is happening on the screen. Music is also one of the stylistic elements of the game, and it has the strongest influence on the player's mood. Ready music needs to be chosen for a long time according to the appropriate tempo and mood. There are many free and paid collections of game backgrounds that you can use in your game (article " Music for creating games"). Or you can order composers to write new music specifically for the game.


voice acting

The third sound part of the game is the voice acting of game dialogues and monologues. This component is very expensive, but its presence in the game is not required. In some games, there is almost no dialogue and text, and where it is, it can be left unvoiced in the form of text subtitles. Small games do without voice acting at all, and in large projects they even invite world-class professional actors for voice acting.


The presence of music and full-fledged voice acting in the game significantly increases the volume of the finished game occupied on the hard drive, but if possible it is better to add voice acting to the game. This will increase the player's involvement with the story and the story you're telling, as most players ignore and don't read the normal unvoiced text at all.

8. Sanding


The process of developing a big game is built in such a way that different specialists are engaged in its various elements. At the initial stage, the game is a disparate set of creative developments in various areas of art: images, sounds, 3D models, architecture, texts, scenes, video inserts, design. And finally, there comes a moment when the scattered stones need to be collected. With the help of software, disparate objects are combined into a single complex system.


Mixing material (a-version)

When building a game on a game engine, the merging of objects occurs gradually from the very beginning of the process. Until the game is completed, it is called the alpha version. At this point, it is already possible to test individual levels, scripts and other mechanisms.

At this stage, it is already technically possible to release a demo version or at least a video with the gameplay in order to attract players to your project in advance.


Troubleshooting (b-version)

When the game is fully assembled, it remains only to eliminate the resulting errors (bugs). They appear in any case, since the game is a system with a complex structure. The elements of the game themselves are clear and simple, but the connections between them are so complex and ornate that the process of debugging and fixing errors can take up to 40% of the entire project development time. A fully assembled but not yet bug-checked game is called a beta version.

Looking for bugs in the game testers. Very often, groups of ordinary players are involved as testers, and this is the beginning of their career in the gaming industry. The easiest way to solve this problem is in online games - developers organize open beta tests, in which all interested players participate.

9. Sale


The development studio is responsible for the creation of the game and all creative issues, and all other issues (credits, finances, contracts, protection of rights, promotions, localization, sales) are usually shifted to the shoulders of another organization - the game publisher.

Relations between developers and publishers can be very different: an agreement on cooperation on equal terms; all rights, financial risks and possible profits belong to the publisher, and developers only receive their small percentage of the profits; all rights belong to the developers, the publishing house is a separate company temporarily hired by the developers; developers and publishers are different divisions of one large corporation.


Before a game can be sold to an end user, publishers first need to be made aware of the game's existence. Of course, people can buy a game without knowing anything about it at all, just by choosing at random in the store, but the chance that your game will be chosen in this way is extremely low. It is much more profitable to spread information about the game through all possible channels. To do this, they use either advertising in a computer disk store, or advertising on Internet resources.

The gaming industry is not like the market for ordinary goods, it has its own characteristics. Information among the active gaming audience spreads at lightning speed and covers everyone around. With this feature, the most effective advertising for a game is its high quality. If your game is interesting and exciting, then game magazines and online information portals will write about it completely free of charge, players will begin to discuss the game and spread information further and further, and after completing the first game, they will look forward to additions and continuations of this project. Thus, without spending a single penny on advertising, but earning the respect of the players, you will ensure the success of both the current game and all subsequent additions.


Localization

Have you released the game in your native Russian language? Get ready for the fact that the audience of potential players will consist of only a few countries, and the profit will be meager. It is much more profitable to release a game in English - its text will be understood by most of the players around the world, these players will be much more solvent, which means that the profit will be an order of magnitude greater.

Ideally, you need to release the game in several of the world's most popular languages ​​\u200b\u200b(English, German, French, Spanish, Chinese, Japanese), but for this you need to have a whole staff translators and localizers. Moreover, it is desirable that the translators were native speakers. They will be able to transfer the maximum meaning of the original text into their native language. But ordinary lonely developers do not have such a luxury, and most of the large companies are in no hurry to spend money on this business.

Separating the artistic text from the technical part of the game will help to significantly simplify the localization process. To do this, you need to place texts, subtitles and audio voice acting files in separate, easily accessible files of standard types. And in the program code of the game, you only need to leave links so that the text is loaded into the game from these files. The most popular games are translated by enthusiastic players on their own, without any involvement of developers. The division of fiction text at the stage of game development will greatly help such enthusiasts to do their good deed.


Sale system


The game is ready, the players are waiting for its release, it remains only to decide how to deliver the game to the end users and take money from them.

The classic way (producing a large number of computer disks and selling them through retail stores) is still relevant, but it is only suitable for large companies and for games that have at least some initial popularity.

For small groups of developers, distribution of the game through digital distribution systems (large online stores) is ideal. This option provides a newly minted little-known game with a ready-made audience of buyers that has formed around the service. The most famous example is the Steam service. Thanks to the huge audience of players using Steam, almost every game released on this online store immediately becomes world famous.

Or you can easily create your own online store with one single product - the created game. But in this case, you will have to advertise not only the game, but also the store's Internet address, and win the audience on your own.

10. Support

Creating a game and selling it is not the end of the life cycle of a game project. Once the game is in the hands of end users, players may still need your help. Large companies even have entire technical support departments dealing with such issues.


Release of patches

The previous beta test eliminated the most obvious bugs from the game, but this does not mean that they are not left in the game at all. It often happens that the massive use of the game reveals smaller and more subtle bugs that small groups of beta testers could not find. These may be problems due to incompatibility with less popular hardware brands, or errors due to unnatural use of gaming features. The imagination of some players exceeds the imagination of the developers, they can take actions in the game that the developers could not even think of.

All this contributes to the fact that often you have to make bug fixes in an already finished game. These fixes are called patches and the term is very common in the gaming industry. Few people manage to immediately release perfect games, most often the games are brought to the ideal after their official release.

If for the game you received money from the players for each copy sold, then for the release of patches you receive absolutely nothing. From a market point of view, issuing patches is a wasteful and useless action that does not have to be performed. But in the realities of the gaming industry, if you do not support your product to the end, you get a bad reputation with the players, and lose possible future profits. Despite being free, releasing patches is a very useful and necessary thing.


Add-ons release

An interesting and exciting game without serious flaws and errors gives you the green light for further creative activity. Have the players accepted your game product with a bang? This means that you can prepare an add-on or a full-fledged second part for an already finished game, and the started plot can be developed further, turning it into a whole epic or even into a full-fledged game universe.

We take a game development plan and begin to create a new work of art according to the same ten stages, but now fully armed with the accumulated experience and acquired skills.


Achievement "Honorary reader site"
Liked the article? As a thank you, you can put a like through any social network. For you it is one click, for us it is another step up in the rating of gaming sites.
Achievement "Honorary Sponsor Site"
For those who are especially generous, there is an opportunity to transfer money to the account of the site. In this case, you can influence the choice of a new topic for an article or passage.

Modern major games are created by many years of work of a team of experienced programmers. To create your own game, you need to understand programming and have some experience. But it is possible to create a simple computer game without professional skills.

There are special programs on the basis of which it will be possible to develop your game. One of them is 3D Game Maker. It has a simple and user-friendly interface. You can create a simple game in just ten minutes. The program will prompt you to select the genre of the game being implemented and the number of required levels (up to twenty). The main character can be selected among ready-made avatars. At this stage, you will be able to launch the game and try to play. Then add an interesting plot, enemies, model attributes, etc. The program is ideal for beginner game developers. Its cost is $35.


There is another game development program that both beginners and experienced programmers can use. It is called 3D Game Studio and has a wide range of tools for implementing games of any genre and level of complexity. The program has a package of templates, attributes for creating interiors and effects - mirror and transparent planes, shadows, etc. Novice developers are provided with ready-made elements of the game menu to choose from. The engine for beginners costs $70, while advanced programmers will have to pay $900. If you don't like 3D games, check out Game Maker. It will allow you to create a high-quality game in 2D format. You will be prompted to select objects and come up with an interaction between them. The user has the ability to draw images in any graphic editor and import them into the system. The program contains many interesting effects and sounds. The menu is simple and convenient, so the program is ideal for beginners. The Stencyl Works program is designed for more experienced programmers. A novice user can also work on it, but he will have to face some difficulties. More experienced users can create their own blocks. If you know the Action Script 3 programming language, you can write your own script for the game. You can publish your games and share with them on various portals. If you wish, you can find sponsors who can buy your product. If you want to create a professional and high-quality game, study the main game genres and choose your genre to create an authoring program. Write a good script. This will take most of the time. Think over the script and each plot in detail. Describe the visual image, graphics, compose the game menu. After that, evaluate the complexity of the written program in order to choose the right engine to create it. If it is relatively simple, use the Creator program. If you're pretty good at programming, make a game based on the Neo Axis Engine. This program has received a lot of good reviews and is suitable for creating games of any level of complexity. Download the program and start creating the game. If you are completely new, practice and create some easy games. If you have the opportunity, ask your fellow programmers to help you write the code for the game. If the script is well designed, it will not be difficult to make a program.

On the Internet, you can find many different programs for creating games. Most of them can be downloaded for free. Before creating serious games, practice on free programs and understand the essence of development. After that, it makes sense to buy a suitable engine and start working on creation.

Harsh criticism immediately after release - such is the fate of many modern video games. Whether it's small but exciting online applications or global projects with a budget of more than a million dollars, they all cause dissatisfaction with one category or another of users. That's just most of the criticism today, unfortunately, is not objective. Far from the basics of creating computer games, people scold that even theoretically it is impossible to present it differently than the developers did. We will try to correct this injustice today. So, let's begin.

Let's form a concept

The first step in creating any game is defining its concept. What will the project be about? What genre and theme will it belong to? What audience should be targeted? By answering these questions, you can set the direction for the development of your creation, understand what goals you want and can (with due diligence) achieve. So, focusing on fights or competitions guarantees increased interest among gamers, on learning or logic - the absence of serious competitors. The choice in favor of a fantasy or post-apocalyptic world will contribute to the comfort and quick adaptation of players (because these universes are familiar to them), comics or anime - a narrower (but also more devoted) audience that will not run away when a similar project is released.

Decide on the possibilities

The next step in creating a gaming masterpiece is to realize your own capabilities. As a rule, at this stage, developers determine the maximum allowable budget for the project, choose the engine on which the development will be carried out, or select the most suitable programming language, and also evaluate the available resources (both technical and human). It is necessary to decide on all these nuances in advance. Otherwise, you may encounter a situation where, after developing, for example, a spectacular super-hit with an original eyeliner from a whole chain of quests, it turns out that there is no way to implement this brilliant idea within the framework of this project.

A variety of engines and platforms - there is something to think about

Let's calculate the mechanics

In-game mechanics is one of the most important components of any project. While the graphic component is designed to attract the attention of players, to interest in a new project, the task of the gameplay is to forever leave a mark on their hearts. A striking example of this is Stardew Valley, a pixel-art farming simulator that topped the top sellers on Steam from the first days of its release. It is necessary to understand that attention should be paid even to trifles. For example, if the game has a class division, a clear bias in favor of one or more factions is unacceptable, and the more opportunities the project provides to the player (quests, pumping, puzzles, etc.), the longer he will not want to leave the game world. Moreover, not only the character himself needs to be worked out, but also all the objects surrounding him, such as: NPCs and enemies (), scenery and objects (physics engine), levels and everything else.

Come up with a plot

If earlier the development of online and offline projects was approximately similar, now at this stage the first cardinal difference appears. Thinking through the plot of the game, you must be clearly aware of its time frame. While single player focused projects rarely take more than 1-2 months to complete, online multiplayer games tend to have no end. Therefore, the plot here should not have a logical conclusion, but be served with an open ending, which can be delayed weekly / monthly by adding new quests, items, skills. In single-player games, the ending has been worked out almost from the first days of work on the plot. At the same time, it should not leave open questions (unless, of course, you plan to release a sequel to the game) and some omissions, although it can be alternative (as in Silent Hill 2).

Let's create a design

Having thought through all the nuances of the project frame, you can move on to its graphical component (interface, sound, backgrounds, art, special effects, animations, etc.). Particular attention should be paid to the direction of the game. If it is assumed that updates for it will be released quite often (for example, once a week), it makes no sense to create art with detailed elaboration and animation, numbering several tens (or even hundreds) of movements. The simpler the characters are designed, the less jambs you will get when introducing them and the less effort you will spend on regular releases. In the case of rarely updated or offline projects, as a rule, the opposite is true. The more developed the virtual world and the player's spectacular movements / skills, the more chances the game has to attract the attention of a wide audience.

We understand that the work has just begun

Do not think that work on the game is completed after its pre-release. On the contrary, from this moment on, the developer acquires additional responsibilities. He must test his product, detect and eradicate bugs in it, adequately advertise his creation and create a certain image in the minds of the players, start developing possible add-ons, DLCs and localizations, think over the system of sales and player support.

As you can see, the work of creating a game requires a lot of effort. Therefore, before scolding the next release, think about whether it is really that bad, or whether you yourself endowed it with unrealizable features.

Every person dreams of doing something in his life - for this he chooses the profession that will allow him to do what he loves and contribute to the area that is important to him.

However, not everyone can just take it and become a game developer, because this profession requires a lot, and in return it may not start giving away right away. But how did an oh gamer not dream of creating their own game someday? Now this opportunity has become much closer.

Main hurdle

In fact, the creation of games requires certain skills, but they can be successfully obtained on your own, educational institutions in your specialty and without going through special preparatory courses. Given the fact that the Internet is now a huge source of a wide variety of information, a guide to creating games can be obtained from there. It's only when the average gamer comes up with the idea of ​​making their own game that they start looking for ways and run into the first and main hurdle. For search queries, he is given dozens and hundreds of results with tips and detailed guides, among which you can very quickly get lost, confused and lost. The user starts reading one thing, jumps to another, ends up with nothing to put together and decides to continue playing those games that have already been developed by professionals, rather than trying to create their own creation. It follows from this that man himself is his main enemy on the way to creating his own creations. And here is the question of motivation - if you want to create your own game, then you should not be stopped by the abundance of materials.

Try to systematize them, process them in small quantities, do not rush to concoct a finished project as soon as possible - better understand the theory properly, practice in practice, and then get down to business.

Availability of game building

Today, it is out of the question that game development is the advantage of a select few who have incredible abilities, as it was ten or twenty years ago. Then the creation of the game was a full-fledged miracle, while now it is a banal production process. And now any person who has the proper desire and has certain ideas in his piggy bank can join this process without having a specialized education. You just need to decide what you are willing to give in order to create your own game, because this process is time-consuming and requires perseverance and endurance. Therefore, first decide if you are ready to take on such a project, then indicate all your ideas that you intend to implement, and only then can you proceed directly to the game development process.

The main components of the game-building process

To create your own game, you need a clear understanding of what you need to be able to do.

The game-building process can be divided into two large parts - technical and creative. They are quite different, but if your plans do not include the creation of many hours of masterpiece with unique features, then you can easily manage on your own. So, the technical part of the process of developing a computer game includes writing code, working on artificial intelligence, rendering graphics, designing three-dimensional models, and so on. This half of the process is suitable for those who have a mathematical mindset - knowledge of programming, mathematics and other exact sciences will come in handy. As for the second half of the process, it is no less necessary if you want to create your own game on a computer and want it to be of high quality and unique. The creative process includes the entire content of the game, that is, the game world, characters, objects, locations, combat systems, development, finance, and this also includes the voice acting of characters and the creation of a soundtrack.

The easiest way to create games

There are various approaches to game development, but it is best to highlight three main ones, among which the simplest should be considered first of all. It is worth using if you are thinking about how to create your own game, but you have absolutely no knowledge of programming. To resort to this method, you will need to download a special game designer - a program that already includes the basic functions of creating games. One of the most famous builders is Game Maker, which is fairly easy to learn and has a decent feature set. As mentioned above, the main advantage of this way of creating games is its simplicity - you only need to bring your ideas to life through the opportunities provided by the program. But the main disadvantage here lies precisely in these very possibilities, or rather, in their limitations. In fact, with the help of the designer program, you can create a template game by selecting functions for it from the general list. If you want to bring a little personality to the game, add zest, your own special feature, then you will not be able to do this.

Development of a game on a ready-made engine

You can implement much more impressive features if you have a basic knowledge of programming languages, as well as you own graphic editors and understand what game scripts are. If you have a ready-made game engine, you will be able to create not a template game, but a full-fledged game with your own personality - it's just that its basis will be someone else's, created by someone else.

But everything that you blind around the base - it already depends only on you. Naturally, this way of creating games is much more complicated than using a designer program, but the result is much more impressive. There is a possibility that in order to create such a game, you will have to involve other people in order to share responsibilities with them.

Creating a unique game

But there is also a third way, which is the most difficult, but gives the most impressive result. It differs from the second only in that you do not have a ready-made engine at your disposal, that is, the foundation, the base of the game - you create this engine yourself. This means that everything in your game will happen and look exactly as you programmed - down to the smallest detail.

You will have to write the game literally from scratch, in which case you will definitely need a team of specialists, so that everyone is responsible for their area: graphics, physics, programming, story, and so on.

New branch of the industry - mobile games

If you want to try something simpler and less global, then the ideal option for you would be to try to create your own game on Android, since mobile games have recently become no less popular than computer games, but they require much less time. and resources. You just need to know the java language and understand the principles of applications.

flash games

Another possibility to create simple games is flash. Such games have long been called "flash drives", there are a lot of them on the Internet, and their distinctive feature is simplicity and unpretentiousness. You can create your own game for girls or boys, you can try yourself in other genres, which are very numerous for such games. The main thing is desire. You should not make games "create your character and go to the unknown" - it is better to work out the whole game properly so that the gamer is satisfied with the result.

Share with friends or save for yourself:

Loading...