Menu

DEVELOPMENT ROADMAP

Below are lists of all current development tasks and ideas for Mankind Reborn. While this may not be your traditional roadmap, we feel exposing the raw information to our community, directly from the Dev Team, will provide the most accurate, up-to-date information as items are created, implemented, thought of, or actively being worked on.

To view items on each list, you can toggle the list to open and close by clicking on the white arrow next to each heading.

Done
...

Influence Generators

Done
...

Territory Controller

Not Started
...

Territory final battles

EVE reference: https://wiki.eveuniversity.org/Sovereignty

Not Started
...

Territory income

Need to refactor and add income to all manager classes, the fundamentals (profits & tax) are already included in the base class. Every 24 IG hours each manager will pay its profits to the owning faction and the world/territory owner will take a % cut out of that. Need to refactor manager costs to include base fees alongside the taxes and also not wipe most of the cost, should only lose around 10%-20% but to upkeep fees.

Not Started
...

Prison system

Not Started
...

Stun weapons

Not Started
...

SYN Content

- Drug Labs https://gyazo.com/9deb0c26b18453ad986c3e0267ff33df

Not Started
...

Trade system

Done
...

Add recycler/scrapper terminal

UI Reference: https://gyazo.com/e61ad3c70a5709817dd9dadc001af7ee Scrapper will break down production materials/produced items into their item requirements, it will give out a random amount and depending on how much requirements it has it will pick randomly between them. The scrapper will have a list of all PMODs and when the player places the item, it will search through the list and once it matches it's PMOD, it will spawn the item and gather it's requirements, then it will calculate how much it will give out depending on the item's durability/decay (if it's a produced item). The price will be calculated from the base production cost.

On Hold
...

adjust mining to discord talk / performance tweaks

- remove overheat, use the bar to display time left to mine - performance tweaks for mining tool & resource manager - adjust the fuel cell ammo to 100 and keep somewhat the same ratio of minerals per magazine - change yields to 1-2 (or do we just keep it at 1?) re-add density to passive mining, but instead of reducing yields, increase/decrease time to mine, depending on density density gets adjusted depending on how much of a mineral is mined in a specific time period, the less density, the more time it takes to mine density value is specific to the mineral being mined, use a struct, save to world data display density value in the mining terminal ui selection

On Hold
...

Revise services economy, apply flat cuts on service revenue

DoneReady for Approval
...

Transfer/Temporary Storage

Players will have 2 new storages to complement their regular storage. Transfer Storage: This just holds pointers to the actual storage, items here will be "tagged" for transfer, once the player initiates a transfer, all items here will be moved to the destination. Temporary Storage: This is where players receive items transferred to them or rewards from contracts that couldn't make it to the regular storage and/or other sources such as market purchases, etc. Players can only retrieve items from this container and they'll auto delete after time (Container will poll on the server every min to see which items need to be deleted) Use GS messaging system for this, if the player is online and on the world where the transfer was sent, spawn the items and place em on the storage, else just add them to the storage data in GS.

DoneReady for Approval
...

Manager system refactoring

Reworking all manager classes to have them prepped up for factional income.

DoneReady for Approval
...

Storage upgrade

Should be able to purchase more storage space, needs to get saved on the storage GS data and also update realtime in-game. Will use the new financials component to store the upgrade details (upgrade amount, purchase timestamp and expiring timestamp). There will be a 1min looping timer in the character financials that handles licenses and storage upgrades, upon expiring and if in the same world, reduce the amount of available storage space by the UpgradeAmount. Look for FoM functionality and UI references. https://gyazo.com/f9462e9b719b59158fb929d30b10a4a5 The upgrades should be saved individually on the storage data, the timestamp will be included and they'll expire in 1 in-game month (Around 7.5 IRL days), each purchase will expire individually, save similar to production licenses timestamps. Based on FOTD's prices, 500 additional spaces cost 4000 UC and it gets multiplied per each 500, so 1000 would be 8000 UC

DoneReady for Approval
...

Add a production limit, similar to how the mining one works

DoneReady for Approval
...

Implement Production Licensing

Production Licenses will be saved in MRPlayerState and handled under PlayerStatsPayload for backend/persistence stuff.

