[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Piece of advice about scripting design for my game.
- From: Julien Hamaide <julien.hamaide@...>
- Date: Mon, 29 Oct 2007 11:34:39 +0100
Hi,
Comments are placed below
HexDump HellRaiser wrote:
> Hi everybody,
>
> This is my first message to the list so I would like to say hi to
> anybody out there.
>
> I have decided to post to the list because I have some problems
> designing the scripting infrastructure for my game (it is obvious I´m
> usign lua).
>
> I will explain first how things are setup at the moment:
>
> 1) All is about how to manage entities in my game (monsters, player,
> etc...).
> 2) My classes will be splited in two, a c++ super class, and a data in
> lua with behaviours (logic for entities) for every entity (in a table or
> something else).
> 3) the c++ class is just a proxy class, that receives events and call
> lua events for the entity (just a bridge).
> 4) Ok, now the real problem, how to setup things on lua to hold entity
> instance data and behaviours and how to access them:
>
> I have been thinking I could have a master state with substates (one
> per entity instance). The substates wil be kept by teh c++ part
> of the monster class to allow me easy access to its properties
> without indexing.
> In the master state I should be having an entity array holding all
> created entities references to allow an entity (substate), access
> another entity data for logic or whatever. In the master state there
> will exist all entities blueprints too, that will be loaded form a dir
> when game is inited with lua_loadfile or whatever. This blueprints
> are used to really instantiate the monster in lua side.
We've started with such an architecture, but we finally decided to have
a state for each entity. The reason is that multi-thread access to a
single master vm needs a critical section that prevents all other
subthread from being executed. If you need parameter sharing, I would
advise you a messaging approach, as you won't run into order dependent
situation.
>
> To create an entity, I will be calling my entity manager in c++ that
> will instantiate the c++ part of the entity (the generic class). This
> will create a new lua_state and will keep it in a member of the
> class, this state will be the enviroment for the lua part of this entity.
> Next I should be intancing the lua part of the blueprint in this
> state, and everything will be setup, and logic on this instance can be ran.
>
> So, I need someone to give me a good of advice about this "mental"
> design, to tell me if I can manage to do things as I´ve being described,
> becasue I don´t have too much experience with lua. I have read the docs,
> but I need more experience on it.
The whole idea seems to be ok, but how do you manage querying
information from other entities???
>
>
> Thanks in advance,
> HexDump.
>
>
>
>
>
> ------------------------------------------------------------------------
> Express yourself instantly with MSN Messenger! MSN Messenger
> <http://clk.atdmt.com/AVE/go/onm00200471ave/direct/01/>
--
--
Julien Hamaide
Engineering Coach
10Tacle Studios Belgium / Elsewhere Entertainment