Your Opinion On Difficulty of New Project

Post Reply
abejones
New member
Posts: 3
Joined: Thu May 25, 2023 11:51

Your Opinion On Difficulty of New Project

by abejones » Post

I'm planning on building a non-commercial variant of Minetest after I finish up with my first game that I'm releasing on Steam. I only want to add a few features, and fill in the rest with mods from others. But I am not sure about the difficulty to implement some of these features. If anyone here knows the code, I would be very interested in your opinion. Just to clarify the first 2 points: sovereignty and ownership are 2 different statuses, and they can be held by 2 different people over the same territory.

1. Give the ability to have sovereignty over a specified area by claiming it. Having sovereignty over a region allows the player to collect taxes on transactions at shops and sales of real estate, using the currency feature below. If a player doesn't sign in for a certain amount of days they will lose their sovereignty status. I will also consider them to possibly lose in between dying and respawning if other players are there to claim it.

2. Give the ability to claim ownership over a specified area by claiming it. Being owner would allow the person to manipulate the blocks in that area (no one else could). They can also establish shops there, and set prices and currency type of items in the shops. They can also divide their property into lots and put them up for sale in the currency of their choice. They will also be able to lose their ownership status if they don't join the game for a certain amount of days.

3. Give the ability for each person to create their own custom currency. They can print it at will, or maybe craft it from paper. Each currency would have their own unique identifier and name. I'm thinking that currency will probably just be a number in a database, not an actual item that is carried around.

4. Players will lose energy faster if they aren't in the sun light. If they have sun light from the windows that will be good enough (this is mostly to encourage player's not to live underground, but only use it for mining and hiding stuff... but also to make things more scarce and valuable). I'm guessing this will be the hardest to implement.

5. When players die they won't be able to spawn until the next game day (or something like that).

6. Players will be able to provide each other loans in currency at specified interest rates. Payments will be automatic.

7. Players will get points for consuming food when they are already full (or some other form of consumption). The leaderboard will be sorted by points per hours played, or something similar.

8. Players will be able to type in a command to view a list of currencies and how many shops and unique players are accepting them for payment.

There's other stuff too, but that is all covered by other completed mods.

User avatar
Blockhead
Member
Posts: 1622
Joined: Wed Jul 17, 2019 10:14
GitHub: Montandalar
IRC: Blockhead256
In-game: Blockhead Blockhead256
Location: Land Down Under
Contact:

Re: Your Opinion On Difficulty of New Project

by Blockhead » Post

1 & 2 are related and you probably want a common code library for them. It will mostly involve adding a lot of checking of area ownership when key events like financial events happen, and making extra things happen. For instance, having a callback for a sale in your currency mod that calls into the sovereignty mod to charge a sales tax. It may take a while to explore the ways that these things interact.

Sales tax and land transfer/stamp duty are not the only forms of taxation. I am not sure what kind of society you are modelling but feudal agricultural societies would more often levy producers with a part of their harvest, like a tithe. Tithes were paid to the church, not just the king. Land value taxation is also very common. The land is assessed for its value by the ruler's representative and a fraction of the land's value is paid as rents since the whole country is technically the ruler's. Nowaday, states and national governments also often charge income taxes for those who earn above a threshold. However, taxes on transaction are obviously the easiest to implement if all transactions are digital. Digital feudalism sounds a bit weird though, but, so does running a block game server where a bunch of peoples' jobs are just to be tax collectors.

How is a claim made to take sovereignty from a dead sovreign? Breaking a node? Easy enough, just make a special case for that node that it ignores protection with an on_destruct. What if the claimant is already sovereign of other lands - are they merged, or do they have two sovereignties?

2. What is the relationship between sovereigns and owners? Can sovereigns break node without restriction in their area? Can there be an owner without a sovereign? To what degree can subdivision of property take place? Just creating lots of land in the owner's area, or is the transfer permanent and severs the land from the original owner entirely?

3. What about counterfeiting or acting as a royal mint/note printer? Impossible? Ok, then how are more notes made when the player is offline? Machine ownership? It shouldn't be too difficult but it's ill-specified at the moment. If it's craftable, it has to be an item, unless it's got a special node or separate interface - chat command, machine, inventory section that is separate to the main crafting system. Actually, maybe you can override that with minetest.register_on_craft, so that the currency item dissappears. I think though that handling cash could be fun, though not necessarily. Again, it seems appropriate to have physical coinage in a feudal setting, and fine not to have in a modern society type setting.

