Adventure Game Engine
Description
The “Adventure Game Engine” is made for Point&Click Adventures. It includes the fundamental elements to create a game of this genre.
I implemented some of the game programming patterns I thought myself recently. The engine includes two external frameworks: SFML and rapidXML.
Most impacting Worksamples
XML Import
- Used Framework: rapidXML
- Read assets from drive via XML
- Supported types of assets: sprites, sprite-maps, animations, sounds, fonts
- Create game content combining provided assets and data stored in XML-file
- Assets and Gameobjects are split to save up system resources using the “Flyweight-Pattern”
Graphics
- Used Framework: SFML
- Render-Depth is determined by the order the objects are created
- Custom Render-Layer for special purposes like text, which is drawn after the regular objects
- Distance Scaling based on the player’s y-axis
Input
- The left mouse button performs default action on an object or a move action
- The main character will tell details about an object, using the right mouse button
- User Input and the progression of the game are decoupled using the “Game-Loop-Pattern”
- Sequences are the main pillar to tell the narrative. An active sequence will take over the player’s control until it is finished. A sequence can perform the same action the player can do but contains multiple ones aligned in a row.
Miscellaneous
- Each object has an update method that simulates only a single frame of behavior using the “Update-Method-Pattern”
- Most of the classes do have a base-class to share data among them using the “Type-Object-Pattern”
- The code domain each entity is in is isolated utilizing the “Component-Pattern”
If you like to know more about the project, proceed to the specific blog posts by clicking on: Adventure Game Engine (2018/2019)
Project Overview
Project Type
Third Semester Game Programming Assignment at Cologne Game Lab
Development Time & Current State
6 weeks – Finished
Platform
Windows 64 bit
Genre
Game Engine
Links
Git Repository
Team
Manuel Ott: Programming, Project Lead
My Accomplishments
Besides the framework I used, SFML and rapidXML, and the assets I “borrowed”, everything showcased is made by myself.
Tools
MS Visual Studio, Git
Language
C++