NewSheriffInTown
Make My Day...
CentCom
Awesome Player
M.C. Play Testers
The Wiki Bar
M.C. Youtubers
- Joined
- Jun 20, 2014
- Messages
- 3,488
Major Command Roadmap
UPDATED: MAY 5
This is the roadmap we have right now.
This roadmap is dynamic and will continually change as we progress.
Things will be added, and some things may be removed. So this should always be considered just a guideline as we move forward.
I will try to keep it as up to date as possible.
I have added a preface to each section to help explain it better.
This is the roadmap we have right now.
This roadmap is dynamic and will continually change as we progress.
Things will be added, and some things may be removed. So this should always be considered just a guideline as we move forward.
I will try to keep it as up to date as possible.
I have added a preface to each section to help explain it better.
STAGE 1
STAGE 1 is the most essential step to complete - we can not deploy anything from STAGE 2 until STAGE 1 is complete.The current website is a bit of a tangled up mess, so in order to make changes without breaking something, we need to untangle everything, and separate the various components in to their own separate containers. Because everything is tangled up, then if we change a bit of code with one thing, it may inadvertently and unexpectedly affect something else.
It's like taking a jar of mixed jelly beans and separating all the colors in to their own container. That way if we change something with the red jelly beans, we know it won't affect the yellow ones.
# Untangle and isolate the various parts of Major Command
- Detangle and isolate the various components - starting - in progress - completed
- Place each component in to it's own separate container - starting - in progress - completed
- Get a new server to have a clean start - starting - in progress - completed
- Configure the new server to run all of MajorCommand's containers - starting - in progress - completed
- Create code so MajCom can run all these new containers - starting - in progress - completed
- Migrate all the separate containers to the new server - starting - in progress
- Test the new site, and test again - starting
- Switch the live site from the old server to the new one (may require downtime)
- Decommission the old server
STAGE 2
STAGE 2 is where you will start seeing improvements and changes as players. These fixes and improvements will be the most visible.Please note that even if something in STAGE 2 is marked completed, it can not deployed until STAGE 1 is fully done.
Once we have done the separation, we can work on the various parts of the code, without fear of breaking unrelated sections of code. So far there are 3 areas of code that we need to work on. MajCom is made up of a lot more than just these 3 areas, but to start with, these are the sections we will focus on first.
# The new game engine: Is basically everything to do with how the game works.
- MAJ-01: Find and hire a new developer to help with backend programming - starting - in progress - completed
- ENG-04: Implement a schema versioning mechanism with Flyway - starting - in progress - completed
- ENG-30: Engine resolution schema and gateway access methods - starting - in progress - completed
- ENG-31: Resolve the engine HTTP endpoint when proxying a request - starting - in progress - completed
- ENG-12: Update the engine details on service startup - starting - in progress - completed
- ENG-07: Engine resolution schema and engine access methods - starting - in progress - completed
- ENG-23: Create an endpoint to retrieve the rank that matching a score value - starting - in progress - completed
- ENG-18: Engine continuously restarting due to duplicate actor names - starting - in progress - completed
- ENG-25: Expose legacy score endpoint - starting - in progress - completed
- ENG-50: Separate the GameMap from the Game - starting - in progress - completed
- ENG-35: Search maps should be dynamically loaded from the database - starting - in progress
- ENG-42: Materialize the game state after each action
- ENG-44: Load game from materialized version
- ENG-43: Unload game when doesn't need to be in memory <-- This should stop the "games not loading" issue
- ENG-45: Gateway-only resolution of the game engine
- ENG-11: Implement the scoring system
- ENG-46: Replay game actions
- ENG-47: Improve error handling
- ENG-48: Improve bootstrapping code
- ENG-49: Make the engine stateless
- ENG-51: Load single copy of each map version
- ENG-40: Engine statistics
- ENG-41: The chat shouldn't be modelled as a game action
- ENG-39: Game tournaments
- ENG-38: Medals
- ENG-52: Multiple engine support
- ENG-53: Implement system health checks
- ENG-54: Game diplomacy
- ENG-55: Create a more compact game map representation
- ENG-21: Deploy the fix to the bombardments
- TEC-01: Implement email turn notifications for players
# UI (User interface): This is about the look, feel, and functionality of the all the pages on the website.
- Find and hire a company to work on the frontend and UI - starting - in progress - completed
- Rebuild the website's interface starting with /beta pages only:
- Create a mock-up of the current UI - starting - in progress - completed
- Rewrite UI in modern framework like Angular - starting - in progress
- Identify data needed to make UI functional - starting - in progress
- Create new API endpoint needed for each component using Laravel - starting - in progress
- Rebuild the website's interface for all pages except /beta pages:
- Create a mock-up of the current UI
- Rewrite UI in modern framework like Angular
- Identify data needed to make UI functional
- Create new API endpoint needed for each component using Laravel
- Fix current issues within the gameplay area
- long list of issues and improvements
- TBC
# New map management: This is only about uploading and creating new maps.
- Implement a way to upload new maps
- Implement a way to define map settings and special features
- Implement a UI for map makers to manage their maps from the frontend
I hope this give everyone an idea of where we are, and where we're going. This is will be updated whenever something changes.
Last edited: