OpenTasks/Engine/Z Engine

From ScummVM :: Wiki
Jump to navigation Jump to search
Closed Task
Task Name Implement Z Engine
Technical Contact(s) Filippos Karapetis, Eugene Sandulenko
Subsystem Engine
Status GsOC 2013 (RichieSams ), Done and Merged


Using the existing engine available from, write an engine implementation for ScummVM. This engine will have to support Zork Nemesis and Zork Grand Inquisitor.

The Task:

  • Integrate the already existing C engine into ScummVM
  • Objectify the various subsystems of the engine and convert the existing code from C to C++
  • Rewrite and simplify the engine's resource manager to something similar used by the MADE engine for Return to Zork
  • Refactor the resource manager to avoid using configuration files for each game
  • Remove direct usage of SDL and file access and convert each SDL and file access call to use our OSystem infrastructure instead
  • Replace custom MList linked list structure used in the engine with ScummVM's own List class
  • Further refactoring of the engine
  • Adapt our movie code to use the specialized AVI audio PCM compression used in the engine (most of which is already done)

The Benefits:

  • Integrating Z-Engine in ScummVM will allow Zork Nemesis and Zork Grand Inquisitor to be playable on a variety of platforms without fussing with their configuration files.
  • Z-Engine will also benefit all the enhancement proposed by ScummVM.
  • Both games are quite popular, and will be a very nice addition to the games that we support. Also, they'll complement the already supported Return to Zork game, and we'll then support all the graphical point'n'click Zork adventure games

Required Skills:

  • Good C++ skills.
  • Good knowledge of ScummVM coding conventions and portability guidelines (could be learned in less than a week)
  • Engine internals could be studied quickly.