The Castle — additional notes

This page collects various additional notes about running my game "The Castle". If all you want is just to run the game, then don't read this page. You don't need this. This page explains some details that may be needed for advanced users and developers to understand how the game works, but normal users will not find here anything useful.


1. Detailed requirements

In short: good graphics card, with good OpenGL drivers installed. In case of doubt, be sure to install newest drivers from your graphics card manufacturer.

Also you should have enough free memory available when running the game. As of version 0.6.3, game can take up to 280 MB on GeForce with Linux drivers from But this may depend on various factors, including your OpenGL implementation. If the game seems to drain your system of all the memory (which will most likely be observed as sudden slowdown in the middle of "Loading creatures" sequence, as this is the main memory-eater) you can

  • Try closing all other programs before running the game (although a decent OS should send them to swap anyway...)
  • Lower the setting "Creature animation smoothness" in "Video options".

Library requirements:

  • OpenGL
  • Libpng, Zlib (under Windows appropriate DLL files are already included in program's archive, so you don't have to do anything)
  • OpenAL and VorbisFile libraries are used to play sound and load OggVorbis sounds (under Windows appropriate DLL files are already included in program's archive, so you don't have to do anything)

2. Window size

The game prefers to be run in resolution 800x600. If possible, it will resize your screen to this. If you don't want to change your screen resolution, you can disable it from the main menu: "Video options -> Allow screen settings change on startup".

You can use standard options understood by our OpenGL programs like --geometry and --fullscreen to force windowed or fullscreen mode with desired size. For example run like this:

castle --geometry 800x600

3. Sound notes

OpenAL is used to play sounds. See instructions about installing OpenAL and command-line options common for my programs using OpenAL.

For best effect, be sure to try all available devices in "Sound options" — the default device doesn't always sound the best. This is true for both Unixes and Windows. E.g. a standard sound card (without real 3d surround support) on Windows may sound better with "Generic Software" device.

If the game performance suffers when the sound is on, or sound quality suffers, or there is sound latency, then you should probably stop any other programs that play some music.

4. Log

Look at log output. Here we describe where log output is. When sending bug reports, it may be useful to attach generated log to your report — it will show some things about your OpenGL, OpenAL, and what happened during the game.

5. Other command-line options

See some general notes about command-line options understood by all my programs. In particular, castle --help will show full list of all available command-line options.

6. Details about items in the game

You can pick items (just walk on them), browse your items (keys: i, [, ]), drop (key: r), equip and use (key: enter). When you have no weapon equipped, then new picked weapon will be automatically equipped. Unequipping happens automatically on drop.

Items are "stackable", i.e. when you own two or more items of the same kind, they are displayed like one item with quantity N. Picking and dropping handle this appropriately (when dropping you can drop only part of owned items).

You can use the "e" key ("Interact") when looking at item lying on the level, this tells you the name and quantity of visible object without picking it up. (of course, if object is too far, you will not be able to tell it exactly).

Dropping items may seem like a useless feature for now — there is no limit on the amount of items you can carry, right now. Dropping items will be more usefull in the the future, when the game will get more RPG gameplay elements. But even now dropping items may have a clever use: since collision detection is implemented correctly, you can drop items to block some closing doors. Beware that in the future some creatures may be able to pick up your items and some doors may simply squish your precious items...

7. Version numbers

For PGD competition (that ended on 2006-05), version numbers were 0.y.z, where "y" was a stage of competition. So e.g. "version 0.2.0" was what I submitted at the end of stage 2 of competition. "z" was a release number. The last version uploaded for PGD competition was 0.6.1.

Now, after PGD competition ended, I continue development using my normal versioning scheme.

8. Debug menu, debug options

If you want to modify game content heavily, I advice to get familiar with our debug menu. The debug menu contains many useful commands that will make your life much easier. By default, debug menu is activated by backquote key (the one with tilde, the same key used to bring console in many FPS games).

Using the debug menu you can turn on some special features useful for designers/debugging (e.g. to see bounding volumes of objects) or turn off normal game features that may be annoying when designing (e.g. stop time for creatures).

You can also request a reload of particular creature/item/level VRML/XML etc. files. This is extremely useful when you changed some data file and you would like to quickly reload just this one file, to see how things work now — without exiting the game.

There are also some command-line debug options (but not too much — it's always more flexible to have things available at runtime instead of only at the start). Run the program with --help to get their list.