 |
|  |
 |
|
Mark_Everson
|
 |
Canton, MI
Jan 1970 time: 00:13
|
|
Hi All:
The need for this meeting has become apparent from the recent threads, Coding organization for Clash, and Documentation for the code so far..., and the Macro language description thread.
IMO we need to discuss the macro language we're going to use, and how we are going to support it in the main game code.
I think the best thing to do, is to get us together for an ICQ chat over the weekend and hash this out. I would also like to have myself, Blade Runner, F_Smith, mca, and JimC (for general knowledge about java capabilities and speed of execution issues) there if we all can make it. Any other serious java Gurus that happen to check in here would be welcome too .
(If some of you don't have ICQ, you can get it at www.icq.com for free)
I would like everybody listed to post the times they are available over the weekend, and we will try to put it together. This is a holiday weekend in the states, so this may not work... but we'll see .
I am available most of the weekend from 9-22:00 EST (GMT +5)
We just need to talk the issues thru and take note of strengths and weaknesses of each approach talked about in the threads above. (and any other possibilities people want to bring up) For the cases where we don't know the real value / limitations of a particular approach, we'll have to design some simple tests to evaluate those issues soon.
We need to put this decision behind us quickly, or we're going to risk wasting a Lot of coding time.
Specifically, some ideas presented have been (see the threads for more info):
A C-like macro language
Using XML as the macro language
The notion of using reflection to make generic getters and setters in the code that would interface easily with a macro language.
Using a java bean architecture for the code.
I hope everyone can make it...
-Mark
[This message has been edited by Mark_Everson (edited September 02, 1999).]
|
|
|  |
 |
|
mca
|
|
Odense, Denmark
Jan 1970 time: 06:13
|
|
I am available from 04 to 16 (Apolyton time) on Saturday and Sunday.
Martin
[This message has been edited by mca (edited September 02, 1999).]
|
|
|  |
 |
|
JimC
|
|
Birmingham, England
May 1999 time: 05:13
|
|
My ICQ no. is 15227822. I'll try and be there.
Maybe I'll just stay in bed all day.... and all week.... 'cos I finished work today :-)
Two weeks of blissful nothingness until my University term starts. My brain deserves a well earned break from damned SCADA programming.
Jim
|
|
|  |
 |
|
Blade Runner
|
 |
