Pi-finity! A Network-based MMORP Game Being Built by and for Only R-Pi Users


37 posts   Page 2 of 2   1, 2
by Jim Manley » Fri Apr 13, 2012 5:06 am
I"ve been fooling around with bits and pieces of things and here"s an example of the quality, realism and detail of the world models I"m shooting for, hacked into a WebGL demo:
http://everreal.zxq.net/Pi-fin.....rth_1.html
Viewing requires a WebGL-compatible browser (e.g., Chrome, Firefox, etc. - IE won"t work as it"s stuck with DirectX/Direct3D). As a bonus, you can click on the planet and drag to rotate it around the x and y axes, and it will continue rotating from the orientation where you release the mouse button. Also, if you hold down the Shift key while dragging up or down, you can zoom in or out (repeated clicking and dragging in one direction increases or decreases the level of zoom). If you zoom in enough, it"s like a view looking down from the International Space Station as the Earth crawls along below you, albeit much faster. I chose a rotation rate fast enough to make the rotation immediately apparent and so you can see the entire planet in a couple of minutes. Zooming in enough causes the details to get fuzzy, as the image map used is only a few hundred KBs in size, but, a more detailed image map can be used. I have image maps for all of the planets in our solar system, as well as some major moons, including Earth"s. I also have image overlays with clouds that can be superimposed over the planet"s surface that can move independently to simulate weather and atmospheric effects.

SN - The first rule of FlatWorld is that nobody talks about FlatWorld! ;)
I"ll start working on pilot.blocks.protostar.flatworld1 this weekend.
The best things in life aren't things ... but, a Pi comes pretty darned close! :D
"Education is not the filling of a pail, but the lighting of a fire." -- W.B. Yeats
In theory, theory & practice are the same - in practice, they aren't!!!
User avatar
Posts: 1356
Joined: Thu Feb 23, 2012 8:41 pm
Location: SillyCon Valley, California, USA
by SN » Fri Apr 13, 2012 9:59 am
another thought relating to 'world' relationships

so as we don't end up with a scattering of worlds unrelated in any pseudo-physical way we need to be able to support the concept of worlds within worlds or associated with other worlds (and not be static either)

some simple examples:

- we should allow someone to run a 'solarsystem' in which 'planets' exist  - a parent/child relationship is needed - and those planets should be allowed to move within that solarsystem.

- the world may simply be a ship which travels between/around other worlds - in which case we need to be able to model an 'outsider looking in from another world' view for that world (applies to previous example too)

- someone might want to run a microworld which wholly lives inside another (I'm thinking of a 'borrowers' world inside a normal sized one)

at the very least we need to be able to support 'jump points' or 'teleport portals' between worlds and allow restrictions/rules/constraints/transformations to be associated with them such as-

"you can't park your spaceship in my front room" ;-)
Steve N – binatone mk4->intellivision->zx81->spectrum->cbm64->cpc6128->520stfm->pc->raspi ?
User avatar
Posts: 1009
Joined: Mon Feb 13, 2012 8:06 pm
Location: Romiley, UK
by Jim Manley » Fri Apr 13, 2012 7:59 pm
If I didn"t already type it out loud (some things that are clear to me in my head haven"t magically appeared in others" heads if I haven"t actually posted them, for some reason), I am planning on everything being located in Real Universe 3-D space, so, that could be our means of resolving conflicting world locations (stake yer claims, Klondikers!). Per Steve"s observation, there can be solar systems with planets, and there have been only a couple of thousand planets detected within a few thousand light years from Earth. There are an average of three planets per star detected so far, so, there are somewhere around 299,999,998,000 other potential undetected planets just in the Milky Way galaxy. How many bits do we have in a 32-bit address space – only ~4 billion? We"re gonna need a bigger address space, Cap"n Quint … declare type long long int of 64 bits just for each world"s unique ID. Yeah, I know, I like to think big, but, who would have thunk three months ago there might be a million people waiting to receive a Pi? :)

If we really are going to have so many worlds, we may need to come up with an automated planet surface modeler/renderer where players can select general characteristics and the planet"s location relative to its star would influence its structure. For example, inner planets tend to be smaller, rocky worlds with potential water in liquid/vapor form, while outer planets are gas/liquid giants with icy moons, or ice dwarfs. This is probably one of the things we can worry about later, but, part of the fun of working on this kind of project is being able to take a break from the hard-core code stuff and enjoy playing with the graphics.

