February 25, 2017 at 6:54 pm #4094
Animation Pagoda StaffModerator
- Topic Count 63
- Replies 0
Game development is a gradual process that requires building up assets and code over the course of many months and iterations. Features are constantly being tested and revised to work better. Developers gather feedback from testers, executives, and other designers and discuss ways to solve arising problems. Careful planning and organization plays a major part in keeping the production moving forward and on schedule.
Game developers are primarily responsible for programming the technical aspects of the game within a framework called a game engine. A game engine is the software that compiles all the graphics, audio, textures and other essential components into a playable game.
Mechanics and Game Logic
Mechanics seem scary to a lot of people since it is associated with programming, but the reality is that good game mechanics depend mostly on using common sense. Game developers should still be able to code, but more importantly they need to understand the subtle nuances of how a game plays. Developers must use their knowledge of other types of games to predict how gamers will react in certain situations, and address any problems that arise when gamers don’t like certain features. Resources will always be limited, so developers work to maximize the payoff of a game with what time, tools, and team they have to work with.
Logic systems are what drives the game programming to respond to player control inputs. The more complex the game, the more convoluted the programming options can get, and the higher likelihood of creating unwanted bugs. It is recommended to start with simple mechanics for your first game. All game mechanics can technically be planned out using pencil and paper, which makes things much easier to deal with when it comes to the programming. Many developers create boards covered in post-it notes or notecards outlining all the assets, variables, and programming requirements for each level.
Architecture and Framework
If you really want to learn the technical details about this subject, Game Architecture by Jason Gregory is the book to read. Game Architecture is essentially the way everything is organized into tiers and nodes that are then linked together in a very complicated manner to produce a game on screen. Unity and Unreal also have a number of introductory tutorials covering the subject.
The core organization principle is the same across all programming languages, but the exact interface setup differs slightly for every engine. Most studios use in-house engines and build their own unique software and tools, so be prepared to encounter different setups at different companies. It takes practice to become familiar with the way everything is organized at a new job, so flexibility is an important trait for software programmers.
User Interface design consists of the menu system, inventory, map, health bar, and skill trees. Few people want to do U.I. design because while controls and navigation are undoubtedly important, it isn’t quite as cool as programming giant monsters or robots. For this reason, user interfaces tend to be neglected until all the other parts of the game have been completed. Throwing together crude user interfaces to port to other consoles at the last minute before a product is shipped out generally results in a bad U.I., and lots of complaints from players. Until game development cycles change from the current frantic production model, U.I. is likely to continue being hit or miss depending on where it ranks in the studio’s long list of priorities.
Combat and Controls
Being able to run, jump, swim, and crouch are basic things players expect from games. A surprising number of game developers don’t include these because they spent too much time working on other features and then ran out of time. Movement should be the first thing a programmer works on getting right.
Combat comprises the biggest portion of the gameplay in most games made today, especially first person shooters. The mechanics of combat are obviously crucial to how well the game is received by players. Over-complicated inventory systems, clunky controls, and quick-time event button mashing are things to avoid. Combat should provide a challenge, but a reasonable one. Different players prefer different styles of game and different degrees of difficulty. Combat systems should accommodate for some flexibility in the way the game can be played.
Many game companies fall into the habit of reusing tried-and-tested formulaic combat systems that are a safe approach, but don’t do anything particularly new or innovative. Hack and slash, run and gun combat can get repetitive. Throwing in unique abilities and items can add to the gameplay experience.
Artificial Intelligence is the programming that determines how the game responds to the player’s actions. Despite all the advances in graphics and game engines, A.I. is still fairly difficult to perfect. Most A.I. can be tricked by the player taking advantage of the computer’s tracking limitations, leading to exploitation and some awkward situations where big scary enemies end up attacking a wall instead of the player crouched in a corner slowly chipping away at their health.
A navmesh lays out the paths that A.I. can traverse. A.I. tend to have an especially difficult time handling multilevel terrain with obstacles like rocks or columns. Navmesh algorithms can involve some rather complicated programming
Behavior trees are logic paths that determine what set of directions the A.I. will follow in a certain order. Finite State Machines and Goal-Oriented Action Planning are the most commonly used types of logic paths, but there are lots of other variations of A.I.
You must be logged in to reply to this topic.