Eyos (In Development)

A RTS game written in C++ with data oriented design in mind. A learning project to deepen my C++ knowlegde.

Eyos is a cross platform (Windows and Linux) targeting 2D RTS focused on managing a massive amount of units. I see this project as a chance to enhance and challenge my software engineering skills. The development of this project is open source and can be found on GitHub. The original network code can be found Netplayground.

My main responsibilities

The network architecture

Up till the change of the core concept my main focus laied on the Network aspect of the game. Therefore I was in charge for the network architecture which supports the synchronization of millions of entities via the network. The chosen architecture was a peer to peerish server-client approach, with deterministic lock step, as described in the article Age of Empire Network Architecture and in the book Architecting Networked Games by Joshua L. Glazer and Sanjay Madhav. The host starts up a dedicated server on their machine and that one confirms the gameplay.

The network code can be found at its new repository: Netplayground.

QA Pipeline

I am working with GitHub Actions. It verifies that our game can be built on Windows (msvc) and Linux (our test environment is Ubuntu) with GCC9 and Clang9 tool chain. Our code gets also tested and verified with clang-tidy and clang format every time someone pushes. Besides, ctest runs our unit tests (Catch2).

Project Information
Type: RTS
Duration: Decemeber 2019 - Ongoing Development
Teamsize: 3 Programmers
Roles: QA Engineer, Engine
Engine: Eyos Custom Game Framework
Platform: Windows & Linux
Languages: C++
Technologies: cmake, clang & msvc, git, bgfx, GitHub Actions, hack’n plan
Avatar
Simon Renger
Engine and Tools / Network programming Student

Write programs that do one thing and do it well. Write programs to work together — McIlroy Unix philosophy

Related