Done
...

Implement a transaction messaging template

Instead of just using the same messages when transferring UC, have templates so each condition has a different message, "You traded 2000 UC", "You bought x items for 1500 UC"

Done
...

Revise how we're using the PMOD data tables

Go over it and make sure if it makes sense to keep it how it is now, double check the calculation price as well

Not Started
...

Current hacking system revision

Go over the hacking system's code, fix redundancies and improve it further. Add events that fire off depending on the hack state that affects the world (alarms, lights, etc). Maybe add difficulties? 4 digits = Low 6 digits = Medium 8 digits = Hard It would require overhauling how the widget is set up, but it's doable.

Not Started
...

Implement cloning system similar to fom

Player loads into cloning and has to wait x seconds while his clone heals entirely, display progress bar and keep track of recent deaths and increase timer per death, allow player to buyout timer with UC Cloning status reference: https://gyazo.com/51ed01dbdd6583493dbe86c36f9f8929

Not Started
...

Implement clone "lives"

Let's experiment with this, implement clones that the player can purchase, and will deplete with deaths, each clone will cost 200 UC, if it reaches 0 and the player has money, it will buy a new clone automatically, else if there's no UC left and 0 clones, the player will be permakilled (prepare cloud code to automate this and safely clean his data)

Not Started
...

Implement different levels of clone insurance

Player will be able to purchase different levels of insurance that will protect the player's items on death, some examples: 1. Lock the player loot for 1 minute, hackable 2. Lock the player loot for 5 minutes, hackable 3. Lock the player loot for 10 minutes, hackable 4. Lock the player loot for 5 minutes, non-hackable 5. Lock the player loot for 10 minutes, non-hackable Could possibly explore with more levels of insurance, protecting armor, inventory, weapons, etc..

Not Started
...

Underlying Animation System

