IRE - Current Status
IT-HE Roleplaying Game Engine
The progress log is available here: WORKLOG
Current Version is 0.93 (8th Jan 2006)
Index of versions, in ascending order:
Features in Version 0.10 (11th May 1998)
- System uses .RAR archives in a similar way to DOOM's WAD files.
- Supports objects, tiles and roof objects as the level building blocks.
- Runs in 640x480x15bpp using DJGPP compiler.
- World Editor shares a lot of code with the Game Runner.
- Loose video driver support allows for LFB and BANKED video modes.
- Native-binary script support using DLX
- Graphical console IO support.
- Animating objects support.
- Sound and music support using MIGMOD 2.10.3.01, a bizarre hack of MikMod.
- All hard-wired user control removed and replaced with VRM scripts.
- Objects can be picked up and dropped.
- All objects stored in a huge linked list, which needs kludges.
The designer must manually change the z-order of the objects using the editor.
This approach is only dropped with 0.04 in favour of object stacks.
- Party support added.
- BAD BUG first detected, patched away using a nasty hack.
- User documentation written from scratch.
- Supports system boot logger (bootlog.txt) which can be used to diagnose problems.
Features added in Version 0.20 (22nd May 1998)
- Support for containers added to the game runner (but not the editor).
- Fast translucency support added (quality compromised).
- Map format changes, 0.10 maps are no longer supported. A converter is promised but never delivered..
- Support for containers within containers is added.
- Game runner has a new mode added for editing containers.
- Full save and load support is added to the system.
- Automatic Z-order correction added to the editor and the script processor.
- Roof support, using trigger spots to control the roof.
Features added in sub-release 0.28 (15th June 1998)
- Roof support is re-written to be automatic, although allowing trigger spots for windows and suchlike.
- Support added for death and destruction, you can now kill and smash things.
This is handled automatically by the system.
- Player can't pick up things that are too heavy anymore.
- Fixed bugs for when the whole party is dead.
- Overlay support allows objects to be both above and below another object.
For example, the player sits on the chair: they are above the chair, but the back of the chair is still drawn above them.
- If a container is destroyed, the contents spill out.
- Support for new VRM callbacks, allowing control over the death and pain administration in the engine.
- Translucency is now done properly (speed compromise instead of quality).
- VRM callback for when the whole party is dead added.
Features added in Version 0.30 (5th September 1998)
- Weapons can be un-wielded
- Bugfix: Multiple RARfiles can be added now.
- Added support for automatically-executed config file '!autorun.ini' to be placed in .RARfiles.
- Fixed problems in translucency code.
- Designed and implemented lighting engine.
- Coloured lighting support removed for reasons of speed.
- Added support for 16bpp video driver.
- Fixed problem with Cirrus Logic video cards.
- Many speed optimisations (at the expense of memory).
- Changed video mode set code to use a better, tidier driver-based system.
- Switched sound code to use MIDAS 0.7 (hacked to support file offsets).
- The BAD BUG reappears and is once again vanquished by the nasty hack.
(N.B. The BAD BUG is DJGPP-specific, and it is apparently 'normal' behaviour when dealing with large, complex interrupt handlers.
The Realmode Control Block stack must be made larger than normal in these cases, and I've since found a less hacky way to do this).
- Many new editing features added to the editor.
- Wrote a program called 'build' to find and compile modified scripts in the resources tree.
Features added in Version 0.40 (19th January 1999)
- Re-wrote the world manager to use a matrix of linked lists instead of one master list.
- This will speed up the program later on.
- VRM code must not touch the x or y coordinates of objects: they must use move_object to do this.
- Conversation support is added.
- Darksources now work as well as lightsources.
- The demo world is different and much more interactive.
- PCX loaders will not truncate to 400 pixels anymore.
- Large, solid objects can have parts that are not solid.
- WAV loader does not play the copyright message in some WAV files anymore.
- Switched to DJGPP 2.02, you'll need gcc280 or above to compile VRMS now.
- New keyboard handling code.
- Source code should be more portable.
- Unless specified otherwise, sound effects play at random pitch, like Doom does.
- Re-wrote most of the code in object.cc to use generalised linked list functions.
- Engine does not automatically check for injuries anymore, you must call check_hurt after causing damage.
- Word-wrapping works (most of the time), and you can use | in strings to make a carriage-return.
Features added in Version 0.41 (27th March 1999)
- Linux Support for the main game engine
- VRM engine changed from 'dlx' to 'seer', now VRMs are cross-platform
- VRM code must use functions set_flag and get_flag instead of object->flags.whatever
- Graphical resource editor, 'scripter'
- Fixed bug where things become inaccessible if dropped under doors
- Fixed bug where containers didn't work properly
- Fixed bugs in 16bpp translucency
Features added in Version 0.50 (27th June 1999)
- BeOS and Win32 support for the main game engine
- Powerful new conversation engine, uses HTML-ish language
- Much, much faster.
- Coloured font support :-)
- Rooftops are back and use tiles instead of objects this time.
- Support for buying, selling, stealing
- Objects can be grouped together, for example 100 gold coins
- World consistency management
- Player moves first, now mirrors etc are possible
- Linux and BeOS versions are not killed by their own children if the CPU is too slow
- No more undead taxmen.
- You can't talk to, annoy or otherwise reanimate dead bodies anymore.
- DOS setup program now autodetects best video mode.
- Demo world much bigger now..
Features added in Version 0.60 (27th Dec 1999)
- Detailed demo environment, with many Easter Eggs for you to discover.
- Linux and BeOS support for the editors
- Improved AI system with A-Star routefinding
- Advanced character tasking and scheduling
- Characters can now be male or female
- Balanced weight and health, improved status area
- Partial-invisibity (invisibility potion)
- Day and night
- Object animation can be random and animations can be spliced together
- Water that you can throw objects into and boats to cross it with
- Animating and scrolling map tiles (only sprites could animate before)
- Experimental support for sounds fading with distance
- PCX loader bugfixes (works with small images now)
- JPEG support (intended for backdrop images etc)
- Major overhaul of combat system, including guns and other ranged weapons
- Multicoloured font support
- Karma support
- Better fading
- User-definable calendar
- New black-and-white SVGA and MCGA video drivers for Riva-based cards in the DOS version
- A bank, featuring cashiers, ATMs, cashcards and the ability to deposit money
- More stable and many other bugfixes
Features added in Version 0.65 (21st Aug 2000)
- Different graphics library, should cure Windows 95 problems
- BeOS support vastly improved, also fbcon support for Linux
- Experimental support for static lighting
- New script engine being phased in to replace SEER
- Lots of bugfixes, overruns in lighting code now fixed
- Conversation system improved (characters remember different things per-player)
- SEER crashing bugs fixed
Features added in Version 0.68 (19th Apr 2001)
- Switched to BSD license, moved to SourceForge.
- Lots of enhancements and bugfixes in the PE script language.
- Support for Tile objects in PEscript.
- When a PEscript crashes, a disassembly of the script is written to the logfile.
- Support for arrays of objects.
- Very crude support for AND and OR
- Object functions are now handled by PE scripts, instead of SEER.
Currently a lot of these call a SEER function anyway, but not for long.
- Enhancements to the conversation script. New tokens, and
the ability to censor swear words from the conversations if desired. :-)
- Symbolic links for NPCs.
- Support for objects bigger than 128 pixels wide.
- You can set the size of the game window.
- Areas you should not be able to see are now blanked like Ultima 6.
This is incomplete and needs further work.
- Fixed bugs in keyboard handling.
- The latest version of Allegro is used so BeOS version is a lot better.
- Faster world loading
- Improved text console handling
Features added in Version 0.70 (23rd Dec 2001)
- Creature eggs.
- Multiple map support. Either by walking off the edge of the world, or
using PEscript, e.g. for stairs and teleporters. Basement added to demo
- At last, a complete absence of SEER, mainly due to gcc 3.0 not liking it.
This has meant porting most of the demo scripts.
- Decorative Object support. This a really something of a kludge to save
memory. Decoratives are used for objects such as trees which are all
identical. Decoratives are all copies of the same object, which can save
heaps of memory for a forest or similar. The demo does not have any.
- Data tables in the resource.txt file. They are basically lookup tables
which can contain strings or integers. You can access them from PEscript
with the get_data command. At present they are read-only.
The 'sitting down on a chair' code in the demo uses this.
- The map editor can now animate map tiles. This is particularly useful
for rivers and the sea, where you need to be able to see the water flow to
edit it properly.
- New converation commands [append=""] and [random_page=""]
- Windows version now built as a console application, so you can see what
it is doing as it starts up.
- Savegame code revamped. Savegames are now stored in the user's home
directory under Unix and co, and in the game's working directory under
Windows and DOS.
- Area blanking is now much improved, corners are dealt with correctly.
- Allegro upgraded to 4.00
- Plus the usual assortment number of bug fixes.
Features added in Version 0.80 (28th Sep 2002)
- Text-based world format
- Panning still image support (Like the Doom/Heretic endings)
- New, much improved pathfinder by Marytn Smart, including path costs and long-range pathfinding
- Various world-editor enhancements
- Sprite caching for faster startup (after first run)
- Script engine should now be portable to MIPS etc, but not tested
- Special effects projection (for spells etc)
- Cache, savegames etc. are now stored in .ire in the user's home under Linux
- String comparisons in the script language can now use the * wildcard
- Room blanking improvements
- Mouse Support
- Ogg Vorbis music streaming
- Generalised Radius triggers
- NPCs can be horrified by things (e.g. a corpse, contrabands)
- Tiles can cause a script call, e.g. for poisonous swamps
- More intelligent crash dumps for script errors
- Win32 version now nearly as fast as in Linux
- Conversation threads now go away when viewed by default (use [always] to stop this)
- ..and many other improvements!
Features added in Version 0.81 (29th Dec 2002)
- Under Linux, IRE can now be installed to /usr/local/bin and
/usr/share/games/ire/ in accordance with the Linux Filesystem standards.
- The Linux version has a crude installer program
- A new script function, 'initproc' has been added which is called before
the game actually begins and can be used to provide a starting menu.
- For those of you who don't like FMOD, there is now an alternative.
You can also use ALOGG 1.30 which provides smooth multi-threaded playback
using the Allegro sound engine.
- The Linux version has a crude installer program
- A number of fixes to the savegame support
- Set_local didn't always work
- Room blanking and the cursor now get on together
- Fixed a crashing bug in the editor
- Linux makefile is much easier to tweak
- Remove the start and stop music commands
- Random number generator works more reliably
- Fixed that nasty visual glitch in map corners
- Create,Take etc now accept quoted object names
- Rewritten volume sliders
- ..and more.
Features added in Version 0.90 (31st Aug 2003)
- edit-area in the editor now outputs the size directives in the same order as they are in the resource file (oops!)
- 'Play_Music' command now does nothing if it is trying to play the same song that's already playing. It should also stop the current song so you won't get two songs playing at once under Alogg anymore.
- The game and editor are now frame-locked. While you wouldn't normally notice it in Reign of the Just, on empty worlds the game and editor run way too fast on modern hardware (or even older hardware!). The problem is most apparent when playing with the mouse because the keyboard has its own internal limiters. Both game and world editor are by default locked so that each turn will always take at least 2/35 of a second. (This rate is adjustable with -framerate). It does not slow down the game any further if your machine is already struggling.
- Fixed a bug involving object arrays (CHANGE wouldn't work)
- Added two new effects, fx_poly and fx_rect, which draw a polygon and a rectangle respectively.
- Editor doesn't compile scripts fully anymore, this helps when using memory checker tools like 'Fortify' and should speed the editor startup in general.
- Editor now uses a list of statistics for editing objects. Not quite as pretty but far more maintainable.
- Objects now have a 'Quantity Change' function, which is called when an object's quantity has been modified. You can use this for money, to show different sprites depending on how many coins it is. There is also an 'update_quantity' command in the script for when you change the quantity by hand.
- Editor now saves user1 and user2 strings for objects
- Added support for function calls from an animation seq. 'me' contains the object associated with the function.
- Special FX functions are now based around 'me' instead of 'current'. For now, both work but this may change.
- The IRE censorware engine does not now censor embedded swearwords, such as 'scrap'. Hopefully it will still censor all genuine cases.
- Fixed a number of problems involving pathfinding for large, rectangular objects. They now turn around corners and do various things to try and manuver in the given space.
- Added a new Status request to display zoomed maps.
- Added key 'KEY_PLUS_PAD' to the script language. Oops.
- Zoomed maps can now show rooftops, which will be more suitable for satellite views, peer spells etc.
- Fixed a bug that caused Allegro to crash during shutdown under some very specific and odd circumstances. It should also work in DOS now.
- User1 and User2 are now preserved when using 'change'
- Code now compiles cleanly with -Wall, a few ambiguities should now be resolved correctly
- Fixed some glitches involving special effects. ALPHA_SOLID now sets the transparency level for sprites to 255 (solid).
- Added new command fx_animsprite, which, like fx_sprite, projects a sprite onto the screen, but with animation. It is transparency-aware.
- show_roof (in the script) now works again, but differently. It now overrides the game's decision. Instead of true and false, it is now a tri-state. Set to 1, the roof is always shown, even when the player is beneath it. Set to -1, the roof is never show. Set to 0, the game decides whether the roof should be drawn, as usual. It is reset to 0 after each turn.
- Added SHL/SHR (or << >>) operators to the script language. Does a bit-shift.
- Fixed problem where objects with 'oninit' function didn't work properly if created in-game. (The 'current' variable wasn't being set.. nasty!)
- Savegames now store global variables, both integers and also pointers to objects.
- Fixed an obscure bug involving structures, which may have been brought to prominence by the savegame changes
- The '-game' option now specifies a path, where the game data will be found. In the data directory, the gamedata.ini file contains the configuration for that project
- Fixed a last-minute bug with savegames during testing
- ..and more.
Features added in Version 0.91 (31st May 2004)
- Improvements to frame-locking, especially with mouse control
- Added new keywords to the script language, including some basic string editing, copy_speech (like copy_schedule, but for conversations), and access to the master darkness fader
- More pathfinder fixes
- It is now possible to prevent the map from being shown if the player is standing under certain kinds of roof tile. This is for the old trick where you gut the mountains and stick the castle dungeons inside them etc.
- Roof tiles that darken the screen can now produce varying amounts of darkness (e.g. cave entrances). Light spells now work inside caves.
- Fixed problem where the roof from a different map got stuck on the map if you died after moving between maps.
- Many optimisations for eggs, chairs and other objects that are dormant until triggered or sat upon.
- Editor displays radius for trigger objects
- Editor now handles invalid objects intelligently again and asks the user what to do
- If you stand on a bridge over some swamp (or other Active Tiles) you don't get poisoned by the swamp anymore.
- PNG image file support (from Michael Lefebvre)
- Added new 'NO_SCHEDULE' flag that stops NPCs obeying the scheduler temporarily, handy for plot events.
- The map resizer utility is back again, and now features the ability to specify negative block offsets (for moving chunks around the map)
- SDL audio support for Linux/UNIX (doesn't work in Windows, though)
- Triggers should now work correctly on large objects.
- Proper GNU configure script (from Michael Lefebvre)
- Fixed bug where blood (and similar items) would block doorways
- ..and more.
Fixes in Version 0.92 (25th Jun 2004)
- Fixed bug moving between maps where items would be distributed wrongly and you would end up with a cow in your pocket or some other nonsense
- Fixed similar bug where conversation flags and other data would not be stored and retrieved properly.
- Fixed bug in conversation involving conditional links (Ya'Do in Reign of the Just)
Fixes in Version 0.93 (8th Jan 2006)
- Switched to Allegro 4.2.0
- Fixed several serious bugs when loading maps, where the old map was not freed properly.
This would cause crashes and general mayhem when changing maps.
This should also fix the bug where the game would crash out with the message 'could not find xxx' when restarting or changing maps.
- Fixed a problem where TransferObject was not preserving the VM state properly.
This would cause very interesting things to happen, especially when dropping objects while standing in the doorway (the door would disappear!)
- Fixed a crash when creating objects in an OnInit script.
- Fixed bug where jaguars and other large characters could not cross large bridges over water.
- Fixed bug where jaguars could walk through trees.
- You can now use '-window' or '-windowed' to make the game start in a window, rather than the unintuitive '-vx'.
- There should also be an improvement in performance when the game is idling.. it should now yield more CPU to the OS.
- Added parameter 'startingtag' to allow the player to start at a given tag instead of the default player location. Mostly for map development.
- Editor now supports tile cycling on roof tiles
- Added 'alignment' attribute to characters, where 0 is neutral, 1 or more is good and less than 0 is evil.
Reign of the Just uses this (but not in the released demo)
- You can now declare script constants in .ini files.
Syntax is: -set CONSTNAME = 1
- Optimisations in the script compiler
- Added a new command to the conversation system, 'is_npc_carrying' which behaves like 'is_carrying' except that it looks for the given object inside the NPC you're talking to, rather than the player.
- Added the ability to set the colour used in room blanking.
- Editor now has a 'roof display' mode on the world map, which shows all rooftops in red. Also added new drawing modes to paint rooftops in the world map.
- Rewrote the party 'death management'.
Previously the game would continue if the hero died, using the other party members until the entire party was dead. Now the game stops immediately if the player dies.
Note that the game still has the original behaviour by default:
Add the line '-u6party' or '-u6partymode' to the gamedata.ini file to enable the new behaviour.
Back to the INDEX