Decentralised MMORPG on the SAFE network

The problem there is import/export of content from and to content creators in and out of the game. Also if it was on a forked network that also decreases the value of the game currency in general. One of the advantages is that the game would use safecoin, a currency that could be used to buy other stuff outside of the game and be exchanged for other currencies like bitcoin or fiat. Yes it costs safecoin to upload data but if the forked network didn’t cost safecoin to upload data then how would the problems that that would create be addressed? Free PUTS have been discussed here on the forums in depth and there’s are reasons why it’s not implimented on the network. If there were free PUTS on a forked game network what’s the motivation to farm coins? If coins simply get created during farming then you face constant inflation of the network economy and eventually a worthless coin until you hit the cap. Then no one can farm anymore. Not to mention one wouldn’t have access to all the other apps available on the SAFE network as they’d need to be ported to the new network in order to work. And one wouldn’t have access to the community either. No creating a whole new network just for a game doesn’t seem like a good idea to me.

2 Likes

lets dumb down the idea and switch to the WWW and make a retro bright colored sidescroller with jumping between lines (like littlebigplanet with mjulitiple layers that loop back to make a planet) with tumblr features but with planets like your own blog, they are rewarded in straight hard cold cash (on paypal XD) for making money for the company (80% of the cash) kickstart it and get enough money to get the circulation going!

That is the point. We need to build a basic game first, and have users connect each other without servers. We then can figure out what to do from there. I build a very basic rust shoot em up side scroll game last month. I did so because I need to learn more about rust. I am working on bullets, and collisions when I get the chance. Once that game has all the basic features, I’m going upload it to safenet. I want to see how it works, and how well it functions.

Here’s the thing that everybody here is IGNORING… How do we deal with the connections, and how do we deal with clients that interact with other clients in MMO?!? Nobody here talked about solutions but create things in their mind how cool it would be if this… or that… blah blah blah…

Halo Online has issues with p2p model. Clients doesn’t know other clients version system, and it leads to disaster. One client could be using stronger version of a gun, and other player is using a lesser version of a gun. Who wins? Well that is really depends on the data outcome.

So if we all want to make this happen, we need to start formalize a solution. Again, one of my proposal is to plug extra resources into the memory pool, and have that to act like a server. The memory pool is temporarily, and will be erased after the matchmaking. Or another solution is to build a safe-server. I see nobody talking about this… well I do see people talked about this earlier in the thread but we’re not tackling on the problem!

2 Likes

You don’t need to use Safecoin for the game currency. On SAFEnetwork there will be ways to issue your own currency with characteristics more suited to gaining.

3 Likes

cool, so is there an api for online features and safecoin inside a normal application made for java?
or SAFEStarter (Kickstarter get it?)

When I’m playing WoW or other MMOs I spend a huge amount of time soloing. In fact the only time I really interact with other players is during instances. I think it has to be asked how much real time connections are REQUIRED in an MMO for any given playstyle. For a very social gamer that wants to go on raids/have huge guild activities or to use the second life model participate in big social events it might be much more relevant (or not) but a gamer that solo plays a lot there could be a lot of work arounds created. In fact those work arounds could be very beneficial.

But lets assume that you have a NEED for party consensus. That is you have a group of 2 or more players that NEED to have their actions synced and coordinated in real time. Could a node somewhere not be devoted to managing that similar to how SAFE has nodes manage churn events?

4 Likes

True, but there is a simple fix… A combination of Server based and SAFE (p2p) use java to make the and then wait for an API to come out XD after that use a server based system for a hub planet… done 10/10 would mmo again

1 Like

Oh and im in the process of making a forum for this (so we can have sections like WWW, safe and Html, java and realistic, unrealistic etc.)

I made a forum dedicated to a decentralised MMORPG if you register (blindsite2k) i will make you mod
website: http://www.safemmo.tk
password: icamefromcake

1 Like

Using servers has been discussed a couple times. There are security vunerabilities with that but it is a possibility. As for Java, why? Why Java? It’s slow and reliant on a vm to run. Doesn’t seem to be a very efficient language for writing a game on.

