Announcement

Collapse
No announcement yet.

Fire Propagation, Persistent World and Interactive Computer Thoughts

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Fire Propagation, Persistent World and Interactive Computer Thoughts

    Good evening everyone, just had a couple of quick questions about the engine, as I am working on a project with it and was hoping to get a couple of pointers from far more experienced users.

    Question 1: Regarding Fire Propagation (AKA: Spreading fire)
    How would one go about making a room in which fire could spread (by spread, we'll say an emitter on a bed triggers a nearby chair or dresser to catch fire). I have a couple of thoughts, but I would like to see what the community has to say about it.

    Question 2: Persistent World
    Ideally I would like to have a sort of Deus Ex type of persistence where the position of items and certain states are maintained throughout the game. If the player walks in and drops an item on the ground, the items position should remain there for the remainder of the game, even if the game is reloaded. I have a feeling this will best be achieved via SQL Lite, but again wanted to see what others had to say who may have attempted this before.

    Question 3: Interactive Computer
    Ideally, what I am envisioning is the player right clicks on the computer and the camera zooms in to the interface. The player has not changed maps (events continue to happen in real time in the main game), but the mouse cursor now allows them to interact with a menu which is presumably done with Scaleform and Flash. Is this possible?

    Thanks everyone!

    #2
    Welcome to the forums!!! So:
    1.
    Also thought about it recently. I can think of two, propably inefficient ways:
    a)
    Code:
    foreach DynamicActors(MyActor)
    {
        if(BurnableActor(MyActor).IsBurnable && VSize(Location - MyActorLocation) <= BurnDistance)
             {
                   BurnableActor(MyActor).SetOnFire;
              }
    }
    b)
    Code:
    foreach BurnableActors(MyActor)
    {
          if(VSize(Location - MyActor.Location) <= BurnDistance)
                MyActor.SetOnFire();        
    }
    2.
    Check out my signature savegamesystem.

    3.
    Yea, you can use a trace checking if your in front of pc when you rightclick, the in the playercontroller set location in front of pc, spawn a mouse (mouse dev kit gem), And spawn clickable actors on the screen as the interface. (Or just use a scaleform video as the screen).

    Comment


      #3
      Originally posted by EhPlusGamer View Post
      Question 1: Regarding Fire Propagation (AKA: Spreading fire)

      Question 2: Persistent World

      Question 3: Interactive Computer
      1) Objects could have a couple of properties to determine how flammable they are. Fire 'emitters' can probe the surrounding environment, incrementing a 'combustion' counter on each object based on the objects flammability, distance to the emitter, ferocity of the fire, etc. Multiple emitters will cause more rapid combustion. As the combustion threshold approaches the object can smoke/smoulder, then finally catch fire and become an emitter itself.

      2) If its single-player and scale permits, you could just use BasicSaveObject to store data through a single, dedicated object. This is also a good way to get started if you want to get on with game mechanics and prototyping.

      3) I'd do the whole thing in Scaleform. You can't use the full Flash API, but most of the language features are available to create the whole experience within the GFx movie.

      Comment

      Working...
      X