A game programmer's point of view

Error message

Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in drupal_get_feeds() (line 394 of /var/www/pied-piper.ermarian.net/includes/common.inc).

Pages

AuthorTopic: A game programmer's point of view
Apprentice
Member # 4185
Profile Homepage #25
Appearently not any interview I was able to find... Was that long ago? I checked the interviews in the Spidweb.com News section and I didn't find it. Any clues?

--------------------
Rufo, Vahnatai Ka, Te Pinoat
Posts: 30 | Registered: Friday, April 2 2004 08:00
Shock Trooper
Member # 4239
Profile #26
quote:
Originally written by Pronounced Kel-LAN-don:

The way you could tell the difference between monsters all having the same AI and some having custom scripts is by special movement (it runs somewhere after seeing you), messaging (it calls for help), string printing ("You have been spotted!"), or special targeting (a mung demon that targets the best spellcasters and not just anyone nearby with spell abilities). I don't remember any of these in the Avernum Trilogy anywhere, but it's been a while, so if you do remember them, be sure to mention it. I'd be interested.
Like I said, I haven't played all the way through every one, but I think there might be a Nephilim fort in A2 where people call for help. Or maybe not. Hmmmmm.....
It just surprises me that having already created a scripting language for BoE, JV wouldn't make use of it in Avernum.

--------------------
There are two kinds of game players...those who are newbies, and those who were.
Posts: 322 | Registered: Monday, April 12 2004 07:00
Off With Their Heads
Member # 4045
Profile Homepage #27
Well, it wasn't a scripting language. It was a rather clumsy (but ultimately quite powerful) system of nodes. You couldn't give creatures custom scripts or place terrain scripts or anything like that. And if I'm not mistaken, the Avernum Trilogy *does* use something fairly similar to BoE's nodes, but quite different from the GF and BoA scripts.

[ Monday, May 17, 2004 06:33: Message edited by: And Kelandon is his Prophet. ]

--------------------
Arancaytar: Every time you ask people to compare TM and Kel, you endanger the poor, fluffy kittens.
Smoo: Get ready to face the walls!
Ephesos: In conclusion, yarr.

Kelandon's Pink and Pretty Page!!: the authorized location for all things by me
The Archive of all released BoE scenarios ever
Posts: 7968 | Registered: Saturday, February 28 2004 08:00
Warrior
Member # 4186
Profile #28
quote:
Originally written by Stupid NEwbie Man:

So you think that every person in Avernum had their own subprogram for behavior and dialog nodes?
As you can reuse a script, you can reuse a "subprogram" or more exactly in C language, a function. You just don't need to design a script language and only the set of data are really dynamic and non dependent of the code.

Just imagine that the scripts are in fact directely written in C and can't be call directely by any authors with a perverse imagination and fantasy. :D

In fact it's a bit more complicate because two points:
* The engine itself will probably need to be reorganized arround the use of scripts.
* In a team with separate scenario makers, it's mostly required to design an engine arround scripts.

[ Monday, May 17, 2004 22:07: Message edited by: Vent ]
Posts: 175 | Registered: Friday, April 2 2004 08:00
Shock Trooper
Member # 4239
Profile #29
Thanks, Vent, but I do know that much programming. I'd just assumed there were different behavior models for different NPCs, whether they were external scripts or internal functions.

Kelandon: Ah. Thanks. I've never looked at BoE, so I don't really know much about its engine. *wonders what nodes are.*
*Decides he doesn't care enough to look*

--------------------
There are two kinds of game players...those who are newbies, and those who were.
Posts: 322 | Registered: Monday, April 12 2004 07:00
Warrior
Member # 4186
Profile #30
quote:
Originally written by Stupid NEwbie Man:

Thanks, Vent, but I do know that much programming. I'd just assumed there were different behavior models for different NPCs, whether they were external scripts or internal functions.

You mean that there was internal functions with the same usage than NPC scripts? Certainly but they where written by Jeff and in C.

The script language isn't only an additional step like: At the load of the scenario, the program read the scripts transform them in C functions and function calls, compile them, and go on.