This system will provide the foundation for the emote system, by implementing an easy to use animation interface on which the emote system can safely play animations on the character (Think of fornite's emotes). It will mainly just use a function that allows an anim montage to be played alongside other parameters, such as not being able to move before montage is completed, allow movement, etc, can just pack all that into a struct. The anim will play on the client and then replicate to others using a multicast.

Not Started
...

Emote System

The emote system will allow linking emote commands to anim montages, could possibly have Start and End anims, or maybe let the montage sections handle this. The players will have a list of emotes, similar to pmod licenses, by using a struct to define all data. All emotes will use /commands such as /dance, /sit, but they'll also work off a radial menu to make them easier to use.

Not Started
...

Replace weapon/equipment components for blueprints

Instead of placing the mesh components in the characters, we'll spawn visualization actors that will be attached to the character when equipping the weapon/equipment. This will allow more flexibility and customization with items, such as weapon attachments, etc.

Done
...

Prepare shipping build scripts, ensure EAC is working

On Hold
...

Tweak shadow settings to reduce gridsize

Scalability settings are basically just presets containing different console variable values. The Shadow Scalability setting affects two CVars for volumetric fog (aside from r.VolumetricFog, which enables/disables the effect entirely): r.VolumetricFog.GridPixelSize (Lower is higher quality, but more expensive) r.VolumetricFog.GridSizeZ (Higher is better quality, but more expensive)

Done
...

Testing essentials

Need to go over these features and ensure there's no gamebreaking issues that have been introduced

Done
...

24h restart cycle

Use the session scheduler similar to how it was before, 5am UTC

Done
...

ALT+F4 bringing up quit menu

Done
...

Do a Mars pass

Done
...

Server lockdown to complement 24h restart cycle

A minute before the 24h restart, the game servers will save each player's data and kick them out of the server, then prevent any logins until the servers go back online., there's already some code present in gamestate and gamemode.

Done
...

Fix action bat swapping slots

Done
...

Fix withdraw not working on loot

Done
...

Sometimes the last item in a loot doesn't get removed or the loot container widget stays

Done
...

Add AI drones to ceres public mines

Done
...

Place AI in UC Underground, ensure navmesh works and they can move

Done
...

Q.IsNormalized() comment it out, UnrealMath.cpp, 833

Done
...

Delete item if loaded with 0% durability

Done
...

Replace the AI spawner despawning system with a sphere collision that disables AI ticking when no player is nearby for x minutes

Done
...

Ceres quick pass

Go over Ceres and do a pass on the level streaming, lighting and general stuff

Done
...

Quickly go over all maps and ensure there's no missing managers/terminals

Done
...

Contract system overhaul

Need to change the majority of this, make it more data driven and functional, also need to implement daily contracts that print money Contract Templates: https://docs.google.com/document/d/1iJyTH9RvT_H5DF7KFX9BmQuol8J2KsW5_ug3dLcstFs/edit?usp=sharing Star Citizen References: https://gyazo.com/a2dbb26858f4cb44fde5253c0f39921a https://gyazo.com/09bd08b47e8d68b71102a3ccc17b7cb3 https://gyazo.com/d259c61d2752267c61980f1f182bc325 https://gyazo.com/346ab1cfe41ba239e3fd78e8fa4d60e1

Done
...

Re-implement old contract system for income

Let's keep the current contract system to have a way of earning income, add a few more contracts as well, remove the visit location ones and just use trash bag collecting

Done
...

Finish adding all possible contracts to the data table

Ready for ApprovalDone
...

Replication Graph

This should greatly improve the server's performance as it will split the world into grids, essentially spatial partitioning, but I still need to do a lot of research on how this works, there's already some code written but need to go over it and also implement the visualizer/debugger to see what is going on

Done
...

Second authentication when entering a server to grab account role

0 = Banned player 1 = FACC player 2 = PACC player 3 = GM 4 = Dev 5 = God Instead of caching the role we'd want to grab it from the server when entering a game server to ensure it's updated and not spoofed.

Done
...

Implemented a server-side MOTD

Done
...

Refactored GS playerdata schema to include financials data and updated all accounts

Done
...

Implement more event messages

Need to go over a lot of in-game actions and implement event/log messages to them, such as not having ammo, using a public container that's being used, pretty much any action that would require giving the player feedback.

Work in Progress
...

Cliea

DoneReady for Approval
...

Ceres

Prison/Industrial World.

On Hold
...

Navigation system like in Neocron

Reference: https://forums.unrealengine.com/development-discussion/c-gameplay-programming/1703390-creating-splines-from-navigation-paths

DoneReady for Approval
...

Refactored the travel system to work better with the inactive character stuff

DoneReady for Approval
...

Implement a method to prevent characters from staying in-game during a crash or unauthorized logouts.

Once a player quits the game, the GM logout should check if it was a valid logout, if not, it will start a timer for 10 secs to destroy the pawn & handle save game stuff. If a player logs in during those 10 seconds, during login it will check if there's a pawn with that name and ID, save it's data, destroy it, then load in the new pawn.

DoneReady for Approval
...

Fixed some nasty bugs with item merging and removing/placing items

Done
...

Implemented 3 levels of LOD for all AI/Player meshes and animation URO based on those LODs, this will heavily improve performance

DoneReady for Approval
...

Implemented a new character component that reroutes all service RPCs

This got rid of all clutter in inventory/storage components by chucking all service-related RPC reroutes there (mining, market, travel, production, etc). We will place all future service functionality here so we keep all the behavior encapsulated in this class.

DoneReady for Approval
...

Refactor the save/loading to only occur on the server

This will remove the issues of players outside the US region sending calls to GS and will likely reduce the chances of players losing their data.

DoneReady for Approval
...

Implement a tick manager system that consolidates all tick functions, plus automatically throttling tick rates depending on the amount of instances

Instead of doing a custom movement system, which has somewhat the similar execution times as CMC, lets implement a tick manager that consolidates all ticking actors/components and manages their tick intervals dynamically, depending on a specific set of instances and throttle rate.

Done
...

Fixed an item dupe bug related to item pickups and high ping

Done
...

Fixed a critical issue with items not being destroyed when Destroy() was called on them

Done
...

Additional refactoring

Constant improvement of the game's source code.

Done
...

Prevent closing loot UI on static loot

Prevent closing the loot UI on static loot, simple fix.

Done
...

Acquired east coast server to host the game on, which will result in better ping for eastern players