Jump to content

SMP multiplayer server needs


redram
 Share

Recommended Posts

Since Tyron said he'd been waiting for someone to start a suggestion thread on this topic, and nobody has yet, I thought I'd get the ball rolling.  I'm not the best person to be doing this since I've never run a server, only played on one.  But maybe this'll get it started.

I'll first say as far as minecraft-related stuff, I've only played TFC in SMP, and only one server (Happydiggers - hereafter HD).   So everything I say will be from the perspective of my experience there.  I don't know if all this is obvious and you were looking for more the technical side of things Tyron, but anyway these are my thoughts.

Chunk claiming - I gather that VS already has some form of this.  However beyond just having it, we need to make sure that it is configurable in a way that is broadly useful.  On HD you started with X chunk claims, and you got an additional Y claims per citizen of your 'town'.  That rate needs to be configurable of course.  I know there was some option in the tools HD was using for requiring maintenance of the owner, so you had to pay monthly for your claims, which would presumably act as a brake on rampant claiming, but that was not in force on HD.  I wonder how often that ever gets used on a server.  Personally I like being able to come back to my town months later and not find my claims gone and town looted.  Maybe others can speak more to this.  There were also options to have chunk costs so the player had to pay for them, and also an option for a virtual currency, but those also were not in force.  Within your town, there was a mayor (which was a transferable title) and various levels of assistants with various permissions related to claiming more chunks for the town, adding members, removing members, etc.

Nations - On HD you could start your own nation, with your town as the capital (you could move the capital to another town though).  Others could join have their towns join your nation.   This opened up certain permission options (more on that later) but also all towns in the nation got Z bonus chunk claims per member town.  Even the capital city got bonus chunks just for starting a nation, even with no member towns.   I don't know if this was possible with HD's addon, but i would suggest at least having the config option that a member town cannot use their nation bonus claims without having some population to their town.  Maybe for every town bonus you're entitled to, you have to have 1 town member.  Because what I'd see on HD was these single-person towns that were part of gigantic nations, that would create these ridiculously huge claim blobs just based on nation bonuses, which seemed to me like it bloated the map.  Abandoned towns is already enough of a problem, but it adds insult to injury when some fly-by-night player has permanently locked up 100s of chunks of land, and all they've got is some stupid little hut.  So you join a nation, and now there's ten town in your nation and every town gets a bonus 5 chunk claims for every town in the nation, so you could claim 50 more chunks.  But have the ability to say each 'town' worth of chunks (in this example 5) only becomes available when you add a person to your town. So to get all 50 chunks you have to have 10 or 11 town members at least. 

Outposts - On HD you had a number of 'outposts' you could have (this was configurable) which were basically non-contiguous claims for your town.  I think the standard was 2 or 3.  This allowed you to claim a sweet ore deposit far from town.  You could also teleport to your own town's outposts (not those of even allied towns though). 

Embassies - You could be given (purchase option was not on) a  plot in another town.  This was an 'embassy' plot.  I guess it was owned by the town but you had permissions to build and stuff in it.  This allowed you to set up an 'embassy'.  Probably could have been used for merchants as well, if HD had had merchants. 

Teleport - I do think it's crucial to have an option for the server to allow teleport between towns and outposts.  HD toyed around with cooldowns on teleports (I think initially 30 seconds) but they reduced it bit by bit as apparently most people really didn't like cooldowns.   When I was first on HD I tried the "hardcore" TFC server, but basically it just meant more travel time, and nobody visited your town if you were at all far from spawn.  And lets be frank, why do we play on SMP servers if not to show off our towns, or visit other peoples?  I eventually quit the hardcore server because it was basically just like playing single player.  

