Jump to content

A game programmer's point of view


Recommended Posts

Hi, I'm a hobbyist game programmer for the mac, and I started playing with the editor... ouch! pretty long stuff to write a good rpg story, even if you have the engine!

 

I am used to writing arcade games (actually I've written only one "serious" one (shareware) and a few other unreleased) and I am noticing the big difference between writing an "algorithmical" game, such as a puzzle/simple arcade (say like tetris or bomberman)and writing a story-based game(such as an rpg), where you have to put many ideas inside (while for a puzzle/arcade you might well have only one idea).

 

Just to put the walls for a few dungeons took me a lot of time, I don't even want to think about the rest... I think I'll give up since to make something good will take too much time, and I think I could write a simple new game from scratch instead (and try to sell it).

 

But I think what Jeff Vogel has done with BoA is simply the programmer's dream: I write the engine (that from a programmer's point of view is more fun than writing scenarios, I can assure you) and I'll have people writing great stories for it, making this product a win-win-win game: (Jeff Vogel wins - scenario developers win (have fun - can win prize) -normal players win (have many good quality adventures).

 

I think I'll take only the player's perspective in this case ;-)

 

PS. I've put a nice number of hours making some good enough dungeons and outdoors: if you want them just ask.

Link to comment
Share on other sites

I'm also a hobbyist game programmer, but I've never released any shareware games, just freeware (that's why I call myself "hobbyist" :rolleyes: ).

 

But in fact, it was game editors that made me intrested in it. I think it all started with the one for Age of Empires, but it was the Blades of Exile editor that really made me understand how great game design really is.

 

I truly agree with you about RPGs - they are a LOT harder to develop than arcade games. But, at a matter of fact, I think they are also much better. When the very first RPGs came, they brought the idea of telling a story in the game, which quickly spread to other genres. But telling a story with a game is (at least for me) quite harder than telling it with words or pictures. I truly admire everyone who has ever finished a RPG.

 

As for Blades - I agree, there's a great idea behind it. I'm almost suprised that so few game developers dares to release a game and say:

"Here is an engine - here is an editor - here is some good examples of what you can do with them - get started."

Maybe most progammers are afraid no one would create any scenarios. But it works! And as you say, everyone gets happy in the end.

Link to comment
Share on other sites

Quote:
Maybe most progammers are afraid no one would create any scenarios. But it works!
And they'd be pretty silly to think that; just look at Half-Life. That game wouldn't have sold nearly as well if not for user-created mods like Counter-Strike. People like making games, especially when the engine is already made for them. smile

And yes, good RPGs are much harder to make than good arcade/board/puzzle/etc. games. Much much harder. The same applies to adventure games, in my experience. The engine isn't too hard, but the content creation can take FOREVER...

Edit: Messed up my tags. Oops!
Link to comment
Share on other sites

Well, Half-life actually was a GAME, more than a utility, it had lots and lots of levels. No offense to the Blades of Avernum included scenarios - they are great - but as I understand it they were created to show what the engine could preform. After all, the first people who bought Half-life, and thereby made it popular, hardly thought that they bought a engine they would use for creating scenarios. Half-life didn't even include an editor (I think). The reason why people started to mod Half-life was that they liked the GAME, not only the engine. So the programmer's fear isn't silly at all - if Valve had released just the engine and some example levels, maybe Half-life wouldn't have been far as famous as it is today.

 

What I was trying to say was that more people should do as Jeff Vogel and make a game/utility focused on the editor, not the premade game. Because, as you say, people like making games. And I do. laugh

Link to comment
Share on other sites

Quote:
Originally written by Midknight Warrior:
Looks like Jeff has more of a commercial mind than we gave him credit for...

/me thinks about starting to yell "IT'S ALL A CONSPIRACY OMFGWTFBBQ!!~!~!1!!12!!"

nah :p
Well, duh. What's so unobvious about the commercial nature of Blades? The JV still gets all the money, but he doesn't need to put in nearly the effort as for a full game. (Not that I think he should stop doing it).
Link to comment
Share on other sites

Quote:
You have to make the underlying game worth it's salt too (or have it as part of a series, such as the A1-3 series, then Blades), or you'll never get anyone to make a bunch of scenarios.
This is what worries me a tiny bit about Pygmalion. Still, most of the best BoE scenarios have nothing to do with the Exile setting.
Link to comment
Share on other sites

No, but A3 shows what can be done with the engine. The programmers can take their ideas and do whatever they want.

 

The inspiration comes more in the form of technical showcase than plot, although the plot has to be good enough to hold a player's attention. If A3 has a failure, it's in the fact that A3 doesn't nearly show the full range of BoA's capabilities, nor does E3 show BoE's. The scenarios that come with the editors are, on the whole, even worse.

 

—Alorael, who still thinks it wouldn't be a bad idea to 'ship' BoA with the winner of the scenario contest. BoE could use an added scenario too. One of Alcritas's greats would do the trick, or Spears could be used as an example of a huge scenario with technical innovations.

Link to comment
Share on other sites

"The JV still gets all the money, but he doesn't need to put in nearly the effort as for a full game. (Not that I think he should stop doing it)."

 

In all fairness, I must point out that Blades of Avernum took more work and time than a regular game. The extra work necessary to

 

i. implement the scripting engine and make it robust enough to stand up to a decent fraction of designer desires, and

ii. make everything clear enough that it's usable, and

iii. document everything,

 

was a very long, exhausting effort.

 

Blades took more time to do than anything I've done in years, except Geneforge (which needed a whole new engine).

 

Don't get me wrong. I'm not whining "poor me." I love my job. But please, please don't think publicly available editors are what I write when I'm slacking. There is a darn good reason why I can only pull together the energy to make one every 5 or 6 years or so.

 

- Jeff Vogel

Link to comment
Share on other sites

Does this mean we'll have to wait until 2010 for BoG?

 

Seriously, though, I think that statement above spells doom for a Geneforge engine-based scenario maker. Which means the question of what's next after GF3 is even more interesting now.

 

Oh, and just a thought: the Blades games do last better than the others, don't they? I would imagine people are still buying BoE at rates that far outstrip E3 or E2.

Link to comment
Share on other sites

"Does this mean we'll have to wait until 2010 for BoG?"

 

Maybe not that long. We'll see how I feel in 2 or 3 years. Though I'm mostly focused right now just on making Geneforge 3 good. They're tricky games to design ... lots of factions and story paths that need to be ironed out.

 

- Jeff Vogel

Link to comment
Share on other sites

Quote:
Originally written by Spidweb:
The extra work necessary to

i. implement the scripting engine and make it robust enough to stand up to a decent fraction of designer desires, and
ii. make everything clear enough that it's usable, and
iii. document everything,

was a very long, exhausting effort.

- Jeff Vogel[/QB]
That's interesting. I'd assumed A1-3 used the same scripting engine as BoA, just with encrypted script files.
I'd also assumed that in a series with identical/mildly tweaked engines the difficult part was in content creation, not the engine programming. Especially since it seems that four small scenarios are a lot easier to create than one huge one. Aren't they?
Link to comment
Share on other sites

As a quote, as a non BoE user, I bought BoA only because the demo appeal me and because there was 3 more scenario to play. I had never buy any editor only.

 

An internal engine not exposed to the public cost a lot less than an engine like BoA.

 

For example:

- For internal use, the engine could not require scripts. That's even more true if the team is one person that do everything for A3 (instead of engine prog. team vs scenario team as in all big games). In the internal engine, a NPC script is in fact a funtion.

- No need to design a script language, to design an interpreter or pseudo compiler or even a compiler (I think that was done for Quake 3).

- All functions that are exposed to public use require a much more solid implementation and documentation, that's even more true when it's a one person team.

- If A3 didn't required a function for scenario purpose then it wasn't done. At the oposite Jeff tried to think of very diversified functions that the authors could could want to have and that could be compatible with the engine.

 

And so on, and so on.

Link to comment
Share on other sites

So you think that every person in Avernum had their own subprogram for behavior and dialog nodes? That's really horrid design if it's true, and makes modifying the scenario incredibly difficult.

I'm pretty certain there was some kind of script language going on already.

That's true, publicly available functions are probably harder to do than those that aren't, since they get used in so many imaginative ways.

It may be true that functions not needed for A3 weren't in the engine, but are there really that many functions in the scripting language that weren't needed somewhere in the Avernum series? Maybe there are, but I doubt the number is very large.

 

But that's just my look at things.

Link to comment
Share on other sites

The scripting language comes more from Geneforge than from the Avernums, I think. The Avernum Trilogy did not include any scripts with the game, whereas Geneforge did -- and you could tell by the complex behavior of characters in the game that they had custom scripts. In Avernum, ever character used the same program, something similar to basicnpc (except with less of a pathfinding algorithm). Towns didn't have their own scripts; they probably had the same nodes as in Exile. So basically, the Avernums worked very much like Exile in terms of their programming, and BoA works a lot more like Geneforge.

 

These are just my surmises from having played all of these games and looked around in their included files, but I'm pretty sure this is how it works.

 

If I'm not mistaken, there are a substantial (haven't counted, but substantial) number of calls that we have for BoA that aren't equivalent to nodes Jeff used in the Avernums.

