Unfortunately I won’t be able to work a lot in the project for the next couple of weeks since I’ll be flying to San Francisco for the Roguelike Celebration and there’s another private game dev project I’m working on, but I’ll come back strong after that, I promise!
After all the craze that was 2017 js13k, I went back to my duties with OpenArthurianX6.
So far I’ve been working on the combat system mostly. The game features an hybrid action mode, the “mobs” move around the grid based map, deciding what to do every x millisecond (at first restricted to moving around or sitting idle). First task I took was allowing the transition to combat mode, in which the mobs take turns to act.
To achieve this, I added a synchronization phase where all mobs finish their moves before the actual combat state is established.
Next up was adding the “attack” action, but in order to make it work, a major refactor on how the actions flowed was done. Everything was changed to use promises instead of timers. This will allow to more easily add other actions in the future as well as parallel input modes (keyboard/mouse)
Finally, added some simple AI for mobs to seek enemies based on their alignment, for now they just seek the player and attack him. The actual attack action was pretty straightforward to implement for the mobs since they are the same as the player 🙂
I streamed the development of this latter part, you can check it in Slashware’s youtube channel here!
I don’t think there’s a perfect way to approach planning this kind of project, so we’ll shoot for one, then once we have done some iterations of it we’ll evaluate and see what’s the best way to continue.
The first iteration of the engine we are looking forward to have is having all basic systems working, keyboard only, desktop only running in a browser.
One facet we are using for planning are actions the player can do
Move around the map
Pick up an item from the map
Examine item on world
Read book or world feature (signpost, plaque, etc)
Examine world feature (find secrets)
Open and Close doors
Doors with keys
Doors opening with buttons / levers combinations
Talk with a NPC
Asking a NPC to join the party
Talk with a Party member
Ask a Party member to leave the party
Check the status of a party member
Set the Tactics / Manual for a party member
Check the inventory of a party member
Drop an item on the map
Move an item on the inventory to a container on the inventory
Move an item on the inventory to a party member
Move an item on the map to a container on the map
Check a container on the map
Pick up an item from a container to the inventory
Examine item on inventory
Use item on inventory
Enter and leave combat mode
Attack an enemy within melee distance
Attack a far away enemy
A second facet of planning corresponds to some features of the engine which may or may not be related to the player actions.
Moving around the map is a capability, but managing and displaying the maps themselves is an important aspect of the engine.
Day and Night Cycle
Select action in combat mode (AI)
Select action in peace mode (AI)
Action scheduling in Peace mode
Action scheduling in Combat mode
Use Item effects
Recover HP (% or fixed value, mob or party)
Recover MP (% or fixed value, mob or party)
Recover hunger (% or fixed value, mob or party)
Enter music mode (Play instrument with keys 0 to 9)
Big thanks to all contributors, the project has been funded…. Yay! 😀
I’ve confirmed with Jucarave (a.k.a. Exodus Destiny Dragon), and we’ll get to work on this as soon as the campaign is over.
Now that we have reached the base goal, it would be awesome if we manage to hit the stretch goals, here’s an excerpt from the campaign:
Base Goal ($2.000)
We will deliver a free, open source game engine which you can readily use for your project including a content pack (Medieval Fantasy). This version of the engine would not include any tools to manage your game data (characters, monsters, object definitions), everything would be done at code level using data files and Tiled.
$3.000 – Game editor including Objects and Monsters managers
$4.000 – Full game editor including Character and Magic System managers.
Beyond – each 500$ will be used to create a new themed content pack (Space, Modern, Futuristic, Western, Steampunk, etc.)
So, if you like this kind of games and would love to see more of them being created, or if you feel you’ll like to develop one yourself, spread the word and contribute if you haven’t 🙂
Really excited to work on this and I’m glad it’s already going to be out there for gamedev enthusiasts to toy around with 😀
I have been working on OpenArthurianX6 a bit, just to be able to show what kind of a game the engine would be able to create once its done (and to actually show people this is for reals :))
I added support for “mobs” than move randomly over the level in what I call the “async” mode; this is the default mode when you are not in battle, and everybody acts freely without a given turn order (note that the movement is still grid-based).
The player is actually a mob too, so he shares the code to move around with the rest of the NPCs.
Making the engine is going to be hard but fun at the same time. So many things to have in mind in what would seem to be a simple thing to the untrained eye 😉
The campaign ends in about a month and it’s a bit quiet lately so please contribute and share it if you find it interesting!!