Archived from groups: rec.games.roguelike.development (
More info?)
The Sheep wrote:
> At 12 Jul 2005 13:18:26 -0700,
> Jan Drahokoupil wrote:
>
> > The Sheep wrote:
> >> At 12 Jul 2005 12:21:50 -0700,
> >> Jan Drahokoupil wrote:
>
> >> Shoudn't it be written in the way that allows you to add a new event
> >> easily when you notice it's absolutely necessary?
>
> > Well..I'm adding all those events to the engine as you see almost in
> > real-time so there's not much problem to implement it..because all I
> > essentially did was adding lines:
> >
> > TcITEM.OnEvent(..)
> >
> > The events cannot be added in real-time, not because it's not possible
> > to do it but because they won't be called on the right places by
> > engine. Consider the analogy of item events to component events..You
> > can simply add them (events) to your component but you have to
> > implement them in your program. This is simply impossible to achieve
> >
)
>
> I think you need some kind of simple testing game at some stage anyways.
For sure
There're many scripts already predefined (opening doors as
the first one
) and K8 is actually fighting with testing. We do
implement them because it's almost impossible to write an engine
without actually seeing it alive
But surely we'll need some
feedback.
> Once your projects enters beta stage you can, hopefully, get some feedback
> from the mod-makers.
I hope so..
> > I know that I can't bundle all final events into the engine now but I'm
> > trying to bundle at least as much as I can (with help of others).
> > Because events are in-fact virtual user calls which I don't have to
> > implement (it's their job) it's easy to add them even many and even
> > structured in groups.
>
> Too many hooks make it worse -- every piece of interface (with the
> modules, not with the player) you add to your engine highers the entrance
> theresold a little bit and makes the learning curve worse.
That's sadly true..the manual (a nightmare of programmers) will be a
must. We're trying to keep it intuitive but when it reaches certain
level of complexity the intuition doesn't always help.
> Structure helps here, OO-aproach to the data files helps too, but there
> are limits. It's sometimes better to have one generalized hook that's
> obvious, than to have lots of them, but requiring lookup.
I guess many things regarding the quest control will be solved by our
MQN (Modular Quest Network) this should solve some problems to open
ends and possibilities..
> It's especially dangerous when there are several ways to do certain
> specific thing, but some of them are better than others.
I'm not getting out of responsibility but I hope that this should be
mainly the mod-makers concern. We're trying to make it easier to him as
we can. Using straight-forward approach.
> The interface problems need much more to solve than a discussion on
> a newsgroup. And you need a good intrfave for the modules if you want
> games for your engine.
>
> > OnDisarm = Being.UseSkill (depends on parameters)
> But shudn't there be an event connected with the trap, not the being?
When a skill fails then OnActivate of trap should be called and it's
effect unleashed but when successful I guess there's no reason for
having event on trap itself. All necessary should be handled by
Being.OnSkillUsed (called by UseSkill) because the trap (instance) is
available there. So if there're some reasons to do something with that
trap when it was successfully disarmed (don't have idea what actually
?) you can do it there (in Being.OnSkillUsed event).
> > OnPutInto = Item.OnDrop (depends on parameters)
> > OnGetFrom = Item.OnPickup (depends on parameters)
> They seem a little unintuitive. I mean you're not dropping the items, you
> just reorder your bags. I'd assume the OnDrop event is called when the
> item is dropped on the ground.
> Also, no even for the container itself (I suppose the
> increasing/decreasing weight is handled by the engine, but there might be
> other similar attributes programmed by the mod-maker).
Ok..I guess you're right they're a bit user unfriendly so I added them:
OnInserted
OnTakenOut
> > OnOverflow = checked by mod-maker's script when Item.OnDrop
> >
> > but essentially no problem to implement them alone
>
> You must be aware that it's the trade-off -- either it's simple to learn
> or it has lots of hooks.
Again.. MQN should be helpful in controlling the storyline-flow and
monitor all the open ends.
> >> Maybe you could also play some roguelikes and take notes what things
> >> happen with items around you (not necessarily handled by the game).
> >
> > I played many RLs (in fact I got ~40 of them on my HD) but believe me
> > this more time consuming than just asking everybody else because
> > there're authors and players present on this thread.
>
> Just a suggestion on where you could get more ideas.
> It may be irrelevant for your engine, but in my game I have a separate
> action for aiming and for shooting, so you'd need events for creatures:
> OnAimedAt, OnShotAt (OnAttacked?), OnSpotted, OnHidden, etc.
OnThrown and OnShot should handle these.. Because they're proceeded
when returning true as a result..
OnSpotted was already suggested by Andreas and added so as these:
OnSeen - when in sight of somebody (probably will be left as a
Being.Event)
OnNear - when near somebody (now I think this should be solved
differently)
OnPresent - when on a specific level check (place?)
>
> --
> Radomir `The Sheep' Dopieralski @**@_
>
) 3 Snap!
> . . . ..v.vVvVVvVvv.v.. .
regards,
Jan