Link to comment
Share on other sites

Although I hope that someday I would produce a few good scenarios for either boe or boa, I am not that thrilled with bog idea at the moment.

 

It seems GF is already complicated both plot and structure. As a user, I'd rather Jeff goes from GF3 to other game (or maybe GF4 or 5 - who says one has to stop at 3?). I got hooked through G1 and now a fan of spidweb games, so really looking forward to all new releases. laugh

Link to comment
Share on other sites

Quote:
Originally written by Pronounced Kel-LAN-don:
The Avernum Trilogy did not include any scripts with the game, whereas Geneforge did -- and you could tell by the complex behavior of characters in the game that they had custom scripts. In Avernum, ever character used the same program, something similar to basicnpc (except with less of a pathfinding algorithm). Towns didn't have their own scripts; they probably had the same nodes as in Exile. So basically, the Avernums worked very much like Exile in terms of their programming, and BoA works a lot more like Geneforge.
How do you know the Avernum games included no scripts? I mean, sure, there weren't any convenient text files lying around for users to edit, but I'd assume things like that would be shoved inside of some data file. And while I confess to not having played through the registered Avernums yet (just ordered the trilogy CD...yay!) there are certainly different kinds of fighting styles in the game. Though I suppose that it's possible those behaviors are actually coded in and each character is simply slapped with a behavior number.
Link to comment
Share on other sites

