Resuming Dev of Milestone 7

Milestone 6 was already completed in May 18, 2020, so I marked it accordingly in the milestone status page.

I continued development of Milestone 7, my plan is to do another big push like we did about 10 months ago, with 1hr daily. Hope it goes well!

I will be streaming in twitch, youtube and facebook.

v0.8 released, Milestone 5 Completed!

Check out the online demo here

I set myself to finish the project, and I’ve been streaming 1 hour of dev daily almost continuously for the past 22 days (!).

Milestone 5 took much more work than I anticipated; building a complete mouse-based inventory system was a lot of work (even when I started from the work that Exodus Destiny had done already). But it’s working great and we are closer to the finish line now.

This new version adds the following:

  • Click on a party member to open a window with his equipped items.
  • Click on a container to view its contents.
  • Drag items between container windows.
  • Drag items from containers windows into the world.
  • Drag items from the world into container windows.
  • Drag items into containers and mobs.
  • Allow adding containers with preset contents into the map
  • Title screen
  • Double click to use items
  • Lute and Harpsichord musical instruments.
  • Add backpack inventory background from Nuvie.
  • Solid items (like barrels).
  • Prevent adding items into a container that is contained by the item


v0.7 released, milestone 4 completed

Check out the online demo here

I’m set to finish the project, I’m streaming 1 hour of dev daily. (Check Day 2 and Day 3)

I decided to swap the scope of milestones 4 and 5, since what I had for M5 was completed and the work in the original M4 is halted (need to check status with Exodus Destiny).

This new version adds the following:

  • Allow using spendable items on inventory to recover HP/MP
  • Add items that are used without direction prompt
  • Transition to “Playing Music” state
  • Allow using items on the ground
  • Allow playing the lute (using piano notes for now)
  • Add light source item types that can be toggled on and off (still no effect on visibility mask).



v0.6 released

This is mostly a bugfix / refactor version, based on the feedback received over v0.5

You can play online here:


  • Separate Talk command
  • Step on party members
  • Prevent FOV glitch by forcing an updateTransform after affecting the mask
  • Prevent concurrent mob activation after dialog when coming from idle AI
  • Upgrade to phaser-ce 2.13.2
  • Simple mouse or tap movement
  • Allow configuring game width and height, basic viewport responsiveness
  • Don’t load save games from old serialization models
  • Add missing cowCorpse item
  • Prevent moving off the map
  • Remove camera bounds, allowing it to keep centered on the player when walking near the borders of the map
  • Add option to go toggle fullscreen
  • Decay messages after 5 seconds, gray them out
  • Refactor to handle mobs and items as object layers
  • Change appearance of stairways


Milestone 3 completed!

I’m developing full speed. Milestone 3 is completed now as of version 0.5. Check the demo online here. Onwards to Milestone 4

  • Support for multiple height levels per map
  • Support multiple layers of tiles per level per map
  • Smooth transition between levels using stairs
  • Using levers to open and close doors
  • Finding hidden objects
  • Solo mode, so you can move around with an individual party member.
  • Examine items on inventory
  • Update pathfinding data when opening and closing doors.



Milestone 2 completed!

I’m developing full speed. Milestone 2 is completed now as of version 0.4. Check the demo online here. Onwards to Milestone 3


  • Restore door state correctly
  • Fix Drop item flow
  • Use inventory item with the keyboard
  • Integrate using a key with the mouse with the main logic
  • Add armor
  • Display equipped weapon and armor on inventory
  • Click on party member to show inventory
  • Fix issues with the door opening and unlocking, and click interaction
  • Draggable inventory panel
  • Fix floating item state transitions
  • Change appearance of Asteroth
  • Ensure combat turns triggers are done before the mob action. Separate endCombat action.
  • Destroy old level when loading a new one, fix an issue with combat end before loading level causing issues with party member positioning.
  • Fix issue when trying to talk to non-NPC mobs
  • Make half of the door objects “fixed”, so you cannot walk thru them even if they change their appearance to open
  • Fix conflicts with look box being active during WORLD state
  • Add area to Iolo’s hut
  • Allow canceling floating item selection

M2 Work Update

  • Pack as a native app via Electron


  • FOV
    • Add mask as a non-camera fixed group, to make it move smoothly with camera
    • Update mask when opening and closing doors
  • Keyboard commands
    • Use: Open and close doors
    • Look
    • Inventory: For the different party members, using number keys
  • Read books


Line of Sight

Was considering what would be the best way to do this. LOS in Ultima 6 is weird since it seems to be location-based (once you open a door you can see the room inside), but you can see through walls (some times?).

I thought just replicating it for the sake of it didn’t make sense and would bring more complexity for map handling and editing. So instead I went for a full system with opaque tiles, so you just have to define the tile as opaque and the engine takes care of the rest.

The current implementation is a pretty simple raycasting, and a mask drawn over the map. It works almost great except the tweening of the mask moving is not in sync with the camera tweening, which causes some small artifacts in the mask border.