Z-ENG: Online Game for Competitive Artificial Agents
Disclosure for Hungarian students: Hungarian students can also apply.
The project you undertake is to write an application that has endpoints (REST API endpoints, or SignalR two-way channels) that accept any kind of client to send in commands to a common game server, which has its frontend display the state of the game in real time and the commands received from the connected clients in a log-like manner. This way, a contest can be organized for students to write any kind of custom agent that calls these APIs – in order to win the game. The game logic itself should be easily interchangeable, so that in the future different kinds of games can be played. Initially, a simple game like Battleship will suffice. The inner working of the game is outlined as follows:
- The clients need to be registered by (human) users and acquire a secret token (clientId + clientSecret) to be used from the connecting clients.
- The clients connect to the server so that two-way communication is enabled (and the server can call the clients too, not just the other way around).
- An administrator, using the frontend UI, should initiate a new game by choosing the game type, optionally with parameters and choosing the clients which will participate in the match.
- The administrator starts the game, which broadcasts the game state to the connected clients.
- The clients receive the game state, and take turns by sending commands to the server.
- All the while, a “spectator” frontend shows the game state and the AIs battling against each other.
The game, framework and UI should be implemented using ASP.NET Core, Entity Framework and Blazor.
Basic knowledge of .NET and C#