Why do we need a whole new forum for this? Why not just start a new thread if need be? And posting a password out in the open is never a good idea. I appreciate the offer but the whole thing just seems excessive.

1 Like
  1. java was a example
  2. i was bored… (and i can change it XD)
    and the password is for readers of this thread
1 Like

I think this whole thing needs to be broken down into something simple.

Be it a weapon, character, article of clothing, vechicle, or a solar system, we’re still talking about widgits of some kind. So how does a player add, manipulate, view, trade, classify, and manipulate widgits within the game world. Moreover how does the player import/export widgits in and out of the game world.

Another thought is how is UI designed and manipulated. A thought here is for UI to be composed much the same way as a widgit much the way second life custom UIs are designed. That is have a custom control panel with buttons, read outs, switchs, dials, whatever, and then pair that with a scripting or programming language. This would even allow for custom graphics and controls because the UI graphics wouldn’t be tied to the scripting language or information they would be displaying. You could take out the graphical “board” and put in a new one that was more to your liking; just plug the information into the new board. Somewhat like you take the hardware out of your old computer case and put it in a new one.

How does a player add content to the game. Well let’s assume for a moment that the player has already created the content and uploaded it to the network somewhere. But let’s think about this for a moment. Does a planet sphere need to be insanely huge WHEN you upload it? Could the game not do some resizing on it’s own? Moreover does it make more sense to try and build every nook and cranny of a planet: That is to say does it make sense to try and build INTO a cave network. Or does it make more sense to take a generic sphere and build extrusions ONTO it? When creating a planet in say blender one can create random geographic texture mappings which one can then turn into 3D images. This could take the bulk of the work out.

It must be asked do we want to land directly on a spherical world or do we want to load “levels” and various environs. If the latter then the “planets” do not actually need to be very high resolution. I mean they need o be resonably but not to an extreme, just good enough to be viewed from space. Then you’d need a secondary copy which was higher resolution with perhaps more mountains and what not for a decent vector when doing landings and what not. But you don’t need to put EVERYTHING on the same planet at the same time. Someone on the planet’s surface isn’t going to need to load the WHOLE planet, they just need to load their particular section of it.

Now given that this is SAFE I don’t know whether it would make a practical difference loading a huge file or a smaller one in order to compute gaming. But I’m suspecting smaller would be better and create less lag. So perhaps arranging things into “levels” or “zones” would be a good idea.

@Blindsite2k, check out the concept of procedural generation, it solves your planet problems! The Outerra engine uses it, and so does Chris Roberts’ proof of concept.

Yup. A big problem is that if there is any form of competition in the game, anti-cheat solutions are a priority, especially if you want to use a freely tradeable crypto-currency as in-game money. It’d have monetary value, so people would try to cheat the hell out of the system to make money.

This is why you can’t do direct peer-to-peer connections, you could DOS your opponents on critical moments. So in my view the best option is communicate through the SAFE DHT, using messaging and/or deterministically addressed StructuredData objects. This introduces considerable latency though. That’s why I think very-low-latency games where player reflexes matter aren’t doable without centralised servers.

I think it’d be best to find a mechanism to create a global “tick” on the network, which indicates a “turn” in the game. Just like people put transactions in new blocks in the BTC blockchain every 10 minutes, players put their game actions in “turn blocks” every X seconds, where X can hopefully be as low as a second. You could have a near real-time game that way.

2 Likes

There would be plenty of competition but the question is what counts as “cheating” as people would be constantly creating and recreating the world with new planets, creatures, quests and objects. In your typical game there is a set game universe with predefined races, weapons, technology and resources. But you’re right we don’t want people randomly God Modding all over the place. You don’t walk down the street, see some tough guy in your way, and then stop the game, create a bazooka, upload, and resume just to blow him up. So perhaps in order to create new tech, upgrades and so forth the player has to gather or buy resources. This means a new player can’t just randomly create new weapons and armor on a whim. They have to come from somewhere. Of course one can buy it with safecoin but that would be a lot of safecoin. One has to define what the rules are in order to define what cheating is.

