Comments on Game Plans

Foreword: this post is based on my opinions on the current state of the Game Plans page. By no means do I intend to have any jurisdiction over Greg’s game, I just want to share my thoughts and provide constructive criticism.
Also, sorry for the wall of text.

Tickrate is something that will be less unified than in other Games. Things can have a slow and a fast tick rate depending on what they do. It will not be uncommon for things to have a Tickrate of 1 Tick per Second or even 1 Tick per Minute, or even just a specific delay Tick that only happens after some Block updated.

Tickrate should be unified, as it is an implementation detail. There should be a difference as to when things tick and when they trigger. Consider ExtraUtils pipes¹ as an example: by default, they tick each MC tick (50ms) but trigger (search locations) once per second.
In code, this is represented by a variable incremented each tick and reset each trigger, only triggering when the variable reaches a threshold.

Local Multiplayer is also possible thanks to the way I’m going to implement Controls, so that multiple Mice and Keyboards could be detected.

Will setting up a dedicated server be needed to play multiplayer on multiple computers in the same LAN network?

While I will try to avoid adding GUIs in general, I know for sure it is not 100% possible to do that.

I suggest using radial menus. They are more inmersion-friendly without being too hard to comprehend. Iirc there was a MC mod that added that to conflicting keybinds.


Just two small suggestions:
Make sure keys are detected in a physical way (i.e. the key 1 is registered as 1 even if a modifier like Shift is pressed). I use a custom layout with switched number row and I would not like to have to change game controls each time I reinstall the game. This would also help German players with Y/Z key issues.
Also make sure the <> key (between z and left shift) on Spanish keyboards is usable. It is a minor thing but it is often overlooked.

Default for the primary Hand are: Leftclick = whack , Rightclick = use , Left Ctrl or Right Ctrl = put , DEL or Q = chuck , Mousewheel Up/Down = rotate , END or E for swap and F or NUMPAD4 for action .
The Secondary Hand (usually the Left Hand) has: Forward (the 4th Mousebutton) = whack , Backward (the 5th Mousebutton) = use and the rest are not assigned by default

Some minor changes:
rotate should use Shift+MWheel, leaving ´MWheel´ to change items (like in standard MC), unless changing items uses a menu.
As for the second hand, I suggest defaulting non-bound, non-confilcting keybinds to Alt+<Primary Hand keybind>, example Alt+Left Click is whack with secondary hand.
For consistency with MC, swap should use F instead of E.

Items will have a Multi-Part Description to them, which is split into Categories
[…] (I might find a better way to handle Descriptors than a Wall of Text)

Instead of showing all descriptions at once add options to filter which ones to show or limit them to one at a time with controls to change between categories.

Yes some people use dots for the thousand-markers, and I don’t exactly know if I am gonna use Kilo, Mega, Giga, Tera and Peta or if I’m gonna use other Symbols.

If the thousand marker is going to be a problem I suggest using SI guidelienes (whitespace for thousands, dot for decimal numbers).
In some cases it may be useful to have big numbers in exponential form (6.022 × 10^24) but using kilo, mega, etc for slightly smaller ones is preferable. Also a keybind to switch between the two of them would be useful, such as holding Shift would turn 2.2M into 2 200 215¹ or 15G into 1.5 × 10^10

¹ Rounding is acceptable, as otherwise using suffixes would not make sense.

Research and Technology System

A bit off-topic but I would like to have some kind of Thaumcraft-like magic in the game. Aspect-based crafting resulting in some helpful items, such as portable hole staves, or even weapons and damaging magic, enchanments and Skyrim-like spells like Spark or Frostbolt. Maybe even late-game alchemy allowing material transmuation to some extent.
This is in-between “normal” and “difficult” resource complexities but in a more abstract, concept-based sense: both iron and gold could have “metal” aspect but only the latter has “greed” in it; players could have different aspects based on the items they have, etc.


Yeah there is gonna be separate Tick Lists so that you dont need to “tick up” in order to achieve the same effect as you described. Optimization Detail. :wink:

Not gonna be required to setup a dedicated Server, think of “Open To LAN” in Minecraft. Exact Details as to how that Feature is implemented will emerge when I do it. XD

