Wednesday, February 15, 2012

Morrowind Open Source Projects: Who They Are, What They Do And What They Will Become

Hey Freegamers, 

My name is Antoine and I’ve been a devotee of this site and the Linux Game Tome for years. Now I have the priviledge to contribute back an article. Thank you qubodup for helping me out with this article. I love open source games, but I have a particular soft spot for those that allow creativity and collaboration from their users. Imagine if there existed an open source, and therefore completely editable, game engine with as much content as Morrowind’s fans have created available for it? As many of you are aware, there are currently fan projects working to extend the life, reach, and functionality of The Elder Scrolls III: Morrowind far beyond what’s possible using Bethesda’s Construction Set modding tools.


Can you guess which screen is rendered by what engine? :)

About Morrowind: Morrowind is an enormous proprietary game loved by fans for its atmospheric and immersive world filled with bizarre giant mushrooms, homes built into giant vines, and barren wastelands. However, it was plagued by software bugs, had many elements that were half-baked in their execution, and its game engine took poor advantage of GPUs. Some of these problems fans were able to address with unofficial patches and mods, but others could not be solved without changing the actual game engine.

When I found an open source reimplentation of the Morrowind engine I had to become involved. I’m very new to the group, but I’m helping out the PR team. However, just days after finding OpenMW, I discovered two more such projects existed, with rumors of a fourth. Mark Siewert of The Crystal Scrolls (and soon OpenMW), said the multitude of projects are a testament to the interest people still have in this game’s strange world. Indeed, look at the massive undertakings of fan projects like Tamriel Rebuilt, MGE XE, MGSO, or type in on YouTube “Morrowind 2011” or “Morrwind 2012” and you’ll get a sense for the countless hours fans continue dedicating to improve Morrowind a decade after its release.

I spoke with the developers of the different engines about their projects to get an idea of what their development status is, what their goals are, and how they’re accomplishing them. A quick disclaimer; you need a legal copy of Morrowind to use any of these engines for playing Morrowind. You can get one from steam (it goes on sale every couple of months) or by purchasing one on ebay.

OpenMW began in 2008 by Nicolay Korslund, it uses ogre3d, bullet physics, OpenAL, OIS, NifLib, and MYGUI. Nicolay stepped down as project lead last year and was replaced by the developer Marc “Zini” Zinnschlag and is joined by many great developers.

Project Aedra, was started by Tom Lopes in 2009. It employs NifLib, Bullet Collision, Quake 3 Arena for "pmove" character controller code, and the FastLZ library.

The Crystal scrolls was started by Mark Siewert in 2007 and it employs the Crystal Space 3d engine.

So what do these projects have in common? Well, they are licensed under some form of the GNU GPL license, written in C++, and aim to have all the features of original Morrowind, including compatibility with all official and unofficial expansions and plug-ins (and those based on external programs such as the Script Extender). Their individual goals are listed below. 


Additional Goals:

OpenMW
Project Aedra
The Crystal Scrolls
  • Allow greater modification: change game rules, create new spell effects, etc through scripting.
  • Fix system design bugs, like the "dirty" GMST entries in mods, and the save game "doubling" problem
Post 1.0:
  • Improve the interface and journal system
  • (possibly) improve game mechanics, physics, combat and AI
  • (possibly) support multiplayer
  • (possibly) improve graphics to use more modern hardware
  • Be blindingly fast
  • Multi-thread support
  • Multiplayer support
  • Modern graphics engine
  • Upgraded physics engine
  • Upgraded AI
  • Fix bugs in Morrowind (mostly related to data merging)
  • Add many functions of FPS Optimizer including a fix for the world map
  • Support for multiple .ini files, with each capable of overwriting some of the default settings.
Post 1.0:
  • Support for external tools that modify the Morrowind.exe like Morrowind Script Extender
  • Multiple world spaces like in Oblivion (would reduce mod compatibility issues)


Features:


