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
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
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.
This section is still horribly outdated. Updates will come, but I don't quite know when.
The Crystal Scrolls makes use of the following Open Source projects,
without which none of this work would be possible:
- The Crystal Space
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
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
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
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
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
may be interested in are
- Screenshots: CTRL-D, followed by F11. If you have too much
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
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
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
Help is always appreciated. Setting up a build environment is no longer a total mess. Look here for current instructions.
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