Belgium
Jan 1970 time: 06:13
|
|
Hi All,
I try to get ICQ, but my stupid sound card driver always kick out the ICQ program in the starting period. I cannot get in to the ICQ chat. (The sound card built-in.) I got back my cable modem connection today, so I can hanging around longer time than before.
Anyway. I'm in Europe, so the time different is huge. I send my opinion now, and Mark, please send the chat description to the forum, so we can follow the discussion.
Thanx
We need to produce a macro language, which easy to use, but enough powerfull to build scenarios, and control completely the game system. Maybe we can write parts of the game system with this macro language. Very easy to implement a text file reader to load values in the game system. (a little bit like the SMAC or CIVs). Maybe 1-5% of the gamers can write something with the scenario language, but almost everybody can change something in text files. (like not 5 but 8 civs, etc.)
Macro language:
1. No OOP, or any other sophisticated gadget. The average gamer can maybe produce a short rutin with Visual Basic or Access, but they dont understand C++, Java or Delphi.
2. For little programs and rutins the best to use a structured language. Easy to follow the flow of the code, and easy to understand what do the macro rutin and why.
3. We need to follow the popular languages. IMHO the most popular structured languages are: Pascal or C. I work professionaly with Delphi, so I prefer Pascal, but the C has also strong points.
4. Events (or triggers) must easy to follow for the users. My idea was to use the trigger name for the source code, and for the "main" function or procedure (method in Java).
(Read my short language description: follow the URL of "Macro language description" in Mark's beginnig post.)
Rem. If we agree to use my C-- baby, I try to produce a working tokenizer and parser ASAP. This will take a couple of weeks (2-6). All the language specialities go to this part. The another part of the interpreter (the executor) takes a few days plus. But the speed of the code is depend on the executor, so we need probably a few another weeks to produce a speedy executor. (permamnet feedback and code optimizing)
I. Program structure and macro language:
1. We need to produce the graphics and AI part of the game in Java. We need to write a speedy macro interpreter and the macro interface programs and message boxes, menus, etc. in Java too.
2. We (and this is a bigger part of the project members) can write the control and rule parts of the game in our macro language.
3. The ultimate game "constants" can go to text file(s).
I see a few advantage and one disadvantage. (Probably there is more.):
Adv:
1.Flexibile game development.
2.Half professional programers can help us easily, but they cannot touch the Java parts of the program.
3.We can detect and kill the bugs of the macro interpreter in early stages. (and not the users will send us nasty comments about the scenario maker part.)
4. The users can examine our working scenario model (The Game!). They can modify the program or write scenario(s) follow our code.
Disadv:
The game system will be slower than a 100% Java application.
(Rem: We (I) try to develop a quick interpreter. I hope the interpreter part will be enogh speedy to open the choice of use Java or C-- [my fantasy name for the macro language] for coding.)
II. Program structure and the Java bean:
I'm a Delphi programmer. I write always Delphi components for my longer applications, so I support the using of the Java beans for Clash too. (The use of the Java beans almost automaticall solve the getter setter problems too.)
Blade
PS. I think I cannot join to the ICQ chat without workong ICQ program. If somebody know a different way to join or has an older version of the ICQ program (that maybe work for me) send me a message (or the ICQ program).
Thanx
[This message has been edited by Blade Runner (edited September 03, 1999).]
|
|
|  |
 |
|
mca
|
|
Odense, Denmark
Jan 1970 time: 06:13
|
|
I'll be around, too.
Martin
|
|
|  |
 |
|
mca
|
|
Odense, Denmark
Jan 1970 time: 06:13
|
|
(Sorry for being late, I miscalculated the time zones)
mca1:
re: me2
Such a tree-based editor will be quite useful for game and ai parameters, but I'm not quite sure how logic and loop capabilities could be incorporated.
The main use for control structures is in a "triggered event" system, I suppose?
Martin
[This message has been edited by mca (edited September 04, 1999).]
|
|
|  |
 |
|
mca
|
|
Odense, Denmark
Jan 1970 time: 06:13
|
|
[mca2]
re bl3
Could this "filtering" be accomplished with a SecurityManager?
Martin
|
|
|  |
 |
|
JimC
|
|
Birmingham, England
May 1999 time: 05:13
|
|
I personally don't think that the choice of language / exact syntax is the most important issue.
The major things we need to discuss before choosing a language are:
- what program control structures are we going to allow? (for/while loops, if/else statements etc.)
- what data structures are we going to allow access to?
- what 'routines / methods' are we going to provide?
Jim
|
|
|  |
 |
|
JimC
|
|
Birmingham, England
May 1999 time: 05:13
|
|
ooops I forgot - what logical operators are we going to allow?
e.g. the Starcraft editor seems to force you to AND all of your conditions together - there is no provision for OR, NOT etc...
if you want to use OR, you have to write a whole new trigger, and the editor provides you with 'opposite' conditions where possible to replace NOT
Jim
|
|
|  |
 |
|
mca
|
|
Odense, Denmark
Jan 1970 time: 06:13
|
|
[mca3]
Well, I'll just try to describe the system I envision from the discussions here, and my own point of view.
We'll have basically a bunch of text (and gfx) files, front-ended by some editor, so the scenario builders can modify the static game data (the map, terrain types, unit types, ai parameters, civilizations, tech tree). This will cover most players' needs as Mark says.
Then, for advanced scenario builders, there will be scripting capabilities to define triggering and custom effects for weapons and technologies. I.e. stuff that dynamically effect the game state, but doesn't modify any of the underlying game models or the AI.
I'm not quite sure what to do for hardcore Clash hackers, who want to tinker with the AI and game models beyond just setting the parameters, except to expose the Java code and allow modified models to be pluggable.
Martin
|
|
|  |
 |
|
JimC
|
|
Birmingham, England
May 1999 time: 05:13
|
|
Pluggable AI(for advanced Java users): simple....
Java's class files are v. convenient (if we aren't going to compile to native code, that is)
Simply issue the specs (data + methods) for the AIRoutine class or whatever it's going to be called, and then the keen AI hacker can simply write his own class, compile it and plug it in.
Et voila.
Jim
|
|
|  |
 |
|
mca
|
|
Odense, Denmark
Jan 1970 time: 06:13
|
|
[mca4]
re: bl5
Aha, my thoughts were circling around using reflection to invoke the methods on the components, and to prevent the macros to access something in the game they shouldn't.
Martin
|
|
|  |
All times are GMT. The time now is 05:13. Apolyton Time is 00:13. |
top of page
|
|
|
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is ON
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|