2017
02.12

I’ve just discovered pico-8 and voxatron.

Those are respectively a 128X128 2D console and 128x128x32 3D voxel console. They both come with harsh limitations. For example, pico-8 has only 16 fixed colors and the game code is limited to 8192 tokens.

Yet, amazing little games have been created with this limited environment. Here are a few of my favorites.


2016
10.10

Behavior trees sneak peak

I have the first version of behavior trees ready in yendor.ts, just not yet pushed to github.

The result is that monster’s AI is now trivial as it only has to execute the tree tick function:

public update(owner: Actor) {
   super.update(owner);
   // don't update a dead monster
   if (owner.destructible && owner.destructible.isDead()) {
      owner.wait(this.walkTime);
      return;
   }
   if ( this.behaviorTree ) {
      if ( this.__context === undefined ) {
         this.__context = new Yendor.Context();
      }
      this.behaviorTree.tick(this.__context, owner);
   }
}

Now all the creature intelligence (rather dumbness right now) is described in the actor definition JSON :

    ai: {
        type: Actors.AiTypeEnum.MONSTER,
        walkTime: 4,
        tree: new Yendor.BehaviorTree("basic hostile humanoid",
            new Yendor.SequenceNode([
                new Yendor.PriorityNode([
                    new Ai.FindPlayerActionNode(),
                    new Ai.TrackScentActionNode(SCENT_THRESHOLD),
                    new Yendor.InverterNode(new Ai.WaitActionNode()),
                ]),
                new Ai.AttackPlayerActionNode(),
            ])
        ),
    },

The priority node run its children until it finds a successful one : if the player is visible, the creature tries to get to melee range using path finding (FindPlayerActionNode), else it tries to track scent (TrackScentActionNode), else it simply waits (WaitActionNode). This will make much easier to have creatures guarding the chests as planed for 0.8.0.

More info on behavior trees.

2016
10.09

Yendor.ts 0.7.0 release

There are probably a few bugs here and there, but overall it should be quite stable :

https://github.com/jice-nospam/yendor.ts/releases/tag/v0.7.0

Next step : behavior trees !

 

 

2016
10.06

0.7.0b1 online !

I’ve just pushed the 0.7.0 version on github. You can try the game here and the benchmark here.

As it’s still poorly balanced, I suggest you rather use the debug version at http://roguecentral.org/doryen/yendor.ts/game/index.html?debug=1 as you start with a lot of goodies that make survival easier.

It’s the first version featuring an actual widget toolkit and an actual scene manager. You can try the widgets in a new sample from the benchmark.

widgets-0-7-0

In this version, creatures corpses sometimes contain loot. Some chests are also placed at strategic places in dungeons.

loot_0-7-0

After a few iterations of bugfixing and balancing, I’ll start working on 0.8.0 whose main goal is to bring more monsters in the rooms containing chests. This implies a behavior tree module in yendor.ts and a refactoring of the current A.I. code.

 

[edit] : contrary to what the readme reads, the GUI toolkit doesn’t use immediate mode anymore. It’s a standard class-based widget toolkit.

2016
09.19

items_070

  • You can organize your inventory using containers (satchels, bags, pouches).
  • Drag’n drop support
  • container auto-naming (“a bag of weapons”)
  • less numbers, more text (“almost burnt out torch” instead of torch [7%])