|
|
|
|
|
by istorical
1838 days ago
|
|
The first thing to wrap your head around is that game development is really a collection of multiple disciplines / subsystems / processes / arts that all come together for a single product. Sure making a website or app you have to consider frontend + backend, but with game development there are many parts that you have to spend time on (or at least make thoughtful decisions to de-prioritize). 3D modeling and shaders or 2D graphics and sprites, physics, game logic, sound, networking, serialization / persistence, character animations, story, particles / fx, lighting and post-processing, music...you can find all these different areas you may want or need to spend time with. For a AAA game there are entire teams and functions that spend years on just one chunk of this. Teams and budgets are more like movie budgets than app or website budgets for a reason. Sticking to 2D can help a lot. As can sticking to singleplayer. As can starting with a simple and well-trodden genre. To create Tetris you obviously don't need all of these, but it's easy to come up with an idea that seems achievable at first glance to a novice but quickly realize you underestimated the project even dramatically more than web or mobile app or desktop app developers often do because there are yet more components that take real hours of work with games. RE: engines and technologies, you have to determine if you want to create a 2D or 3D game, if networking / multiplayer matters, what platform you are targeting, and a few other things before you choose an engine. |
|
There are other considerations too, such as input. Also, not all games need all considerations, and sometimes you can use a library or VM code which does some of these things automatically. For example:
- Many games will not need a story; some games are more story-oriented, but some aren't and will work OK without.
- Fancy graphics are not needed for many games. At least in my opinion, I don't like it to waste the disk space and power of the computer. (I also dislike cutscenes.)
- Many games are a single player and don't need networking.
- If a VM such as Glulx is used, then save games, pagination, cross-platform, etc can be handled for you already.
- If an emulation of an older system such as NES/Famicom is used (such an emuluation is also a VM), then such things as networked multiplayer, save states, user-adjustable input/sound/zoom, cross-platform, etc, is already done for you. (See what I mention in the other comment about colours though)
- Libraries such as SDL can be used in cross-platform computer game development, and will handle input (keyboard, mouse, joystick), timing, sound, and display (including double buffering if enabled).
- Some game engines are designed to make specific kind of games, and have advantages and disadvantages. You do not necessarily need to use any existing game engine, but you can do so if it is applicable to the game that you are designing.