Refactorio / RedMew

The RedMew scenario code for Factorio.
https://redmew.com
GNU General Public License v3.0
176 stars 80 forks source link

New XP system for players #1395

Open Zahir-Khan opened 7 months ago

Zahir-Khan commented 7 months ago

Players gains XP on each map type. XP is gained for being online, walking/driving, entities, chatting etc. XP is ultimately synced to discord

RedRafe commented 7 months ago

This could be linked to an XP module I'd like to add, available to all scenarios from the config file, and have our own XP/RPG system that all maps can use. Now, this issue seems to be spread across, what I could envision is (& correct if I'm wrong or you think otherwise):

  1. local map XP system

    • A local map XP system is related to a single instance of a map (player gain walking speed, crafting speed, mining speed, inventory slots...)
    • Obviously, everyone starts with 0 bonuses when the map starts and perks are obtained as the map goes on
    • This is mainly a QoL feature to smooth the difficulty curve of maps and reward active players with better stats to walk across base, fight biters, ...
    • These points are reset at each map restart
  2. global map XP system

    • A global map XP system is based on map type (danger ores, crash site, diggy, minesweeper...)
    • Players accrue XP per map type and there will be ranks (and/or perks) to signal who are the most experienced players on that type of map.
    • This is particularly useful for newbies joining our servers and quickly being able to identify "whom to ask", or just follow for directions and guidance when team actions are discussed among the players
    • These points are NOT reset at map restarts, and therefore are accumulated "endlessly"
  3. social XP system

    • The social XP system collects and relates all global map XPs and is the ultimate "player stat".
    • This XP rank will likely de synch'd with Discord to show who are the most "experienced/loyal" players
    • This is not particularly useful in-game as it does NOT add bonuses to the character, but adds a nice touch to the community and player customization

Bonus ideas: A. we could have "badges", to display both on Discord and/or in-game player list, similar to ranks, that do not provide any perk or special permission. There could be badges for something like "spend 1000h on DangerOres", "conquer 2000 outposts in crash site", "launch 1M rockets on our servers", "play 100 different mods"....

B. The local map XP system, meaning the module that gives immediate bonuses in game, would be OFF by default (and scenarios will turn it ON themselves if needed), but the API that collects XP would still work to trace XPs for global map XPs and social XPs

C. New maps, or occasional modded runs, which don't fall under a specific map type, could either be organized under modded and general, so when a new map of such is started, even if there's no rank/category for that map, you could still use the social status to have a reference on who's likely to lead

D. we could have donators accrue 1.2x points (or any other coefficient - similar to Twitch subscribers getting 1.2x points)