OpenMWProject AedraThe Crystal Scrolls
WindowsDoneDoneDone
Mac OS XDone--
GNU/LinuxDoneWine-
Game launcherDone-Planning
ConsoleNearlyNearly-
HUDEarlyPartial-
Render InteriorDoneNearly-
Render ExteriorPartial*NearlyDone
Sky RenderingEarlyDonePartial
Day/Night CycleDoneNearlyPartial
NPC RenderingNearlyPartialDone
NPC AnimationsNearly-Nearly
NPC Dialogue Nearly**--
Sound effectsPartialDone-
MusicDoneDone-
Object CollisionPartialDone-
Object interactionNearlyNearly-
Water LayerNearly**NearlyPartial
ScriptingNearlyPartial-
Multiplayer-Early-
Plugin Merging--Planning
Graphical Replacer SupportDoneDone-
Multithread Stream Loading-Partial-
Hardware Animations (Shaders)PlanningPartialNearly
Load DoorsDoneDone-
Render Particle Effects-Planning-
Read Scrolls and Books-Done-
Menus -Partial-
Ground Blends-Early-
Distant Land-Partial-
JournalPartial--
Nearly** = Code is in the repository, but not in the latest release.
Partial* = Code is in repository, but likely to not be activated in a release for quite some time.
- = No code or planning done yet, or possibly not intending to include.

When is your next release?

OpenMW: No exact date, but we are on the verge of our big 0.12.0 release.

Project Aedra: One was just released. The latest download is r163.

Crystal Scrolls: After recently returning from an unexpected and prolonged hiatus, I released a new snapshot two weekends ago.


What’s next?

OpenMW: Work on version 0.13.0 has already begun.

Project Aedra: Everything (in no particular order); scripting, multiplayer, key binding, animated textures, GUI, conformance (tweaking every little thing to be the same as in Morrowind), ground blends, bug fixing, animated skins, distant Land, 3D SFX, and shaders.

Crystal Scrolls: I am going to join forces with the OpenMW team and help them in getting their own project out of the door. While I will still continue developing this project, I also want to see one of the many Open Source Morrowind projects completed. And from my point of view, OpenMW is likely to reach maturity first. I am planning to do more work on things that do not depend on the renderers, so this should be of use to OpenMW as well.
Concerning Crystal Scrolls 0.3:
  • Plugin/Mod support. Possibly with a launcher which lets you disable/enable plug-ins 
  • Support for original save games (it's no that different from plug-ins). 
  • Object interaction. This will enable many additional features, such as picking up objects, entering internal cells, and more. 


How big is your team?

OpenMW: We have eleven active developers (with varying degrees of involvement with OpenMW) and five people working on things like package maintenance, public relations, and website administration. Our team list is here.

Project Aedra: 1 person, me!

Crystal Scrolls: Myself.


How can people contribute?

OpenMW: If you are skilled with C++ or have game programming skills please register at our forum, look at the version 0.13.0 thread and find an unassigned task, assign it to yourself and get started. Also we want people with fast computers and video editing skills to record demonstration videos for Youtube. We hope that releases post 0.13.0 will be playable enough to necessitate many bug testers. If you are learning how to code, download and have a look at OpenMW.

Project Aedra: I'm looking for C and C++ game programmers with prior experience who can help program.

Crystal Scrolls: There are many ways to help out. Now that rendering and animation is mostly out of the way, it is feasible to start implementing more features. My primary goal for 0.3 is to add plug-in/mod support, and object interaction, but one can easily imagine things that are not blocked by this feature: sound, the console, scripting, etc. So if you want to help, install the program and find something that is missing and that might not depend on plug-in support or object interaction.



There you have it folks; three projects sharing a lot of common ground, but with some different goals and feature sets. Which is the best? That depends on who is asking. I suggest trying out all three every six months or to see how their changing and defining their own style. No doubt they will influence each others development with ideas and solutions. It is very exciting that Mark Siewert is joining the OpenMW team. Here’s to open source, games that facilitate creativity, and the preservation and improvement of games for posterity!