Current time: 22.11.2024, 10:23 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Dialogue Master + The Stand Map Demo + ERM Dialogue Function
» Tools to help you write ERM and Story-Based maps
Author Message
Axonn Offline

Posts: 12
Post: #5

Hey. Salamandre, right? ::- ).

I'm going to answer you point by point. Some of my answer may become a bit too technical but as you said, this is the right place. At the same time, I'm laying out my ideas before you because it also helps me get a better understanding of what I am planning to do.

This will be long and detailed but if you read carefully you WILL understand. I am very explicit ::- ). I hope you will read all because I spent 1 hour writing this message for you, to make sure you ::- D. Well, not only for you, but anyway... I am extraordinarily busy but I am very dedicated to this project so here I am, writing a 1 hour message.

1. The ERM CodeGen (from now on abbreviated as ECG) will keep tracks of used variables and flags, yes. You will be able to give them a more human readable form. v98 will become "Player's Gold" or "Red's Gold" or whatever you want. V15 will become "has visited tower" or whatever you want. You will be able to define all these and see them nicely in a single place. You will be able to organize them in folders, as related to the logic of your map.

2. You will be able to set initial values for those flags & variables.

3. The depth of dialogues or conditions is infinite. The only limit is ERMs own limits ::- ).

4. The 32 KB limit only happened to me using the Editor. I use multiple files of 32 KB and I overcome that. Multiple scripts. The current Dialogue Master already does this splitting ::- ).

5. !!UN..blabla give gold -> No, you would not need to write that by hand. I will provide wrappers for ERM instructions. But I will also give you the possibility to create new ones if you want. There will be an instruction wrapper editor (read below). During the first weeks of public testing we will complete the ERM language database. I will provide a partially complete one, covering at least the instructions I use. Slowly but surely all the ERM instructions will have their corespondents in the ECG.

Now, how does this help you might ask? Let's take the following, hopefully better and more concrete example:

!!OW:R0/6/v98;

To write this in ECG you would do this:

i. Select from the instruction tree the "Modify player resources" ECG instruction.
(note) the instruction tree is the place where you will see all ERM instruction, nicely organized according to their purpose, example: "messages", "resource manipulation".
ii. ECG will load its internal mapping of that instruction which looks like this; !!OW:R$player$/$resource$/$integer_value$;
iii. What you will see on screen after selecting that instruction from the dropdown is this:
iv. Two other dropdown lists, a checkbox and a textbox.
v. The first dropdown list will contain all 8 possible players. The second will contain all 8 resources. The checkbox is called "hard code".
vi. Hard code is checked? Show textbox which allows you to specify an integer-only number, with the resources to add/subtract/set.
vii. Hard code is not checked? Show dropdown list which (and here comes the really cool part) will show all the variables YOU have defined in your map, nicely, by their very friendly and human-readable names. This way you will be able to set the resources to a certain variable.

Now, this may look like a long operation, but it's because I explained it in such detail. In practice, it will take you hardly more than doing it by hand. But the advantage is that:

A. No bugs => ERM is easy to mis-spell and mistake, hard to remember EVERYTHING.
B. Easy to read => ERM is great for what it does but it's extremely hard to read and understand. Using the ECG you will actually be able to READ OUT your map, therefore understanding it better and being able to focus on the really important stuff. I *CANNOT* stress enough how IMPORTANT it is for a programmer to be able to properly read out his code FAST, even after 2 months since you last worked at it!!! I look at my 6-months old ERM scripts now and I want to shoot myself *laugh*. Consider that I actually write lots of comments, AND EVEN SO it's hard to understand again ::- )
C. Easy to organize => you will be able to separate your ERM not into messy files with thousands of line of code, but into LOGICAL ENTITIES. You will be able to create a folder where you store all variables and instructions pertaining to some quest. Then in the parent folder all the global-map variables. Then make a special folder for variables you want to cary over to the next map. All with nice names, easy to understand and read. The entire system will be based on a folder structure where you can move your stuff and keep everything organized the way YOU find it logical for YOURSELF.

6. I mentioned the ERM instruction database. Now that you read the example above, you understood a bit of how I intend to make the ECG work. All ERM instructions need to have their parameters mapped to ECG data types. Let's examine how one would map a new ERM instruction into ECG. NOTE that this has to be done ONLY ONCE. Once you saved it you will have it for all time, for all projects and you can share the database with the common repository I will make available on my server at axonnsd.org.

Instruction to be mapped: !!IF:M^^;

i. Select Language Provider -> Add New Instruction.
ii. A textbox allows you to write the ECG instruction token string.
iii. You will need to write !!IF:M
iv. ECG allows you to add a dynamic parameter within that instruction. You can press a button to do it or you can specify it by hand.
v. With the dynamic parameter added, the ECG instruction token string becomes !!IF:M$the_message$
vi. As soon as you do this, a dropdown list will apear allowing you to specify the DATA TYPE of the parameter.
vii. You select "String" (text).
viii. You are prompted to give a "friendly name" to the parameter. You say "Message to show".
ix. Save. Name? "Show simple message".
x. Done.

When you go now and add a new instruction in your code, you will select "Show simple message" from the instruction tree and then what you will see is an already checked checkbox and a textbox named "Message to show" where you type in your message. Or you can uncheck the "hardcode" checkbox and select one of your map variables to automatically insert in your message. The ECG will take care of adding the ^^.

