Whirld

The Whirld project aims to create a simple, elegant, standardized world format - complete with supporting libraries - for utilization by Unity games. Whirld worlds are a somewhat similar concept to asset bundles - but being an open format, they will not need to be created using the Unity editor - allowing them to be vastly more useful in a variety of scenarios.

The Whirld Project was started by Aubrey Falconer. Have something to contribute? Please join me!

Vision

 * Being an (unofficial) community standard, this project will dramatically increase the value of existing and future Unity games by providing them with a near infinite variety of ready made Whirld compatible worlds created by various game communities.


 * Being open and free, this project will inspire innovation in the next generation of developers: the ones who are currently playing games. What better way to interest creative minds in game development than by providing them with a free toolset to create their own worlds for their favorite Unity games?


 * Being simple and easy to use, this project will encourage the development of Unity games. Imagine the excitement of dropping a library into your Unity project, and instantly having access to a huge variety of ready made worlds!

Current Status

 * The latest Whirld package includes a Unity editor script which utilizes the Whirld library to load and save worlds from the internet and to the local filesystem in the BZW (BZflag World) and UTW (UniTy Whirld) formats.


 * The latest Whirld library is showcased in » Mars Explorer 1.99, where you can see it in action loading worlds in the game.


 * The next phase of development involves adding support for meshes, terrains, custom materials, and parametric objects to the UTW spec.

Get Whirld
Download the Unity Whirld Package:


 * » (Latest) Unity Whirld Library r2
 * » Unity Whirld Library r1

This is "Alpha quality" software, and it comes with no documentation - or guarantee that it won't erase your hard drive. DO NOT USE it in any projects that you are afraid to loose!

After opening the Whirld package in Unity, you will see several new folders in your project:
 * The "Whirld" folder contains all the source code for the various Whirld tools
 * The "Whirlds" folder contains sample worlds to get you started
 * The "Resources" folder contains a collection of prefabs and other fun things that you want to be available for instantiation in your game
 * The "Resource Sources" folder contains the assets that were used to create the resources.

To take the Whirld library for a spin: (1) Import the Whirld package into your Unity project, (2) click the "Assets > Whirld World Tools" menu to open the Whirld editor panel, (3) (in the "Project" panel) open the "Whirlds > Fort Boxy > Fort Boxy" scene, and (4) save the scene with a new name so you don't loose the original fort. If you prefer, (3b) you can also start with your own blank scene.

You can now begin creating your own world out of the prefab primitives in the "Resources" folder:


 * Hold the "Command" key while manipulating objects in your scene to activate Unity's "Snap" feature. It makes aligning complicated block structures a cinch! Building with primitives takes a bit of getting used to, but once you get the hang of it - you'll find it to be fun and efficient.
 * Object naming is very important. Never rename your resource prefabs, or the Whirld library won't be able to recreate your world. If you create multiple non-resource "container" objects with the same name in your world (such as each castle in "Fort Boxy"), the Whirld library will automatically turn the first object of that name in your scene into a "scene resource", and all other objects of that name will be generated as duplicates of it to optimize your game's performance.
 * You can add a texture to all the objects in your whirld by dragging a default material into the appropriate section of the Whirld panel, and clicking the "Remap UVs" button.
 * Be careful! The Whirld library generates it's worlds inside a GameObject in your scene called "World". If you call whirld.LoadWorld via a script while there is already a world in your, scene or press "Unload World" in the Whirld panel, your world will be erased or overwritten.
 * Once you are finished designing - save your world to disk using the Whirld editor panel, upload the .utw file to the internet via your favorite hosting service, and you will be able to play your world in any Whirld enabled game (such as Mars Explorer)!

If you are feeling really adventurous, you can also try loading worlds through scripting inside your game - which is accomplished with the following JavaScript code: You should be able to figure out how to access everything the Whirld library offers by examining the source code of the WhirldWindow.js Editor Panel script. To get the maximum performance out of your game, you should run Unity's CombineChildren script (included in the Whirld package) on your whirld once it is loaded.

Resources

 * WorldUVs - Script created to automate seamless object texturing in Whirlds
 * MeshSerializer2
 * ObjExporter
 * Terrain Splat Maps