-
Notifications
You must be signed in to change notification settings - Fork 4
/
designlog.txt
35 lines (22 loc) · 7.71 KB
/
designlog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Momentum
The momentum enchantment is intended to be a vanilla style version of the popular modded ore vein miner enchantment, except it doesn't break Minecraft's design rule "One Block at a Time". I first mentioned it in my video "The Cave Update Isn't That Simple", using sped up footage, but today I decided to try modding it into the game.
Incompatible with Efficiency, Momentum works by speeding up when the player mines the same type of block. Thus, it approximates an ore vein miner enchantment by making a cluster of the same block quicker to destroy. If enough of the same block is mined, the speed will eventually charge up to instamine. If the player starts to mine a different type of block, the speed will revert, unless the player switches back to the previous type of block. If the player finishes mining the different block, the speed will permanently reset.
This would probably be obtainable somewhere in mineshafts, as it is intended to be an alternative to efficiency with its own niche, and should get decent usage as an ore vein miner before the player tries using it in other situations - for example using it to clear out underground dirt and gravel pockets after charging it up a bit.
Implementation
The functionality was implemented into a mod with two events and two tracked data entries. While the block is being mined, the code checks whether the tool has the momentum enchantment, and if the block being broken is the same type as the block that was previously broken. If so, it changes the speed to the original speed multiplied by 2 to the power of the amount of blocks of that type mined in a row. When a block is destroyed, the code makes the same checks, and if they pass, 1 is added to the amount of blocks of that type mined in a row. If they fail, the quantity is reset to 0. Then the type of block broken is stored for next time.
Implications
This feature has the potential to revolutionise the current meta, so it must be carefully designed not to remove gameplay. One problem is that it makes all blocks instaminable, if eventually. Therefore it has the potential to make Haste 2 beacons and the Efficiency enchantment obsolete. Haste 2 beacons are used to make certain blocks instaminable, but beacons are not easily movable so this may result in the Momentum enchantment replacing it. Of course, the momentum enchantment can only be used on one type of block at a time, so it is unclear to what extent it could replace it.
It can also charge up to instamining obsidian after 7 blocks. This definitely has potential to be overpowered due to obsidian's toughness being one of its most appealing properties. A fortress entirely made of obsidian could be made short work of, unless it was made of alternating obsidian and crying obsidian. Such a structure could introduce a little variation, but also be laborious to build. Resetting the accumulated speed if the player stops holding the tool could get rid of edge cases related to this.
Balancing
There are a few ways to nerf it. One would be decreasing the factor by which it speeds up. Adding 50% speed every time instead of 100% would mean the tool would take longer to charge up to an instamine - or the charge-up time could be proportional to the block's hardness. However, this may not work if the problem is that the block could be instamined, regardless of charge-up time. A possible way to deal with that is make the tool take increased durability damage while instamining blocks, encouraging people to use it to mine small veins like originally intended. This damage could even be proportional to the block's hardness, so a player wouldn't be able to instamine obsidian for very long. However, for endgame players this could simply result in more trips to XP farms (unless Mending was made incompatible with it, but that might make it far less preferable). Instead, the mining speed could level off at a value below instamining, but this may make the enchantment a lot less desirable - unless a haste 2 beacon can give it that extra push towards instamine. Another possibility is to restrict it to certain blocks, but that isn't very intuitive and also makes the enchantment a lot less fun to experiment with.
Preventing the enchantment from ever reaching instamine speed without a haste 2 beacon prevents it from being competitive with an efficiency 5 diamond pickaxe, which can mine most ores at the same speed. Therefore a straight cap may not be preferable, instead having a brief period of instaminability for about 10 blocks, before stopping. The charge-up time should remain fairly quick too to encourage mining small veins. Having the period of instaminability be only for the first 10 blocks encourages better tools with the momentum enchantment, since the faster you charge up to instamine, the more you'll be able to take advantage of the instamine period. Obsidian being instaminable so quickly feels overpowered so I made the charge-up time proportional to the block's hardness. The formula I decided on was this:
if 〖n<8h−1:v〗_f=v_i (2^((3−h)/16)+1)^(n+1)
if n≥8h−1: v_f=v_i×min(22h/v_i*v,(2^((3−h)/16)+1)^(n+1))
h = hardness, n = number of blocks mined, vi = initial speed, vf = final speed
Post release
I showcased this mod as an example of how iteration works, in my video titled "Why Minecraft Updates Take Time", and also asked for people to test it and give feedback. One piece that stood out to me was the idea that the instamine cap didn't feel intended - some people even thought it was a bug! I added in a sound to communicate that the instamine period was over, but I am also considering a more intuitive solution as a replacement to the instamine cap.
One idea I came across when gathering feedback is the momentum resetting when the player moves. This would be more intuitive, because it would naturally reset when the player has ran out of blocks they can reach. To make it a little more forgiving, I decided to allow sneaking, and to encourage the use of beacons, allow walking with Haste I and sprinting with Haste II.
I initially made Momentum have a 100% chance to spawn in dungeon and mineshaft chests, with 75% in the form of an Iron Pickaxe and 25% in the form of a book. This made it easier for people to obtain it in survival mode as soon as possible for ease of playtesting. However, it was very easy to amass large amounts of momentum enchanted items, so I tweaked the rates to be pickaxes having a 50% chance to spawn in mineshafts, and books with 75% chance to spawn in dungeons.
Future
Caves and Cliffs will affect the balance of the mod greatly. Firstly was the new Giant Ore Veins, which primarily contain two types of blocks (not counting the occasional raw ore block as it is rare). I am considering the addition of Momentum II, which would be able to store two types of blocks, and only reset if the block mined matches neither of these. However, I will need to consider the implications of Momentum II with other applications - it may intrude on Efficiency's niche further than intended. Perhaps I could narrow down its purpose to suit only Giant Ore Veins.
Secondly was the design decision for deepslate to never be instaminable, encouraging moss/blast mining and aquifer diving. I am considering adding a maximum speed dependent on block hardness, preventing any block at least as hard as deepslate from being instaminable (including obsidian). This would still allow Momentum to be useful as it could still eventually mine hard blocks faster than Efficiency. However, since ore blocks are the same hardness as deepslate, this would remove its supremacy over Efficiency for mining ores. Perhaps I would need to modify deepslate to be slightly harder? That doesn't seem like an ideal solution, so I might need to allow some instamining of deepslate, but perhaps limit its usage to honour the design decision's intent.