Permissions - There should be a fine degree of permission control within a town.  At the macro level you could control if your town was 'public', which meant whether or not players could teleport to the town's spawn point (teleport was allowed on the HD freebie server, but not some of the hardcore ones).  Most permissions were chunkbased iirc, I don't recall exactly everything HD had, but I know for one you could choose to allow or disallow mob spawning, fire spread, item use, block breaking, and block placing on a per-chunk basis within the town.  You could control it via citizens (direct citizens of town) allies (citizens of towns in the same nation) and everyone.  Item use was a really annoying one though, because disallowing it disallowed a visitor's ability to eat or drink, iirc. I don't think those should be part of the permissions, a visitor should always be able to eat their own food and drink. I would further suggest that doors be a separate item use permission.  I might want to allow tourists to tour the town, but not use my process blocks.  I believe on HD, despite permissions I think you can still use right blick to harvest pop-off items like berries.  So that may need to be a separate permisson maybe?

Locks - a crucial aspect of player security, is locks.  HD used lockette for minecraft, which basically you placed a sign on a block, entered a specific format of text followed by the name(s) of people allowed to access that block, and that locked it.  You could use this on any block.  So chests, doors, or even just a simple plank block could be locked and prevented from being accessed or broken.  The block thing was important for TFC because for ingot piles you had to lock both the pile and the block underneath, because if the block underneath was removed, the ingot pile would collapse into loose ingots that could be picked up by anyone. It was nice in that it worked for anything, but It sucked in that it was ugly, and the signs themselves occupied a block. 

For VS I would at least like to see chests and doors have integral locking capability that did not require external space-taking items to lock.  Since signs in TFC require a saw and so puts them in the metal age, I think it's fine to make actual padlocks or whatever for VS.  Copper level might lock out non-town members (allowing door permissions to be on for everyone, but certain doors to be locked against tourists), bronze to be lockable against allies, and iron and up to be individual level locks.  Or maybe that all needs to be available at copper age, whatever, but there needs to be locks, and they probably need to be useable on process blocks as well as chests and doors.  It'd be nice if we didn't need to use them to secure ingot piles or other collapsible blocks.  Maybe a server config for whether or not ingot piles and such collapse without a base?  But I could also stand to have it, or course.

MERCHANTS - Please, please have a built in merchant capability for players.  HD lacked this, and it wasn't so bad there because TFC's economy was utterly terrible.  I'm hoping VS does far better on economy, but for SMP that needs to be supported with merchant options for players.  I think both in-town of course, but also the ability for players to have merchants in other towns, or at spawn.  Don't know if that needs to be able to be managed remotely or not.  If teleport is on it should not be that big a deal to just pop into spawn and restock your merchant.  The mechanics of trade probably deserves it's own post, and more input from people who have a broad range of experience.  But suffice to say, I think it would do a great deal to extend player stays in SMP servers if they could actually do something commerce related.  

I think that covers the basic stuff.  Obviously there's a need for ban and other player wrangling tools, but others can speak to that better.  But as far as 'front end' stuff I think that if the game had everything I mentioned above (except maybe embassies and merchants) that would form a good basic SMP server situation.  oh and one other thing:

Tick Hog Limits - HD has rules about how many of various ticking entities you can have in your town.  Namely fruit trees, animals, and crops.  They unfortunately have no way to code police that though, so it basically requires intervention by the server admins.  VS seems to run far better than minecraft, but it might be useful to include an in-coded ability to limit how many tick-sing entities can be present in a town, including mobs, crops, fruit trees, and npcs.  HD also found that one of the biggest problems with animals was their wandering and bumping into fences or other animals so they have a rule that each animal has to have a 1 chunk pen of its own, to reduce bumping.  If this were also found to be an issue with VS, it might be useful to create a way for domesticated animals to simply be immobilized.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, redram said:

If this were also found to be an issue with VS, it might be useful to create a way for domesticated animals to simply be immobilized.

I'll just say that I doubt weird hacks will be needed. The devs here interact with the community in a meaningful way, and any major issue will be fixed sooner or later (probably sooner).

As for teleport: I think there is a really cool way that could be implemented: Add a sign post block, and allow teleporting from any sign post to any other sign post that has a mostly unbroken stretch of path between them. Basically you need to build a road,but once it is done you can teleport to any place that is connected to the network. For performance reasons it would probably be best to keep a 2D "road here" bitmap to use for teleport pathfinding.

Edited by Milo Christiansen
Link to comment
Share on other sites