Be agree that all these steps are additional:
- Read the script files and translate them in C.
- Compile the resuting C code (in fact I doubt Jeff do that but there's an additional step anyway).

But the core of the problem was certainly to externalize the programmation of these scripts.

This require that the engine is rock solid agaisnt any (most) attempt that can do the scenario authors by using the scripts. Unlike when he was doing Avernum, Jeff couldn't be here to fix the engine or the "script" if there's a problem.

This design in two parts:
1 - The engine.
2 - Possible calls (and data definitions) to program different NPC behaviors.

That was certainly done for Avernum, but:

Probably not at the same level of quality and testing. That's more particularely true because Jeff was doing it alone.

What was possible to program in C functions various NPC behaviors, was a definition for Jeff who is a programmer and who knows the engine.

Scenario authors are completely different users. They don't know the engine, they aren't necessary pure C programmers and they know nothing of the engine. This is a very different requirement:
- The documentation needs to be written in detail instead of being inside Jeff head.
- The documentation need to be fully right. If something was not possible for Avernum, Jeff was fixing it or was doing it differently. If something like that happens with a script you could get an unhappy user.
- The documentation needs to be enough simple. The scenario authors should not need to have to understand how the engine works. The definition of each function needs to be sample

All of that could have consequences, it's not just some written documentation. For example, this could require to change somehow the design of the engine in order to be able to define a script language or calls that have a definition enough simple.

I'm not sure that will help, but I tried. :P

[ Sunday, May 23, 2004 15:25: Message edited by: Vent ]
Posts: 175 | Registered: Friday, April 2 2004 08:00
Off With Their Heads
Member # 4045
Profile Homepage #31
quote:
You mean that there was internal functions with the same usage than NPC scripts? Certainly but they where written by Jeff and in C.
I think this statement is false.

Unless someone has evidence to the contrary, I still stick by my statement that there were neither creature scripts nor any sort of C code to simulate creature scripts inside the Avernum Trilogy. They all worked off of the SAME PROGRAM, a primitive version of basicnpc.

Again, if anyone can cite an example of behavior to the contrary, please do, but barring this, the above statement is not true.

EDIT: See my explanation on the previous page (starting with "The way you could tell the difference between monsters all having the same AI and some having custom scripts") for my reasons for saying this. I'm not saying that it COULDN'T have been done; I'm just saying that it WASN'T done.

[ Sunday, May 23, 2004 16:29: Message edited by: Kelandon ]

--------------------
Arancaytar: Every time you ask people to compare TM and Kel, you endanger the poor, fluffy kittens.
Smoo: Get ready to face the walls!
Ephesos: In conclusion, yarr.

Kelandon's Pink and Pretty Page!!: the authorized location for all things by me
The Archive of all released BoE scenarios ever
Posts: 7968 | Registered: Saturday, February 28 2004 08:00
Warrior
Member # 4186
Profile #32
Yes the problem is also to support in BoA more features than was needed in Avernum. I had already mention that in a previous post.

You quoted two features added. But are you sure that all NPC behave the same?

It's not because it's a single program that it doesn't have any subroutine (or functions). A good design would be to have some subroutines to manage different NPC behavior, no need of script for doing that.

That said if you are right and if all NPC behave in a same way then perhaps there's only one subroutine. But how are you sure? In fact in theory it's even possible to do just a subroutine that get in input complicate set of data in order to manage different NPC behavior.

Perhaps it's the case even in BoA. Furthermore, it's most probably the case if like I bet, Jeff didn't implement any compiler.

Well I didn't want to enter in those details and supposed (it's possible) that there was in Avernum subroutines for NPC very similar to NPC script design. Even if this was true there's a large area for plenty work before to get the BoA scripts.

It's what I tried to explain.
Posts: 175 | Registered: Friday, April 2 2004 08:00
Off With Their Heads
Member # 4045
Profile Homepage #33
I count four features that I mentioned (special movement, messaging, string printing, and special targeting), not two, but whatever.

quote:
But are you sure that all NPC behave the same?
Pretty sure. I played each of the games a couple of times, and I was pretty shocked when I saw Geneforge (which DOES have creature scripts) and the complex behaviors I saw there.

Again, if someone knows anything to the contrary, point it out.

quote:
In fact in theory it's even possible to do just a subroutine that get in input complicate set of data in order to manage different NPC behavior.
If I understand this sentence correctly, I think that it is vaguely kind of similar to what Jeff actually did.

In the creature scripts in BoA, there is a command called do_attack. It behaves extremely differently for different creatures with different abilities. It is a single command. It takes into account many variables, such as distance to an enemy. It is still a single command.

I think that the behavior of monsters in the Avernum Trilogy was kind of like that: they would follow one uniform set of protocols between them, but those protocols would take into account what the monster was capable of doing.

The difference between that and scripting is that scripting would allow a different set of protocols.

--------------------
Arancaytar: Every time you ask people to compare TM and Kel, you endanger the poor, fluffy kittens.
Smoo: Get ready to face the walls!
Ephesos: In conclusion, yarr.

Kelandon's Pink and Pretty Page!!: the authorized location for all things by me
The Archive of all released BoE scenarios ever
Posts: 7968 | Registered: Saturday, February 28 2004 08:00
Warrior
Member # 4186
Profile #34
No, you can transform all the NPC scripts in pure set of data no protocol problem here.

That said if all NPC behave in the same way, in fact that's not true, they have different behavior, then BoA improved a lot this area. This could have been done without any scripts.
Posts: 175 | Registered: Friday, April 2 2004 08:00
Off With Their Heads
Member # 4045
Profile Homepage #35
I have no idea what that post just said.

I meant "protocol" in the non-programming sense of the term. A better word probably would have been "procedure."

