Language
C++ For the engine development
C# For scripting in game objects
Batch Scripting To setting up and cleaning of the projects
Libraries Used
Overview
Software Engineering 300
My fourth and final Software Engineering project at Digipen. This is the last game project that we will be doing for the school before we move on to our internships. Naturally, this would be the hardest of it all. The objective is simillar to the previous project but we are required to make 3D. This exponentially increases the difficulty for everything, Graphics and Physics are affected the most and so is the gameplay scripting.
The members were: 3 RTIS 6 IMGD -> 4 IMGD 3 UXGD 1 BFA -> 0 BFA
Roles and Task
In this project, I was the Tech Lead and my responsibilities range from developing the main architecture, managing and allocating task to the other programmers.
- Created a build system.
- Used CMake to generate a super build. The solution consist of 6 different projects
- The Engine (Library)
- The AssetImporter (Executable)
- The Editor (Executable)
- The Game (Executable)
- C# Core (The project that has C# code that links to our C++ systems) [DLL]
- C# Game [DLL]
- Used CMake to generate a super build. The solution consist of 6 different projects
- Added and link all the libraries
- With CMake and the package manager, vcpkg, we are able easily install libraries
- Managing the stucture of the project.
- Setup the graphics system (Vulkan)
- Learned the basics of Vulkan and followed a tutorial to speed up the developement of the engine.
- Develop the Audio System
- Create a wrapper for the FMOD Library. A flexible system which the user can choose between 2D or 3D audio, create multiple ChannelGroups and access the system through C#
- Develop the Physics system
- Create a wrapper for the Jolt Library and make utility functions to manipulate Jolt Bodies with the components from an ECS and with C#
- Resource Manager
- An improvement from the previous projects resource manager. Now all assets has a Universal Unique Identifier (UUID) and metafiles
- Mono Hot-Reloading
- Rebuild the C# dll without restarting the engine
- Editor Improvements
- In Game Camera
- In Game UI and Animation