The Crystal Scrolls - an Open Source Morrowind engine

... well, another Open Source Morrowind engine
The Crystal Scrolls is an Open Source Morrowind engine, licensed under the GNU LGPL V3, and written from scratch in C++. The engine aims to do everything that the original does, including compatibility with all official and unofficial  expansions and plugins, including those based on external programs such as the Script Extender. Of course, all these features will be built-in so you don't need to start multiple external applications parallel to the main program.

You will need a legal copy of Morrowind to use this engine. (The esm/bsa files should be sufficient.)

LAST UPDATED 28.7.2013

This project is currently on INDEFINITE HIATUS. Sorry folks, but Real Life (TM) has kept pushing me into different directions. Last year, I had decided to join the OpenMW project, another Open Source Morrowind engine, helping them to get some things running they hadn't implemented yet. Took much longer than expected. And then, private complications started eating every single free minute in my life, which is still on-going

In a nutshell: I still want to return to this project at some point in the future, but I have totally no idea when this might be. My most optimistic estimate is "this year", but it could easily take longer than that. Unfortunately, I have a huge backlog of more important things to get back on track...

The current state

Obviously, such an ambitious project does not start over night. Work at this application began in December 2007, and is still progressing, although very slow. After a much longer time than expected, NIF files and -especially- animating them has now finally reached what I would call a usable and working state. In addition, animation is now done by the hardware, i.e. working shaders are in place as well.

I have just recently released the next official snapshot, Version 0.2.0, which features the following things:

- Animations are in place and running. Hardware shaders are available as well.
- NPCs are rendered properly, including their equipment.
- A first, rudimentary skybox (i.e. clouds) and a water layer are implemented.
- Plus the usual asortment of bug fixes, stability increases and workarounds for malformed files.


My roadmap has not changed much. The next features will be:

- (0.3) fully support multiple esp/esm files, overwriting data as needed, maybe even save files
- (0.3) support interior rooms and going through doors
- (0.4) implement first bits of actual game data data
- (0.5) implement GUI (maybe moddable?)


And there is one point that is actually new. I am going to join forces with the OpenMW team and help them out 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 getting finished. And from my personal point of view, OpenMW is likely to reach maturity first.


Open positions / help request

If you are toying with the idea of supporting Crystal Scrolls, feel free to contact me. Any help is welcome. Currently, I don't have any specific openings, though.

Screenshots

This section is still horribly outdated. Updates will come, but I don't quite know when.

   

External dependencies

The Crystal Scrolls makes use of the following Open Source projects, without which none of this work would be possible:

- The Crystal Space 3D engine, which is a very powerful and extendable engine for rendering meshes, playing sound and more. Most of my code is based on CS data structures, with a NIF importer being written from scratch, and some features hacked into the existing engine. Uses the GNU LGPL license.
- The niflib library, a generic C++ library written by the Niftools project capable of reading (and writing) NIF files. This library is at the core of the NIF importer for Crystal Space. Uses the modified BSD license.

Kudos to all the folks involved with these projects!

Installing and using the engine

Using the engine

The current public release snapshot of Crystal Scrolls for Windows is version 0.2, finally released in early 2012.

After downloading and installing the installer, you are almost there. If you have an existing Morrowind install somewhere on your (Windows) hard drive, the program should automatically read its position from registry. If this does not work for some reason, you now have the option of copying your "Morrowind" folder to where you installed the engine. If  you can't do this for some reason, you must edit "crystalscrolls.cfg" and edit the entry "Morrowind.Path" to point to your Morrowind installation (i.e. the location where your Morrowind.exe is located, NOT the "data files" folder!). At this moment, you need to have both Tribunal and Bloodmoon installed as well.

After this, just click on the link dropped on your desktop. There are a limited number of starting positions hard-coded into the engine which you can select in the config file as well.

To move around in the landscape, use your arrow keys (sorry, no WASD right now). To look up and down, use PGUP and PGDOWN. Press ESC to exit.

The current build will automatically load the Bugplug plugin, which allows you to do lots of nifty things. First and foremost, it displays an FPS meter in the lower left corner of the window. Some other features which you may be interested in are
- Screenshots: CTRL-D, followed by F11. If you have too much space on your hard drive, you might also try SHIFT+F11 instead, which writed a whopping 2048*1536 screenshot.
- Wireframe mode (i.e. twf in the Morrowind console): CTRL-D, followed by E ("edge draw"). To switch this off, repeat the same procedure.
- To select a Mesh, press CTRL-S and click with the mouse on something, you should see the obects bounding box. Pretty useless, but it will allow to rebuild the Morrowind console later.
For more information on BugPlugs capabilities, go here.

Building the engine (optional)

If you want to try and build this engine for yourself, you should begin by checking the code out from SVN. There will be a folder called "docs" which contains more informations on building the project. It is no longer as difficult as in earlier times.

As of now, the program (still) only builds on Windows, using Visual Studio 2008 Express Edition (which may be not be "free as in free speech", but at least "free as in free beer"). I strongly suggest to try and track down an ISO image of this compiler, as it contains almost everything you need, and this version also does not force you to register with Microsoft. (Plus, after conversion to Visual Studio 2010, you can't open it with the older version any more.)

Frequently Asked Questions (FAQs)

Looks nice! So, what's up next?

I have finally reached a point where I consider NIF files - including animations - to be working reasonably well, and can start implementing game-specific things. My next goal is to start messing around with data files - esm/esp files and also bsa files.

Ports to other platforms are on indefinite hold.

I want to help! What can I do?

Help is always appreciated. Setting up a build environment is no longer a total mess. Look here for current instructions.

Links

Bethsoft seems to no longer maintain an official Morrowind web site, but there are still official forums.

The OpenMW web site. Currently the most active project aiming to write an Open Source Morrowind engine. I am going to support them very soon.



Project hosted by
Get The Crystal Scrolls at SourceForge.net. Fast, secure and Free Open Source software downloads