Author Archive

Windows installer package for YoFrankie is available for testing: http://crystalspace3d.org/downloads/YoFrankie/YoFrankie.msi

The Linux packages have been updated since the last post. Currently the latest version is available through automatic downloading: go to one of the URLs listed below and follow the instructions on screen. This will download all required packages etc. onto your system and has the added advantage that the program can be kept up-to-date automatically as well – i.e. when a change is made, either to the game or CrystalSpace, the changed component is downloaded automatically (and only that) and used. (Note x86_64 users: you need a very recent version of 0install, 0.35 or newer, to run the package. That means you may have to install that manually on some distros.)

Available variants of the Linux packages:

Comments 117 Comments »

You can now test the Linux (well, for Intel machines) packages for the “CrystalSpace Edition” of YoFrankie. There are basically two ways to obtain it:

  • Automatic downloading: go to http://crystalspace3d.org/downloads/YoFrankie/YoFrankie.xml and follow the instructions on screen. This will download all required packages etc. onto your system and has the added advantage that the program can be kept up-to-date automatically as well – i.e. when a change is made, either to the game or CrystalSpace, the changed component is downloaded automatically (and only that) and used. (Note x86_64 users: you need a very recent version of 0install, 0.35 or newer, to run the package. That means you may have to install that manually on some distros.)
  • One big package: download http://crystalspace3d.org/downloads/YoFrankie/YoFrankie_run.sh, set it to executable and run it. This is also the file that will go onto the DVD.

Read the rest of this entry »

Comments 137 Comments »

If you want to help Apricot and are not afraid of Crystal Space, C++ code, and in particular Crystal Space’s C++ code – take a look at the Development page, I slightly expanded the Crystal Space section.

Comments 11 Comments »

Lighting things is pretty well covered in Crystal Space* right now; multiple lights can be rendered in one pass, and materials can have the usual assortment of properties such as normal maps, specularity maps etc. giving shiny visuals. However, for a truly convincing environment you also need shadows.

Crystal Space actually supported stencil shadows for a while, but they’re not with out issues: the algorithm inherently can’t support any transparent textures, and extra care must be taken by the artists to produce “closed” models, otherwise the shadows will mess up. Also, the Crystal Space implementation has some issues: they need some effort to set up and animated meshes are not supported.

Thus I implemented shadow map support. Without going into too much technical details, they can support binary transparency (aka alpha test), don’t need special care for the models (just throw anything at them and it’ll look as it should), and due simpler implementation, they work on animated meshes in Crystal Space. Within the render manager framework they can easily be utilized by either using a stock render manager with shadow support or some lines of code in custom render managers.

Now some screenshots on how they look in that well-known small test level:

Shadows test, distant
Shadows test, from a distance

Shadows test, close-up Shadows test, close-up Shadows test, close-up
Some close-ups

Shadows also work on somewhat larger levels:

Shadows on large WIP level
(Ignore the missing textures etc. Focus on the shadows 😉

Some implementation details: Parallel-Split Shadow Maps on top of a plain normal shadow mapping. (You can see the shadow maps displayed for debugging purposes in the lower left corner of the shots.) The”soft” shadows you see are actually provided by the NVidia hardware – so real soft shadows is still something left to be done.

* Well, render manager branch.

Comments 30 Comments »

Here a few words what I’ve been doing (less) recently. In the general, I worked on the render manager, and more specifically, I did some work on the postprocessing system.

Using post processing is quite simple, even for Crystal Space. In the implementation of a render manager, you need some boilerplate to declare and setup the manager:

// A class member for the manager
CS::RenderManager::PostEffectManager postEffects;
// Initialization
postEffects.Initialize (objectReg);

That’s it, you’re ready to add post processing effects.
(Note: While I’m talking about setting up post processing effects from code throughout this article, I’m aware that for practical purposes there should be a way to set things up from some sort of configuration file. Be patient.)

Now a simple example for postprocessing. But even before that, as a simple reminder, the “baseline” image without effects:

crystal000.png
This is just a shot from the miniscule graphics prototype level shown before, nothing new here.

Read the rest of this entry »

Comments 19 Comments »