Engines NIFE Roadmap Shatterloop Game Projects
Deprecated Saepes Mundi Other Projects Blog

Deprecated

Drillr

Posted February 18, 2023 by Xhin

Drill Upgrading

This menu lets you pick your left drill, right drill or down drill. You then get a visual representation of what the drill does (marked by X or something), with every node surrounded by one of the base colors.

You can select one of the colors and feed it crystals of the appropriate type to unlock the slot, upgrading the drill's range in the process. You can also feed it more crystals of a type of a similar hue to change its color. Any time you unlock a slot, additional slots will appear around it in random colors not of the original color, however it won't unlock a slot for the @ (you).

You can also remove X's to gain back the correct amount of crystals, which means you can mess around with drill layouts as much as you want. There are technical limits *somewhere* and also you can't drill stuff off-screen. You could probably theoretically drill an entire screen though, why not.

You can also set your teleport location to any node that doesn't have a node below it -- basically anything where gravity doesn't come into play.

Drill speeds are baseline upgrades that metals can do, however you'll at least see it in this menu. They're millisecond amounts that go down over time, eventually reaching 0 at which point drill speed upgrades are all obsolete. This doesn't happen until a deep depth though.

There are 6 Replies


Improved Inventory Notes

This combines the old notes as well as the update into a single update that greatly simplifies the UX here.

