ZVision
Jump to navigation
Jump to search
ZVision | ||
---|---|---|
Engine developer | RichieSams | |
Companies that used it | Activision | |
Games that use it | Zork Nemesis, Zork: Grand Inquisitor | |
Date added to ScummVM | 2013-10-17 | |
First release containing it | N/A |
About
The ZVision was the engine used by Activision in Zork Nemesis and Zork: Grand Inquisitor.
This engine was added by the GSoC student RichieSams to ScummVM as part of the GSoC 2013.
The ScummVM engine uses Marisa Chan's ZVision re-implementation, which is available from http://github.com/Marisa-Chan/Zengine, as a reference.
It should be noted that from a technical viewpoint, this engine has nothing in common with the MADE engine used for Return to Zork. It should also not be confused with the Z-machine which is the original Virtual Machine used for the original Zork text adventure games.
Status
Both Zork: Nemesis and Zork: Grand Inquisitor are completable, with minor bugs and very small glitches
Immediate TODO's
- Add a dirty rectangling system for RenderManager AlphaEntries so we're not rendering them to the backbuffer every frame
- Add graceful failure for when .str isn't parsed correctly.
- Get Courier Prime and FreeSerif added to the packaged fonts, then fall back on them when fonts can't be found
List of TODO's for ZVision to be playable
ZGI specific TODO's
- Check for the difference between the CD version of ZGI and the DVD version
- Potentially higher resolution (Window and/or videos)
- Potentially different video file format
- Fix display of points - they're not currently shown in death screens
- Fix the transparency of the Magic Viewer in the inventory screen
- Allow the inventory to be accessed in the teleportation station screens (to get your map)
Nemesis specific TODO's
- Allow the screen to be rotated when the mouse cursor is at the left/right black screen bands
Other TODO's
- Make sure all image rendering is endian safe
- Evaluate all in-engine warnings/debug messages and perhaps move them to higher debug channels (Or ZVision specific debug channels)
- Clean out unused member functions from the Console class (See console.h)
- Convert pointer initializers to nullptr instead of 0
- Add 'true' UTF-16 support for non-english versions of the game. (See StringManager)