8 - 10 weeks
We expect you to be on track for a 1st class degree with an interest in game development, agent systems and machine learning. You must have experience with Python, C++ and familiarity to some degree with Unreal Engine 4 development. Experience with Visual Studio, C# and CMake and developing C++/Python extensions or embedding Python with pybind11 (or other) will be a plus.
This challenging project aims to integrate a Python-based agent framework that has been developed at RHUL with Unreal Engine 4 (UE4). With recent successes in reinforcement learning and other online learning approaches there has been much work on developing environments to test new and state of the art algorithms. UE4 provides the perfect development environment for building complex 3D games and physical simulations that are challenging for these algorithms. Many of the libraries that are used to develop these machine learning models use Python APIs (Tensorflow, Pytorch, Keras etc). There have been attempts to combine powerful physics/game engines with machine learning technologies with varying success (see Unity-MLAgents). We believe our agent framework can provide a bridge between the two. The student is tasked with: 1) Developing a UE4 plugin that will provide a direct binding between Python and UE4 (C++). 2) Develop a by-directional API (i.e. from both Python and C++) that adheres conceptually to the agent framework. 3) Test and demonstrate this by developing a simple game (2D or 3D) in UE4 and a Python agent that is able to act in the game.