So there will be 2 states being stored, the realtime interactive one which can change and then the longerterm one which updates slowly or is fixed
One solution could be to load all surrounding blocks and then use distance blur or environmental fog to not look into empty space.
Loading surrounding blocks would of course be necessary to some extent. Maybe loading block even further away, but clumped together with reduced information too.
Obscuring things in the distance would be aesthetically proper, but honestly I can’t imagine anyone would use it. It would make it harder to identify landmarks, resources, other players, etc. If I were playing the game, I would just turn it off.
I would also scale the TTL of a block based on popularity
An issue I see with dynamic blocks is that you could end up getting a massive block, and then players could choose to congregate there in huge numbers, or lure huge numbers of players there for some reason, which could cause glitches.
maybe implement versions too so the environment can change over time.
Versioning would be an interesting challenge. I guess the only way to do it would be to have any planned changes released a while in advance, with a very specific time at which the world will change to that version. But even then, it will be risky.
maybe call it SafeWorld
I think this would be a very bad idea as it could easily gain a bad reputation. Consider the gaming addiction, swatting, financial issues, and health issues that regulated MMORPGs are associated with, any consider what risks one would have if it were truly decentralised.
Is the SAFE network well designed to keep updating in real time what actions people have taken on the world?
As this would be one of the core aspects of the thread’s topic, we’ll need to figure this one out…
I don’t see any need to say the world is X size and generate it all from the get go.
One advantage of having a static-sized world is that all of the terrain could be designed with a unique human touch. Generated terrain could get boring after a while. If you consider how massive other games are that don’t procedurally generate blocks, it’s clear that people would be happy to invest time into creating new areas manually.
Or you have natural landscapes being created procedural and players have to build stuff to give it their touch.
I guess the main issue here is how to get the most basic version off the ground. Like, how could something like this work to the extent that people could play it, and so that it could be updated at some point? At least to start with, there should be a finite landscape to make development easier to get involved with. Also measures to stop armies of bots and hackers from having an advantage (which I guess would be a necessary consideration for literally every update).
You know we shouldn’t worry too much about those things if the game will be balanced or not.
Let’s get a fucking sandbox game running and I’m HAPPY! We need to write a graphical interface that will load the data on the SafeNetwork and then allow your character to walk into it.
If this would work with multiple players even more AWESOME!
So to make things realistic and doable, let us focus on what kind of game engine we want to use?
Some engines around there which I know are:
-Unity3D
-Unreal Engine
Or maybe a simple OpenGL library which can translate the data into geometry and simple physics?
As for the data, lets not over complicate things, if we can load simple polygons from the data chunks we already got the basics working! I can attempt to get my hands on Vue and create a nice photo realistic terrain with height maps, flow charts of water and sediment including all the generated bitmaps. This mega terrain would then be rasterized into boxes which will represent data blocks that the user will download and assemble for interactive environment.
I think focusing on graphics would be a mistake. For a prototype it would surely make more sense to do a very basic representation in 2D to make it easier to get started, rather than thinking of game objects as inherently graphical.
In time, the default installation could feature a 3D interface, but there’s not much point making an interface if it can’t beat a more basic representation tactically and intuitively.
Sod your 2D - we want a pure text-based interface. Party like its 1985!!!
Seriously that will do to get the basics worked out
That’s nothin’ @neo used to fashion his little iron rings by hand and mount them individually on a grid* -
and THEN he’d get up before he went to bed and align them all with a magnet stolen out of a broken snuff-box.
*Proper hard-core
Aye. ‘E were doin’ all that since before 'e were born. Even before his mam were born
I guess one interesting aspect of this project would be that companies who make graphics APIs and GPUs and stuff might make their own branded interfaces as an advertisement for their product. That would be something new.
You are right, lets just do simple 2D game, if we can load blocks and translate this to being real-time loaded in the game we already got the major part solved.
I’d say the major part would be figuring out what the gameplay would be like. Hopefully the network will make the technical side of communicating and loading objects and whatnot fairly easy.
I just created a simple world plane 3200x3200 with 32x32 squares or 10000 tiles. The next step is to turn this single image into the image chunks and then load the chucks asynchronously from the network which will then be added to the game while you walk!
Already found a decent JavaScript 2d game engine to use called pixijs, next step is to find a simple sprite and have the character walk over this 2d land which will all be loaded from the vaults from home network.
My logic will be to load on startup first 10x10 tiles, then if you come close to the edge of the last 3 tiles it will already load the next edge tile closest to you.
And just for fun I will also have different sounds saved that are tied to specific chunks, so if you walk into an area it will load the sound too and once entered start playing.
Edit I went with this free game sprite: Ninja Adventure - Free Sprites - Game Art 2D
I guess walking anywhere would involve giving your own instance a preliminary instruction to move a small amount while also telling the community of your intention to move.
Then I guess you’d have to redownload all the nearby blocks a few times every second to see if you were actually successful in moving. I wonder if there could be a restriction on which blocks you could download based on your current location, and if there would be any point having that restriction.
It’s very similar to hosting a website with a file container. I don’t need anyone permission as the files are automatically distributed among vaults.
What if someone else goes in the space you were heading for, or something happened in the game to prevent you going wherever you wanted?
For now the main focus is single player, multiplayer game state is next stage.
Having blocks loaded from the vaults is what I want to achieve for now.