Labrat: How to Build a Reactive Game Engine

Lead Author Major

Computer Science

Lead Author Status

Senior

Second Author Major

Computer Science

Second Author Status

Senior

Third Author Major

Computer Science

Third Author Status

Senior

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

This document is currently not available here.

Share

COinS
 
May 6th, 2:30 PM May 6th, 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.