Hello again! I hope everyone is having a great day. Over the past month or so, I've been putting a lot of time into the game logic side of things, in particular the implementation of scripting function logic. I'm currently up to 31 of 73 functions completed, so almost halfway there! The debug console has been really convenient for testing each function as I work through them. Continue reading for a look at a few of these in action, as well as updates on the Map Editor.
At this point I still need to implement a lot of the gameplay logic to allow the characters to move around and interact with the map, but in the meantime I've been implementing the scripting logic for functions that aren't reliant on this. I've included a few examples below!
Fade In/Out: Can be used to transition between segments of a cutscene or as a way to hide visual modifications to the scene (e.g. removing a character or object).
Add Tile: Adds a tile at the specified coordinate within the map. You can assign it an entity ID and then use "Modify Navigation" to configure navigation paths. As seen in the GIF below, I've also added commands ("nav on" and "nav off") to enable/disable the display of navigation paths for debugging purposes!
Set Animation Speed: Changes the speed of an animation (in frames per second) for the specified entity. You can use this in conjunction with "Set Movement Speed" to speed up or slow down a character's movement.
Since my last update, I've also been migrating some existing functionality over to the new Map Editor for v0.5 and adding small new features here and there as I go.
Grouping and related features are now completely implemented in v0.5. By adding tiles and objects to a group, you can hide/show them in the editor, or use them for scripting in your game, for example with the "Play Group Animation" or "Hide Group" functions.
A feature that will be new to v0.5 is the Fill tool. This will allow you to easily replace tiles of one type with another. The "contiguous" checkbox can be toggled to determine which tiles are affected.
Although it's a bit uninteresting compared to other things, I think providing an Undo/Redo system is important, so I've been making sure actions can be undone when possible, for example placement of tiles as shown below!
Another small new feature is the "Override Existing" checkbox available when placing tiles into a map. Previously, tiles would always be overridden, but this option will give more control when creating the map.
I updated the collage image to include a few more screenshots of RPG in a Box projects created by the community and myself. It's exciting to see this grow, and I really look forward to seeing what else the community creates in the future!
Over the past week or so I've been mostly focused on some important script parser rework, which will hopefully result in a more optimized and flexible parser. Just so everyone is aware, next week I'll be taking a short break to get some much needed rest, but I'll be jumping right back in the following week! At that point, that plan is to finish up the script parser work and resume implementation of gameplay logic into the engine. I'll also be posting another update at that time with some additional media that I cut from this post to keep it to a reasonable length. :)
Thank you so much for reading and for your continued support! Don't forget to check out the Trello board for RPG in a Box to follow my development progress in real-time!
If you'd like to find out more about RPG in a Box or try out the free demo version, check out my Itch.io page here. Thanks again! :)