Labrat: How to Build a Reactive Game Engine
Format
SOECS Senior Project Demonstration
Faculty Mentor Name
Daniel Cliburn
Faculty Mentor Department
Computer Science
Abstract/Artist Statement
The LabRat project aims to design a game engine based on declarative, reactive programming principles. In other words, developers can say what they want in their game, instead of thinking about how to implement it. Modern video games require more flexibility and maintainability than ever before, both of which we aim to improve by implementing our game engine using the above design paradigms.
There are trends in current software development towards reactive systems in user interfaces. Modern web pages, for example, typically have reactive elements to adapt to the user’s screen size and screen orientation. A good instance which relates to our game would be greying out a login button until the password is entered. Games are more complicated than web pages though, and more sophisticated reactive systems are needed. We decided to adopt a methodology which allows developers to link values in the world together and have them change in relation to other values. Although other game engines have moved towards this style, engines like Unreal are built on years of legacy code. With Labrat, we wanted to explore the possibilities of reactive design in gaming with modern programming techniques.
We have completed a prototype engine which can make use of simple reactive updates. For example, we can link the height of a platform with the distance of the player from the platform. This flexible approach allows game developers to implement game features more succinctly, directly leading to more reliable and expandable games.
We are co-developing the LabRat Game Engine with a demo game to highlight the features and usability of our engine. That game will be publicly demoed during Senior Project Day.
Location
School of Engineering & Computer Science
Start Date
6-5-2017 2:30 PM
End Date
6-5-2017 4:00 PM
Labrat: How to Build a Reactive Game Engine
School of Engineering & Computer Science
The LabRat project aims to design a game engine based on declarative, reactive programming principles. In other words, developers can say what they want in their game, instead of thinking about how to implement it. Modern video games require more flexibility and maintainability than ever before, both of which we aim to improve by implementing our game engine using the above design paradigms.
There are trends in current software development towards reactive systems in user interfaces. Modern web pages, for example, typically have reactive elements to adapt to the user’s screen size and screen orientation. A good instance which relates to our game would be greying out a login button until the password is entered. Games are more complicated than web pages though, and more sophisticated reactive systems are needed. We decided to adopt a methodology which allows developers to link values in the world together and have them change in relation to other values. Although other game engines have moved towards this style, engines like Unreal are built on years of legacy code. With Labrat, we wanted to explore the possibilities of reactive design in gaming with modern programming techniques.
We have completed a prototype engine which can make use of simple reactive updates. For example, we can link the height of a platform with the distance of the player from the platform. This flexible approach allows game developers to implement game features more succinctly, directly leading to more reliable and expandable games.
We are co-developing the LabRat Game Engine with a demo game to highlight the features and usability of our engine. That game will be publicly demoed during Senior Project Day.