Hiding items in game world

Started by
10 comments, last by anttoo 10 years ago

I am trying to think of a way for players to have persistent items without having a login/account system. The main reason for not wanting an account system is because there would be no developer run servers, and managing accounts between multiple servers would be a pain for players.

What I've come up with so far is to let players bury their items in the game world. The buried items would have a dig protection through magic or something that would last a certain amount of time which could be set by the player. Dig protected items can't be dug up until the dig protection time expires. There would be a minimum dig protection time of maybe an hour. Minimum dig protection is to lessen effect of possible MitM setting dig protection very low so they can go dig up the buried items immediately.

If a player gets disconnected their items would be automatically buried.

Does anyone have ways to improve this? Any ideas of alternatives for persistent items without accounts?

Advertisement


If a player gets disconnected their items would be automatically buried.

And how to you recover your items ? Do you need a player dependent password ? Or do you save a key on the client ? How to you identify the player (dynamic ip, changing PCs etc.) ? In this case your player need to handle different passwords on different servers to handle its content, where is the real benefit compared to a single login server ?


Any ideas of alternatives for persistent items without accounts?

The absolute bare-bone of persistent items is a unique way to identify a player, in a hardware independent way. Account systems, especially account systems which uses the email as login, are really easy to hande for the player and the server alike.

You just go to the location your items are buried at and press dig to recover them if the dig protection is expired. There is no guarantee you'll get your buried items back if someone happens to dig them up before you, but that's what the dig protection is for, to lessen the chance someone else will dig up your items. If someone digs where your buried items are and dig protection is still up they won't get anything.

I want to avoid making players create an account on every server they play on, since I don't want to run a log in server. Servers would be player run.

I think making items somewhat easy to obtain would need to be in place for this to work though, so it won't be too big of a deal if someone else digs up your items.

Also all players would be equipped with starter gear with every login that can't be buried/traded/destroyed, etc.

If items (and money, because if you can't store items then you can't store money, too) are easy to obtain, what is its value facing the starter gear? Moreover, what is the value of items anyway then? I've no clue what the game idea is about, but notice that collecting items is one of the attractors of non-casual games. This attraction is omitted if items have no value. In a casual game like an FPS tournament items actually have no real value, but there is also no persistence.

Depending on your game, the 'buried treasure' mechanic might be fun.

I like the mechanic but it probably needs some refinements.

Immediately jumping into my mind are some possibilities.

If you have an area where you know people frequently die, a player could simply go digging in the region, possibly finding a goldmine. I see a potential exploit with automated diggers. If many clients are permitted, I can easily imagine a script where a large group of automated players go on a digging spree hitting every space in the world. I see a potential exploit with discovering spelled areas, you find them and know somebody uses it as a burial zone. I see a potential difficulty with player needing to seek out a private area before burying their treasures. If PvP is allowed, mobs of corpse looting bots may be a problem, especially since anonymity is preserved.

Otherwise, I do like the general feeling as a game mechanic. If the world is sufficiently persistent, you could write yourself a note "dwarf village, east 2 screens, north 5 screens, two steps from the third oak tree." That has a certain appeal to me rather than a bottomless storage vault.

Is the goal to generate a game mechanic, or is the goal to let players save progress even though servers are player-hosted?

If the goal is to let players save progress, you could support "save" on whatever host is hosting the game, based on the players nickname and password (which might be specific to that server.) When the player next logs in, the progress is restored. This is no more or less secure than "burying" the treasure on that same player-hosted server.

Also, if your game is any popular, you have to assume that players will host their own servers on machines they have full control over, and this means they can create new bundles of stuff "buried" or "saved" and then recover it -- scarcity will not be possible for a purely player-hosted game that is popular.
enum Bool { True, False, FileNotFound };

It's a mix of the two. I also want to let the server spawn random treasure that doesn't belong to anyone initially(although most likely not as good as player buried treasure would be.). I'm not so much concerned about security by using this as I am about convenience. Although a developer ran login server would be more convenient, I don't see it as an option for now, so I'd rather players not have to manage accounts between servers(and create a new account for every server they play on), even if they do use the same info for all of em.

I'm expecting players will also run their own servers for benefits for them and their friends, and I don't have a problem with that, if other players on the server care about it they can start their own server or play on a different one.

I want the game playable solo too but with the same multiplayer architecture so playing solo would start up a server, but wouldn't accept public connections.

The most convenience is:
- When I log out, the server sends me a random string, and saves my progress to disk keyed by this random string
- My client remembers this random string, and the next time I re-connect to the same server, it provides this string, and the server loads this progress

This implements automatic save/restore of progress without any intervention by the player, no accounts, no setup, just magic.

If digging and burying is an intrinsic part of the gameplay, though, there may be reasons to use that for saving progress instead of making it "just work."
enum Bool { True, False, FileNotFound };

I think I might use a mixture of a server generated progress keys and item burying. I think I'll have to make player inventory space fairly small so they will have to choose to bury some things they want to keep. I might have to also have to put a cooldown on digging.

You could give the players a chest of some sort, with a lock that opens with a short password (length depends on how many opening attempts you allow per unit of time).

The player can then dump the most important equipment in the chest, set some password (or keep the previous one) and bury it in the ground and put the cheap items on top.

If another player finds the 'treasure', only the cheap stuff will be found. The chest should be openable manually by hitting it with an axe for a few days (maybe time will make it weaker, so if the player isnt coming back the chest eventully becomes easy to break due to moisture or rust).

Of course you can aquire better chests, multiple chests (so you have multiple hidden chests in case one is found and broken into), maybe even buildings or some slots in a bank to store yours stuff in.

o3o

This topic is closed to new replies.

Advertisement