Another inspiration for Pi-finity! visuals is the astronomical simulation/exploration software from CelestiaMotherlode.net, which features planet models with image maps as large as ~86,000 pixels in circumference derived from Hubble Space Telescope and interplanetary probe images such as Voyager, Magellan, Cassini, etc. (most planetary image maps only contain 1,024 pixels, such as my WebGL demo). Celestia has a plug-in architecture for add-ons that can be independently developed, and there are even 3-D models for actual satellites and probes, as well as fictional models inspired by "2001", "ArcBuilders", "Babylon 5", "Orion"s Arm", "Star Trek", "Star Wars", etc. (all work and no play makes Jack a dull astroNut :) ).

When a world is created, the data needs to be propagated to all of the nodes in the mesh (if a centralized server is not used), but, when we"re just starting out, how is a mesh formed? We would include the P2P code (based on, if not actually a standard torrent client) in the installation and one of the installed files shared would be the tracker file with all of the IP addresses of other nodes that have downloaded and run the installer. Then, the new node adds its address to the tracker file, and the updated file is shared with some number of other nodes in the tracker file at some minimum interval (once a minute, or a few?).

This is a bit different from existing torrent behavior in that nodes would need to notify others that a shared file has been updated, then they initiate a broadcast request for the file, but, only a version with the latest time specified in the notification. There"s probably some risk of a circular race condition happening if some data is dropped or delayed, so we may need to use a small random delay, similar to how packet collision back-off algorithms double the timeout with successive collisions, plus a small random delta by each collider, to offset their respective next attempts.

Yes, as hard as it might be to believe, none of the kernels available for our Arm11v6 CPU was built with floating-point hardware support, but, we have to remember that the BCM2835 SoC the Foundation selected (used in the Roku 2 series of media streamers) was designed specifically for streaming digital video and audio from network sources, with minimal user interface and housekeeping performed by the Arm CPU. It was never envisioned as a general-purpose computing platform – the CPU doesn"t even boot from the SD card, the GPU does! Since OpenGL and OpenVG APIs are provided into the GPU, access to all of the floating-point hardware capability we could want (even for much more than $35) is available, but, we may have to take over the system, rather than run within X via LXDE, etc., at least until the kernel mavens figure out how to integrate GPU acceleration into the kernel for X support. Actually, that may not be a problem because running on top of anything else like X and a desktop just means that much less RAM will be available to us, and we"re going to need every bit we can in order to pull off this project at the lofty levels I"m dreaming might be possible.

The RAM constraints mean implementing at least some of the infrastructure in C is probably advisable, and we may need to be careful about just glomming a bunch of libraries on from which we may only need a limited number of functions. We may need to cull just the code we need, which will also reduce the SD card footprint, although, even with a 1 or 2 GB card, there"s still an insane amount of space available since 3-D models tend to be only hundreds of KBs in size, and even the 1,024 pixel image maps are only around 100 KBs. If we do need card space, we can also remove the vast majority of the release cruft not needed by the game, resulting in a Puppy-like svelte OS baseline. We can always wrap the C code in Python as modules that will be easier for our less-experienced team members to use, not to mention us Brainiac developers typically working late in our spare moments not needing the headaches associated with misplacing pointers and mangling memory management.

The point about a spacecraft/station being a "world" is a good one – "Deep Space 9" was nowhere near any planets, Class M or otherwise, to which they could beam poor, hapless red-shirts to live out the brief rest of their lives before being turned into freeze-dried little piles of their constituent chemicals.

I think it"s perfectly fine for each of us to do some experimentation at this stage, and it doesn"t really need to mesh together until we have some hardware to try out the more performance-challenging aspects of what we want to do. In fact, I would prefer each of us owning independently buildable modules that share data both locally and over the network through very clean, well-defined interfaces that are self-describing. For example, named-slot/value structures and protocols could be used, at least until we know what we really need, and then we can collapse things to type-order based signatures as in traditional function/procedure/method calls and protocol block-order streams. I think I"ve said before that I"m not looking to build a singular, gargantuan monolith of tightly-linked code that would take hours to build each time we all submit a bunch of changes. Doing resource critical stuff in C and then the bulk of the functionality in Python will make it easier to maintain that loose coupling. The protocols will be the key, and it"s going to take a while to iron out how those should work, after we have the data structures for shared information figured out.

