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.
Manager system refactoring
Reworking all manager classes to have them prepped up for factional income.
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.
Revise services economy, apply flat cuts on service revenue
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.
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
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
Add a production limit, similar to how the mining one works
Implement Production Licensing
Production Licenses will be saved in MRPlayerState and handled under PlayerStatsPayload for backend/persistence stuff.
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"
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
Event Messaging Overhaul
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.
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
24h restart cycle
Use the session scheduler similar to how it was before, 5am UTC
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.
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.
Implemented a server-side MOTD
Refactored GS playerdata schema to include financials data and updated all accounts
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
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.
Cloning System Overhaul
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
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)
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..
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.
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.
Factional territory ownership
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.
Territory final battles
Immediate Technical Priorities
Refactored the travel system to work better with the inactive character stuff
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.
Fixed some nasty bugs with item merging and removing/placing items
Implemented 3 levels of LOD for all AI/Player meshes and animation URO based on those LODs, this will heavily improve performance
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.
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.
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.
Fixed an item dupe bug related to item pickups and high ping
Fixed a critical issue with items not being destroyed when Destroy() was called on them
Constant improvement of the game's source code.
Prevent closing loot UI on static loot
Prevent closing the loot UI on static loot, simple fix.