CyanWorlds.Com Engine (CWE) Open Source Project
The wait is over!
Cyan Worlds, Inc. and OpenUru.org jointly announce open source delivery of the CyanWorlds.com Engine client and 3ds Max plugin, aka Plasma, the engine used to power Myst Online: Uru Live.
Cyan Worlds Announcement
The following message was posted on the MystOnline.com forums on April 6th, 2011:
An Open Letter on Open Source ☺
The progress on our open source roadmap has been slow but has never stopped. And now what will look like a large step is really the result of numerous people, both inside and outside of Cyan Worlds, slowly cutting the rock into shape...
Today we are announcing that the sources for the MOULA client engine and development tools (CyanWorlds.com Engine) will be made available as open source. At the same time, MOSS which is a MOULA server replacement (written by a'moaca' and cjkelly) will also be released. Both open source projects will be hosted on OpenUru.org.
The goal of the open source CyanWorlds.com Engine and the MOSS server is to provide a "playground" where new writers can learn their craft, and new maintainers can inspect it, and new cartographers can map it. The Cyan Worlds MOULA servers will continue to provide a (relatively) safe environment for the D'ni faithful to mingle and share.
The path forward from here seems fairly obvious and very exciting - with amazing parallels to the D'ni universe itself. As new writers arise with new books, the books are tested and documented - and books that are approved by some new kind of maintainers guild will (hopefully) find their way to the MOULA server where the public can enjoy new worlds once again.
These are exciting times, but not without risk. The tools and skills are new and need to be sharpened. There will be disagreements and strongly expressed opinions. And there will be decisions and mistakes. But keep in mind that the big picture is a lot like rebuilding a long dead civilization - and the forest of common goals far outnumber the few trees of differences. Let's keep it civil. ☺
There have been numerous people cutting on the rock, and they've kept this project alive. We sincerely thank all of them for the wonderful help. Specifically there are a few people who went above and beyond - JWPlatt, a'moaca', Mac_Fife, cjkelly, rarified and Chogon.
Thanks again for the continued support!
OpenUru.org introduces the CyanWorlds.Com Engine, Cyan Worlds' Plasma game engine used to power Myst Online: Uru Live. The OpenUru.org team is thrilled that the CyanWorlds.com Engine has been released by Cyan Worlds as open source. We are honored that Cyan Worlds has given OpenUru.org the opportunity to prepare and release it to the Uru community and the world. The initial release of the CyanWorlds.Com Engine includes Cyan Worlds' client and 3ds Max plugin.
OpenUru.org is especially pleased to simultaneously announce a'moaca' and cjkelly1's Myst Online Server Software (MOSS), a Myst Online: Uru Live Again (MOULa) server replacement. MOSS was largely derived from a'moaca's work on her client protocol Wireshark plugin, a project also hosted on OpenUru.org. Cyan Worlds cannot release their server code until more is done to clear it for open source, so a'moaca' and cjkelly1's completion of their open source server couldn't have been more perfectly timed.
OpenUru.org is prepared with tools to support new development of the CyanWorlds.com Engine with MOSS. We welcome all developers, issue reporters and users to contribute to the effort. Contributors can use our Foundry with Atlassian tools such as JIRA, Fisheye and Crucible to manage development projects and Jenkins (previously known as Hudson) for Continuous Integration to produce automated builds.
The OpenUru.org Foundry is initially providing executable builds with the sources for both the MOSS server and MOULa client, thanks to the stellar development and preparatory work by a'moaca' and cjkelly1, and Foundry development from rarified.
What is included in this source release from Cyan Worlds:
- MOULa client engine source
- MOULa 3ds Max plugin source
- MOULa supporting Python and SDL files
What is not in this source release from Cyan Worlds:
- MOULa server code
- Certain parts of the internal client that deal with customer service support
Further details can be found at http://wiki.OpenUru.org/index.php?title=CyanWorlds.com_Engine.
Open Uru is an inclusive concept of a community of creative talent and hard work coming together to make new worlds, new stories, and new content - now able to openly use and develop the CyanWorlds.com Engine to empower it. The OpenUru.org team presently consists of JWPlatt, Mac_Fife, rarified, a'moaca' and cjkelly1 and Chogon. It is hoped that others will join to lead these efforts in the infinite possibilities of Open Uru.
- Website: http://OpenUru.org
- Wiki: http://wiki.OpenUru.org
- Foundry: http://foundry.OpenUru.org
- Forums: http://forums.OpenUru.org
What It Is
CyanWorlds.Com Engine is the client, server and tools used to develop and operate the Myst Online: Uru Live MMO. The server code needs more work before Cyan Worlds can clear it for open source. However, the client and 3ds Max plugin are now available in open source.
How To Get It
CyanWorlds.Com Engine is available on OpenUru.org's Foundry, hosted on a Mercurial code repository. There was much discussion on the Myst Online forums about the strengths of various repositories after Cyan Worlds' initial open source announcement in 2008. We listened. Mercurial was selected due to the needs of a distributed developer community.
Any developer requiring "commit" access to our repositories needs to register an account on the Foundry at https://Foundry.OpenUru.org/jira. The Foundry is secured via SSL throughout the site. A browser security certificate is needed. Instructions are available on the certificate installation page. Guest access to pull from the repository does not require an account.
Developers with an account will be given access to pull the CyanWorlds.Com Engine repository as quickly as possible. Once the developer traffic has subsided, the repository will be opened to the public and the curious.
- Register for a Foundry account at https://Foundry.OpenUru.org/jira (only necessary if you expect to need "commit" access to the repository).
- Install the Foundry SSL Certificate using the instructions on the certificate installation page.
- Pull the CWE-ou repository from the address given below.
View account queue: http://forums.OpenUru.org/viewtopic.php?f=91&t=507 (Note: The account queue is longer required)
Repository address: https://Foundry.OpenUru.org/hg/CWE-ou
As mentioned in step 1, you only need to register for an account if you wish to obtain commit access. To just pull the source, anonymous access works, or use a username of guest, and a password of guest.
Some developers will be invited to join the team in management and development positions for the CyanWorlds.Com Engine project. But generally, anyone who demonstrates the skills and becomes a positive force in the project may contribute to development.
CyanWorlds.Com Engine "version 1.0" will consist only of a buildable client. The plugin sources will need further work to make it buildable for 3ds Max 7. The initial release from the repositories has had just enough work done to substitute proprietary and third party libraries to allow it to build successfully. There is further work required to fully integrate the new libraries and to replace functionality that was removed in preparing the sources for release. We envisage a road map of essentially three phases: Phase 1 would aim to duplicate the functionality of the current MOUL binaries, Phase 2 would start to introduce fixes for known issues or, for example, upgrade the plugin for the current release of 3ds Max. After that, the fun begins with new features and full steam ahead to keep on chugging down that open source track. While we would prefer that change submissions follow this roadmap, nothing is set in stone, and changes with clear merit will always be welcome.
Once things get rolling, we'll be looking for people to fill or help with the following positions:
- Project lead (integration of job flow, patches, release schedules)
- Documentation lead (create and integrate cross-platform documentation for JIRA, web, Wiki, PDF, IDE)
- Technology lead (site integration, resource integration, security, builds)
- Development lead (prioritization of issues, issue assignments, tools, set up code review)
- Web community lead (development of web presence and content to introduce, educate and deliver open source projects
What documentation? The code documents itself! Right? Actually, there was an apparent early effort to maintain directives used for automated Doxygen documentation from code. Their use fell off as time went on. Introduction of integrated documentation is considered crucial to the successful development of the CyanWorlds.Com Engine. Therefore, Doxygen directives will be accepted into the main trunk from the start. We want to build integrated documentation originating from the source code for use beginning with Fisheye (our repo browser), HTML, PDF, and the Visual Studio IDE.
Everyone will be able to download and watch progress of the CyanWorlds.Com Engine project and enjoy the benefits of exploring new worlds.
The CyanWorlds.com Engine Project was brought to you by Cyan Worlds' Rand Miller, Tony Fryman, Mark DeForest and the collective talents of everyone at Cyan Worlds who ever worked on Uru Live over many years. The original release team at OpenUru.org who are helping to make the open source CyanWorlds.com Engine project possible are JWPlatt, Mac_Fife, rarified, a'moaca', and cjkelly1.
Building The Client
In the article "Build the client with MSVC 2003", cjkelly1 describes how to build a working client from the CWE sources. Note that this build uses sources and makefiles that have been modified to substitute some of the libraries that could not be distributed with the original sources.
Building The Tools
For compiling the plPythonPack and plFileSecure projects, there is a tutorial by Mystler in the article "Building the plPythonPack and plFileSecure projects". It is based on cjkelly1's tutorial "Build the client with MSVC 2003".