7. The ECG, just like the current Dialogue Master, WILL allow you to code ERM by hand if you so wish. There will be a "Raw" instruction where you can put whatever code you want, by-passing the ECG's auto-complete via dropdown lists & textboxes and pretty naming. HOWEVER, if I have time, I might consider writing an auto-complete editor for ERM integrated in the ECG, but this is NOT my priority right now. Right now I just want an ERM IDE where I can do all my scripting because my scripts and maps are very complex and with tons of variables and dialogues and story. I can't do it with ERM Scripter. It's suicide. It's way too damn complex. Especially since ERM does not know the idea of "if". In ERM if you want 10 instructions to only execute if a variable is TRUE, then you have to put &V18 for 10 times, once per each instruction. This is extremely frustrating and error prone. You could do functions, of course, but FU18183 hardly makes the code more readable.

The ECG will abstract the IF instruction, allowing you to create the IF in a tree-like structure. You create a CONDITION where you say that some variable has to be true and then you write 10 instructions within that condition. YOU WILL NOT HAVE TO REPEAT that condition for all instructions. the ECG will do it for you behind the scenes, generating all the code automatically.

Finally, let's look at how an ERM script looks against an ECG instruction set.

ERM:

!?LE41/116/0;
!!IF:N6/431/4/3/5/8/8/7; [Showing the loot to the player ::- D.]
!!IF:N^Scouring this corner of the forest reveals
a hidden cache behind some thick
vegetation. In an leather bag you
find the Centaur's Axe, some gold
and some precious stones.^;
!!HE-1:A4/7; [Giving Elyssa the "Centaur's Axe" artifact.]
!!OW:R0/6/?v98; [Storing in the v98 temporary variable the Player's gold.]
!!VRv98:+431; [Adding to the Player's gold, the amount found in the cache.]
!!OW:R0/6/v98; [Setting the Player's gold resource.]
!!OW:R0/4/?v98; [Adding "3" to the Player's crystal and gems.]
!!VRv98:+3;
!!OW:R0/4/v98;
!!OW:R0/5/?v98;

ECG:

(this will be in a tree just like you saw in my Dialogue Master)

- Current Player visits The Temple Of Doom
    - Show message with 2 pictures. Picture 1: Centaur's Axe. Picture 2: Gold resource.
    - Show simple message: message text: Scouring this corner of the forest reveals... etc.
    - Give artifact to hero. Artifact: Centaur's Axe.
    - Add to Player 1 gold: 431.
    - Add to Player 1 crystals: 3.
    - Add to Player 1 gems: 3.

Personally, I find this 1000 times more friendly than ERM and I think it will launch ERM into a new age, bringing its true power to everybody. And trust me that I am not a beginner in ERM. I've been using it since 2003. I am not lazy. I am not afraid of writing ERM by hand. The problem is that I need to be more efficient. My ERM is so complex now that I can hardly debug it when something breaks. So I need to make sure there are NO BUGS.

One last thought: this project I'm building, as you can see, is no small thing. It's actually one of the most complex projects I've ever embarked in my life. But I already delivered something nice & free & pretty complex to people all around the world: http://www.axonnsd.org/ASDClock . I know that I'm more than capable of doing this. Also, this project will NOT be just for ERM. In the future I want to include other language abstractions in it. So that any game developer, even not programmer, can build scripts and organize stuff in it. Even programmers may find it useful, as it allows specification of the GAME STORY completely separated froom the game. I may make this a commercial project, with a licensing fee. So you can bet that I'm going to finish this stuff. I already begun planning stages. I got UML diagrams drawn up and the project is already started. I promised to finish the Heroes 3 map and this is yet ANOTHER reason I absolutely NEED to finish this ECG. However, rest assured. The ECG will NEVER, EVER, cost anything for people in the H3 community. Also, I may even make it Open Source Software ::- ). This depends very much how my financial future will shape up in the coming months. I got a Flash game release coming this October and I'm curious how much money I'm going to pull out of the AS3 game I built.

Ok, that's enough ::- ).


. - = E C H Y S T T A S = - .
The Greater Mind Balance
08.09.2009 03:17
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Messages In This Thread
Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Axonn - 05.09.2009, 18:01
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Corwin - 06.09.2009, 01:09
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Axonn - 07.09.2009, 03:47
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Valery - 07.09.2009, 09:45
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Axonn - 08.09.2009 03:17
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Valery - 08.09.2009, 06:30
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Axonn - 08.09.2009, 06:59
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Valery - 08.09.2009, 07:06
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Axonn - 08.09.2009, 07:14
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Berserker - 06.11.2009, 20:32
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Axonn - 15.11.2009, 06:35
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - gamecreator - 15.11.2009, 11:39
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Berserker - 15.11.2009, 15:32
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Axonn - 15.11.2009, 17:55
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - gamecreator - 15.11.2009, 18:18
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Axonn - 15.11.2009, 20:57
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Valery - 15.11.2009, 21:54
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Axonn - 15.11.2009, 23:11
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Valery - 15.11.2009, 23:17
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Axonn - 15.11.2009, 23:30
RE: Heroes 3 Dialogue Master + The Stand Map Demo + ERM Dialogue Function - Berserker - 17.11.2009, 19:20

Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group