Quote:
How do you know the Avernum games included no scripts? I mean, sure, there weren't any convenient text files lying around for users to edit, but I'd assume things like that would be shoved inside of some data file.
Because GF *did* have the text files just lying around. You have to go into GF Files and then Scripts to get to them, but they're there. A1-3 has nothing comparable.

Quote:
there are certainly different kinds of fighting styles in the game
As far as I could tell, the only difference in fighting styles depended on the creature's abilities. Mung Demons dumbfounded because they had the ability to dumbfound, for example, whereas Empire Archers didn't, so they didn't. I don't remember -- correct me if I'm wrong -- any significant variance that didn't depend on the monster's abilities.
Link to comment
Share on other sites

Quote:
Originally written by Pronounced Kel-LAN-don:
Because GF *did* have the text files just lying around. You have to go into GF Files and then Scripts to get to them, but they're there. A1-3 has nothing comparable.
Yeah, but Geneforge was also very open about its contents...there was even a little note about it somewhere. Avernum, on the other hand was not. By your argument Avernum clearly had no graphics files because you couldn't open up anything and see pictures. (okay, so I think there are files with 'graphics' in the name, but you get the idea).
And I really don't know about different behaviors...it depends. Archers/mages have a tendency to hang back, and sometimes they run away...but then again, sometimes they don't. Whether there are 'external' scripts (ones not in the engine) or several internal ones, or just one big complex internal one, is something I really don't have the experience to decide (and frankly I don't think anyone does. There are too many possible variations on each to tell what's what.).
Link to comment
Share on other sites

Quote:
By your argument Avernum clearly had no graphics files because you couldn't open up anything and see pictures.
Using ResEdit, you can open up at least three files (Avernum Art, Avernum Char Graphics, and Avernum Graphics) and see pictures.

Quote:
Archers/mages have a tendency to hang back, and sometimes they run away
Again, archers and mages probably hang back because they have different abilities from fighters. You experience the same results with the basicnpc script in BoA.

Quote:
Whether there are 'external' scripts (ones not in the engine) or several internal ones, or just one big complex internal one, is something I really don't have the experience to decide (and frankly I don't think anyone does. There are too many possible variations on each to tell what's what.).
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.
Link to comment
Share on other sites

Quote:
Well, we've already seen screenshots of a 'Geneforge Campaign Editor', and the scripting language is started already.
Quote:
Screenshots? Where
Yes, where?? Not at Spidweb.com, not at Drakefyre's Demesne, and I can't find them with Google. Are they confidential information or something? I'm an extremely curious person, so if I can see them, please give me the link. If I can't... well, then just explain to me why.

frown
Link to comment
Share on other sites

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.
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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. laugh

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.
Link to comment
Share on other sites

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*

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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.
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.
Link to comment
Share on other sites

*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. >_<

Link to comment
Share on other sites

  • 1 month later...

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.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...