InWorldz and Halcyon
Over the past year, InWorldz has released source code to the greater 3d simulation and virtual world community in an attempt to make quality solutions for common problems available to the masses. This has been done deliberately to raise the bar of expectations for users coming from larger more well funded companies to smaller grids like ours.
Last week we released the core of the InWorldz simulator source code on GitHub.
As well as being a community oriented virtual world, this release makes InWorldz an open source software company specializing in performance and stability oriented 3d simulation.
Halcyon is the culmination of five years of an intense in-house software development effort to bring the quality of our virtual world software up to par with the expectations of the mass market. During a time of heavy growth we were able to isolate, diagnose, and replace many failing components with implementations designed from the ground up to handle realistic use cases where users can build in 3d freely without having to worry and avoid features of the environment because they perform poorly.
Advantages of the Halcyon architecture
Halcyon has stability, architectural, and performance advantages in several key areas that make it stand above other solutions when it comes to getting real work done. From the Phlox script engine, to the NVIDIA PhysX physics integration, we’ve designed the simulation to take into account the reality that users and large groups of users can be very demanding on the software to perform optimally.
We made a conscious decision to remove redundant options for various subsystem implementations and go with the best available solutions for each component. This choice has led to a streamlining of development where we concentrate on only one best in class way to solve a problem. When we find better solutions that can’t be implemented by improving our existing components, we replace the component entirely and do our best to maintain backwards compatibility rather than leaving multiple libraries in the source tree that solve the exact same problem and lead to redundant maintenance work.
The core tech
The Phlox script engine allows users to design active objects with scripts that get the job done without the worry that using language features like sleeps and while loops will bring the simulator to its knees. Utilizing advanced scheduling and serialization, we’re also able to quickly and efficiently transport your running scripts between separate physical servers in milliseconds, starting them running again in exactly the same state on a new server without ever skipping a beat.
With NVIDIA PhysX, we’ve been able to integrate a stable rigid body physics simulation that looks realistic and that can power your airplanes, cars, boats, and machines. This high fidelity simulation runs at 64 frames per second and provides increased accuracy and realism over many other solutions.
NPCs (bots) are easier to use than ever on Halcyon. Simply dress up an avatar the way that you would like a bot to look, and Halcyon allows you to copy the appearance of your avatar to an NPC for future use. Utilizing a combination of the more than 50 bot specific functions, your creations can take on a life of their own.
Better management of resources means that it takes less hardware to do more with Halcyon. The simulator is tuned and load tested to provide good responsiveness even when under high load.
Better management of bandwidth for both UDP and TCP traffic means that Halcyon does its best to respect the bandwidth limits set by users to minimize packet losses that can create a negative experience for people on weak LTE and slower DSL links.
The Halcyon core architecture has withstood the load of almost 500 simultaneous avatars online in InWorldz at peak and maintains data for over 130,000 registered users. These loads and data sizes give us experience in designing software and systems that just work better. We’ve implemented data components that are infinitely scalable such as our Apache Cassandra based inventory systems, and our Rackspace Cloudfiles (OpenStack Swift) / InWorldz WHIP hybrid asset cloud.
Our implementations of core functionality always come with the conscious decision to never create a temporary solution that sacrifices future improvements to the platform. The InWorldz team has also done our best to minimize wasted resources like disk space wherever possible.
Big things coming next
Though the source code is now available online, it is currently not easily possible to get an instance running on your desktop. To facilitate this, we’re working on a set of simple setup tools and scripts to get a simulator running on .NET for windows. Following the release of those tools, we’ll be putting work into packaging up Halcyon for home use. Later on, we’ll add features to better integrate Halcyon instances with the core InWorldz grid so that a Halcyon instance can be used as a sandbox while the InWorldz grid can be your home base to spend time with your friends and family.
We’re also interested in seeing our virtual world and 3d tech being used by more organizations. If Halcyon looks like a good fit for your projects, drop us a line and we can evaluate your use case for integration.