Choosing a Game Dev stack 📋 [thorough list of options]
Tags: perforce, gamedev, unity3d, godot
Published: 2023-09-28 17:41:18

Choosing the right game dev stack is no easy feat, particularly how everything will fit in the release pipeline. 

Here are some KEY areas where the right software can make a difference:

- Game engine
- Audio design
- Artificial intelligence
- Physics
- Animation
- Multiplayer
- Other specialized rendering
- 2D and 3D art modelling
- Project Management
- CI/CD

## Game Engine

Popular game engines like Unity, Unreal Engine, and Godot provide developers with powerful and flexible tools to bring their game ideas to life. When choosing a game engine, consider factors such as your target platform, programming language preferences, and available resources. For a more in-depth look at game engines, check out [Best Game Engines For 2023 – Which Should You Use?](https://gamedevacademy.org/best-game-engines/#Honorary_Mentions) from GameDev Academy.

## Middleware
Sometimes a game engine will meet most of your needs, but fall short in one or two areas. GamesRadar explains that game engines have a modular nature, which allows game devs to improve or adjust the game engine’s functionality by adding software. That additional software is called middleware and typically focuses on a particular area, such as audio, where the original engine underperforms. For a quick intro to common middleware tools watch: [A guide to the first 15 seconds of every game](https://www.polygon.com/videos/22791250/guide-to-the-first-15-seconds-of-every-game-middleware-explainer) from Polygon.

## Audio Design
Wwise and FMOD, along with other types of [audio design middleware](https://www.gamedeveloper.com/audio/audio-middleware-why-would-i-want-it-in-my-game-#close-modal), enable developers to create and implement high-quality sound effects, music, and voice-overs. Consider the specific audio needs of your game, and choose software that provides the necessary tools and capabilities for your audio design workflow.

## Artificial Intelligence
AI middleware can be used for pathfinding or to enhance interactions with non-player characters. Kythera AI, Havok AI, and Mercuna are examples of popular navigation toolsets. [AI Middleware: Getting Into Character](https://www.gamedeveloper.com/programming/ai-middleware-getting-into-character-part-5-conclusion) summarizes a series GameDeveloper.com published on character-focused AI middleware and includes overviews of AI.implant, DirectIA, RenderWare AI Middleware (RWAI), and SimBionic.

## Physics
Middleware like Havok Physics offers an SDK that is optimized and proven to be stable so that your team can focus on writing code for your game, and not a physics engine.

## Animation
Similarly, it can be time-consuming to get every small detail of animation the way you want, and predefined animations can get stale. FaceFX creates realistic facial animation from audio files, making face animation a much simpler process. Euphoria is a 3D human animation middleware that synthesizes character actions and reactions in real-time so that, each time you play, the character experience is unique.

## Multiplayer
There are several options when it comes to offloading your networking requirements and leveraging existing solutions for features such as lobbies, matchmaking, achievements, and leaderboards. Some options, like Azure Playfab and Demonware, can be used across platforms to unify your player base. There are also solutions that are tied to a particular console or platform and, while not traditionally thought of as middleware, they serve a similar function. The most notable platform-specific multiplayer solutions are Xbox Live (XBL), PlayStation Network (PSN), and Steamworks.

## Other Specialized Rendering
There are many more middleware tools that either fit into several of the above categories (like NVIDIA GameWorks) or they focus on an area outside those core categories, like these examples:

- Bink and CRI-Sofdec are full-motion video capture solutions that game devs can leverage to create movie-quality cut scenes.
- Simplygon is an automated 3D content tool that reduces and optimizes visual content, allowing artists to focus on quality graphics instead of optimization.
- Speedtree is a vegetation modeling middleware that works with Unreal and Unity.
- truSKY is a real-time sky and weather rendering middleware that works with Unreal and Unity, and includes APIs that can be called from custom rendering pipelines. It is also VR ready, which means you don’t need to do anything extra to get your weather simulation to run in VR.
- MiddleVR is a middleware that works with Unity to simplify 3D tracker setup, warping and blending graphics for the curved VR headset screens, and other tools to help port your game to VR.

## 2D and 3D Art Modeling Software
Creating captivating visuals is essential in game development. 2D and 3D modeling software, such as Adobe Photoshop, Autodesk Maya, and Blender, allow artists and designers to create stunning graphics and 3D models. Consider the art style and requirements of your game and choose software that aligns with your artistic vision and skill set.

## Project Management
A project management tool like [Assembla](https://get.assembla.com/) assists in organizing tasks, tracking progress, and facilitating team communication. Assembla centralizes source code and game assets along with project management features like task assignment, progress tracking, and issue & ticket management. Choose a project management tool that suits your team’s needs and aligns with your preferred workflow.

## Version Control

Version control software, like [Git](https://get.assembla.com/git/), [Subversion (SVN)](https://get.assembla.com/subversion/), and [Perforce](https://get.assembla.com/perforce/), allows teams to manage and track changes to their game’s source code, assets, and other files. It enables collaboration, facilitates code merging, and helps maintain a history of project revisions. Select version control software that integrates well with your chosen game engine and offers the necessary features for your team’s workflow.

## CI/CD
Continuous integration/continuous delivery software provides tools for automating your build and deployment processes. While some studios choose to create their own, there are several production-ready options such as AWS, Azure DevOps, Jenkins, and Travis CI. The new Assembla and Travis CI integration allows game devs to easily synchronize their P4, SVN, or Git repositories from Assembla into Travis CI. This integration streamlines the process of developing games, testing and deploying in the cloud.

What other key areas and platforms would you recommend to a beginner game dev?