OpenArthurianX6 – Milestone 9 completed – World split into chunks

The single goal for this version was not a simple one: to transition from a model where the player warped from one “Level” to the other, into a World model based in Chunks, allowing the creation of very big open-world maps with seamless transitions between them (ala Ultima VI).

This involved breaking the “Level” class, splitting its responsibilities into two classes: World and Chunk, and reworking how pathfinding worked so that mobs could still find their way between chunks. All around changes were made so that mobs, items, objects, and doors continued working fine, as well as NPC schedules.

So, there are not a lot of new functionalities to talk about here, but all this invisible work will hopefully pay off when making use of the engine to create big worlds.

The Demos page has been updated so you can play online or even download the win64 package.

Onwards to Milestone 10!

OpenArthurian: M8 Completed, Source Code Released

There was a short dev push after Milestone 7, only for a prolonged freeze period to happen afterwards. This week I decided to push forward so now the milestone 8 has been completed!

The Demos page has been updated so you can play online or even download the win64 package.

Along with small fixes, this new version (0.10) includes the following:

  • Allow ending Combat using C while in combat mode (and no dangerous enemies nearby)
  • NPC Schedules! they will hop from location to location (including opening doors when needed), and sleep during the night somewhere.
  • Added two test NPCs to Iolo’s hut (Corvus and Calista) and a test schedule for them.
  • Line of sight reduced based on time of the day.
  • Atmospheric color based on time of the day
  • Sleeping mobs won’t talk, and will wake up when attacked.
  • Neutral mobs will now flee when attacked.

Furthermore, I decided to release the source code of the game at this point! it was initially planned to be done on v1.0, but I figured it has been long enough to put it out there for people to start toying around with it. You are welcome to take a look at the github repo!

Onwards to Milestone 9!

OpenArthurianX6 0.8 released

Check out the full info and online demo at the OpenArthurianX6 blog.

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

m5

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.

OpenArthurian v0.6 released

Mirrored from https://openarthurian.com/2019/09/01/v0-6-released/

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

You can play online here: http://slashware.games/oax6/0.6/

Changelog

  • 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

mobLayer

OpenArthurian – Milestone 3 completed!

Mirrored

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.

oaxM3-2

oaxM3

OpenArthurianX6 Milestone 2 completed!

Mirrored

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

oax6dragable

  • 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

OpenArthurianX6, Line of Sight

Crossposted from OpenArthurian devlog.

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.

fov1fov2fov3

OpenArthurianX6 – Saving and Loading Games

Mirrored from OpenArthurianX6 devlog

:: Finally managed to make saving and loading work, which involved doing a big refactor on the data that was being kept on each entity. I’m using my own circular-functions library and even had to push a small bugfix after about 4 years. See it working in the video below.

This will require some more testing, some bugs likely managed to slip in since it’s a big change.

Also, since the last update, the changes done by Jucarave for door handling were merged in, as well as the popups with item descriptions.

Next up to finish milestone is:

  • Line of Sight, still thinking of how to do it, considering the following options:
    • True LOS using raycasting or shadowcasting like a traditional roguelike, might be a bit heavy in the processing and might look a bit weird with the scrolling, but would be more accurate and apply to a lot of different situations without special casing. Just need to define whether a particular cell type is opaque or not.
    • Ultima 7-like, using different “zones of sight”, so if you are inside a building you can only see inside the building (but you can also see other nearby building through the walls!), and if you are outside the buildings you can only see the wilderness (but you can see through buildings!).
    • Ultima 6-like, with more elaborate areas of sight, so once you open a door you “unveil” the room, but then would have to keep track of these areas, and model them as part of the maps. Also you can see other unveiled rooms thru the walls.
  • Reading Books, which should be simple enough.