--------------------
Arancaytar: Every time you ask people to compare TM and Kel, you endanger the poor, fluffy kittens.
Smoo: Get ready to face the walls!
Ephesos: In conclusion, yarr.

Kelandon's Pink and Pretty Page!!: the authorized location for all things by me
The Archive of all released BoE scenarios ever
Posts: 7968 | Registered: Saturday, February 28 2004 08:00
Warrior
Member # 4186
Profile #36
Ok so you don't need to define a script language to have different set of procedure for different NPC behavior. You don't even need to do different set of procedure in order to program that.

So when you wrote:

The difference between that and scripting is that scripting would allow a different set of protocols.

That's not true, Jeff and Avernum don't need script to do that, it's not linked at all to the use of scripts.
Posts: 175 | Registered: Friday, April 2 2004 08:00
Off With Their Heads
Member # 4045
Profile Homepage #37
Vent, I am going to try one more time in this topic and that is it.
quote:
Ok so you don't need to define a script language to have different set of procedure for different NPC behavior.
You don't need to define a script language to have a different set of procedures for different NPC behavior, no. I didn't say that you did. What I've been saying all along is that there is no evidence in the Avernum games that I can remember that any different procedures existed whatsoever. I provided examples of things that might've been evidence. I didn't ever say you needed a scripting language for this.

quote:
So when you wrote:

The difference between that and scripting is that scripting would allow a different set of protocols.

That's not true, Jeff and Avernum don't need script to do that, it's not linked at all to the use of scripts.
If you take "protocols" to mean "procedures" -- thus indicating that scripts allow creatures to behave differently from each other -- then the statement is true as is. You don't *need* scripts to do this. I never said that you did. That is not, and has never been, my point.

My point is that the creatures in the Avernum Trilogy all behave the same way, except in the differences that come from their different abilities, such as you would see with a single script in BoA. Thus, the Avernum Trilogy had nothing resembling the creature scripts that you find in BoA. They come from Geneforge, not the Avernum Trilogy.

--------------------
Arancaytar: Every time you ask people to compare TM and Kel, you endanger the poor, fluffy kittens.
Smoo: Get ready to face the walls!
Ephesos: In conclusion, yarr.

Kelandon's Pink and Pretty Page!!: the authorized location for all things by me
The Archive of all released BoE scenarios ever
Posts: 7968 | Registered: Saturday, February 28 2004 08:00
Warrior
Member # 4186
Profile #38
quote:
Originally written by Kelandon:

I think that the behavior of monsters in the Avernum Trilogy was kind of like that: they would follow one uniform set of protocols between them, but those protocols would take into account what the monster was capable of doing.

The difference between that and scripting is that scripting would allow a different set of protocols.

I just quoted your post. I'm sorry but this was a quote from you post. Ha well, apart for this point, I agree with you.
Posts: 175 | Registered: Friday, April 2 2004 08:00
Off With Their Heads
Member # 4045
Profile Homepage #39
*sigh*

Well, I know for a fact that the Avernum Trilogy didn't have subroutines that you described, so it is rather hard to think of them as anything but scripts... this may account for the slight verbal slip-up.

But this isn't at all what we are talking about.

Okay, I'm done. Really I am. I will not post in this topic any more. *promises*

EDIT: I'm still RIGHT, though. >_<

[ Sunday, May 23, 2004 22:43: Message edited by: Kelandon ]

--------------------
Arancaytar: Every time you ask people to compare TM and Kel, you endanger the poor, fluffy kittens.
Smoo: Get ready to face the walls!
Ephesos: In conclusion, yarr.

Kelandon's Pink and Pretty Page!!: the authorized location for all things by me
The Archive of all released BoE scenarios ever
Posts: 7968 | Registered: Saturday, February 28 2004 08:00
Warrior
Member # 4186
Profile #40
Sure Kelodon you're 100% right, you know the coding without to have see any code line. :D

All my posts about that was hypothesis in order to give some example that could explain why BoE had cost so much effort.
Posts: 175 | Registered: Friday, April 2 2004 08:00
Apprentice
Member # 4268
Profile #41
hey....um...najdorf or wateva ur name is.
I'm wonderin if ur still taking up on that offer.
Um....u know....about those dungeons and stuff. I'd like to see them.
Thanx :-)

--------------------
He strikes silently with large claws..........and webbed feet!
Posts: 24 | Registered: Thursday, April 15 2004 07:00
Agent
Member # 2820
Profile #42
Of course the Avernum games had scripts. Jeff himself said that he would start experimenting with scripts back when Nethergate was his newest creation!

Besides, he needs some sort of program to help him write the code, and he really disliked the clunky nodes system the Exile games had.

--------------------
Thuryl: I mean, most of us don't go around consuming our own bodily fluids, no matter how delicious they are.
====
Alorael: War and violence would end if we all had each other's babies!
====
Drakefyre: Those are hideous mangos.
Posts: 1415 | Registered: Thursday, March 27 2003 08:00

Pages