As I mentioned in other areas of the Gameplans, radial Menus would be one of the Options a User could choose. :wink:

I’m German, I know the Y Z thing and its annoying as fuck to me too. On Linux I can very much guarantee the Keycode thing, on Windows well, maybe that Subsystem for Linux that they have is required for better control over the Hardware… But that is something @OvermindDL1 will have to worry about probably. XD

Ah right forgot the Inventory Key. Though that doesn’t really matter due to the many presets I’m gonna add, especially the Minecraft one.

There would be an actual dedicated Description Window that just shows that Description, the Tooltips would only ever show things like Name, Type, Color and Amount but not the Description.

Yeah spaces as markers are good too.

The reason to use the K, G, T, P etc in the way i described was to prevent decimals from showing up because those can confuse the crap out of people. Also just so you know, 128 Bit Numbers are doable with primitive Data Types, yes that’s twice as much as a long.

Yeah I thought of integrating Aspects of some sorts to the Resource System, though I wouldn’t use it myself unless I get bored after a few years and redo Thaumcraft in my Game. XD
It is just to make sure that Mods can use it and that Modders actually think about Aspects when adding their Items, so that there is no need to iterate over the Crafting Recipe List to “guess” the Aspects like Thaumcraft does.


I would suggest using a calendar based system where applicable. While a bit more complex to implement, with an list with the delegates and timestamps ordered by the timestamps, but it’s way more efficient. It also allows for stuff in unloaded chunks to process, like crops.


Yeah there is gonna be a time code inside each chunk to check for how long it was unloaded, especially necessary with Crops. ^^


In my opinion, tickrate shouldn’t exist, it should be completely based on delta’s.


Yeah which is yet another way to handle it, if that works well.


About keybinds: just want to mention that I definitely won’t use the standard for secondary hand. Detecting mousewheel up and down as a keypress has never worked for me because on my mouse the distance to scroll to get a single activations is basically random.


Ah yeah that could be an Issue. I will probably add a better configurabilty about how far the mousewheeled distance has to be, which definitely is a thing, at least I learned about it on my GPD WIN 2 which has mousewheel up and down bound to D-Pad up and down.


Not how the mousewheel works. The mousewheel isn’t an axis like moving the mouse, it’s just two buttons that ‘click’ whenever the mouse decides to click them. You can’t measure distance or anything. If his mouse is random it’s either an exceptionally low quality mouse or it’s dirty (I’m amazed at how rarely people clean their mice, lol). ^.^;


Sorry but Mousewheel is not necessarily clicking based, the handler for Inputs said D-Pad up did “move Mousewheel up 15 units” meaning there definitely is not just clicking but also distance moved! Not to mention there is exponential scroll speeds that can be selected so those have to be factored in too.


I think overmind is right though, the distance is calculated by the amount of clicks (just like an incremental disk for electric drives)
Yes it’s the low quality of my mouse skipping random clicks, but it’s not the first time I have this issue, my previous mouse also had this problem


Precisely this.

The API for mousewheels over HID does NOT include distance, only when it is ‘clicked’.


Then how the heck is a Y movement in the hardware “mousewheel” ?


Y isn’t. X and Y are axis, moving the mouse forward/backward and left/right respectively. Mousewheel is a set of buttons in the mapping. It’s just how HID was designed because that’s how mice originally worked.


are you sure there is not mice that are like a trackball when it comes to mousewheel? what if it is that? kinda a joystick so to say.


In Windows mouse “distance” is a system setting, default to 4 lines per click (which I think you can set in settings.) Most games will just directly take in the “scroll up” and “scroll down” button inputs.

If a mouse has a scroll ball, (or is a touch pad), I would guess it uses a custom driver or something (my old laptop did), and for games/software that need “presses” rather than lines, the mouse driver will have its own criteria for what counts as a button press. Your D-Pad driver probably does that too.

I had the broken scroll wheel thing on my old Razer Naga 2014, I think the contact wore out easily. Sometimes when I scrolled it wouldn’t scroll at all, and then suddenly scroll 80 lines at once because it kept on registering the “click”, and sometimes it would even go backwards.


Ah now I know what it probably is, it simulates the Scroll-Area on a Touchpad!