It would be really cool if, in the process of building this, we managed to finally crack the nut that makes building 3-D games, and games in general, too hard. I"ve always admired Pinball Construction Set and similar drag-and-drop configurable games from the late 70s or early 80s, that provided the ability to design games via pinball primitives like flippers, bumpers, spinners, poppers, lights, lanes, plungers, rollovers, etc. If we could come up with something even a fraction as easy to use, we would really have something, even if there is a whole lot more to do and will take quite a while to get so many elements figured out.

To dream, perchance to snooze! :)
The best things in life aren't things ... but, a Pi comes pretty darned close! :D
"Education is not the filling of a pail, but the lighting of a fire." -- W.B. Yeats
In theory, theory & practice are the same - in practice, they aren't!!!
User avatar
Posts: 1356
Joined: Thu Feb 23, 2012 8:41 pm
Location: SillyCon Valley, California, USA
by modmypi » Sun Apr 15, 2012 8:32 pm
Jim Manley said:


When a world is created, the data needs to be propagated to all of the nodes in the mesh (if a centralized server is not used), but, when we"re just starting out, how is a mesh formed? We would include the P2P code (based on, if not actually a standard torrent client) in the installation and one of the installed files shared would be the tracker file with all of the IP addresses of other nodes that have downloaded and run the installer. Then, the new node adds its address to the tracker file, and the updated file is shared with some number of other nodes in the tracker file at some minimum interval (once a minute, or a few?).

This is a bit different from existing torrent behavior in that nodes would need to notify others that a shared file has been updated, then they initiate a broadcast request for the file, but, only a version with the latest time specified in the notification. There"s probably some risk of a circular race condition happening if some data is dropped or delayed, so we may need to use a small random delay, similar to how packet collision back-off algorithms double the timeout with successive collisions, plus a small random delta by each collider, to offset their respective next attempts.


Surely you would NEED a centralised server somewhere? E.g. people log onto the server and then interact together in that space rather than having people interact directly with each other as in P2P. If there are thousands of people trying to play together in P2P wouldn't you just end up with some horrible constantly-attempting-to-update mess?

I suppose that the thing with RasPi's is that everyone will have exactly the same system so there shouldn't be any problems between data exchange but still. . . ?

Also, what's the game about? I get the space concept (Nice spinning planet BTW), but are you planning on a simple 'imperial conflict' type game or something much grander like a Raspberry Pi WOW in space? Some kind of game system to relate to would be great.

AND, is going for fully 3D at this point viable? Maybe 2D to start? Realm of the Mad God?

Interesting idea though, I would like to be involved.

Oh and zombies. Always include zombies.
Raspberry Pi Cases for your Raspberry Pi! Unique, colourful, customisable designs available from ModMyPi now!
Posts: 58
Joined: Mon Mar 19, 2012 9:41 am
by Jim Manley » Mon Apr 16, 2012 3:48 am
modmypi said:


Surely you would NEED a centralised server somewhere? E.g. people log onto the server and then interact together in that space rather than having people interact directly with each other as in P2P. If there are thousands of people trying to play together in P2P wouldn"t you just end up with some horrible constantly-attempting-to-update mess?


The answer is, "We don"t know, yet." I happen to have a lot of experience with lightweight protocols over high propagation delay networks (up to seconds) with widely-varying bandwidth (down to as little as 2,400 bits/sec). This is where experimentation with many Pi boards is going to become necessary. Now, at the initial alpha test stage, we will almost certainly be limited to maybe a few dozen players in a single mesh, basically just verifying that data is getting from where it is to where it ain"t, without worrying about speed. Getting the wrong answer at the speed of light isn"t very useful, as my high school physics teacher told us.

