First, what is AGI?
AGI stands for Adventure Game Interpreter. You can find more information about AGI on the URL shown below...
http://en.wikipedia.org/wiki/Adventure_Game_Interpreter
To see an AGI intro, see the URL...
http://agidev.com/articles/a.php?id=5&page=1
At the moment, I'm still gathering information on how all these AGI stuff will help me develop an Adventure Engine suited for Irrlicht. If anyone has developed one or has information related to design and implementation, please post them below.
For a start, the following are just rough sketch of a design.
1) A logic file can be mapped to a scene file (.irr), though a mission file will have to be created and attached to the irr file.
2) Scene files are interconnected, they are entered when triggered and they can have exit points.
3) Each scene will have props that actors touch. A touchable prop will have a corresponding mission variable to it.
4) A conversation is defined within a scene. Each conversation is linked to one or more conversation. An actor is given a selection of what to say and the conversation is played according the choices the actor selects. Also a conversation can update variables as well.
That is all I know for now. Please add to the rough sketch and we will refine it later.
Thanks.
Adventure Game Interpreter (Engine)
Heh, I used to make games with AGI years ago. 2002-2003 perhaps? Actually that is how I got into programming in the first place. You might a few of my games in some places. They are really bad, though. It's been years but I should still remember how things worked with AGI. (Also with SCI, Sierra's newer interpreter. You might want to check that out too)
I think the logic file would work better using a script interpreter, rather than writing everything into .irr. Lua eg.
In AGI it worked like this:
Each room (one screen) could contain max of 16 (I think) objects and 255 variables. Actually less because some variables were used globally as well as objects. Player pointer was used globally. The scripting language basically allowed you to move objects, erase and add them, write messages on screen and assign values to variables and check if an object is within a region. Inventory was also managed by the engine, so you could use a simple drop(object) and get(object). Of course there were other smaller functions, I just cant remember them.
Each room could have 4 exits. Top, bottom, left and right. Also, calling something like newRoom(roomNum) could do the transfer. Upon starting the room script file, the game would check from which room the player came from, so you could position your player correctly.
If you have any questions, I'll see what I can remember.
I think the logic file would work better using a script interpreter, rather than writing everything into .irr. Lua eg.
In AGI it worked like this:
Each room (one screen) could contain max of 16 (I think) objects and 255 variables. Actually less because some variables were used globally as well as objects. Player pointer was used globally. The scripting language basically allowed you to move objects, erase and add them, write messages on screen and assign values to variables and check if an object is within a region. Inventory was also managed by the engine, so you could use a simple drop(object) and get(object). Of course there were other smaller functions, I just cant remember them.
Each room could have 4 exits. Top, bottom, left and right. Also, calling something like newRoom(roomNum) could do the transfer. Upon starting the room script file, the game would check from which room the player came from, so you could position your player correctly.
If you have any questions, I'll see what I can remember.
Thanks for the info, really appreciate that.
I did some research a while ago and one interesting item turned-up, it was about this tool named scummVM used by LucasArts, they used it to develop Grim Fandango which was a very good adventure puzzle game.
When you mentioned exits, I think you are just referring to a rectangular coordinate, once the actor enters an exit a new scene is loaded. A similar 3D world equivalent will have to be defined in order to implement an exit cube.
Anyway, I also figured a VM will have to be made, with a scripting language built-in as well. I just downloaded Squirrel Plus just for that.
I did some research a while ago and one interesting item turned-up, it was about this tool named scummVM used by LucasArts, they used it to develop Grim Fandango which was a very good adventure puzzle game.
When you mentioned exits, I think you are just referring to a rectangular coordinate, once the actor enters an exit a new scene is loaded. A similar 3D world equivalent will have to be defined in order to implement an exit cube.
Anyway, I also figured a VM will have to be made, with a scripting language built-in as well. I just downloaded Squirrel Plus just for that.

dlangdev, you should check out AGS. It's an 2d adventure game engine and editor written from scratch. It incorporates everything you need to make a game. Apart from picture editors and such of course.
If you were to write an adventure game engine for Irrlicht, I'd recommend to write an editor for it as well. Something that would include a scene/room editor, dialog editor, cut-scene editor and a character and inventory manager of some kind. All of these could be worked on as modules with a minimal functionality at first, and could then be further improved.
Each room would have a script attached to it, that would contain methods like OnRoomInit(parameters) and FirstTimePlayerEntersRoom .. and so on. Each object in the room would also have it's script, containing methods like MouseClicked etc.
If you're interested in developing such an project, I would be interested as well. Because I've always been a great adventure game fan and wanted to make and 3d adventure game similar to Gabriel Knight 3 and other games. I'm sure there are other people out there as well, who'd be interested in writing games like that.
If you were to write an adventure game engine for Irrlicht, I'd recommend to write an editor for it as well. Something that would include a scene/room editor, dialog editor, cut-scene editor and a character and inventory manager of some kind. All of these could be worked on as modules with a minimal functionality at first, and could then be further improved.
Each room would have a script attached to it, that would contain methods like OnRoomInit(parameters) and FirstTimePlayerEntersRoom .. and so on. Each object in the room would also have it's script, containing methods like MouseClicked etc.
If you're interested in developing such an project, I would be interested as well. Because I've always been a great adventure game fan and wanted to make and 3d adventure game similar to Gabriel Knight 3 and other games. I'm sure there are other people out there as well, who'd be interested in writing games like that.