Research -- TurnBased/RealTime strategy like tech trees for minecraft

Discussion in 'WIP and Development Status' started by croxis, Dec 15, 2011.

  1. Offline

    croxis

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    tl;dr -- A glorified permission manager

    Link to release thread

    Intro/Justification: Many players enjoy the ability to jump right in minecraft and be able to build in diamond blocks right away. I am not one of those players. I get the most kick starting off restricted and developing new skills and abilities. RPG plugins do this for individual player actions, but I want to bring that kind of growth to the building and mining aspects. This plugin is for people who share my kind of play style.

    The Basics: This plugin is intended to work alongside other permission and Towny/Faction type plugins, although it will include basic functionality to be usable on its own. The plugin contains an existing default technology tree based on Civilization V's, but the server owner is able to customize it or rewrite it from scratch. The plugin tracks if a player can place, destroy, or using spout craft items based on the technology they have learned. Permission nodes can also be attached to technology.

    The Use Case: The best way for me to describe how this plugin works is through a use case.

    ServerOwnerSue installs the plugin and decides to check out the default settings. In config.yml there are a number of lists for what a player can't do if they have no technology under their name: BlockIDs for cantPlace, cantBreak, cantCraft, and and any permission nodes they WANT their players to start with (although I might change this to nodes they want to make sure player's DONT have).

    She then checks out techs.yml where she finds each tech has a description, costs, prerequisite technologies, fields for blockIDs under canPlace, canBreak, canCraft, as well as permission nodes. She decides to make a new technology called Teleportation which she adds to the bottom of the list

    Code (Text):
    1.  
    2. Teleportation:
    3.   description: "Instant travel! Opens up personal home warps"
    4.   cost: 10000
    5.   prereqs: ["Archery"] #Because that makes TOTAL sense!
    6.   permissions:
    7.   - commandbook.home
    8.   - commandbook.sethome
    9.   canplace:
    10.   - 122
    11.   canbreak: [122]
    12.   spout:
    13.     cancraft: []
    14.   # Custom events not yet available. This is for situations like a tech giving a town 10 free bonus chunks or something that is plugin specific.
    15.   customEvents: []
    16.  
    Once she tuned everything to her liking Sue became sad as no other plugins are set up to use Research. She turns on the included SimpleResearch system that allows players to set their own personal research and earn one research point for every minute they play on her server.

    Integration: An API is being developed to allow other plugins that utilize groups of players (Towny/Factions/chunkyVillage/etc) to optionally tap in to this gameplay feature. It is impossible for me to accommodate all the possible ways these groups are organized and implemented. As a result technology is tracked per player. It will be up to external plugins to decide how to handle a player leaving or joining a group.

    Current ToDo Until Completed (Crossed out is completed):
    • Write default tech tree
    • Write techtree reader
    • Persist research
    • Add spout support (now they are moving to Glowstone we will see about this one)
    • Write player listeners for block place, break (and determine if any other listening systems are needed such as seed or redstone placement)
    • An override API so external plugins can modify a player's tech tree
    • An api to get information about the tech tree, search the tech tree, get a list of available research options.
    • A simple default implementation.
    • Test permissions and multiworld
    • Test everything else
    • Write unit tests!
     

Share This Page