The world owner"s Pi is going to be one busy little puppy pumping updates out to the network, but, there are multicast and broadcast techniques that can be used within a mesh, although they may not work outside a LAN segment without some router/switch port unblocking actions, which may not be feasible for some players. There are also solutions between all-P2P and a single centralized server, e.g., a number of proxy servers that keep each other updated, as well as a local mesh of Pi systems. We may very well start out centralized just be able to test other functionality and then, if P2P is able to be made to work as envisioned, so much the better.

I should reiterate that this is not going to be your grandfather"s P2P, as there must be proactive notification of updates being available transmitted by the master node. This is different from more traditional torrent-based P2P schemes, where the subscriber has to inititiate requests. Also, time-critical data (e.g., current location, orientation and velocity vectors) would have precedence over less-time-critical data (e.g., initial world definition data upon entry). There may even be a hybrid architecture using both centralized and P2P dara sharing, depending on data type, criticality to game play, etc.

I suppose that the thing with RasPi"s is that everyone will have exactly the same system so there shouldn"t be any problems between data exchange but still. . . ?


That will be a huge help where general-purpose systems can be problematic. We"re looking at just dedicating an SD card to running the game system, given the resource constraints of the Pi - we may have to strip out OS cruft we"re not using just to keep as much game stuff in RAM as possible, especially if we need to run in the mode where half the RAM (128 MBs ) is assigned to the GPU at boot, leaving at least 80 MBs after the OS takes the rest.

Also, what"s the game about? I get the space concept (Nice spinning planet BTW), but are you planning on a simple "imperial conflict" type game or something much grander like a Raspberry Pi WOW in space? Some kind of game system to relate to would be great.


The more I"ve thought about it, the more I"m convinced that we should first develop the network data-sharing infrastructure, a generic framework for defining worlds, characters, objects, etc., and then get out of the way and see what people come up with, at least early on. Some people have asked whether there is going to be a consistent visual style or theme, as well as game type and while those can be established by world builders for, say, a given solar system or even a galaxy, I"m wondering if we can allow the world builders to dream up all sorts of wild and crazy styles, themes, games, and even variations on the laws of physics, chemistry, etc. Being in SillyCon Valley, I"m partial to a little healthy chaos now and then, but, I"m also acutely aware of the importance of standards at some level to maximize potential interactions between all players and to provide some expectations on what entering a world will entail.

I think it would be pretty entertaining to have the Pirates of the Caribbean show up on a "Star Trek" world just to see what would ensue and, indeed, some "Star Trek" episodes mixed up series characters into mob-dominated Chicago of the 1930s, etc. The concept has been discussed of giving a world builder the ability to restrict kinds of, or even specific characters and equipment from entry (e.g., "immigration and customs officials") , as that would allow enforcement of game experience "purity" for those who don"t want clowns and astronauts showing up at their medieval castle"s drawbridge (but, hey, all those alligators in the moats are gonna need to eat _somethin"_ :) ).

AND, is going for fully 3D at this point viable? Maybe 2D to start? Realm of the Mad God?


The thing that hooked me on the Pi was seeing that a Quake 3 client would run on it, and ~40,000,000 Gouraud-shaded polygons/second or ~26,000,000,000 floating-point operations/second is _very_ tempting. I"ve got 40 years of 3-D computer graphics experience under my belt, and I"m planning on delivering modules that provide things like the spinning planet all ready to go. Just come up with an appropriate 2:1 image map and tell the module its file name and the planet"s mass, parent star ID/location, orbital parameters, etc., and, "BAM!", you"ve got a planet (batteries, population, food, fuel, etc., sold separately ;) ).

This is going to be a very incremental (emphasis on the mental) project, and as with the Japanese kaizen (continuous improvement) philosophy, we will be enhancing aspects of this for years, if we do it right. The first alpha will probably only allow basic 3-D spaceship navigation/maneuvering and maybe shoot-"em-up interactions to allow testing of the network data sharing (P2P and/or centralized) and scene rendering functionality. We will start out with some baseline of characteristics for each object type, including slots for specifying models, textures, image maps, etc., and we can expand the definitions from there (e.g., a slot-value data structure where order is unimportant and you ignore anything you don"t understand, for the time being).

Interesting idea though, I would like to be involved.


PM your e-mail to me and anything you might want to provide in the way of development experience, areas of expertise where you think you can contribute, etc. Welcome aboard! Pretty easy interview, huh? :)

