|Posted By: b w|
Join Date: 2009-04-29
Location: UNITED STATES
Opensimulator Massively Multiplayer Online (MMO)
This project is in planning phase for Massively Multiplayer Online functionality in Opensimulator. What you say, is not OpenSim already massively scaled? In one way, the Second Life way, it is by throwing at it massive expensive hardware to run corse-grained operating system threads with predictable lag due to shared memory concurrency limits. The first concurrency limit maxes out cores, memory, and disks on a single dedicated system running a monolithic hardcoded application of linked libraries; A usual next solution applies remotely mounted file systems with their distributed data servers maxed out doing master-slave SQL replication as an ad-hoc network, or hosted datacenter; Then a search for more processing power return on investment (ROI) adds system management support programs to migrate (a la rsync, bootp, vpn, MPI / grid computing) virutal machines onto underutilized remote cores tied together with messaging middleware. The progression goes from linked libraries single VM binary of dedicated API's to a combination of those connected to each other using message passing across compute nodes over LAN and WAN. Each step is an attempt to string together custom (large legacy) apps never designed for concurrency in the first place.
This Project's focus, however, is scalable1 mmo services, micro-threaded distributed processing on multi-core cpu's and commodity clusters so that "Massively Multiplayer" is a reality of realtime simulations of tens of thousands avatars, bots, and scripts do more than just stand around waiting for the sim to rez. Scalable internet services include more than horizontally expanding hardware since stakeholders and investors demand efficient operating cost and wise use of resources on both remote servers and client machines. Some interesting proof-of-concept virtual worlds include ConWorld by msorbet hosted on github.com/msorbet/ConWorld, "A concurrent programming experiment in virtual world simulation", which uses erlang servers and front-end viewer based on wxWidgets Our first view of distributed MMO services is derived from upstream NextGen MMO architecture by Christian Flodihn, whose Abydos MMORPG uses his Erlang servers with an MVC C++ front-end using Ogre3d rendering engine.
For help obtaining and setting up the mmo servers and mvc client see "Installation". Specific configuration details are found in
Configure C++, OGRE
Descriptions and sample runs can be seen in README.Account_Servers as typed in directly to Erlang console.
These are Unix shell scripts for getting a first run of the Erlang environment for compiling the mmo servers and configuring default configurations.
Resource books, online links, articles, manual pages, and operating system specific help for downloading the build environment for both command line text processing and Integrated Development Environments for of Erlang and C++ source code. Sample setups include FreeBSD 8.0, Fedora Core, and Ubuntu Karmic for installation via native package managers to resolve all package dependencies. Chat support group links and websites devoted to distributed Erlang processing, and OGRE3D/C++ rendering engine development.
Tracker > Tasks > To Do List
Topics to Ponder: Databases, Drivers, & What-not
OpenSim MMO back-end consists of stored scene"assets" and avatar "inventory"; A wide range of database designs are discusssed by various makers such as Berkeley DB, MySQL, MongoDB, other NoSQL vendors, and proof-of-concept drivers. A large part of opensim "management" issues affect up-time, availability, scaling over multiple systems, bandwidth latency, transfer, migration, upgrade, driver compatability, and accessibility among dissimilar instances of Opensim such as vanilla releases via packaged tarballs, git checkouts, and roll-your-own distributions within grids, standalones, and hypergrids, as well as integral dependencies such as Libomv or newer offerings of SimianGrid via Apache/PHP. Module management: multi-platform package management and distribution across nodes from local and/or remote repositories and mirrored sites.
Survey: Survey of MMOs.
Many peers exist in the MMO Role Playing Game genre and game engines that combine 3D editors with traditional "multi-user dungeon levels", and "virtual worlds". For example, The Sims series, Google Earth (derived from NASA's BLUEMARBLE), Microsoft Flight Simulator, EVE Online, and World Of Warcraft etcetera all have open-source equivalents.
Quotes: Quotes, Inspiration, Dedications
From system designers, software philosophies, IRC/email list discussions, and industry reviews bring out insights, suggestions, and methods that seek to overcome past limitations of integrated software development. An across-the-bow shot is offered to harmonize click-wrap licensed commercial software products, and free and Open Source Software composing the Opensimulator VM development and distribution models.
Tracker > Feature Requests > Neat Ideas ...
Frameworks, Modelers, Script Engines
Forums > Open Discussions > Topics
Web Server Shoot Outs
1. Enterprise Integration Patterns: Designing, Building, And Deploying Messaging Solutions. Gregor Hohpe, Bobby Woolf.
For scalable systems see: Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications by Cal Henderson, O'Reilly 2006;
and Patterns of Enterprise Application Architecture by Martin Fowler, Addison Wesley 2003.
Additional methods come from Building Clustered Linux Systems by Robert W. Lucke, Prentice Hall PTR 2005,
Erlang Programming: A Concurrent Approach to Software Development by Francesco Cesarini, O'Reilly 2009;
General processing on the GPU for NVIDIA and ATI graphics cards.
Bibliography and notes:
Bibliography in Massively Multiplayer Online > Tracker > To-Do > Survey.