adonthell-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Adonthell-devel] Introduction and Comments


From: Kai Sterker
Subject: Re: [Adonthell-devel] Introduction and Comments
Date: Sun, 15 Dec 2002 12:25:50 +0100

On 15 Dec 2002 10:44:11 +1100 David White wrote:

> > > - Once when I loaded the saved game in the Lady's room, a
> > > conversation dialog with Bjorn inexplicably popped up.
> > 
> > Hm. That's weird. Was that reproducable? In that case, I'd like to
> > see that save game if you still have it around.
> 
> No, I'm afraid it wasn't reproducible :-/

One explanation could be that some events haven't been cleaned up
correctly on unloading your current game. That's not so easy to track
down though.


> > Did you configure with --enable-tools? In that case they should have
> > been set correctly. Otherwise they wouldn't.
> 
> No, I didn't configure with --enable-tools: I didn't even know about
> this option. I guess I should have read the README :)
> 
> Still, I'm not sure why a Makefile is generated that's incorrect...

To speed up configure ;). If you don't --enable-tools, GTK isn't needed
and the corresponding test is skipped. That's why the Makefiles end up
broken. OTOH, if you run make in / or /src it will never descent into
/src/tools. And you're not supposed to do that manually ;).

I guess in the long run, tools will be migrated to a package of their
own anyway, which would avoid this issue altogether.


> > > I apologize if any or all of these are known problems. Also, I
> > > assume that the dialogs in Waste's Edge were generated using
> > > dlgedit. If so, I couldn't find the dlgedit data files with the
> > > Waste's Edge tarball. Are they available?
> > 
> > No. But if you're interested, I can send them over. The only problem
> > is, if you downloaded Adonthell after Dec 07, dlgedit will be
> > broken. You'll have to get Adonthell via CVS and revert to the
> > dlgedit code tagged as"Dlgedit_0-7". Sorry, that's my fault. 
> 
> I see; it's just that I think for each of the tools, there should be
> at least one sample file, so one can see what the tool is meant to
> produce without having to do it themselves. I saw the screen shot of
> the dialog editor on the web site, and thought 'that looks pretty
> cool', so I wanted to try it, and see how the Waste's Edge dialogs
> were built; I was disappointed when I couldn't.

Did you look into the dlgedit/examples directory? That contains some
samples which you could load with dlgedit v0.7. There's even a short
manual available on the website:

    http://adonthell.linuxgames.com/download/documentation.shtml



> > What we could need though (if you're interested in working on some
> > tools) might be some editors for characters or items. There's a
> > little character editor, (charedit) but it can't do that much. For
> > example, it can't assign the gfx to a character (and is pretty badly
> > written anyway). 
> 
> Ok, sounds interesting; I'll look into working on that. I do have a
> number of questions on it though:
> 
> - What exactly is a 'character'? I assume it includes the main
> character, and NPCs you talk to, and possibly recruit into your party.
> What about enemies that you fight? If so, is it possible for an enemy
> to be other than a human, half-elf, elf, or dwarf?

Player, NPCs and creatures should probably be treated alike. So the list
of races should most likely be expanded with any other creatures that
exist, both animals and monsters.

Note that NPCs and creatures may be either friendly or hostile (and also
change between those states).

> (btw
> congratulations on reducing the number of possible races to something
> reasonable, rather than the insane number of variations many games
> seem to like :)

Thanks. We thought it would be nice to have a few races that really
differ instead of many that are pretty much the same. (See the current
and upcoming revised rules doc.)

> - How are graphics stored? Is there documentation on
> it?

Not really. For simplicity we save the raw pixel data compressed with
zlib. The classes taking care of that are documented though
(image.cc/image.h). 

> - I noticed that schedule scripts have to be hand-written in
> python. Do you think it would be a good/sensible idea to provide a gui
> for generating them? I can see that complex ones might have to be
> hand-coded, but perhaps most of them could be generated using a gui.

Might make sense. There are a few things that would apply to most NPC
schedules, like the text they utter (with a range from which to pick the
delay between two sentences).

Other things concerning schedules are going to change in the future
though. Most of the new code is already in the 0.4 CVS branch. But it
needs to be adapted to the new event system introduced in 0.3.3.
Basically, each character has one (or more) 'master' schedules that
control what he does during a day or week. Each distinct activity would
be kept in a seperate 'activity' schedule. Whenever an activity is
finished, the master schedule will determine the next activity. The idea
behind this is to make activity schedules reusable for multiple
characters. That way, they should also behave more life-like, i.e. do
different things at different times of the day, etc.

So a schedule GUI could also help in adding activities to the master
schedule. It could allow to specify which activities are launched at
what time of the day, how long they are allowed to run, ...  Stuff like
that.

Like you said, activity schedules itself could be created via some tool
too. Sounds cool!



> It also strikes me that perhaps the dialog editor and the character
> editor should be integrated: As far as I can see, there is always a
> 1:1 mapping between character files and dialog files. Because of this,
> I think it'd be easier if it was all just one tool.

That's right. Each character gets one initial dialogue assigned. It can
be changed throughout the game though, but this is of little relevance
here. 

> In fact, I was thinking about it, and I tend to think that it'd be
> much easier, especially for non-programmers (Windows users especially
> :) if all the editing tools were eventually integrated into one tool.
> Any thoughts on this?

Would allow all kinds of fance drag'n drop stuff :). Build an item, drag
it to a place on the map. Make a dialogue, drag it onto a character
standing on the map. (Did you have a look at the Morrowind editor? It's
exactly like that, and I found it pretty cool.) Not sure what the others
think though.


> > Items are currently in planning stage. So before work on some editor
> > can start, work on items itself has to be done. Feel free ...
> 
> I assume that you're using some kind of polymorphic class hierarchy to
> control how objects work. I assume there would be a generic 'item'
> class, and then a 'weapon' class, an 'armour' class, and so forth?

The current approach is to have a generic item class written in C++ that
has placeholders for python scripts. The actual definition of an item,
it's properties and abilities would then be coded in python. Those
python classes could then use polymorphism, like you said. I.e. first
define a weapon class that contains the basic attributes of a weapon.
Then derive that fancy magic sword or whatever from it which has
additional properties.

An item itself would then be the description which slots of the C++ item
class are to be filled with which python classes/methods, and also which
initial value each numeric property will have.

As with all of Adonthell, we want to keep code and data strictly
seperated. That way, a game creator can make all kinds of items without
touching the engine code.

Graphically, the concept would look like this:

               +-------------------------------+
               |   Engine item handling code   |         C++ engine
               +-------------------------------+         code
                   |                       |
          +--------|-----------------------|----------+
          |        |   Item definitions    |          |
          | +-------------+           +-------------+ |
          | | Item type 1 |   ....    | Item type N | |  Python
          | +-------------+           +-------------+ |  game data
          +--|-----------|----------------------------+          
             |           |
     +-------|-----------|-------+
     |  Item | instances |       |
     | +--------+     +--------+ |
     | | Item 1 | ... | Item M | | ...   Some kind of textual/binary    
     | +--------+     +--------+ |       game data
     +---------------------------+


> I'd be interested in participating in
> discussions/design/implementation of this, but naturally I'm very new
> to the project, so please take my ideas with a grain of salt :)

Any input is appreciated. Just note that a few people are quite busy
right now. So discussion about a mapeditor for example will have to be
postponed 'til they're available again. 

Anyway, discussions about schedule, character and item stuff shouldn't
be any problem.

Kai



reply via email to

[Prev in Thread] Current Thread [Next in Thread]