HeadCase
Posts: 51
Joined: Sat Sep 03, 2011 8:11 am

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Mon Apr 02, 2012 3:10 pm

Just to add to the previous poster who mentioned VegaStrike. That project has been around for a while and it was the engine used in the Privateer remake. Vegastrike is just a 3d engine, so rewriting a RPi optimized substitute should be possible (not simple, but hopefully something a GLES expert could do).

The interesting thing about Privateer remake is that it is open source, and all the game content is available for non-commercial use.  What's more, the remake was scripted in python, so you can download thousands of lines of python code and pull it to pieces, see how the game effects are done etc.  Privateer remake fizzled out due to lack of interest in the PC world - not really surprising.  Even if it is only a sort of sandbox for aspiring game writers it is a fantastic resource and maybe a nice fit for RPi.

For those who may not know their space sim game history, Privateer came from Origin Systems "We Create Worlds" .. Richard Garriote, Ultima, Wing Commander. Very creative company in the 90's.   Privateer owed quite a lot to Elite - trading, combat, exploration - but with 10 years of hardware improvements Origin could do a lot more. And of course, all these games trace back to the tabletop RPG game Traveller which was a huge source of ideas and inspiration.

Privateer was a really well designed game. Origin had all the elements in there that are in modern MMOs.  Complex interesting maps, background story, multiple factions with player reputation affecting outcomes, quest driven plot, working economy with equipment upgrades, loot, and lots of combat.  All that and it only required 4M of RAM!  Apart from the $200M or so Bioware just spent on making Star Wars, I think Privateer was a much better designed game.

It's just sitting there in cyberspace - abandoned - while Angry Birds and Farmville take over the world.

User avatar
Jim Manley
Posts: 1600
Joined: Thu Feb 23, 2012 8:41 pm
Location: SillyCon Valley, California, and Powell, Wyoming, USA, plus The Universe
Contact: Website

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Mon Apr 02, 2012 4:24 pm

I know it"s completely insane (no news there for me ) and it would be a long-term goal, but, I wonder if it would be remotely feasible to support multiple game engine protocols? Then, we could leverage what"s been done everywhere else - it would most likely mean you would only be able to cross between worlds and only exist in one at a time, but I"m guessing the data streams look an awful lot alike at some level. Transmitting ID and 3-D location/orientation/velocity at a bare minimum would be extremely lightweight (a few dozen bytes, much less than a TCP/IP packet) and character feature details (stick-figure body mechanics, texture maps, etc.) could be served up from distributed repositories elsewhere, reducing the load on any one R-Pi, and keeping its data persistent even if it"s not on-line - that"s why I"m thinking about P2P. I"m guessing even some commercial games publish the specs for their protocols for this kind of data, so, we should be able to build on them.

I definitely want this to be educational scientifically as well as for teaching software development at various levels, so, knowledge of spaceflight mechanics, effects of gravity on planet/moon surfaces, chemistry (need to find and combine materials to make fuel, food, water, etc.), and math will all be important for players to have. The challenges could vary between worlds so that beginners don"t become overwhelmed and frustrated, and teamwork could be rewarded the way it is in dungeons and dragons style games (I know this is true in many on-line games already and I want to ensure we include it as a primary feature).

For the Qt fans, I"ve been in contact with the folks at Nokia sponsoring Qt on Pi and they"re interested in supporting this, as well as other work I"m involved in. If we can establish a federated, distributed system that allows crossover between various other game systems, that would be great, as I"m a big fan of cross-platform compatibility. I also know how hard that is, so, it"s going to be a long-term goal.

I think the graphics coming out of the HDMI port are going to look as good as anything out there, which is what originally and instantly attracted me to the R-Pi. It"s going to be at least as important to have high-quality 3-D models, textures, backgrounds, etc., as it will be to have honkin" hardware and software - that intersection of Technology and Liberal Arts thing that Steve Jobs always insisted on at Apple. It would be a mistake if we had a system that produced a crappy visual and auditory experience at 26 billion floating-point operations per second - I would much rather sit in a Ferrari making "vroom-vroom" noises and not going anywhere than be stuck bouncing around in a clunker at highway speeds, belching toxic fumes and making rude noises.

It"s interesting how many different games people have referenced as candidates for a baseline or compatibility - I"m going to be kept plenty busy playing games while becoming familiar with their technical details (yeah, that"s what I"ll be doing - that"s my story and I"m sticking to it). Work, work, work. Work, work, work. Well, somebody"s gotta do it, right?
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
Jim Manley
Posts: 1600
Joined: Thu Feb 23, 2012 8:41 pm
Location: SillyCon Valley, California, and Powell, Wyoming, USA, plus The Universe
Contact: Website

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Mon Apr 02, 2012 4:55 pm

I"ve noticed that several people have missed the link to the wiki I"m building for Pi-finity! - the working title while we hit up big-wigs for gold doubloons in Hollyweird, SillyCon Valley vulture capitalists, the BBC, Comedy Central ... just kidding - we will never sell out ... for small potatoes

Here"s the link to the wiki so you can bookmark it and return later after I"ve hung some ornaments on the tree ... and grown the tree, for that matter:

http://pi-finity.wikia.com/wik.....nity!_Wiki

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
SN
Posts: 1014
Joined: Mon Feb 13, 2012 8:06 pm
Location: Romiley, UK
Contact: Website

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Mon Apr 02, 2012 5:28 pm

Can we have a Crystal Maze world - where everything is a Three (or Two) Minute Game?
Steve N – binatone mk4->intellivision->zx81->spectrum->cbm64->cpc6128->520stfm->pc->raspi ?

samarthwiz
Posts: 4
Joined: Sat Mar 03, 2012 9:13 pm

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Mon Apr 02, 2012 6:52 pm

Instead of making an mmorpg
Make an mmocomunity

Now this are classified as mmorpg
But instead of having an goal
You just talk to people,play games with them and roam around the world.
Examples include:club penguin, minecraft multiplayer survival server(smp)

Oh yeah im learning opengl

User avatar
Robert_M
Posts: 211
Joined: Fri Nov 25, 2011 12:50 am

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Mon Apr 02, 2012 10:09 pm

I'm not a programmer, so maybe I misunderstand this; but I've seen mention of P2P being considered, and I was wondering if this is the sort of thing that would exclude folks like me who are behind Comcast's anti-torrent wall?
I sometimes ride my Pi to the Forum.

dhicks
Posts: 15
Joined: Sun Sep 04, 2011 8:58 pm
Contact: Website

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Mon Apr 02, 2012 10:32 pm

Robert_M said:


I've seen mention of P2P being considered, and I was wondering if this is the sort of thing that would exclude folks like me who are behind Comcast's anti-torrent wall?



You raise an interesting point. If the idea is that each Raspberry Pi hosts a self-contained solar system / dungeon / etc that other players can wander into and explore, at some point network traffic is going to have to get from the Internet to the Raspberry Pi. Most Raspberry Pis will be behind a NAT device of some sort - maybe a firewall device in a school or business, or an ADSL router at home. Having to set up port-forwarding on your (or, more importantly, your parent's, if you're a 12 year old) ADSL router is going to stop a large percentage of people, and you also need some way of hosting multiple devices running in, say, a school environment - a class or after-school club can't each have an individual IP address assigned to their Raspberry Pi.

For a peer-to-peer system to work, there will still need to be some kind of DynDNS-like connection-brokering service that the system registers with on boot to tell everyone that it's available and ready for connections. This could be set up as some kind of "stargate" type system - go to a central server to choose a system to visit. That could also, potentially, act as a kind of filter by group - maybe have some "stargates" be invitation-only, or available only to authenticated users.

droidix
Posts: 7
Joined: Mon Apr 02, 2012 9:34 pm

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Mon Apr 02, 2012 10:44 pm

I don't think anyone has mentioned this yet, but Ryzom went open source a few years ago and contains a complete client and server implementation.  Since the game is older, I would think it would be a perfect fit for the Pi's GPU power.  They also licensed all of the art assets under CC-BY-SA.

I don't think the world or quest data was open sourced (likely because they want to keep making money running the official worlds), but they do have samples areas that are.  With this thread's project wanting to create it's own world for the Raspberry Pi, this fact shouldn't be much of an issue.

http://dev.ryzom.com/projects/ryzom/wiki

There are already ports for Mac and Linux, and work is currently underway to make the Linux port work natively (it currently uses Wine).

I want to work on porting the client to ARM after I get my Pi (which is hopefully soon).

User avatar
Jim Manley
Posts: 1600
Joined: Thu Feb 23, 2012 8:41 pm
Location: SillyCon Valley, California, and Powell, Wyoming, USA, plus The Universe
Contact: Website

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Mon Apr 02, 2012 10:50 pm

Robert_M said:

I"m not a programmer, so maybe I misunderstand this; but I"ve seen mention of P2P being considered, and I was wondering if this is the sort of thing that would exclude folks like me who are behind Comcast"s anti-torrent wall?


Hi Robert,

Great point that I hadn"t thought of, myself. I am fortunate to have woken up and I stopped being a robbery victim of "Con"cast six years ago. I really wish everyone else would do the same thing and within a week, those thieves would come begging us back for reasonable prices and no interference.

We should be able to use essentially the same technology as P2P file sharing often used for illicit purposes, but, tweaked with some networking tricks. I need to bone up on how they block it, and if it"s actually by IP filtering (e.g., PirateBay, etc.), we won"t need to do anything. If they"re looking at port numbers, we can establish registered ports that should be fine. If they"re doing more nefarious things by looking at packet contents, we can encrypt them. There are many more ways to skin a cat than they have lives (no actual cats were harmed in any way in the production of this post, even though I"m more of a dog kinda guy ) and this is one of those teaching moments for the kids (of all ages).

I realize this might not be intelligible to the technically challenged, but, I promise that if you hang around this project, you will learn more than you ever thought possible. If it hasn"t already been made obvious in my too-voluminous posts, the purpose of this project is educational, and if a game happens to break out and we have even more fun, so much the better.
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!!!

Zaragon
Posts: 3
Joined: Tue Feb 21, 2012 2:09 pm

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Mon Apr 02, 2012 11:16 pm

Just a thought since I can't otherwise contribute much but one view of this is as a learning experience in developing things and potentially introducing people to the world of distributed systems etc.

Anyway the world doesn't consist of just R-Pis why not consider that some people may have access to other systems such as more powerful linux and therefore can host more complex objects.

So you could, to use the current examples, host a world on a Pi but then you could find an old computer to run Linux to host the solar system. You just take a step up in scale a bit like moving from infant to junior to senior to university.

You are still targetting the same people just allowing them to grow and potentially have less to worry about in terms of the restricted environment of the Pi. Though if you can get the whole multiverse in a Pi I'm sure there would be lots and lots of people very interested.

User avatar
Robert_M
Posts: 211
Joined: Fri Nov 25, 2011 12:50 am

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Tue Apr 03, 2012 5:18 am

Jim Manley said:



We should be able to use essentially the same technology as P2P file sharing often used for illicit purposes, but, tweaked with some networking tricks. I need to bone up on how they block it, and if it"s actually by IP filtering (e.g., PirateBay, etc.), we won"t need to do anything. If they"re looking at port numbers, we can establish registered ports that should be fine. If they"re doing more nefarious things by looking at packet contents, we can encrypt them.




Maybe it would help to know that when I tried to torrent the Debian distro for the Pi, that was also blocked.

As for avoiding Comcast, I was able to do so until I wanted more than 1.5 Mbps broadband speed. 
I sometimes ride my Pi to the Forum.

User avatar
RaTTuS
Posts: 10565
Joined: Tue Nov 29, 2011 11:12 am
Location: North West UK
Contact: Twitter YouTube

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Tue Apr 03, 2012 7:35 am

do commands via an irc channel ....
How To ask Questions :- http://www.catb.org/esr/faqs/smart-questions.html
WARNING - some parts of this post may be erroneous YMMV

1QC43qbL5FySu2Pi51vGqKqxy3UiJgukSX
Covfefe

User avatar
Jim Manley
Posts: 1600
Joined: Thu Feb 23, 2012 8:41 pm
Location: SillyCon Valley, California, and Powell, Wyoming, USA, plus The Universe
Contact: Website

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Tue Apr 03, 2012 7:45 am

For those who have been able to ferret out bits of my history from my blatherous posts, you"ll realize I"m a graduate of Ye Olde School, where we had to wring every bit out of every cycle within every microsecond. The key to the R-Pi wrt P-finity! is the GPU as far as client-side operations (object geometries, textures, generating video, etc.). The ARM CPU is basically a traffic cop for user input from control devices (keyboard, mouse/trackpad, game controller, etc.) and moving data between RAM, the SD card, USB storage, and the network. If we run an existing game engine and it"s having problems on the R-Pi, we"ll have to profile the code to see where it"s spending most of its time if the original developers haven"t already done so and optimized the code. However, those engines were most likely developed for x86 architecture and it may be possible to refactor the code for ARM, or drop down to ARM assembly if there are a limited number of critical sections that can be optimized. If the P2P idea just can"t work, there"s not much that we can do to change the laws of physics and we can always rely on traditional beefier server hardware.

It could still be possible to enforce R-Pi use at the client level by including calls to the GPU that won"t work on other systems, as someone here noted. It won"t matter what kind of hardware the game server software runs on, in that case. Another option might be that the performance and/or features available to R-Pi clients could be enhanced, while that for non-R-Pi clients could be less impressive. This might require some special knowledge of the GPU that I"m sure the Foundation and Broadcom would find it somehow convenient to just happen to share with us

Does anyone know how to find running servers for the game systems they"ve suggested if they aren"t identified on the organizational sites to which some of you have provided links? I don"t mind setting up servers for long-term use once I know they have desirable attributes we can evaluate further, but, I don"t want to go through the trouble just to find out in the first minute that there"s a show-stopper. 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!!!

wolfje
Posts: 9
Joined: Tue Apr 03, 2012 5:57 am

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Tue Apr 03, 2012 8:41 am


A couple ideas that came to me about this idea (mainly about the data flow).
First: you can have several galaxies (will be expand to more as more players join) each galaxy has a master copy of the data (this includes system locations, players in the galaxy and there location etc. Maybe even a galaxy ranked system). This data that is limited to just that galaxy is replicated around to each player that is in that galaxy. The master copy would be a Pi based server that just holds the data replicates it around to all players that are in that galaxy. If a player leaves that galaxy to explore a new one, he stops receiving data from that galaxy and his personal scores etc of that galaxy are saved on his pi only. If you would return to that galaxy, the player will receive the replicated data that goes around and your personal scores of that galaxy will be added to the replication. 
Next you have the systems within the galaxies, the Galaxy data that is replicated only knows about the positions of the systems, not what is inside them. This data is for the System based replication, this include player positions inside the system, planet location etc. Again here the same principal applies like the galaxy data, it is replicated around to players within that system and once the player leaves the system the personal data of that user is saved on his own Pi and you stop receiving data from that system. This is why there needs to be a master copy of that system around, where all the details like planets etc in that system is kept and used for replication to anyone who goes into that system. 
Of course you can go even further and apply the same as above to planets. Planets could also have different games on them, like one planet has a racing game on it that you can join and race against other players, other planets will require you to write a small program in python or something (tutorial planets), with resources given when entering that planet. 
Another idea that I have as the things like system information and system based images can be rather big and the Pi with its sd card limited to space is that when you enter a system, a small torrent program in the background looks for that system torrent and downloads it like a torrent (this is also why there needs to be a master copy/torrent, which could be based on a Pi server holding all the information from that system including the torrent for that system).
Because you are limited to storage I suggest a player only holds the last 5 system torrents and when you enter system 6, the first torrent is deleted from your system. Of course the game should also have a way to remove systems from your Pi to make space to go to other systems. This function would of course keep your personal stats from that system, so that you can go back to it anytime you like. 
Because some people can't use torrents, maybe we should have a central location where DLC's like systems can be downloaded and added to a games folder.
Anyways just some ideas that I had floating around in my head.

mole125
Posts: 228
Joined: Tue Jan 10, 2012 2:01 pm

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Tue Apr 03, 2012 9:03 am

A very big issue with peer to peer is trust. In particular how do you prevent/limit cheating.

So far what has been discussed seems to be a totally open and trusting ecosystem which assumes that clients are trustworthy and sending honest data.

If there is any form of trading, scoring or tracking of awards then there is the incentive to, um, over inflate progress. If the game is being targetted at developers of all ages and is open source then both the knowledge and skills will be easily be available to do so.

With a centralised system this can be controlled and prevented easily, with a p2p system this is a much harder problem to solve.  Using strong cryptography solutions may be able to mitigate and solve against this - every server (and client) has a public/private key pair and every transaction/achievement/etc is signed by all the parties involved so that it can be traced where everything happened. The downside of this is it adds significant complexity, memory and processing overhead. For instance rather than a player having a variable containing their current money balance, it would instead have to be a list of every single coin that they have received - with each coin having a unique id and keeping track of every transaction it has been involved in - if the same coin appears twice in the system it can then be tracked when it was duplicated and decisions made based on this.  Of course a central server solves most of these far simpler :-S

PeteX
Posts: 50
Joined: Tue Apr 03, 2012 11:36 am
Contact: Website

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Tue Apr 03, 2012 1:24 pm

I will be following this project with interest.  If you are thinking of being part of this project, though, I feel it's important to plan carefully and understand the amount of work that is likely to be involved.  There is something about multiplayer games where they seem much simpler than they really are; a lot of people  start developing them and then run into difficulties and disappointment.

I have looked into this area a bit, and I wanted to let you know about a few specific hazards, so you don't get bitten needlessly:


There are a lot of open source 3D engines.  The most popular engines have substantial active communities around them.  It's easy to assume based on this that the engines are well written, will provide the functionality you'd reasonably expect, and are fairly bug free.  In fact this is often not the case.  I found the Blender game engine worked reasonably well (commercial developers don't like the GPL licensing, but that won't affect you).  Gamekit and jMonkeyEngine look promising but aren't really finished.  Panda came in a bit further down: basically solid but with problems importing scenes from Blender.  (There has been a new release of Panda since my evaluation, so this may be fixed.)  I'll stop there, I think.


Watch out for problems getting data from one piece of software to another.  BGE and Gamekit are tightly integrated with Blender, so it's not a problem for them.  With the others, you may find that the engine itself is much more solid than the integration with Blender or other 3D programs.  Expect to spend a lot of time figuring out how to get models into your 3D engine without losing the textures/armatures/poses etc.  Don't forget that you'll need a way of laying out scenes as well as designing individual objects.


Ryzom is interesting but the models are in 3D Studio Max format.  If you wanted to edit them with Blender, you'd have to start by getting a licence for Max, then export them.  When you imported them into Blender, you'd probably find that they were minus their armatures or something.  You'd be amazed at the amount of time you can waste on this kind of nonsense. It's also worth saying that Ryzom is a fairly old game, and is behind the state of the art graphically.


The server side of multi-player games is very hard.  You hit all sorts of problems with transaction management and races.  Remember, it's not just a database, it's a database which proactively notifies clients about changes which may affect them.  If you get this wrong you get traditional transaction issues (player A sells player B his sword, and it vanishes into thin air).  You also get issues which are tied up with the publish/subscribe stuff (player A does something but player B doesn't notice until much later).

Red Dwarf Server attempted to address this, but the project seems to have died.  You could also build something on a message passing framework like RabbitMQ, or use Java EE and JMS.  IMHO it's best to avoid rolling your own framework; it will already be easy to end up with transaction related breakage if you build on top of something solid, so don't make life harder for yourself.

Doing this in a distributed fashion makes it all much worse, of course.  You could try to shut out cheats by making the participants vote about who is interpreting the rules properly.  Good luck—something like this would be blue-sky research, really.

User avatar
Jim Manley
Posts: 1600
Joined: Thu Feb 23, 2012 8:41 pm
Location: SillyCon Valley, California, and Powell, Wyoming, USA, plus The Universe
Contact: Website

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Tue Apr 03, 2012 10:00 pm

Everyone is bringing up interesting points, and they"re not new, but, developers still get bitten by them - it"s almost as if kids just won"t listen to their parents and teachers ... say it ain"t so, Joe! Software that still has bugs years after release? People would actually cheat at a game? Horrors!

The issues identified are valid, will need to be dealt with, and will be great learning experiences for students, not to mention a lot of adults. Security is virtually impossible to shoehorn in after-the-fact, as decades of Windows software have amply demonstrated. At least we"ll be building on a pretty solid Linux security model and tools, although there will be plenty of work to do just configuring security elements in existing game engines and clients, assuming we don"t need to integrate them, first.

As I"ve said, we"re going to need people other than software wizards just to create something decent, and the point about model conversion is an excellent example. If some students can create utilities for automation of reliable conversion, that would be amazing. Enabling the users to extend the worlds from existing objects will be a big help. The procedural technique for object definition is a really fascinating concept, and I hope we can include something like that. You never know how much talent is lurking Out There that can do these sorts of things, just needing to be challenged with the problem. Of course, having geezers and codgers here providing suggestions and helping crack the really hard nuts should provide some morale-boosting, and we need to ensure that there is a standard visual means for the creator of something to proclaim "I made this.", like the manufacturer"s plate inside the door frame of a vehicle or aircraft, or a reserved area on the front of an object where a logo, siggy, or tag can be prominently placed. Corporate advertising is just another form of gang tagging, in reality - why not enable our builders to show the world what they"ve done?

The project management alone is going to keep multiple people busy for as much time as they have. Just the PR communication I"m doing here is nearly a full-time job - now I know how Liz feels ... "Is the game done, yet?" "When is the game going to be done?" "Why isn"t the game done?" "There isn"t going to be a game, is there?" "You don"t know how to create a game, here"s how you create a game."

We need to use an incremental approach that results in frequent, visible progress, even if it"s small at each step, or kids (of all ages) may get bored. Having a list of what needs to be done next in bite-sized chunks will be one of the keys to success, and teaching kids by example how to set up and use a feature/bug task tracking system, alone, will be a major accomplishment (a lot of adults could use learning such discipline). I"ve been doing software development long enough to know it"s a lot more than just writing code - only about 15% of the effort needed for a significant-sized project goes into implementation of source that"s actually used in the end product or service. We have the advantage of being able to pick and choose among the results of a lot of hard work done by others, and hindsight can help us avoid the deeper tar pits, if we choose to exercise it judiciously.

It will help if we can pick an engine, or better yet, parts of engines that can be integrated, that will take advantage of the R-Pi GPU"s strengths, and protocols and data structures that are efficient and flexible enough to not chew up the rest of the board"s resources. I know how hard integration of even simple code bases can be, and if we can pull that off, a lot will be learned by all involved. One of the things that Python is used for a lot is wrapping existing code from a variety of places to create a consistent set of interfaces. Having something that looks good and does a few things well will be more valuable than something that does a lot of things at a mediocre level. It"s generally easier (but, in no way easy) to extend something that works well and was designed for that, than to try to extensively modify something that"s built on poorly documented and buggy code, even if it does exhibit moments of flash and some cool features.

Man, writing requirements specs is really boring, but, when I"m spent, I just come back here for inspiration and I have yet to be unimpressed. We already have a core of people who have become regular idea contributors and you have no idea how helpful that is. As a wise, but ruthless, leader once said, "The road of a thousand miles begins with but a single step." He also said, "Power flows from the end of a gun.", but, the virtuality of the Internet should keep that from being effective here. One of the actual requirements specs is that you have to maintain a good grade in "Plays well with others" in order to participate. The last thing we need are any divas making life miserable for others doing hard, thankless work.

OK, break"s over, back on my head, says the Devil
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
SN
Posts: 1014
Joined: Mon Feb 13, 2012 8:06 pm
Location: Romiley, UK
Contact: Website

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Wed Apr 04, 2012 12:17 am

For 3d models/modeling... can I suggest a format the Google Sketchup can support/export

And lets make sure we can do LOD's correctly too please
Steve N – binatone mk4->intellivision->zx81->spectrum->cbm64->cpc6128->520stfm->pc->raspi ?

petertracy
Posts: 1
Joined: Tue Apr 03, 2012 10:56 pm

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Wed Apr 04, 2012 1:00 am

I definitely envision this as some sort of delicious love-child between Spore (game) space stage and Second Life. I imagine each RPi hosting its own planet (or solar system..?), and the owner is allowed to control all the rules of the planet, such as who is allowed, what kind of programming is allowed on the planet and what isn't allowed on the planet. This would allow the player to set up different environments, such as environments in which players can set up games and matches and all sorts of individually defined activities. The trick to this, of course, is to allow the player to control all aspects of his own planet.

For example, I own my planet called petertracy. I am going to pick a 100m x 100m area on my planet, and decide to set up a go-kart racing area. I then proceed to code a sort of game which allows players to get into a go-kart and press keys to accelerate, decelerate, and turn. I can then invite my friends to come and play on my go-karts, and when we finish, I go to their planet and they show me a first-person-shooter environment they just spent all weekend designing. Later, we travel to a stranger's planet, who has just finished developing a reasonably detailed physics simulation, in which several phases of matter can be seen interacting and mixing, etc.

The player is encouraged to develop and serve up environments which his RPi can actually manage. If he copypastes some physics simulator he found on a forum somewhere into his planet, along with a massive FPS environment, his world would lag excessively, and playing with friends would be out of the question. Instead, he is encouraged to develop a lightweight and efficient environment which uses minimal processing power and efficient coding. Also, the number of people who can connect could be limited by the planet's owner, or just limited by the excessive lag caused by too many people connecting at once. Of course, with less complicated and more efficient coded environments running on a planet, more people could connect and interact.

As for a trading, items, or inventory system, as mentioned by some people, I think any sort of implementation of this would have to be implemented by the owner of the planet. There could be no effective/enforceable system for this since the functioning of the game will be transparent to the user (plain-text configuration files and save files, jpeg/png/gif textures), not to mention the fact that each player will be running off of his own computer, so the only way this would work is if the whole system was managed on one RPi, in other words, one world. Maybe some kind of system for the inter-planetary cooperation and trade could be developed between two or more planets (update inventory lists each time any of the participating players logs into any of the participating planets)? The coding system would be so open and "developable" that anyone could make their own systems.

However, some of this coding could become extremely complicated and difficult. The result would be some people (or groups) devoting themselves to creating certain exchange systems, or games, or chatting environments, so that they develop an extremely intuitive and lightweight system that could be imported by other inexperienced players and used to help them along their way to building their dream environment. Modifying imported content would be universally simple, allowing players to individualize/customize/improve any well-distributed code made by the aforementioned experts/devotees.

A tutorial mode/planet would definitely have to be developed to teach players how to make use of such a powerful coding system. Maybe a cluster of planets hosted by the RPi Foundation with environments that provide step-by-step tutorials for creating simple rules and environments?

One obvious challenge (as I see it) is finding or creating a "coding language" suitable to this that allows for such simplicity that beginners can use it, but also that is complex enough to allow for the endless creativity that I imagine for this project. I hardly know anything about coding or programming, so someone would definitely have to come up with something for this.

Quite an incredible possibility for creativity, I think. In retrospect, this really draws from Second Life

User avatar
Jim Manley
Posts: 1600
Joined: Thu Feb 23, 2012 8:41 pm
Location: SillyCon Valley, California, and Powell, Wyoming, USA, plus The Universe
Contact: Website

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Wed Apr 04, 2012 1:40 am

For anyone who may have missed it Sunday, Google rolled out its usual incredible April Fools Day announcements of hilarious new Google products and services:

http://searchenginewatch.com/a.....-Mode-More

This year"s included:

- All of YouTube delivered to your door ... on DVDs

- Nationwide availability of Google high-speed fiber (it will speed things up, but not on your network connection)

- Google NASCAR self-driving cars

- Chrome multi-tasking mode featuring multiple cursors

- G-Mail Tap simplified Morse code keyboard (only two keys - dot and dash!)

- Street Map Roo View (360-degree cameras strapped to kangaroos" heads)

- Click-to-Teleport (brings physical objects and people to you when their link is clicked on)

- Google Really Advanced Search (rhyming slang, this exact word or phrase whose sum of Unicode code points is a mersenne prime, by font, content that is true, results that will be modified, embarrassing grammatical faux pas, l midi music in the genre of xxx, search by odor, download Google"s ranking code so you can run Google at home, etc.)

- Control the Weather! (allows you to set the temperature, wind speed, etc., anywhere)

- Google Voice for Pets (via Bluetooth collar)

- Jargon-Bot (translates medical, business, technical, etc., to English for normal people)

- Go Ro (for rotary phone access to the Internet)

- Google Analytics for Interplanetary Reporting (ever wonder how many Martians are visiting your site?)

- Google Underwater Image Search (find aquatic species in their environment)

- Search Options: Past Eras, Once Upon a Time, Tomorrow (by "Jurassic Era", "Victorian Age", "5.023 x 10^-5 seconds ago")

- Google"s Canine Staffing Team (find out if your dog qualifies as a Doogler)

- Google TV Click: Control Television & Movies! (use your mobile device or remote control to alter plots, character actions, scene locations, etc.)

My favorite, and the one apropos for this topic is Google Maps ... for the NES (Nintendo Entertainment System of 1985), complete with blocky, low-res 8-bit graphics in a limited color palette, Google Earth 3-D location models, and Street View that works - and everywhere that Google Maps has data! This inspired me to think about how we could pay tribute to classical video games within Pi-finity! - we could build 3-D models of arcade, console and PC games that would have 2-D screens on which you could play the classical games using your real keyboard, mouse/trackpad, or game controller. Points/levels/rewards earned could be used elsewhere in that Pi-finity! world and perhaps anywhere in the entire system through conversion mechanisms.

I think I"m probably going to have to pick a game engine that works as closely to how I envision Pi-finity! should, and that has decent models and world creation tools so I can create some examples. I have no problem needing to use a server-based engine initially so that we can get up and running sooner, and then experiment with the P2P distribution idea as time allows and progress indicates whether it"s feasible. And we"ll have fun, fun, fun "til our daddies take the R-Pis awaaaaay!
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!!!

kreggz
Posts: 4
Joined: Mon Mar 19, 2012 8:48 am

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Wed Apr 04, 2012 7:43 am

Love the idea and would love to help with scripting. Interestingly Notch the creator of Minecraft is now working on something similar in theme. http://0x10c.com/

I doubt it is fully p2p however

PeteX
Posts: 50
Joined: Tue Apr 03, 2012 11:36 am
Contact: Website

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Wed Apr 04, 2012 11:37 am

After posting yesterday I realised that some of the transaction issues can be alleviated at a cost in scalability.  If a single shard of the virtual world can be handled entirely by one server thread, you can just serialise everything.  You then get most of the ACID properties in a straightforward way.  Consistency and Isolation arise automatically from the design.  Atomicity and Durability require a transaction log, but that is easily achieved.

I suppose you get an ascending order of difficulty, depending on the level of scalability you want.  You start with a single-threaded server, which is quite easy.  You then move to a multi-threaded server with a single database, which is a bit awkward to code but perfectly achievable.  If you want something bigger, you need a cluster of databases and distributed transactions, which is where it starts to get really awkward.  Good luck, for example, when one node needs to be restored from backups: you need to be able to do that without rolling back a lot of transactions which are only peripherally connected with that node.

(It's interesting to think about some existing MMORPGs in connection with this.  I think a single World of Warcraft server has a single database, on the basis of the number of players who can connect simultaneously.  Meanwhile, look at the complaints about disappearing objects in Second Life.  Second Life does have multiple servers for a single virtual world, which makes things much harder, and sometimes it goes wrong.)

Jim: ' Security is virtually impossible to shoehorn in after-the-fact, as decades of Windows software have amply demonstrated. At least we"ll be building on a pretty solid Linux security model and tools ...'

There are two separate issues here.  Obviously we want to avoid insecure clients or servers which provide a route for breaking into the machines concerned.  That is mainly a code quality issue.  The design issues are mainly concerned with preventing cheating.  You really want to keep game state on a separate server, rather than allowing players' machines to track it themselves.  If they can track it themselves, they can see objects they are not supposed to, or even make changes to the state of the game.


SN: 'For 3d models/modeling… can I suggest a format the Google Sketchup can support/export'

It would be nice if you could pick a format like COLLADA which each developer could edit with his or her chosen tool.  Unfortunately it's not that simple; when you move a model from one tool to another, something will break and need to be fixed manually.  So while I agree it's worthwhile to support Sketchup, the most likely situation is that there will be some Sketchup models, some Blender models, perhaps other things—and they go through a conversion process to make them usable by the game engine.  In other words, the game engine can use models which come from all these different tools, but the models themselves can only be edited with the tool that was originally used in their creation.

I haven't used Sketchup myself.  Do you think it's a good way into modelling, on the basis that Blender isn't approachable for new users, or is it a bit of a dead end?  To illustrate what I mean, I created this model of a table with a tablecloth:

https://www.chown.org.uk/files/tablecloth.jpg

https://www.chown.org.uk/files/tablecloth.blend

It only took a few minutes because Blender's cloth simulation works out how the tablecloth will wrinkle.  Presumably Sketchup doesn't do that sort of thing, since as I understand it, it is aimed at architectural modelling.  I'm wondering what route it's best for someone to take who is completely new to this.  Is it best to start with a simple, approachable program, and then have to learn something else, or is it better to dive right in?

'And lets make sure we can do LOD's correctly too please'

I don't know how this is usually done.  Is it enough to decimate the mesh algorithmically, then store the results at various levels of detail?


User avatar
Jim Manley
Posts: 1600
Joined: Thu Feb 23, 2012 8:41 pm
Location: SillyCon Valley, California, and Powell, Wyoming, USA, plus The Universe
Contact: Website

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Wed Apr 04, 2012 3:28 pm

kreggz said:

Love the idea and would love to help with scripting. Interestingly Notch the creator of Minecraft is now working on something similar in theme. http://0x10c.com/

I doubt it is fully p2p however


Looks very interesting! I really like the hard science fiction, spacefaring, programming, energy management, etc. It"s very much like what I want to do, although I"m foolish enough to dream that we can eventually expand Pi-finity! for an unlimited number of users and worlds. It"s not clear what the visual presentation will look like, but, if it"s like Minecraft, it will be very mechanistic and spartan. Have you seen the scientific calculator built by a 16 year-old in Minecraft? Check it out at http://www.tomshardware.com/ne.....15109.html
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
Jim Manley
Posts: 1600
Joined: Thu Feb 23, 2012 8:41 pm
Location: SillyCon Valley, California, and Powell, Wyoming, USA, plus The Universe
Contact: Website

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Wed Apr 04, 2012 5:27 pm

I see no problem with having to edit models in their native tool and just displaying them in the game. I come from an era where a "modeler" consisted of vi editing vertices and edges by hand - heck, in my first course in 3-D computer graphics in 1976, we were doing matrix multiplication using slide rules while waiting for our Evans & Sutherland Picture System One and PDP-11/70 "peripheral" to be installed. We even had to walk to school ... both ways ... uphill ... against the wind ... in the snow ... I like the idea of Sketchup, but, the execution leaves something to be desired, at least in the free version I last tried about a year ago - there was no apparent way to specify dimensions directly, which is ridiculous. It also didn"t have much in the way of building articulating parts, but, I suspect those kinds of features are available in the paid version. Modelers seem to be like GUIs - everyone loves the one they"ve grown up with and everything else is just trash. So, I guess that means we should build yet-another modeler into the system to add to the Tower of Babel

The data consistency issue is a big one, and fortunately, I just happen to have some experience in large, worldwide-distributed databases, although that was on pretty big iron over mostly decent networks. There were very low-speed mobile links, so, we had to come up with some pretty starkly-spartan protocols that featured a _lot_ of prioritization. Most people have no idea how to handle that and wrongly assume that every single bit has to get everywhere instantaneously, but, that"s not how the real world works. There are lots of opportunities to allow things to degrade gracefully and as long as the most important data keeps moving, and the less-important fluff is sent to /dev/null when needed, it can work very nicely. Part of this is understanding where focus is for each player and processing data associated with that focus over peripheral objects, if necessary. There"s a phenomenon in the C4I world called "data rattle-around", where a particular event is detected by multiple sensors of varying resolution/spectrum and the resulting data, processed in a variety of ways, can wind up being disseminated over various paths at widely varying speeds. The receiving end can wind up being inundated with all of the extraneous stuff after receipt of the initial data on the event (a dozen times over is not unusual).

In fact, that can be exploited by an enemy - it"s part of the tactical manipulation of the information portion of the battlespace. During Operation Desert Storm after the invasion of Kuwait in 1990, infrared detection of Scud ballistic missile launches was transmitted via automated systems to tactical units in near-real-time for the first time. The problem was that every launch was transmitted to everyone at the highest messaging precedence, regardless of missile direction, which completely overwhelmed just the communications system, much less processing, analysis, assessment, and direction systems. The systems had a rule that highest-precedence messages had to be delivered and there was no expiration time, so, as queues filled up, nothing else could be disseminated until they were emptied. They had to put people in the loop to sort out what direction/area each launch was headed and then only warn units located within so many miles of the estimated impact point of a given launch.

Something similar happened in WW-II when British and Australian intelligence was tracking intercepts of Japanese radio transmissions. When U.S. intelligence folks joined the operation, they discovered that everything was being decrypted, translated, and analyzed in order of time of receipt regardless of content, which meant that time-critical combat information was being buried in piles of logistical, personnel, and other routine information. The U.S. team changed the flow to prioritize the processing of combat data by having just enough of each message processed to determine its type and then complete decryption/translation/analysis of the combat messages first. This soon led to the targeting of Admiral Yamamoto"s aircraft, as well as early warning of Japanese fleet movements that were out-maneuvered and preemptively attacked along the Indonesian and nearby island archipelagos.

Lots and lots of really interesting challenges in this kind of work, and if we position it correctly in front of students, they will get hooked and wind up taking these on with energy that we señor citizens can only sit back and admire ... jealously
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
SN
Posts: 1014
Joined: Mon Feb 13, 2012 8:06 pm
Location: Romiley, UK
Contact: Website

Re: R-Pi Massively Multiplayer Online Role-Playing Games (MMORPG)

Wed Apr 04, 2012 5:59 pm

SketchUp - I only suggested it as its freely available and there is an ENORMOUS set of available models ready to go - I find the GUI very tricky to be honest but I put up with because of I have a two exporters which export to formats I have used elsewhere:-

1. Many years ago I was 3D Modelling for Microsoft's Train Simulator - even got some stuff onto Game's shelves too.

2. Poser/Daz3D - I do a bit of rendering in Daz3D - Sketchup is an easy way to tap into the 3D Warehouse for static content

And so - you want to host Virtual City of London on your raspi?  Here's a route to get to the models that already out there and available and viewable on Google Earth

LOD's - I have no idea the right way to do this - I just know that I don't want my raspi to render a 10,000 poly object viewed from a distance of 2 miles away... - I want the 6 poly box distant view equivalent
Steve N – binatone mk4->intellivision->zx81->spectrum->cbm64->cpc6128->520stfm->pc->raspi ?

Return to “Gaming”