Ya, considering I've had just a bit of lag before with maybe 2-3k mobs just in my area, I'm also hoping it won't be such a big deal for VS. 

The teleport thing, ya, having a gimmick might work.  But just based on what I saw on HD, some people are just flat out lazy, or don't want to be constrained from their server tourism.  So just a straight up teleport option needs to be part of the mix I'd say, though there can certainly be others.

You also reminded me of one other thing.  HD has their 'dynmaps' of the server (here's the freebie one).  It's a very detailed map.  It's good for seeing how detailed a town might be, and you can even discern stone types, and surface ore that's showing to the sky.  This allows people to target their town really well.  I've often wondered though, what would happen if the map was more 'antique atlas' style, so abstracted.  I think it might be interesting to have that as a map option, and it might be able to play into a cartography trade.  Of course right now I'd settle for any map at all - that's might be another pretty important thing to have for SMP.

Link to comment
Share on other sites

Good that you started the post. It helps to start the conversation.

We also need to have if we don't already a white-list and black-list system. I just do not tolerate griffers. For me, it's a one-time offense and automatically black-listed. 

I was more tolerant of other kinds of server rules infractions like cursing, I was willing to give some warnings before banning.

Some people like the idea of Jail, it does not make much sense for me as the player can basically join the server and go watch some youtube videos for the duration of the jail time.

One other useful tool is the ability for the owner to promote Moderators and admins. They can settle disputes and restore properties.

As far as Teleport goes I am completely against, I love to build roads and give the players a reason to domesticate horses for fast travel between towns. Many people have a different idea and it's OK as long as there is a config to enable or disable depending on the choices of the server owner.

I have no idea how intensive VS will be in terms of map size. As much as I know all Minecraft server limit their maps to a certain size.

With Darkagecraft we always pre-generated the maps to help with LAG. We had some tools made it possible to configure the size and dimensions of the map.

Dynmap was a very useful tool, as it allowed for server planing, also the players could see who was online and where they were.

Edited by tony Liberatto
  • Like 1
Link to comment
Share on other sites

The jail as one more tool for the server admins is OK. We try it, or one of the Jail bukkit plugins, can't remember which. It didn't work very well, it was just one more building in the Spawn area.

Maybe other admins had more success with it.

I guess the main problem we have here, is that the comparisons between VS and Minecraft are inevitable and for server owners, we just had an almost infinite number of plugins from Bukkit. 

Here, unless someone else decides to create those plugins the load is all over @Tyron shoulders.

What would be more desirable now? To have him working on developing the game or on creating all those admins tools?

I really do not know the answer to that.

For one side the game needs a lot of development, there are just too many features missing.

For another, having some basic server admin tools would allow for a proliferation of servers, they could, in turn, bring and keep more players.

 

  • Like 1
Link to comment
Share on other sites

Well, all the tools listed so far sound like abilities of the towny plugin. I'll add some basic categories and stuff trying to boil it down to the basics. Some of these are repeats from above, some are already implemented. 

  • The ability to define an area from several chunks to one block
    • ability to define an area within an area (So that a player can only build on his plot or can't interact with any block except one door, etc)
    • a way to visually see the boundary of a defined area
  • Control mob spawns within a defined area.
  • player permission - place/remove, interact, chat, use commands, join, create dimensions, create teleportation points, open lockable containers, hurt mobs.
    • Configurable whitelist, blacklist
    • Set player permissions within a defined area
    • configurable anti-spam measures (this can be tackled multiple ways with different trade-offs)
    • list of banned words for all chat channels
    • group permissions together for ease of use.
      • copy permission into a new group name.
  • disable specific environmental damage such as fire and explosions. (For those who want to live in static environments)
  • change world spawn point
  • Auto world back up in archive with configurable timer
    • select an area to roll back to selected archived backup (roll back the world, roll back an area in the world)
  • Log whenever a player places a block, destroys a block, access a container, or kills an entity along with the location of the player.
  • Log all chat communications including player and channel.
  • create teleportation points
    • ability to set teleportation between dimensions
  • Have players spawn randomly around spawn point within a configurable radius.
  • create new dimension (resource world, world nexus, etc)
  • public ban list. (a searchable list of players that states what servers they have been banned from and the reasons they were banned)
  • some way of tracking server resources to track down lag
  • create commands alias (to execute several commands with one line)
  • Assign numbers to a player for things currency, penalties, how big of an area they can claim, etc.
  • A mode to see chunk boundaries.
  • A way to see the strength of your connection to the server(answer the question is it the server or you)
  • Stop world growth after a certain size
    • pre-generate world of a certain size.
  • Create fake player(has uses as storage device and video stuff)

Dimensions, void worlds, lockable containers, vending machines need to be things. A vending machine is a container that when given a certain item and quantity will dispense a certain item and quantity.

With these abilities, server admins can setup towny like controls, adventure maps, police their server, and a whole host of complex behaviors. Ease of use can be added later and I'm sure some fine tuning will be done such as making sure claims don't overlap, etc.

How these can be used to setup towny like environments

Spoiler

 

A town is just a selected area that when an action is performed it checks if the player has permission to do that. Ranks in towns are just a subset of permissions within an area. Expanding town is a command that adds a number to a player and adds permissions to another player.

A nation is just a group of selected areas

An outpost is two selected areas in which you have permission to set up a teleport point.

the /home and /outpost are commands to use a named teleportation point.

A lot of these commands are aliases to a group of commands to set up things in a certain way.

 
 

Dynmap is a cool mod but is not needed as an admin tool IMO.

Edited by Stroam
clarity
  • Like 1
Link to comment
Share on other sites

I am still in progress reading the long thread, but yes, HD uses the Towny plugin.

[Edit:] And Prism plugin for logging player's actions for grief investigation and prevention.

Btw, megarespect to @redram for such awesomely structured and detailed description.

Edited by heptagonrus
Link to comment
Share on other sites

I've played on a server, where claiming and maintaining chunks cost "money". I liked the idea, it's something worth thinking about server side.

Technically, server admin should be allowed to define:

- initial price of creating a town (may be zero if desired)

- initial price of adding a chunk to a town (may be zero if desired, may be flat price per chunk, may be progressive prices with each next chunk costing more)

- price of upkeep (calculated in in-game time periods, like months or years, may be zero, may be flat per town, may depend on the number of chunks)

- there might be some special setup for outposts, i.e. outpost chunks may be limited in number, but cost less. That would require outpost chunks to be at least some distance (n chunks) from main town chunks, so the lower prices cannot be abused for extending one's town with outpost chunks. That is an optional idea, not necessary in my opinion, but something to think of.

If all prices are set to zero, then there is just no cost of claiming chunks, period. Definition of prices should be completely independent from server limits, i.e. if a server has, let's say, 16 chunk limit per player, it can also have prices or not, but even with prices, a player cannot "buy" more than 16 chunks. Or a server can have no limits, but prices set up progressively in such a way, that buying more than 16 chunks is not feasible anyway. Whatever an admin wants.

The most convenient way to manage paying is to set up virtual currency and possibility to sell resources and get paid in the currency. Currency would be kept on player's personal "account" and could be transferred to town's "account". Money from town's "account" would be taken when claiming chunks and for upkeep.

I'm not sure, but I think Towny allows for something similar to what I'm describing here...

Now, for those protesting the idea, because they like to return to servers after a few months: this is all optional. An admin can set everything to zero. OTOH some players like servers with economy and that helps create one. And prices of upkeep can be (even should be, in my opinion) set much lower than prices of claiming, making it so a player can go on vacation or make some other break and still be able to come back to his/her town (if with its coffers slightly drained ;) ) and continue playing. But if they give up completely, eventually their town will be abandoned.

Also, this can be taken further with personal chunk ownership and embassy plots. Like, if I get an embassy in someone's town, I have to pay for it... Or if I have a personal chunk in a town, I have to pay too... Like rent ;)

This is all quite complicated, I know, but if Tyron implements basics like chunk claiming, the paying for it part can be an external mod written by someone else. I'm just pointing out the possibilities, it's always best when designing a system to have all possible aspects and future modifications in mind.

  • Like 1
Link to comment
Share on other sites

8 hours ago, tony Liberatto said:

What would be more desirable now? To have him working on developing the game or on creating all those admins tools?

Story of my life :D

Given enough time I can probably make you server tools in the likes you have not seen before (as in 100% GUI driven), but is it the best use of my time... D:

Link to comment
Share on other sites

Ya, Stroam's right, Towny is the thing HD uses.

4 hours ago, heptagonrus said:

[Edit:] And Prism plugin for logging player's actions for grief investigation and prevention.

Oh ya, I forgot to mention prism.   Prism let's the player themselves inspect a block, or void, and find who placed or removed the block there, who took items out of a container, etc - It's all logged. I think it goes back 60 days on HD?  It's pretty useful for helping players police griefing.

Regarding maintenance, another option might be that if the player's maintenance runs out, they keep the claim on the chunk, but they're locked out of all permissions.  So it can't be looted by the general populace thus giving the player a chance to get 'pay up' their back rent.   The player's home chunk never needs rent though, this allows them to store wealth there, in case they need to use it to pay their back rent later.

Of all those features, I think the very most basic would be white/blacklisting, chunk claiming (with fire, mob, and explosion permissions), and locks.   With those three things, you could have a basic ability to police the server, and basic ability for players to be secure that what they've built and worked for isn't going to be griefed.  The rest could wait.  I mean, the whole thing could wait, I'm also more into content right now.  But if Tyron wanted to implement the barest of barebones, I think that might be it.

Edited by redram
Link to comment
Share on other sites

That's a lot of good ideas and there are a ton more of great tools we got used to having with bukkit.

Right now, I think the priority would be:

To have some kind of Web-based control panel. This would be a way for a server owner to give admin rights only to one instance of the game that would be controlled by that CP. This is needed so admins other than the server owner can restart the server and issue general commands without the need to have access to the actual OS or files in the host.

To have the server log each individual action of every player, It should use SQL/MySQL.

To have a easy to use Whitelist/blacklist Ban feature.

That's it with this 3 things we can make a server that can be properly managed. Everything else is needed and will be used, but it can wait.

 

 

Edited by tony Liberatto
Link to comment
Share on other sites

There is already whitelisting and you can ban players. Banning does not require the player to be online, so it's basically blacklisting.

Also as mentioned earlier, you can also set up that players cannot build anywhere except in designated areas (or the way around). Altought the command for that is somewhat user unfriendly.

But I can help with it any of the existing features where needed.

(and Block Place/Interaction Logging could be done by any modder with a few dozen lines of code)

Link to comment
Share on other sites

So the one thing missing is a web-based control panel so the server owner can give access to admins to be able to restart the server. Otherwise, we still will have the issue with the Time Zones.

I imagine it would be possible to give access to admins using Linux properties to folders and files. For myself, I ended up getting a Multicraft license, because it made the whole process easier and even created ftp user and permissions.

Edited by tony Liberatto
Link to comment
Share on other sites

Hmm... I could roll up a server monitor with web UI. The web UI may look kinda crappy, but if I use templates anyone can fix that.

The tricky bit will be making the monitor work equally well on Windows and Linux, and really, that isn't very hard.

EDIT: I'll see what I can do later today.

Edited by Milo Christiansen
Link to comment
Share on other sites

2 hours ago, Tyron said:

Also as mentioned earlier, you can also set up that players cannot build anywhere except in designated areas (or the way around). Altought the command for that is somewhat user unfriendly.

Is that just building/breaking, or does it also include accessing containers, whether GUI ones like chests, or GUI-less like tool racks?  Block removal and placement is only half the security players need to be sure their stuff isn't going to be messed with.

Link to comment
Share on other sites

27 minutes ago, redram said:

Is that just building/breaking, or does it also include accessing containers, whether GUI ones like chests, or GUI-less like tool racks?  Block removal and placement is only half the security players need to be sure their stuff isn't going to be messed with.

It controls break/place and interacting with blocks, but I never tested it much, so there might be loopholes. Setting fire is probably gonna work. I'll check that out

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.