Variations on that theme seem pretty common. Ultima Underworld's conversation system uses a stack-based VM. The original Jedi Knight game has a programming API and a compiler. Game assets are compiled from a C-like language at load-time. Various adventure games (both graphical and text-based) were written as bytecode programs that run in a VM.