• entries
    500
  • comments
    1888
  • views
    333618

Engine Fun

Sign in to follow this  
EDI

80 views

Last night saw lots of stubbing out of new engine components.

Entity - basic world unit that can serve many functions
Light - description of a light source
Color - 32 bit logical ARGB color
Map - a map in the game, most of this will be moved over from flare 3
Palette - a managed texture containing images

Dave's working on our binary serializer, which will be doing the grunt work of saving and loading a game-state.

so far so good, moving at a good pace =)
Sign in to follow this  


3 Comments


Recommended Comments

Well, since this is a very well-defined, data-driven (no real code additions or subclassing) Entity will be what most things you see in the game are, they can do one or more of the following:

  • They can be moved around the world
  • Can be an animated piece of art
  • Can be a particle emitter <-maybe not sure yet
  • They can be lit
  • They can act as an audio source
  • They can act as camera targets
  • They can act as environmental triggers

    All entities have a general Key-Value dictionary which is used to store thier associated variables (settable through scripts), it is by this 'customization ability' we dont need to subclass entity, except in rate circumstances.

    Each entity also has a script that it sends all of it's events too, 'passing it a 'this' with it', events such as:

  • onCreate
  • onSecond
  • onMinute
  • onHour
  • onDay
  • onEnter
  • onLeave
  • onAnimationStart
  • onAnimationDone
  • onMotionStart
  • onMotionDone
  • onClick
    ...

    by using these triggers we 'weave' the story together, using information that the engine exposes in the form of function calls, some function calls are:

  • createEntity()
  • beginSequence()
  • endSequence()
  • beginDialogue()
  • endDialogue()
  • wait(millis)
  • cameraTrack(entity)
  • moveEntity(entity,[x,y|entity|tileName])
  • animateEntity(entity,animation)
  • placeEntity(entity,[x,y|entity|tileName])
  • removeEntity(entity)
    ...


    The one exception to not extending Entity, is with Doors; Doors are a pretty important, well-defined and most importantly 'Integrated' feature of the engine, doors are special entities that expose all of the same properties of a regular entity but add new events and functions, such as:

    onDoorOpened()
    onDoorClosed()
    onDoorLocked()
    onDoorUnlocked()
    onDoorBlocked()
    onDoorUnblocked()



    doorOpen(door,bool)
    doorLock(door,bool)
    doorBlock(door,bool)

    //set hard-states (no events,no animation,no sound etc)
    doorOpenState(door,bool)
    doorLockState(door,bool)
    doorBlockState(door,bool)



    So making a game with this engine all comes down to a few things:

    1. make story
    2. make art
    3. make audio
    4. make maps
    5. write scripts to tie it all together (script story)

    Isn't that what game making is supposed to be about? =D

    Share this comment


    Link to comment

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now