Game Design Fundamentals
At the very beginning, you should think to whos is your target audience, i.e., who you are making the game for. One of the most significant differences between players is their style. Are they usaul gamers or just casual gamers? While usual gamers play for the exhilaration of beating the game and will tolerate therefore frustration to get to the next level of the game, casual gamers play for the sheer enjoyment. If the game becomes frustrating, they will stop playing and find another game.
Another key point is the game technology we are going to use. The earth in game technology is the hardware we are building the game upon. Currently, the most prominent platform categories are: PC games (Windows and MacOS), Console games (Nintendo Switch, Microsoft Xbox, and Sony PlayStation), and mobile (or web) games (Android and iOS). On top of the hardware, we find the Operating System (OS). These two things together, hardware and OS constitutes the game platform. Moving up the stack of game technology, we find the game engine, which provides resources like graphics rendering capability, physics interactions, networking, ability to read input, and so on. Eventually, we have the game assets, which is everything that we bring in as our game development team: game-specific code, graphical assets, sound effects, and so on.

Different projects have different elements that drive the cost, but the since games are made by people, labor often is the biggest driver of cost on any game project. Another driver of cost is technology. To make games, we often need a collection of hardware and software technology. We need the devices, we need the dev kits, we need things to support that technology, like servers or VR headsets, and all of those things add up, of course. Depending on what we are making, there may be licensing costs for the intellectual property based on maybe a technology or the game engine that we are using. Eventually, there is also distribution costs. Today, we mostly do digital distribution, which leads to paying for the distribution channel, like Steam or the App Store. Such distribution channels take around 30 percent of the cost. In addition, there is also the marketing costs, which means wow we get people to know about the game and convert them into a customer.
From the point of view of the designer, we should follow a top-down approach. That is, we start with thinking of the target audience. Then, game mechanics, graphics and sounds they would find most desirable. Afterwards, we come up with the design to meet those needs of the target audience, and then we work out all those technical details like what platform should we build upon, and what game engine should we use. The makeup of the team will very largely based on the size and scope of the project. So a small size team is composed of one to five people where each person has to take in charge different tasks, like designer, artist, and programmer (which are the core skills needed for every project). Larger teams vary from 5 to 25 people, including specific roles. For example producers that manage schedule, budgets, and communication. The various technical disciplines may need to become more specialized: we may have gameplay programmers, graphic programmers, and networking programmers. For bigger projects there can be even more than 25 people. So we may have leaders or managers in each of these areas like a lead designer, a lead programmer or lead artist. Typical roles are described in the following.
- Producer: he is the project manager, acting as point of contacts among all team memmbers and making sure that they are able to complete their tasks on time and within the budget.
- Concept artist: he creates the concept imagery, driving the creation of the game elements ans the look and feel of the game levels.
- Script writer: he creates scenarios and narrative of the game.
- Level designer: he defines the style and ensures consistency of the game's look and feel.
- Programmer: he translates the ideas into code.
- Animator: he realizes the movement and behavior of game characters and objects.
- Audio engineer: he creates audio music and audio effects.
- Tester: he verifies that the programming is free of bugs and complies with requirements.
