Split the screen double the work - William Chung - Aug 22, 2025


Hello Everyone, I'm William, one of the developers of hyper track, today i will be talking about one of the issues I solved this week

The Problem

While you can play most games by yourself competition is the heart of every racing game, Perfect drifts, close passes and well-timed shortcuts Are great on their own, but they feel way better when someone can watch you do it. This week it was my job to implement split screen multiplayer and boy what a headache that was.

Creating the second or even third player was fully enough the easiest part of this process, all I had to do was make another player controller an unreal did the rest. The most difficult parts were in fact the controller detection logic Adapting the work of everyone else to work with more than one player. 


Problem Solution

integrating the controllers was a unique experience my first idea was adding a menu so the player could pick how much controllers they wanted to be spawned but after some deliberation with the rest of the team we decided it would be quite unique to have our game the trip via motor controllers and create players based on that, the first problem I walked into was how would I even detect these controllers. After some research I discovered a solution:  FCoreDelegates::OnControllerConnectionChange; For those of you not technically inclined this is a delegate, its main purpose is to call all the functions that are attached to it whenever it's triggered and it gives the functions specific information this delegate worked for a little bit until I discovered that it was about to be deprecated.


This turned a great solution into a horrible one luckily though the deprecation message gave me something to work with the IPlatformInputDeviceMapper. This class was extremely useful but a bit of a headache to get started while I had the correct calls to the header, I somehow missed that it required a whole other core modules to be added which required me to rebuild all the project files. Once that was done, I was on the steps to success. 


Now it was puzzle time, my implementation was somehow adding 2 controllers instead of 1 every time I Connected or disconnected it. this made no sense with my logic, so after some testing I found out that I bound the function twice which in turn made it happen twice every time. after solving most of the problems I've managed to make it so anytime you add or remove a controller inside the main menu the amount of players added will change as well


Get Hypertrack

Leave a comment

Log in with itch.io to leave a comment.