Resource Layout

  • Resources are arranged in a grid. Dusts, metals and crystals are all in here.

  • Each resource is visible, has a count (in some absurdly small font) at the bottom, with the text aligned to the right.

  • The Farming bar is small and runs along the right side.

  • Each resource unit has a right\/bottom border and maybe a bit of box shadow for polish.

    Inventory Layout

  • The inventory has a fixed width and height. These are upgradeable infinitely.

  • Resources collected or crafted will enter the inventory in the first slot available.

  • When the inventory is full, if there's an Overflow inventory, resources will move there, otherwise you're encumbered (technical term, not noted in game probably).

  • If the overflow is also full, you're encumbered.

  • If you're encumbered, you can't mine additional materials and won't move through those spaces either.

    Resource movement

  • Resources can be moved around -- you can do this individually but should be able to select shapes or do magic stuff as well, or maybe gather them at a point or something. Idk what the UI is for any of this. For a first draft, simple swaps make sense, and I can build out the UI better when I see it in action.

  • The basic way this works is you use the arrow keys to select a resource, press enter to select it, and then the arrow keys will start moving it around. Pressing enter will drop it, swapping with whatever's there.

  • Stacks can also be split. Again, not sure on the UI. They can also be combined back together. They can maybe let you put down individual ones as you go too, though idk how this works with keyboard controls -- don't want to overcomplicate the overall UX but should be useful in some contexts.

    Metal crafting

    Dust can be turned into metal at the conversion rate (starts at 10 and can go down). When in the Transmutation mode, just use the arrow keys to pick a dust and press enter.

    Dusts of a similar color nearby will also begin conversion, in a chain reaction that goes out as far as it needs to.

    The actual rate of conversion of any stack is slow, however it's upgradeable and can also be sped up by it being surrounded by metals, with the number of metals increasing this linearly. Metals can catalyze multiple stacks.

    When a resource completes, they get turned into the appropriate metal. The entire stack gets converted, rounding down so the resource slots are always available. So like 6 red stone won't convert period, but 16 will make 1 metal, 20 2 metal, etc. The new metal resource forms a stack at the spot where the dust was.

    It makes sense to at least have a UI thing for aggregating all instances of a resource somewhere, like when a resource completes the transmutation to metal, you can then "gather" all the other ones that have also completed or were already made. Or maybe then spread them around. IDK on the UI at all, honestly, it's going to depend too much on how it feels to use.

    Metal use

    A separate mode will allow you to "use" metal. Same controls, you select it and press enter. Then upgrades appear for the metal -- you can however only use as many metals as are in that stack, not overall.

    Upgrades have upgrade time. This can be catalyzed by crystals of a similar color around it, or you can "feed" metals of any kind into the process to speed things up. Upgrade time can also be upgraded, as can the upgrade rate or speed of either of those processes (which are probably research unlocks). The process should be quite slow at the outset so you have to use the catalyst/feeding system more, though idk how to balance that with feature gating.

    Transmutation

    Metals can be transmuted into crystals via a separate mode. This takes crystallization time and can be catalyzed by crystals around it or "fed" by metals of any kind similar to upgrading. Again quite slow without these mechanics or upgrades.

    Farming

    With this unlock, all resources will have a "farming" bar to their right in the farming mode. Farming only happens during the farming mode, though you can still move around and such while the menu is open.

    Essentially, the farming bar slowly fills up and then some percentage of that resource (minimum 1) gets added to the stack. The way this happens is by surrounding a resource with resources of the same type -- the more there are, the faster the farming will be. Like, for example in this layout:

    1 2 3
    4 5 6
    7 8 9


    Assuming all of these are metals:

  • 5 will accumulate at 8/8 the farming speed.
  • 2,4,6,8 will accumulate at 5/8 the farming speed.
  • 1,3,7,9 will accumulate at 3/8 the farming speed.

    A potential additional mechanic:

  • Dusts with adjacent metals obviously lose 1/8 the speed bonus for each metal, but will adjust the percentage yield.
  • Same deal with metals adjacent to crystals.

    Presumably everything here is upgradeable as well, and metal farming and crystal farming are separate unlocks, as well as the above catalyst features if implemented.

  • February 15, 2023
    Xhin
    Sky's the limit

    Overflow

    It makes sense to have a second upgradeable "Overflow" inventory -- works similarly to the other one where it can be upgraded, but the only thing you can do with it is move resources between it and the main one, ideally with some indicator of spaces remaining in either. This allows you to continue to drill via macros while messing with your inventory or crafting, without worrying about resource intake. There should be an option to move everything new into the Overflow automatically.

    February 15, 2023
    Xhin
    Sky's the limit

    Macros

  • You should also be able to "program" macros that attempt to do various things in sequence, possibly with very basic solid/void/edge conditionals and cycle between the programs with [ and ]. Pressing backspace will just change the macro back to the "repeat last movement and direction". Doing this will require a heck of a lot of UI stuff but is probably worth it. The various parts of it should be unlockable upgrades as well so you don't start with all of the tools at the outset. Crystals should also be in use somewhere (maybe to set program lengths and more program storage).

  • February 15, 2023
    Xhin
    Sky's the limit



    February 18, 2023
    Xhin
    Sky's the limit

    Inventory Project

    This is a whole project in itself. It basically looks like:

    Framework

  • Get HSV support, as that's how "color similarity" works. I need a general hue-similarity function as well.

  • Import Gem Genie's means of traversing menus with the arrow keys and selecting certain things.

  • Get basic inventory movement working. If dropped onto an empty space, move it there, or if dropped onto another resource, swap the two original positions.

  • Have keyboard-letter selectable "modes" like (M)ove and (E)xtract running along the right of the inventory I guess.

  • Adjust opacity on stuff that a particular mode doesn't apply on. (E)xtract only applies on non-metal non-crystal up to the extract_amt=10 stat.

    Better movement

  • While selecting a resource, pressing space and a direction will split the stack, filling that slot appropriately if it can.

  • Resources dropped onto the same type will combine their amts.

  • While moving a resource, holding shift will show you the shift_size=2. Pressing + and - will change it, minning out at 2 and maxing out at max(width,height). Pressing a direction will move it that amount of spaces on the grid, though it'll also max to the height or width.

  • You should be able to wrap around the grid through either basic movement or shifting, however the maxing rule for shifting still applies so you don't accidentally wrap around.

    Basic Extraction

  • Primitive extraction -- instant but does what it should.

  • One unified interval to handle all inventory intervals and the events accordingly. I guess 10-millisecond increments and then the incoming objects say how many steps of those to do. The interval can be stopped and started so it doesn't consume processing power for no reason.

  • Extraction uses this via the extraction_speed stat.

  • Import magic_sel{} and when extracting, fan out and find all dusts of a similar hue and start extracting them as well.

    Basic Upgrading

  • Have debugging framework to decplicate resources. A whole interface menu would be nice -- select the resource and decplicate it. Idk how good the framework will be at this point though.

  • Before I flesh these out, I guess just allow you to change drill speed or grapple length. There needs to be a submenu for this when you select a metal while in the (U)pgrade mode.

  • Upgrading should take upgrade time (via the interval framwork), consume the metal stack and apply the upgrade.

  • Alter it so each metal has upgrade amount targets, and filter out those that aren't high enough yet. Consume the appropriate amount of metal instead of the full stack.

    Catalysts

  • Have some kind of catalyst framework to alter the speed of an interval process -- each mode should be able to set it up individully.

  • Upgrading can be catalyzed by crystals of a similar hue around it. It probably makes sense to alter the world generation or otherwise make debugging this easier.

    Transmutation

  • Metals can be (T)ransmuted into Crystals at transmutation_amt=10 rate. This can be catalyzed by crystals of any kind.

    Feeding

  • While metals are being used for upgrading or transmutation, allow you to press arrow keys to "Feed" a metal from that direction into the process. This lowers the time a bit (based on the stack size), consumes the metal stack and shifts metal stacks that go along that line towards the metal so you can feed things in sequence.

    Farming

  • In farming mode, show a vertical progress bar on the right of each resource.

  • Farming bars accumulate primitively at first. Over the inventory interval they slowly fill up and then the percentage of that resource (minned at 1) gets added to the stack.

  • Get basic resource type catalysts working within this framework for improved catalyzation.

  • Metals will catalyze dust farming yield.

  • Crystals will catalyze metal farming yield.

    Final Stuff

  • Move all the checklist information into the Movement/Mechanics post.

  • Check for anything I've missed

  • February 18, 2023
    Xhin
    Sky's the limit

    Inventory Project

    This is a whole project in itself. It basically looks like:

    Framework

  • Get HSV support, as that's how "color similarity" works. I need a general hue-similarity function as well.

  • Import Gem Genie's means of traversing menus with the arrow keys and selecting certain things.

  • Get basic inventory movement working. If dropped onto an empty space, move it there, or if dropped onto another resource, swap the two original positions.

  • Have keyboard-letter selectable "modes" like (M)ove and (E)xtract running along the right of the inventory I guess.

  • Adjust opacity on stuff that a particular mode doesn't apply on. (E)xtract only applies on non-metal non-crystal up to the extract_amt=10 stat.

    Better movement

  • While selecting a resource, pressing space and a direction will split the stack, filling that slot appropriately if it can.

  • Resources dropped onto the same type will combine their amts.

  • While moving a resource, holding shift will show you the shift_size=2. Pressing + and - will change it, minning out at 2 and maxing out at max(width,height). Pressing a direction will move it that amount of spaces on the grid, though it'll also max to the height or width.

  • You should be able to wrap around the grid through either basic movement or shifting, however the maxing rule for shifting still applies so you don't accidentally wrap around.

    Basic Extraction

  • Primitive extraction -- instant but does what it should.

  • One unified interval to handle all inventory intervals and the events accordingly. I guess 10-millisecond increments and then the incoming objects say how many steps of those to do. The interval can be stopped and started so it doesn't consume processing power for no reason.

  • Extraction uses this via the extraction_speed stat.

  • Import magic_sel{} and when extracting, fan out and find all dusts of a similar hue and start extracting them as well.

    Basic Upgrading

  • Have debugging framework to decplicate resources. A whole interface menu would be nice -- select the resource and decplicate it. Idk how good the framework will be at this point though.

  • Before I flesh these out, I guess just allow you to change drill speed or grapple length. There needs to be a submenu for this when you select a metal while in the (U)pgrade mode.

  • Upgrading should take upgrade time (via the interval framwork), consume the metal stack and apply the upgrade.

  • Alter it so each metal has upgrade amount targets, and filter out those that aren't high enough yet. Consume the appropriate amount of metal instead of the full stack.

    Catalysts

  • Have some kind of catalyst framework to alter the speed of an interval process -- each mode should be able to set it up individully.

  • Upgrading can be catalyzed by crystals of a similar hue around it. It probably makes sense to alter the world generation or otherwise make debugging this easier.

    Transmutation

  • Metals can be (T)ransmuted into Crystals at transmutation_amt=10 rate. This can be catalyzed by crystals of any kind.

    Feeding

  • While metals are being used for upgrading or transmutation, allow you to press arrow keys to "Feed" a metal from that direction into the process. This lowers the time a bit (based on the stack size), consumes the metal stack and shifts metal stacks that go along that line towards the metal so you can feed things in sequence.

    Farming

  • In farming mode, show a vertical progress bar on the right of each resource.

  • Farming bars accumulate primitively at first. Over the inventory interval they slowly fill up and then the percentage of that resource (minned at 1) gets added to the stack.

  • Get basic resource type catalysts working within this framework for improved catalyzation.

  • Metals will catalyze dust farming yield.

  • Crystals will catalyze metal farming yield.

    Final Stuff

  • Move all the checklist information into the Movement/Mechanics post.

  • Check for anything I've missed

  • February 18, 2023
    Xhin
    Sky's the limit

    Reply to: Drillr

    Username
    Password