Download.it search icon
Advertisement

Toolkit enabling users to compile logic, design visuals, and script new content for the game's RPG engine

Toolkit enabling users to compile logic, design visuals, and script new content for the game's RPG engine

Vote: (14 votes)

Developer: Sinister Systems

Created: 2004-06-28

MD5: e48e6d39991ef4f8dee4e7cf40de38dd

Size: 521.6 KB

Vote

(14 votes)

Developer

Sinister Systems

Created

2004-06-28

MD5

e48e6d39991ef4f8dee4e7cf40de38dd

Size

521.6 KB

This is the Developer's Kit for RPG Mistmare from Sinister Systems, read below for more information on this file.

==========================================

Mistmare Developer's Kit v1.0 (March 2004)

==========================================

INSTALLATION

Simply unzip all the files in this archive to your Mistmare folder.

It will create a subfolder "Developer" and create a user called "Developer" (in

Users/Developer).

DEVELOPMENT

Notes:

- this is by no means a comprehensive tutorial or reference

- post questions to forum: "http://mistmare.arxeltribe.com/ib-cgi/ikonboard.cgi"

- "help/objects/_index.html" explains database objects in more detail

- there's also a file called "Game Mechanics - RPG standards.rtf" in the /help.

First, some basics - let's run the demo project:

- optionally, open the "Mistmare/Users/Developer/server.hxm" file to set the

location you want to start on (you can leave it at its default, and there are

only two locations in the demo project)

- compile the logical databases - run "Mistmare/Developer/compile.cmd" (this

creates the mistmare.hxv/.hxs files in the Developer/Database directory)

* those files contain all the game logic (mistmare.hxv) and the language

strings (mistmare.hxs) and are compiled from the files in the Object folder

(we call this the *logical* database, and this is where 99% of game

programming is)

- run the game as a developer by "Run Mistmare (Developer's Edition).bat"

* when a game is ran, it will create two additional files (server.hxv and

client.hxv) in the database directory - this is the second - or *visual* -

database, which contains all visual objects (the "visual/aural/...

descriptions" of logical objects) and is compiled from files in the

Database/Server and Database/Client folders

The distinction between the logical database (the Object folder) and the visual

database (the) can be best illustrated with an example:

- a location (interior or outdoors) in the game has two separate objects: a

logical object and a visual object

- let's say our location is LOC_PlaceWhereAllBegins

- the logical object for LOC_PlaceWhereAllBegins is stored inside the

Object/Logic/locations.hxm file, and it contains all the logical properties

of the location, such as the exits to other logical locations, the available

props on the location, the events that trigger when you enter a location,

etc.

- the visual object for LOC_PlaceWhereAllBegins stored in the

Database/Server/Location/LOC_PlaceWhereAllBegins.hxm file, it contains the

visual description of the location - which world file to load, where the

SPOTS (coordinates) for the present exits/props/characters are, and all the

SCRIPTS which the location is using

- it is important to know that SCRIPTS are used ONLY when something cannot be

implemented using logical object only; we do not disclose SCRIPT details in

this release, as 99% of stuff in the Mistmare engine can be programmed ONLY

USING LOGICAL OBJECTS!

Programming Mistmare is basically an interaction-driven approach. You will

create logical objects for locations, exits, characters, items, props, etc. Each

of those may be interactive (fight, use, enter, or any custom interaction), and

each interaction with the environment might start EVENTS, which may set some

TRIGGERS (boolean variables), perhaps based on some CONDITION.

Programming-wise, the EVENTS, TRIGGERS and CONDITIONS are also logical objects

(therefore contained in the Database/Object folder), just like an item or a

location is, and can be used and reused to generate the game logic. In most

cases, there is no classic "procedural programming" in Mistmare. It is simply a

collection of (possibly interactive) objects, which influence other objects thru

the logic and state of events, conditions, and triggers.

It is really simpler than it sounds - just look at the game logic of the demo

project.

So, to build a game from scratch:

- first, visualize the situation, write it down on a paper or something (list

the logical objects that you will need)

- then, go to the logical database - "Mistmare/Developer/Objects/Logic" and open

the files that you will need

- open the reference (help) file: "Mistmare/Developer/Help/objects.html" to see

the templates on which the logical objects are based, and therefore all the

properties of object

- start coding the logical stuff - who is present where, which props have

interactions, which events get triggeded by interactions, what are the

conditions...

- it is best to start with (logical) locations and connect them with (logical)

exits

- populate the (logical) locations with (logical) friends, neutrals and enemies

- give them (logical) dialogues according to the storyline you imagined

- attach (logical) conditions and events to the (logical) dialogues, props and

NPCs

- for a quick reference, just open the Tutorial episode and see how it's done

- after the logic work is done, you have to create visual counterparts of

logical objects if you want them to appear on the screen

- these are contained in files in "Mistmare/Developer/Database/Server"

folder

- there is one file for each visual object; the file name must match the

name of its logical counterpart

- (for example, look in your props.hxm to find the logical PRP_Keybox -

then look for the file PRP_Keybox.hxm inside

"Mistmare/Developer/Database/Server" and edit its visual properties

(icon, 3D model,...))

- after all your logical objects that need visual counterparts (like characters,

props, locations) do have their visual counterparts, you put them into the

world onto certain SPOTS (coordinates, which are a property of the location

VISUAL object) - how this is done, see below in the "HOW TO SET SPOTS FOR

OBJECTS INSIDE A LOCATION" section

- compile the logical databases (compile.cmd)

- run the game - this will automatically re-compile the visual databases

HOW TO SET SPOTS FOR OBJECTS INSIDE A LOCATION

(i.e. the "visual database editor")

- we have a simple, and very crude editor to place objects in locations (and it

was actually used to populate all locations in Mistmare :)

- when you enter a location, press "v", this puts you in "wizard" mode - you

can now freely move the camera in the game level using the cursor keys

- inside wizard mode, you can bring up the editor commands by pressing "e"

(and turn it off by pressing "e" again)

- if you want to change something in the visual location object, bring up the

editor commands and select *edit* at the bottom of the editor commands

- if you want to edit an existing spot for an object

- select *spots* from the bottom menu

- select the object and its spot name (usually "default"), the

object will

become yellow which means it is selected

- if you want to add a new spot for an object

- toggle the editor command pane off by pressing "e"

- create a spot/placeholder anywhere in the world geometry by simply

left-clicking

- toggle the editor command pane on by pressing "e"

- click on prop/character/... on the bottom and select the new

object you'd

like to place there

- press "e" to exit the editor commands pane

- if you want to move an existing spot/object around, you first select it

(from the spots) and then move it around with

"num5" - switch to move mode

"num9" - switch to rotate mode

"num1" - move down / rotate x

"num7" - move up / rotate x

"num4" - move left / rotate z

"num6" - move right / rotate z

"num8" - move front / rotate y

"num2" - move back / rotate y (or something like it...)

"num-" - decrease step

"num+" - increase step

"~" - console mode (use the "showcolliders 1" command to see colliders in

the visual editor)

- when you are done, don't forget to click on "save" in the editor commands

pane ("e")

- the game will now generate a file in the

"Mistmare/Users/Developer/Work/Server" work/temp directory - this file

contains the updated location visual object for this edited location

- after you finish all the editing, you must move all the files from this

folder to the main "Mistmare/Developer/Database/Server/Location" folder (or

a subfolder)

NOTES:

- in the game, some strings in the user interface will show like DSCITM_... or

LOC_...

that's because logical objects should have a description inside strings.hxm

just open the strings.hxm file and add appropriate strings