Development Update as of 10/24/16
Over the past few weeks, I have mostly been focusing on some new camera scripting functionality, improvements to the Voxel Editor tools, and various Script Editor updates. Apologies for how long it has been since my last development update. I've made it over some big hurdles, though, in regards to the camera scripting!
I've been trying to post updates on my Twitter account (Twitter.com) at least several times a week, so check it out if you are interested in receiving frequent updates on what I am currently working on. For the most part, my IndieDB updates are just an accumulation of the smaller posts that I've made on other social media.
Read on for details around some of the exciting progress I've made! :)
A new "Editor Tools" panel was added to the lower left area alongside the "Properties" panel. For now, this is only applicable to the Voxel Editor, but will eventually contains tools for other editors as well. All of the editing and drawing tools were moved here from the Voxel Editor toolbar for more convenient access.
The color palette size was increased and can now be directly accessed on this new panel. This should make the drawing process less tedious when switching between colors. The functionality for replacing colors is now handled by the "Fill" tool (the button with the paint bucket icon). You can now also decide whether to replace the color on only the current frame or for all frames. To use the "Fill" tool, you simply select the desired color in the palette, then click on the color you want to replace in the model.
The "Editor Tools" panel also contains a new tool for flipping your model horizontally. The tool button is located after the set of buttons for shifting the model. As shown in the GIF below, this tool can be very useful for creating walk animations for characters by eliminating the need to redraw the position of the arms and legs. When using the flip tool, the flip direction will be done relative to the current view.
As I mentioned at the beginning of this article, I've managed to make it over some big hurdles in regards to camera scripting. The image below gives a look at all of the new camera-related functions that are now implemented. These should allow for some cool cutscenes in your game, or any sort of custom camera movements in general!
After some time of research and learning, I was able to make use of methods such as linear interpolation and smoothstep/smootherstep in order to achieve some really nice looking camera movement and rotation over time. A good example of this can be seen in the video below, which demonstrates the "Move Camera Over Time" function. The camera is gradually moved to a new position (Destination Coordinate) in front of the treasure chest over a period of time (Move Duration) while also rotating to look at the chest (Look At Target) simultaneously.
The video below is another example of camera scripting. This script also makes use of the new "Wait" function along with the "Play Group Animation" function to achieve the effect of the trees mutating over time. In both of these videos, the "Reset Camera Over Time" function is also used to reset the camera back to its original position and return control to the player.
Script Editor/Dialogue Editor Updates
I also integrated some new improvements into the Script Editor and Dialogue Editor. (Credit goes to the Godot Engine developers for these 3 enhancements.)
- Box selection: You can now drag a box around multiple nodes to select all of them together.
- Snap to grid: A grid is now displayed by default in the background of the graph, and when dragging nodes they will snap to this grid. The grid size can be adjusted and can also be toggled on and off using the "magnet" button.
- Connection lines: General improvements to the way connection lines are drawn between nodes (lines are now drawn behind other nodes instead of overlapping, lines are antialiased, etc.)
Here is a preview of the new look!
In addition to the visual graph improvements, I also added a new search box to the top of the Script Editor's palette. As the number of functions included is starting to grow significantly, this will make it simple to search for a particular function that you are wanting to add into your script. The search will filter the list to only include functions that contain the text within the name or description.
There are also a few other new scripting features worth mentioning listed below:
- "Put Entity" scripting function: Instantly positions an object or character onto the specified tile, similar to the "Put Player" function.
- "Set Dialogue" scripting function: Sets or removes the dialogue of the specified NPC.
- "Start Dialogue" scripting function: Starts the specified dialogue. This is useful if you want to begin a standalone dialogue that is not dependent on being triggered by an NPC interaction.
- An "On Load Script" can now be specified per map from the Properties panel. This script will be executed any time the map is loaded.
Thanks for reading! :)