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