There are many roles in software engineering, and I believe the best way to master any one of them is by building fully functioning projects, and learning as you build. Game Engineering is no different, and I’m going to share a breakdown of the required skills, and also some project ideas.
Basic Skills A Game Engineer Should Know
Math: Trigonometry, Geometry, Algebra, Linear Algebra
Programming: Programming Languages, Version Control, Game Engine/Libraries
Physics: Statics and Dynamics, Physics Engines
Graphics: Graphics APIs, Graphic Optimizations, Rendering, Animation, Texture Mapping, Transformation and Viewing
Basic Algorithms: Search, Sort, Game Specific AI
Terrain: Procedural Generation, Level Design and World building
Game Design: Level Design, Worldbuilding, Game Audio, Networking & Multiplayer, Mechanics, UI/UX
View a comprehensive list of 100s of skills for game engineering
*Project Ideas *
1. Open-World RPG with Procedural Content Generation
Objective: Develop an open-world RPG where the environment, quests, and enemy encounters are generated procedurally.
Techniques: Use noise functions and algorithmic design to create landscapes, structures, and storylines. Ensure that generated content maintains quality and coherence.
2. Physics-Based Simulation Game
Objective: Create a game centered around physics simulations, where gameplay mechanics are deeply tied to realistic physics calculations.
Techniques: Leverage physics engines like PhysX or Bullet Physics for realistic simulations of fluids, cloth, and rigid bodies. Create puzzles or challenges based on physical interactions.
3. Multiplayer Online Battle Arena (MOBA)
Objective: Design a MOBA game with unique characters and complex arenas where players compete in real-time.
Techniques: Focus on network optimization for real-time gameplay, scalable server architecture, and advanced matchmaking algorithms. Implement character customization and dynamic environments.
My FREE gamified resume on Skills Over Paper allows you to gamify your progress as you learn skills by completing projects.