4. You will have to look at the natural light data provided by the engine at the player's position and see if it agrees with the way you want to measure it. If it doesn't, that's going to be a lot of calculation potentially. You probably would short-circuit the evaluation too with a check like: player below -100? Definitely underground -> full penalty.

5. Not sure if you can block respawning, so if you can't, you need to revoke their interact priv and maybe imprison them too if you don't want spectators.

6. Easy enough if you have your digital currency mod. But what if the loan defaults? Is there a forced payment plan and the debtor can't fall too far into arrears, or can you just rack up interest infinitely? What's the interval for applying interest and is it based on in-game or real-life time (what happens if the server goes down?)

7. You have to make sure you track first login properly. That's tracked in the player database, but I'm not sure it's available to players. You also need to use a minetest.register_on_item_eat to increment the player's score. The leaderboard can be cached and periodically updated instead of drawn each time the player opens it too, because recalculating across thousands of player records could be quite slow.

8. As long as the placement of shops is centrally tracked and updated when shops are added and removed, that's no problem. There can be bugs though if someone breaks a shop node in an unexpected way or similar though. This would be a part of the shops mod.

The most complexity and least specification seems to be the sovereignty and ownership systems, followed by the potential complexity of the sunlight system. The rest is mostly a series of relatively small mods that you can put together. You need to work out how to get the currency, sovereignty and ownership systems to play along without causing circular dependencies too, here's an article about that kind of thing.

All in all you should study the Minetest landscape to see what you want to do different from existing mods, what they are missing and so on compared to your requirements.

