Wednesday, February 27, 2013

Dagon Game Engine

I've been reading about a recently-released open-source adventure game engine called Dagon. (I found it by way of one of my favorite gaming sites,, which consistently highlights interesting content for game players and developers.) Dagon seems primarily suited for adventure games similar to Myst: the environment is presented from a first-person perspective, but there's no free-roaming allowed. You move between a number of set points in the environment, clicking on doors and corridors and such to indicate where you want to move to. Dagon presents the player with a 360-degree panorama at each location, and the player can use the mouse to look up, down, and around, just as in a conventional first-person game, but there's no 3d rendering involved. Instead, the developer prepares six 2d images for each location: one to represent the north-facing view, one to represent the east-facing view, and so on. The game engine stitches these together to provide the panoramic view that surrounds the player at each location.

Game scripting in Dagon is handled through Lua, and seems very straightforward and easy to learn. Lua scripts define all of your environmental hot spots (buttons, doors, collectible items, etc.) as well as the results of interacting with these hot spots (playing sounds, displaying messages). It looks like a developer can get up to speed fairly quickly with this engine. Once you have your art and you've designed your environmental interactions, assembling it all in Dagon looks to be an easy task.

Senscape has released an interactive teaser for their upcoming Dagon-based game, Asylum (warning: content may be unsuitable for children), and the teaser seems to serve both as a demo of Dagon's features as well as a tutorial for how to use Dagon. The Lua scripts and game assets are available in the download, and the scripts are commented with guidance information for developers hoping to learn their way around.

The art in the teaser appears to have been generated using professional 3d modelling tools, which prompts me to ask: if you've already modelled all of the game objects in 3d, why not just build the game using a 3d engine (such as Unity) and allow free 3d movement? I'm going to hazard a guess that one advantage is performance. Since the graphics are all 2d, the player doesn't need any fancy graphics cards to get the full benefit of the game graphics. I expect the engine would run on fairly low-end systems without suffering for it. As a side benefit, there's no reason the developer would need to use 3d modelling tools to produce art for Dagon. Any sort of 2d art would do, from vector art to retro-style 8-bit art to photos taken from actual real-world locations.

The engine appears to run under Windows, MacOS, and Linux, and I'm planning to give the Linux flavor a spin, but I'm not immediately sure I have a use for it. The game developer still needs to prepare quite a lot of art to fill out a game, since every location requires its own 360-degree panoramic view. My own art skills, both 2d and 3d, aren't fantastic, and this would present something of a hurdle for me. Also, most of my game ideas recently have been more RPG-oriented, and not point-and-click-adventure oriented. Still, it's good to know this engine is around in case inspiration strikes, and I congratulate Senscape on releasing the engine as open source, as well as porting the engine to Windows, the Mac, and Linux.