Okay do you mind explaining this again and elaborating and expounding on all this? I’m having trouble visualizing all this.

This looks awesome. Though I’m wondering how we’d integrate it into a SAFE based game.

A tick is a unit of measure for time, specifically it is refers to a single instance of a repeated action (usually a broad action) in a game, or the period of time that action consumes.

Ticks are repeated and (mostly) regular; the term comes from one of the sounds a clock makes (“tick” and “tock”).

Typically a tick is an iteration of some loop, such as the main game logic loop. One can say, for example, that the game logic “ticks” once a frame, or that “during the tick, the character positions are updated.”

However it can also refer to more granular periods; one can say that “the AI tick in the game is limited to 5ms of processing time.”

FPS is a measure of how many frames (usually render frames) a game processes in a second. Ticks and FPS are not necessarily related, however sometimes people will call a single execution of the game logic loop a “logic frame,” in which case the (logic) FPS rate would be the number of ticks processed per second. This is particularly common for games that enforce fixed frame rates for game logic or physics for whatever reason.

2 Likes

So every second we’d take a snapshot or “tick” and update the consensus records more or less if I’m following you correctly.

2 Likes

Not sure how useful this will be given what we’re trying to build but I thought I’d post the find here given we are trying our hand at game development. And I doubt we’ll be posting anything on Amazon’s web services given this all is for SAFE lol.

1 Like

Safe network needs simple android games with safe game assets for in network trade.
Big game development cost big bucks and is unrealistic at this moment.
A lot of the population play simple games like candy crush, very simple but addictive.
In my house I have ps4 with the latest game that no one plays because my family prefers to play the latest puzzle games.

2 Likes

We don’t have what an MMORPG needs.

The communication channels required by an MMORPG are also required by many other kinds of applications, but MMORPGs push the limits the furthest.

A player needs to know …

  • about the building blocks – textures, objects, rules, etc; simple
  • what is around them – the indestructibles: terrain, some/most of the buildings, etc; procedurally generated content combined with a simple static database that is probably some sort of a change log (e.g. “building was placed/built” and some time later “building got blown up”)
  • what’s happening around them – and this is where we’re stuck #1
  • if they are being lied to – and this is where we’re stuck #2

1) real-time state

A player needs to let those around her know where she is and what she’s doing.

However, we don’t have a real-time protocol for distributing information. If we consider the routing overhead, it’s probably not even possible. To achieve latencies under a few hundred milliseconds, we need to escape safe’s own routing layer, but that sacrifices anonymity.

2) fantasy lands

We can’t trust each other. An MMORPG server first verifies that what a player says she is doing is actually possible according to the rules of the game, and then it distributes the updated state to those who are affected.

In a distributed MMORPG, the burden of verifying adherence to the rules lies with other players. If Alice tells Bob she jumped over a small canyon, Bob will have to decide if that is possible. However, what would stop Alice from ignoring Bob’s complaints? Or, if Bob is an accomplice of Alice and there’s nobody else around, Bob wouldn’t even complain, right?

Also, without a trusted central source (for let’s assume commercial MMORPG servers are trustworthy), we can no longer be sure that all players receive the same information: Alice may tell Bob she stepped left, but to Charlie that she stepped right: Bob and Charlie need to verify Alice’s claims with each other. However, if Bob is an accomplice of Alice, he may respond with “yes, Charlie, Alice stepped right” even though he knows it was a lie. Even better, Alice and Bob could just sneak past Charlie without ever telling him they were there! In enemy territory, where the opponents are the majority, you could never be sure what’s true and what’s carefully crafted illusion…

Well of course we can place neutral sentinels everywhere: paid judges to keep the game clean. How can we be sure though that the sentinels are not lied to? Or, that the sentinels are not bribed accomplices or double agents or whatnot?

I’m not saying these problems are impossible to solve, but they sure are fun to think about :smirk_cat:

2 Likes

You are right. Problem 2 is “just” the double spending problem though. Issue is that consensus takes time.