Further reading:
/˳˳_˳˳]_[˳˳_˳˳]_[˳˳_˳˳\ Advtrains enthusiast | My map: Noah's Railyard | My Content on ContentDB ✝️♂

abejones
New member
Posts: 3
Joined: Thu May 25, 2023 11:51

Re: Your Opinion On Difficulty of New Project

by abejones » Post

Thanks for your response, it will be very helpful.

1. AREA SOVEREIGNTY
I'm answering your technical questions that I wasn't clear about here. I'll comment on the tax design issues you brought up below.

What if the claimant is already sovereign of other lands - are they merged, or do they have two sovereignties?
My initial idea was that if the CLAIM SOVEREIGNTY action was taken, it would claim sovereignty of all land within a specified range that is not already claimed. The distance I'm not sure about for technical reasons. But I would assume something like a 25 to 50 block radius. Any area a player has sovereignty over would be included together. So essentially each player would have 1 sovereignty regardless of where it is on the map, but could lose chunks of it from the above process. Of course if there is an easier way to do something similar technically, I would change this original idea... which is mainly why I'm asking all of these questions.

2. AREA OWNERSHIP
What is the relationship between sovereigns and owners? Can sovereigns break node without restriction in their area?
The original idea is to have no technical relationship between sovereigns and owners besides the taxing.

Can there be an owner without a sovereign?
Yes, by default all land will have no ownership or sovereign status.

To what degree can subdivision of property take place? Just creating lots of land in the owner's area, or is the transfer permanent and severs the land from the original owner entirely?
I wouldn't want to put a limit to this unless technically it would be easier to do 10x10 lots, for example. Does the game engine divide areas of land up in any such way that could be useful for this process? If the lot is sold, the buyer would then have ownership of that lot.

3. CURRENCY
More on currency below the technical discussion.

how are more notes made when the player is offline?
Notes wouldn't be printed when the player is offline. One of the main strategies for players regarding currency would be to manage inflation and deflation.

4. SUNLIGHT
You will have to look at the natural light data provided by the engine at the player's position and see if it agrees with the way you want to measure it. If it doesn't, that's going to be a lot of calculation potentially. You probably would short-circuit the evaluation too with a check like: player below -100? Definitely underground -> full penalty.
So basically it may be easier to just base this on the depth of of the player rather than the sunlight. This might be good enough, but could also be quite inaccurate at times.

5. LIMIT RESPAWNING
Not sure if you can block respawning, so if you can't, you need to revoke their interact priv and maybe imprison them too if you don't want spectators.
Now that you mention this, maybe it would be a better idea to not allow them to claim sovereignty or ownership for a period of time after death.

6. LOANS
Easy enough if you have your digital currency mod. But what if the loan defaults? Is there a forced payment plan and the debtor can't fall too far into arrears, or can you just rack up interest infinitely?
Yes, interest would just rack up infinitely. One of the main strategies in giving loans is being wise on who to give them to.

What's the interval for applying interest and is it based on in-game or real-life time (what happens if the server goes down?)
You bring up a good point. I would probably have the intervals set based on game days or game time.

Thanks for the additional references, I will look into them.

GAME MECHANICS
Sales tax and land transfer/stamp duty are not the only forms of taxation. I am not sure what kind of society you are modelling but feudal agricultural societies would more often levy producers with a part of their harvest, like a tithe. Tithes were paid to the church, not just the king. Land value taxation is also very common. The land is assessed for its value by the ruler's representative and a fraction of the land's value is paid as rents since the whole country is technically the ruler's. Nowaday, states and national governments also often charge income taxes for those who earn above a threshold. However, taxes on transaction are obviously the easiest to implement if all transactions are digital.

Yeah there are many different types of taxes, another interesting one cold be an estate tax, also known as a death tax. It could be cool to implement something like tax evasion as well. But I'm not trying to build a tax simulator, the main purpose is to add a tax dynamic. To me the dynamic is important for strategic reasons rather than reasons of realism. Who knows what could be added down the road though. Taxes aren't the main element of the game, its just an additional strategic tool to manipulate the game economy, which is what I love in games... and very few have that.

Digital feudalism sounds a bit weird though, but, so does running a block game server where a bunch of peoples' jobs are just to be tax collectors.

I think though that handling cash could be fun, though not necessarily. Again, it seems appropriate to have physical coinage in a feudal setting, and fine not to have in a modern society type setting.


Indeed. This gets into the discussion of what is realistic and what is not. Like I mentioned before it is the strategic dynamics I am interested in, not the realism. It's always good to make things as realistic as possible while still being practical, otherwise you will end up with a totally abstract game, which I am not a fan of. But in the gaming world there are severe limitations on being realistic. There are so many things about the medieval/feudal era that Minetest and every other game can't cover. There is not a single realistic game about this era in the world. But there are a small handful of games that cover very small parts of the era realistically. Games like Minecraft and Minetest can't be realistic because it would be impossible or very difficult to simulate things like player reproduction and population growth (because you will always have a limited number of players). And there are many other things that such games couldn't simulate either. And every genre and subgenre of game has their extreme limitations like this. For example... a 2D top down game (which is what I usually make) can simulate population dynamics much better, but could never simulate construction like a Minecraft or Minetest does. To me Minecraft and Minetest are great concepts that sort of remind me of playing Legos with my friends as a kid... not very realistic, but has enough realism and strategic dynamics for me to be greatly interested.... that is, if i can add some financial manipulation like taxes and currency with dynamic market value to it.

But yeah, a simulation of the medieval monetary system would be very cool, its not what I'm going for here though. I have actually been working on an economic strategy game about the late medieval and renaissance era (different than the Steam game I mentioned). Even in this game I didn't include medieval coinage in... though I wanted to. The reason I didn't is that it would cause major complications with the way industry is simulated in the game unfortunately. Actually I think someone here could make a medieval coinage mod for Minetest, it would fit it quite well. It would probably be similar to what the game Eco is doing (they are one of the few games in the world that have dynamic currency).

User avatar
Blockhead
Member
Posts: 1622
Joined: Wed Jul 17, 2019 10:14
GitHub: Montandalar
IRC: Blockhead256
In-game: Blockhead Blockhead256
Location: Land Down Under
Contact:

Re: Your Opinion On Difficulty of New Project

by Blockhead » Post

abejones wrote:
Fri May 26, 2023 00:19
1. AREA SOVEREIGNTY
My initial idea was that if the CLAIM SOVEREIGNTY action was taken, it would claim sovereignty of all land within a specified range that is not already claimed. The distance I'm not sure about for technical reasons. But I would assume something like a 25 to 50 block radius. Any area a player has sovereignty over would be included together. So essentially each player would have 1 sovereignty regardless of where it is on the map, but could lose chunks of it from the above process. Of course if there is an easier way to do something similar technically, I would change this original idea... which is mainly why I'm asking all of these questions.
So it would be straightforward enough to create a system where you claim an area by placing nodes like in protector, and those nodes can be attacked and broken, and thereby taken over, or deleted and re-established.

I would require materials crafted to make claims, to stop claim spam.

What's to stop owners from kicking out sovereigns though? Nobody likes taxation. Military might? The threat of even worse tax terms?
abejones wrote:
Fri May 26, 2023 00:19
2. AREA OWNERSHIP
What is the relationship between sovereigns and owners? Can sovereigns break node without restriction in their area?
The original idea is to have no technical relationship between sovereigns and owners besides the taxing.


Can there be an owner without a sovereign?
Yes, by default all land will have no ownership or sovereign status.
Okay, so the code can live in different modpacks that have base mods, APIs and mods for supporting the other, as I have described.

abejones wrote:
Fri May 26, 2023 00:19
To what degree can subdivision of property take place? Just creating lots of land in the owner's area, or is the transfer permanent and severs the land from the original owner entirely?
I wouldn't want to put a limit to this unless technically it would be easier to do 10x10 lots, for example. Does the game engine divide areas of land up in any such way that could be useful for this process? If the lot is sold, the buyer would then have ownership of that lot.
So the system is not really subdivision as much as direct sale it sounds like. It's possible to make 1x1x1 lots and track those. The underlying system that you will want to use is an engine feature called the "area store". You will want a mod like real estate (source code mirror) to complete transactions as well. You may be able to adapt realestate, areas, and the existing currency & atm (various, search it up, but starts forking from here) mods much easier than writing your own, or you may find it better for your requirements to just borrow ideas from those mods. In particular the Minetest crowd which you will inevitably attract will probably notice if you just re-use those mods and probably appreciate a new spin on things instead.
abejones wrote:
Fri May 26, 2023 00:19
3. CURRENCY
More on currency below the technical discussion.

how are more notes made when the player is offline?
Notes wouldn't be printed when the player is offline. One of the main strategies for players regarding currency would be to manage inflation and deflation.
This does create incentives to be on. An absent sovereign would quickly become a failed sovereign.
abejones wrote:
Fri May 26, 2023 00:19
4. SUNLIGHT
You will have to look at the natural light data provided by the engine at the player's position and see if it agrees with the way you want to measure it. If it doesn't, that's going to be a lot of calculation potentially. You probably would short-circuit the evaluation too with a check like: player below -100? Definitely underground -> full penalty.
So basically it may be easier to just base this on the depth of of the player rather than the sunlight. This might be good enough, but could also be quite inaccurate at times.
It may be easier to just use depth, but you don't want to punish people just for living at sea level. In fact, with mountain air being thinner, living at sea level may be ideal instead. Just another spin on the idea. But again, maybe the API minetest.get_natural_light will be enough for you. It's just that checking if a player's y-coordinate is probably the fastest thing to do so you would check that first. Of course, this can have complications like if your world uses the y-levels for different dimensions (61,824 m tall is usually considered far too much height, and with no real dimension API, just cramming different layers together in y space and preventing travel from one to the other with invisible nodes is the most common bodge).

abejones wrote:
Fri May 26, 2023 00:19
5. LIMIT RESPAWNING
Not sure if you can block respawning, so if you can't, you need to revoke their interact priv and maybe imprison them too if you don't want spectators.
Now that you mention this, maybe it would be a better idea to not allow them to claim sovereignty or ownership for a period of time after death.
That can also work. As could a temp. ban. Depends if you want the player to be able to move around or not after their defeat.
abejones wrote:
Fri May 26, 2023 00:19
6. LOANS
Easy enough if you have your digital currency mod. But what if the loan defaults? Is there a forced payment plan and the debtor can't fall too far into arrears, or can you just rack up interest infinitely?
Yes, interest would just rack up infinitely. One of the main strategies in giving loans is being wise on who to give them to.
Okay, but don't forget to check for really really large loan numbers. Lua automatically goes to floating point so you may find it has inaccuracies up there. Of course, that's also in hyperinflation territory. Still, ending up with Inf money isn't great for the game I'm sure.
abejones wrote:
Fri May 26, 2023 00:19
What's the interval for applying interest and is it based on in-game or real-life time (what happens if the server goes down?)
You bring up a good point. I would probably have the intervals set based on game days or game time.
There's a few ways to track time. Run a callback every once in a while to count time. Ask for the number of days since world creation, and so on. Time can go backwards if you want it to..
abejones wrote:
Fri May 26, 2023 00:19
Thanks for the additional references, I will look into them.
No problem, it's always good to survey the landscape before embarking.
abejones wrote:
Fri May 26, 2023 00:19
GAME MECHANICS
*snip - stuff about taxes*
Well I will leave it up to you as to what kinds of taxes to leave in and how that will affect strategy. Taxation isn't too difficult though as long as all your transactions are done through some kind of interface on a machine/special node like a barter table. Then that machine can check for sovereignty and apply taxation where necessary. Players will kind of still trade regardless though I think.
abejones wrote:
Fri May 26, 2023 00:19
But yeah, a simulation of the medieval monetary system would be very cool, its not what I'm going for here though. I have actually been working on an economic strategy game about the late medieval and renaissance era (different than the Steam game I mentioned). Even in this game I didn't include medieval coinage in... though I wanted to. The reason I didn't is that it would cause major complications with the way industry is simulated in the game unfortunately. Actually I think someone here could make a medieval coinage mod for Minetest, it would fit it quite well. It would probably be similar to what the game Eco is doing (they are one of the few games in the world that have dynamic currency).
Well I think that a commodity currency with coinage based on valuable metals like gold, silver and so on would make sense in the kind of setting you are going for. But it would necessarily involve gameplay of manually crafting coinage and manual intervention in taxation, which may not be as interesting as other elements like power dynamics, which seems to be the main thrust of your design. Then again, there's definitely an interesting power dynamic to being a tax collector, but it's probably worse of a vibe than going to war over land. Again I'll leave it up to you as game designer.

Anyway, making a digital currency is not too hard as long as your mods resolve circular dependencies (as I have mentioned twice already now, not to labour the point too hard or anything..). Neither is make a coin minting machine.

In this project, it's more the number of individual modules that mean the project will take non-negligible time. Making sure they are all written correctly and integrate correctly. As well as other considerations that haven't been mentioned like map generation, technology progression and so on - whether to write more of those that will add a lot more time, or to integrate existing mods. Choosing and integrating mods is itself an important task and can save you time if you're smart compared to doing everything from scratch. Well, just make sure you do your research, play on a bunch of servers, ask people about what mods are unique to a server, check server's git repositories and so on. Wish you all the best.
/˳˳_˳˳]_[˳˳_˳˳]_[˳˳_˳˳\ Advtrains enthusiast | My map: Noah's Railyard | My Content on ContentDB ✝️♂

abejones
New member
Posts: 3
Joined: Thu May 25, 2023 11:51

Re: Your Opinion On Difficulty of New Project

by abejones » Post

Blockhead wrote:
Fri May 26, 2023 03:57
I would require materials crafted to make claims, to stop claim spam.
You're right, in such a setting there will have to be something to stop too much claiming in such a limited scenario, which is why I wasn't sure if I was going to put in the ability to claim after the sovereign was killed. There may have to be several things required if that is going to be an ability.
Blockhead wrote:
Fri May 26, 2023 03:57
What's to stop owners from kicking out sovereigns though? Nobody likes taxation. Military might? The threat of even worse tax terms?
The reason why people will accept taxes in most cases is if they receive stability in return for it (stability could mean a stable currency, military protection, or even good economic leadership), or if they are forced into it as you mention. Without a significant degree of organization taxing usually won't work.
Blockhead wrote:
Fri May 26, 2023 03:57
In this project, it's more the number of individual modules that mean the project will take non-negligible time. Making sure they are all written correctly and integrate correctly. As well as other considerations that haven't been mentioned like map generation, technology progression and so on - whether to write more of those that will add a lot more time, or to integrate existing mods. Choosing and integrating mods is itself an important task and can save you time if you're smart compared to doing everything from scratch. Well, just make sure you do your research, play on a bunch of servers, ask people about what mods are unique to a server, check server's git repositories and so on. Wish you all the best.
Okay, thanks again for the information, it's very helpful.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest