Welcome to the Pi-finity! WikiEdit
Pi-finity! is a game system being developed for the Raspberry Pi (TM) computer system on a credit card sized printed circuit board. Pi-finity! is currently in the requirements specification phase, with design, implementation, testing, debugging, and documentation to be performed through the Summer of 2012. Pi-finity! is being developed by Raspberry Pi users, to include students, as an open-source software project that will be fully documented and available to be extended as desired. The software is envisioned to be a massively multi-player on-line role-playing game (MMORPG) system that will use distributed peer-to-peer network technology to share both software and data in a statistically-redundant mesh.
Animated open-source 3-D Raspberry Pi logo courtesy of RaspberryPi.org forum member Antario in Biharkeresztes, Hungary: Animated GIFs and PNGs, and Blender files
Pi-finity! Project OverviewEdit
The Six Phases of a Project
1. Rampant Enthusiasm
2. Sobering Acknowledgement of Reality
3. Panic and Hysteria
4. Search for the Guilty
5. Punishment of the Innocent
6. Rewards for the Non-participants
We are in Phase One, blissfully unaware of what's ahead ;)
The evidence keeps mounting that yes, Virginia, there really are 10,000 R-Pi boards Out There and we can now increasingly hope that hundreds of thousands more will be delivered over the next few months. As this growing reality has started to sink in, I've begun thinking about some very cool things we could all do with each of our boards that would nicely demonstrate its many capabilities, encourage everyone with a board to participate and learn how to work cooperatively on a large computing project, and establish a real community of users that can bring us all closer together.
It soon occurred to me that one approach might be to establish an R-Pi massively multiplayer online role-playing game (MMORPG), since you can't get much more massively multiplayer than hundreds of thousands of rabid R-Pi fans looking to share their newfound infatuation.
Eben and the team have demonstrated Quake 3 running on a prototype board, but, it had issues that I don't think have been resolved, yet (some excuse about pesky prospective customers with torches and pitchforks marching on the castle needing to have hot oil poured on them). However, even after the client is debugged, establishing and supporting Quake 3 servers for hundreds of thousands of players probably isn't something very many are willing to do on a volunteer basis and donating resources.
So, after a few more moments of thinking, it occurred to me that it would be really cool if we developed one, or more, MMORPGs unique to the R-Pi community that could only be played on R-Pi systems. Since the preponderance of comments suggests that there is a lot of experience with Python, and that contributors without much software development experience might be able to come up-to-speed the fastest using Python, which does have extensive libraries available that should provide all of the functionality needed to build games (I seem to recall that some work may need to be done for full 3-D graphics support via the GPU). It's been quite a while since I've done any game development, but, I do have pretty extensive 3-D graphics and network-distributed computing experience, specifically in modeling and simulation and virtual reality for application areas like military command and control, communications, intelligence, and computing. I'm assuming that there is a fairly extensive open-source game code base we could draw upon from a variety of places, and I'm sure there are plenty of experts here that can help get things organized fairly quickly.
I haven't thought much about what kind of game would be both popular and appropriate for all ages, given that the focus of the community is supposed to be educational. So, a first-person shooter is probably out, unless the weapons operated non-violently (think ammunition like Silly String, whoopie cushions, popping balloons, bubble gum, etc.). A purely fantasy-oriented game featuring unicorns and rainbows might not be as popular as other genres, although something that combines humor/silliness with more traditional features might turn out to be very popular. Perhaps a melding or updating of classical early computing games with modern graphics capabilities and techniques would be the ultimate tribute across the years. Think Breakout/Brickout in immersive 3-D, Grand Theft Auto with Zelda characters and behaviors, Donky Kong in virtual reality, Super Mario Brothers as a space quest, a Zork adventure game with hundreds of thousands of players, etc.
I haven't looked closely to see if an appropriate game engine already exists, but, I have a gut feeling that some sort of peer-to-peer means of sharing parts of the game landscape among players active in given virtual geographic areas so that centralized servers won"t be necessary might be possible. I do understand that maintaining consistency of shared data across thousands of systems that could have transient connectivity via peer-to-peer technology could be problematic, but, I'm aware that research has been done to address this kind of problem, if it hasn't already been resolved in open-source code. 3-D graphics will be used in order to show off the capabilities of the GPU and 1080p HDMI output. It's not clear whether there is support for more than stereo digital sound via the HDMI port, but, if there is, it should be exploited to the maximum extent possible.
As you may have gathered by now, this is just at the nascent brain fart stage, and there is a huge number of details that need to be worked out. However, I don't want to focus in on details, yet, and would rather hear as many wild and crazy possibilities voiced as part of a free-association mental exercise. Once we've laid out what we all can come up with, then we can start winnowing things down to what's reasonably feasible and most popular to the largest number of people, across all demographics by age, gender, educational level, economic status, etc.
The key principles are that we would be doing this for fun and to help R-Pi users learn how they can develop software that satisfies common goals shared by a large number of people. Anyone who just wants to take pot-shots, cast aspersions, or otherwise non-constructively criticize what's being done is hereby being put on notice that such behavior is not going to be tolerated. If a criticism is made, a positive suggestion to resolve the perceived problem must be provided and, if it's not accepted by the group, so be it. We will follow the monkey owner principle – if you remark on the monkey someone else is carrying, then you take responsibility for the ongoing care and feeding of that monkey.
I'll put together something with a lot more structure over the next few days, and in the meantime, I'd like to just hear what ideas others have about such a project. I'm not interested so much in just yay/nay responses, but, rather what you think about the factors I identified, plus any others you might think are important. I haven't listed all of the issues that will need to be addressed, so, this will give others the opportunity to share what they can contribute toward the project's goals.
I'll gradually be adding content over the next few days describing the general characteristics of the system, organizing and expanding the feature descriptions we've discussed in posts here. Once I've got the basic outline established, I'll invite everyone to review and add their inputs. Within about a week, we should have enough information to begin trying out some rough ideas using existing open-source game development software. This will allow us to determine what software libraries may be suitable to use for development of the Pi-finity! environment.
That will also enable us to establish a baseline of requirements specifications, since we'll know what can probably be built upon and what will need to be built ourselves. Then, we can begin the design phase and, when there's enough detail there, implementation of the application programming interfaces (APIs) can start. The specifications will also identify all of the software development tools and libraries needed to build the software, as well as recommended enhanced tools (e.g., integrated development environments). On-line code and document file repositories will also be identified and the file management philosophy will be stated.
We will be using a rapid prototyping methodology with frequent iterations on at least a weekly basis, so, things will be moving along fairly quickly. The system will be built inward from the interfaces using placeholder stubs that will later be fleshed out with functional code. This way, the system can be tested at any time, with additional functionality appearing at each iteration.
So is this going to be an old-fashioned BBS-styled MUD? Cos that'd be pretty damn cool.
by Arctic GiraffeEdit
Love this hare-brained scheme! Specifying a standard HW for it to run on and build code for will simplify compatibility which is a Good Thing. I can see it getting ported to other distributions if it became popular though.
Found the r-pi community recently, and i love the idea of this project. i honestly don't know the capabilities of this board yet, but i would assume that it has about the same "umph" as a nintendo DS. Hopefully this can make for a not too shabby looking 3D experience.
how do i sign up to help!