Oh and zombies. Always include zombies.


Well, that goes without saying - I suspect one of our first worlds is going to be something like "Pirates of the Caribbean: On the L5 Point" ;)
The best things in life aren't things ... but, a Pi comes pretty darned close! :D
"Education is not the filling of a pail, but the lighting of a fire." -- W.B. Yeats
In theory, theory & practice are the same - in practice, they aren't!!!
User avatar
Posts: 1356
Joined: Thu Feb 23, 2012 8:41 pm
Location: SillyCon Valley, California, USA
by modmypi » Mon Apr 16, 2012 9:42 am
Wow, good reply, you're obviously incredibly enthusiastic about this project, which is great.


The world owner"s Pi is going to be one busy little puppy pumping updates out to the network, but, there are multicast and broadcast techniques that can be used within a mesh, although they may not work outside a LAN segment without some router/switch port unblocking actions, which may not be feasible for some players.


Isn't this what defines an MMO from a Multiplayer? If you have local servers are people not simply involved with a slightly 'larger than LAN' game. Or are you planning on having say hundreds of people acting as hosts or 'nodes' within a larger sphere, and people can travel within this sphere, jumping from host node to host node.

Also, how do you decide who becomes the host? I would think that acting as a host could significantly damage the game-play of that host, as their Pi would be completely dedication to keeping everything in sync.

I'm not condemning the P2P idea, as you blatantly have a great deal of knowledge around the subject. I'm just musing as to whether the hassle and difficulty of creating such a system could be mitigated through use of a single centralised server. Would it not be EASIER for your project in the long run.

With regards to routers, I would say yes you may have some troubles, but what multi-player games don't in this high security day and age? I'm sure that the people who will play this game (to start with anyway) will know how to log in to their router and play with some port forwarding.


I think it would be pretty entertaining to have the Pirates of the Caribbean show up on a "Star Trek" world just to see what would ensue and, indeed, some "Star Trek" episodes mixed up series characters into mob-dominated Chicago of the 1930s, etc. The concept has been discussed of giving a world builder the ability to restrict kinds of, or even specific characters and equipment from entry (e.g., "immigration and customs officials") , as that would allow enforcement of game experience "purity" for those who don"t want clowns and astronauts showing up at their medieval castle"s drawbridge (but, hey, all those alligators in the moats are gonna need to eat _somethin"_ :) ).


Sounds good, I would recommend that you maybe try to focus ideas down a little, and set yourself a clear goal? I always find that if you try and hit too many targets, you may end up missing them all. Maybe you are correct though, this is the 'rampant enthusiasm' stage and creativity is the current goal :)


I"ve got 40 years of 3-D computer graphics experience under my belt, and I"m planning on delivering modules that provide things like the spinning planet all ready to go. Just come up with an appropriate 2:1 image map and tell the module its file name and the planet"s mass, parent star ID/location, orbital parameters, etc., and, "BAM!", you"ve got a planet (batteries, population, food, fuel, etc., sold separately ;) ).


Good point, well made. 3D it is then :P


PM your e-mail to me and anything you might want to provide in the way of development experience, areas of expertise where you think you can contribute, etc. Welcome aboard! Pretty easy interview, huh? :)


My experience lies in engineering and business, so if you want to bring some commerciality to the project, or you need some financing for said centralised server, I am willing to provide you with a path. PM sent.
Raspberry Pi Cases for your Raspberry Pi! Unique, colourful, customisable designs available from ModMyPi now!
Posts: 58
Joined: Mon Mar 19, 2012 9:41 am
by abishur » Mon Apr 16, 2012 2:17 pm
I know one way that MMOs have handled the network demand of the host is by setting it up such that each user transmits just their location in a basic text file.  Then each user individually renders what that information means to them.  But maybe that's old hat knowledge for you :-P
Dear forum: Play nice ;-)
User avatar
Forum Moderator
Forum Moderator
Posts: 4257
Joined: Thu Jul 28, 2011 4:10 am
Location: USA
by Jim Manley » Mon Apr 16, 2012 9:08 pm
Abishur said:


