Current Project Structure

From MoH:AA Reborn Wiki
Jump to: navigation, search

Some crucial information:

Below you can see how advanced and big our project is. I post this information here for you to see that further development is not a trivial task, and we need to take steps to make it all easier for everyone involved. I am aware that all of you wait for next release, but I've decided that before we release anything, we have to clean things up a bit, because now 90% time that could be spent on development is lost for managing/administrative tasks.

1. Current Project Structure:

·         Reborn Patch

·         Serverside

·         PK3 Modifications

·         Windows

·         Current server-only modifications (C)

·         Clientside-Serverside bridge (C)


·         Linux

·         Current server-only modifications (C)

·         Clientside-Serverside bridge (C)

·         Clientside

·         PK3 Modifications

·         Windows
MoH:RB Launcher & AutoUpdater (C#)
MoH:RB Exe Loader (C++)
MoH:RB Client Engine


·         Reborn Masterserver

·         Packet Encode/Decode Library (C)

·         Engine (Python)


·         Reborn Combat Centre

·         Backend (Java/Grails)

·         Frontend (JavaScript Custom Framework + HTML + CSS)


·         Reborn Mod Framework (Morpheus Script)

Every node needs to be compiled, versioned, built, packaged and put on some sort of server to work. This takes a lot of time, even more when projects have dependencies like Current ServerSide Reborn <-> Serverside/Clientside Bridge <-> ClientSide Stuff or Client/Server .pk3 files.

2. Additional Tasks:

·         Homepage

·         Change information about current versions every release


·         Forum

·         Wiki

·         xNULL FTP

·         Upload modified Homepage related files every release

·         Upload release packages

·         Upload files to AutoUpdate mechanism every release

·         Upload changes to


·         xNULL Dev Server

·         GitHub

·         Managing Reborn MasterServer


Now mix both listings together as they are connected and you can clearly see the amount of work and effort that have to be put every single release or small website change or whatever. Add checking logs, managing passwords to all these server (FTP, Git, SSH, Databases, Emails) and.. well.. you get the picture.

Sooo.. Steps I want to take:

1. Release updated serverside version - it won't include any of Leyok's modifications. It's old base with just crucials fixes and few addons + support for new masterserver.
2. Release beta client with new features
3. Finish setting up GitHub - we have now problem with emailing service.
4. Set up project on GitHub with all dev information:

·         With all passwords & logins

·         IP addresses

·         Configurations

5. Set up Git project for every source code we have.
6. Set up Jenkins for build automation so with one button click it will:

·         Grab code from Git

·         Tag it

·         Automatically compile and build for windows and linux

·         Upload releases to FTP servers

·         Update versions, website files etc.

7. Take Leyok's modified Reborn Patch, make it stable and work under Linux, port changes from old base.
8. Merge PK3 fixes into one file, shared between server and client.
9. Restructure folder scheme for serverside and client side patch so it's more clean and separated from stock 1.11.
10. Create installers and uninstallers + install scripts for Linux
11. Start to work more efficiently in new environment