Developer Question for Spiderweb

Error message

Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in drupal_get_feeds() (line 394 of /var/www/
AuthorTopic: Developer Question for Spiderweb
Member # 7479
Profile #0
This may not be of interest to other people, but as a developer I'm very curious.

The Avernum and Geneforge games use a custom scripting system.

I was curious why you decided to write the interpriter from scratch, rather then use something existing thats under an Open/LGPL/BSD-style license?

For example, a lot of games recently are embedding Python (such as Civ4 and Freedom Force), some are embedding Lua, amoung others out there.

Personally I use perl, but its a larger headache then most to embed.

I was curious why the decision to create your own? Lack of time to look? Feature creep from what was originally planned? Joy of writing an interpriter? Other?

Posts: 4 | Registered: Monday, September 11 2006 07:00
Member # 2210
Profile #1
I'm not spiderweb, but I can take a guess at why the propietary language. The company started in 1994 with its first game. The first game Exile was actually better than a lot of the game programs out there. Open GL was first introduced in 1992. This means it was an easy choice to start programming in his own language, because the Open GL was probably no better than what Jeff could do on his own. From there it became an ingrained habit...

Wasting your time and mine looking for a good laugh.

Star Bright, Star Light, Oh I Wish I May, I Wish Might, Wish For One Star Tonight.
Posts: 1084 | Registered: Thursday, November 7 2002 08:00
Post Navel Trauma ^_^
Member # 67
Profile Homepage #2
Uninformed opinion #2:
The scripting needed isn't very complex, and making a simple interpreter is easier than getting your head round some other language, and working out how to embed it.

Barcoorah: I even did it to a big dorset ram. - Don't follow this link
Posts: 1798 | Registered: Thursday, October 4 2001 07:00
Member # 7479
Profile #3
Thats how they always seem to start.

The scripting needs for ones self is minimial. We add what we need to get the job done and usually stop there.

The interesting things is the more mod-friendly a game is, it seems the more time they spend adding additional scripting support, or working around the lack of it, when using a custom language.

Oblivion for example, while in terms of mods is more capable then Morrowwind, they still spend a lot of time adding additional scripting support.

Neverwinter Nights, most of the updates are updates to the scripting capabilities.

Now you have things here like the Blades Of series, that a lot of disscussion is spent figuring out how to get every ounce of capabilities out of the scripting.

Then games with a full langauge embeded. What people are doing with Civ4 scirpting is rather interesting. Nice thing for the dev team is they can pass the buck and say "There are X-many books available for python".

Of course, they are still expanding it for Cvi4 as well, and newer updates put more of the package into the scripting language to let users do even more. But the core language stays the same, its just publishing to python additional functions.

Not saying one is better then the other though. As I don't know with the Blades series for example how much time in support is spent going over scripting, vs. how much time would have been spent had a used a custom language.

I am curious however if it was done over again, would anything in the language it used have changed?

Blades of Avernum for example seems like a logical extension of the language used in the previous Blades and Geneforge games, so I can understand in that situation how; use what you already have rather then try and embed something new.

I tend to be curious, especially in this case where its just Jeff programming everything, how much time is spent on the various parts?

When you have to do AI, pathfinding, graphics, story, etc. What shortcuts are good shortcuts?

And as mentioned when he started there are nothing really out there. With the advent of so many libraries in LGPL, BSD, that allow embedding, when does a solo developer start looking at them to augment his work?

Pardon the long post and lotsa questions. To much coding, not enough soical interaction. ;)
Posts: 4 | Registered: Monday, September 11 2006 07:00
Triad Mage
Member # 7
Profile Homepage #4
Well, BoE doesn't use scripting, and BoA gets very little scripting support beyond what was in v1.0 (some things like string buffers were notable exceptions). But a lot of that has to do with Spidweb being a three-person operation, and the need to constantly be making new games in order to make money.

Fortunately (at least I'd say fortunately), the Blades community is generally very helpful and has script libraries, etc.

"At times discretion should be thrown aside, and with the foolish we should play the fool." - Menander
Drakefyre's Demesne - Happy Happy Joy Joy
Encyclopedia Ermariana - Trapped in the Closet
You can take my Mac when you pry my cold, dead fingers off the mouse!
Posts: 9436 | Registered: Wednesday, September 19 2001 07:00
Board Administrator
Member # 1
Profile Homepage #5
I did a lot of research. The reason I wrote my own was because I guessed it would be easier, in the long run, than figuring out how to imbed an existing one. Plus I thought it would be fun.

- Jeff Vogel

Official Board Admin
Posts: 960 | Registered: Tuesday, September 18 2001 07:00
Member # 869
Profile Homepage #6
By the way, UserDevNerd, do you happen to have any experience coding in Ruby? Djur, a former member of this community, is currently making a scenario development engine broadly similar to BoE/A but with greater flexibility. I'm sure he'd be more than happy to take you on as a collaborator or just share ideas. I'll PM you his contact details if you're interested.

[ Monday, September 11, 2006 14:26: Message edited by: Thuryl ]

The Empire Always Loses: This Time For Sure!
Posts: 9973 | Registered: Saturday, March 30 2002 08:00
Member # 7479
Profile #7
Spiderweb -

I kinda figured "fun" would play into it, as I've both written my own and embeded existing languages.

Thuryl -

As much as I would love to, I currently program about 9-10 hours a day. I don't think my sanity could handle much more. :)
Posts: 4 | Registered: Monday, September 11 2006 07:00