I know one way that MMOs have handled the network demand of the host is by setting it up such that each user transmits just their location in a basic text file.  Then each user individually renders what that information means to them.  But maybe that's old hat knowledge for you :-P


Hi Abishur,

Yep, that's the basic idea, one which I pioneered in 1986 in my thesis work, although it was through some fancy socket work instead of text files, which also happened to be platform-independent back when platform choices were AT&T System V, BSD 4.2, VMS, Xenix, MS-DOS, Mac OS 4.1, etc. (Windoze 3.0 didn't exist until four years later).  This whole thing hinges on each Pi rendering its local view, based on seeing the Quake 3 client demo running on the Pi.  That really got my attention!

The fact that every Pi can easily be running Pi-finity! from the same baseline of OS, game services, local 3-D scene rendering, etc., makes the Pi much more predictable in memory usage.  It will be interesting to see just how much I can cram through the ARM CPU via the network in an attempt to keep multiple player's' nodes synchronized to the state of a world.  It''s the most interesting idea that's occurred to me in a long time, and Eben, et al, probably didn''t realize the range of such ideas that they would inspire with the development of the Pi.
The best things in life aren't things ... but, a Pi comes pretty darned close! :D
"Education is not the filling of a pail, but the lighting of a fire." -- W.B. Yeats
In theory, theory & practice are the same - in practice, they aren't!!!
User avatar
Posts: 1356
Joined: Thu Feb 23, 2012 8:41 pm
Location: SillyCon Valley, California, USA
by Jim Manley » Fri Apr 20, 2012 5:45 am
We"re making progress in that PeteX has managed to get a Panda3D MMORPG engine running, and at least one other Pi-finity! developer has been able to log in and create their own characters, which can all see each other in locally-rendered views! When we"ve received our Pi boards (now looking like end of May, for me :( ) and we"ve ported a Panda3D client to the Pi, we"ll be ready to do some alpha testing with non-developer players (I"d guess sometime in June, based on the latest info from the distributors).

The Panda3D game engine is just an early experiment so that we can figure out what functionality we need in Pi-finity!, and not a final decision. We may decide to modify Panda3D, or develop something different, but, that will be months away. We need to crawl before we walk, and walk before we run, but, we"re moving in the right direction.

More to Come, So Stay Tuned …
The best things in life aren't things ... but, a Pi comes pretty darned close! :D
"Education is not the filling of a pail, but the lighting of a fire." -- W.B. Yeats
In theory, theory & practice are the same - in practice, they aren't!!!
User avatar
Posts: 1356
Joined: Thu Feb 23, 2012 8:41 pm
Location: SillyCon Valley, California, USA
by Joefish » Fri Apr 20, 2012 10:21 am
Just to drop into this with some random thoughts based on what's been said so far, and some experience I've had with user-generated content.

I'd love a system where you can establish your own world and build your own challenges on it.  I tried this in the sadly defunct LEGO Universe; despite its limitations it had an impressive icon-driven scripting language that let me make models appear, disappear, shatter, reform, move and interact on my own little patch of land; in short I built something akin to a puzzle island from 'Myst' with sequenced triggers opening doors, swinging bridges, activating lifts, etc… and occasionally spawning monsters.  You designed your models and programmed behaviours in separate systems, then brought the models into the game world, used your character to move them around, then walked up to them and applied the prepared 'behaviours'.

The problem with user-generated content is uninformed users always try to overload the engine.  In LU, faced with the limited area of your private property, kids just built upwards to ridiculous heights.  Faced with a whole planet it could get crazy.  Old games like 'Mercenary' / 'Damocles' had useful modelling to manage content – you had your planets, then land masses at a lower scale, then cities, then each grid square of the city could hold a road junction and one building complex.

If you plan to share your creation peer-to-peer, you could also manage links through portals co-operatively too.  So instead of being able to access any world, you either have to 'know' the owner and be invited, or find a linking door to it.  So the creator has to persuade his friends (who he's met in-game) to put a linking door on their property.  So the popularity of your world grows as people link to it.  You could also set up private portal groups between friends that take you to secret areas or just move you quickly around your creation.

Also, a word of caution for those who want to mess about with gravity – modifiers are fun, but easily break the game engine if there aren't serious limits on their use.  In the last few days of LU the admins were giving away bonus mobility items like jetpacks and ridable horses, and you could all too easily get into places 'outside' the game world.

Apologies if all this is already obvious to those seriously bringing this to life, but good luck anyway...
Posts: 95
Joined: Wed Jan 25, 2012 10:31 am
by Jim Manley » Fri Apr 20, 2012 9:24 pm
Hi Joefish,

We"re kind of pursuing two paths with a centralized server, and the potential peer-to-peer version, using the former to get up and running quickly to allow advanced experimentation and prototyping on top of an established engine, and attempting the latter just to see if it can work on Pi boards and evaluate strengths and weaknesses. It will take a while to see how much we can really do on a Pi, which may be limited to just the peer-to-peer version, at least for more than a few players entering one world, and a more traditional server running on a resource-rich x86 system to handle a significant number of players in one world. One of the built-in limits against overloading for at least a couple of months will be the small number of Pi boards Out There. Plus, given the likelihood that most Pi boards will be busy essentially doing one thing, the odds of a large number of players suddenly showing up at the drawbridge over the moat without an invitation will be small.

We will be limiting participation to contributing developers until we have something worth looking at, anyway, and most of us won"t have boards for at least another month, delaying some aspects of development, especially realistic testing. I foresee it being at least late June before we"re at the point where we will be inviting players from the public, and that will also be limited in number through late alpha testing. It will easily be late July before we can handle beta levels of player numbers (hundreds, probably), and I would guess it will be the Fall before we"re ready for an unlimited public release. Another self-limiting factor that will help is that Pi owners will be able to control how many people are visiting their world, potentially automagically by the software performing self-load evaluation and a virtual turnstile that will balance the gozintas and gozoutas at a manageable level.

I really like the Myst style puzzles and behavio(u)rs aspect, and I"ll keep that in mind for our world-building tools and model libraries. The visuals in that series are certainly an inspiration for how stunning worlds can be with a decent library of image maps, textures, 3-D model primitives, etc., as well as "smart" tools that naturally do useful things to build great-looking world components.

The cautionary tale about the ridiculous things kids (of all ages ;) ) will do is a good point. If we can make the peer-to-peer idea work, they will only affect their own Pi node and those of visiting players, and if they do unwise things that detract from others" experiences, the word will get out and few will venture there any more. Also, we"re looking at permission controls for banning anyone who keeps doing inadvisable things despite warnings, and we might have a shared player rating system to help weed out those who don"t score high in the kindergarten-level "Plays well with others" category. The permissions mechanism will also handle the visibility of worlds using something like the local/group/public Linux security model, which we will use and test as soon as we start inviting non-development team folks in to help us find bugs and weaknesses.

The nice thing about being a latecomer to a party/battle is that you can step over the arrow-strewn carcasses of those who came before, and perform some archaeology and anthroplogy to learn why civilizations collapsed. It brings to mind potential world scenarios where players arrive on a scene like that toward the end of each chapter in Jared Diamond"s anthropological book, "Collapse: How Societies Choose to Fail or Succeed". It doesn"t all have to be purely physics, chemistry, math, engineering, etc. As we are seeing before our very eyes, economics affects everything else, short of fundamentals like the gravitational constant and the speed of light.

All very good points - thanks!
The best things in life aren't things ... but, a Pi comes pretty darned close! :D
"Education is not the filling of a pail, but the lighting of a fire." -- W.B. Yeats
In theory, theory & practice are the same - in practice, they aren't!!!
User avatar
Posts: 1356
Joined: Thu Feb 23, 2012 8:41 pm
Location: SillyCon Valley, California, USA
by strideynet » Sat Nov 03, 2012 8:00 am
Great idea. I think I could help alot with ideas. Not being a great coder.
But I'm great thinker. Aka I don't know the libraries but I know how that function would be best done. I'm also able to supply a 24/7 node most of the time.

Ever read up on bitcoin? Not the same thing but would help with p2p.

We could see about creating user voted moderators this works perfectly with p2p.

I recommend you try getting a website soon. It will make life easier then wikia.

So if you need me jus pm me. I'm also a great alpha tester. I alpha tested most of mojangs games and am quite good at it.
Posts: 1
Joined: Sat Nov 03, 2012 7:50 am