Producer Letter #21: New Features in Version 2.0
Hello everyone, this is Morino, the producer for ACTION GAME MAKER. Thank you continuing to use ACTION GAME MAKER. We have just released version 1.4.0, which raises the base Godot version to 4.7. There is a lot I would love to say about that, but in this 21st Producer Letter I will continue introducing changes coming for version 2.0. We previously announced the main feature of version 2.0, which is the new UI called “Maker Mode,” but we are also introducing many more features that we had wanted to implement previously but had to postpone of their complexity. This time I would like to introduce several of these features that are especially relevant to game mechanics. Here is what I will cover today:
-
New Actions: “Pick Up / Throw”
-
Enhanced support for mouse / touch / analog stick
-
Enhanced support for top-down view
-
New features related to “velocity and momentum”
-
Support for items and objects appearing in large numbers
-
The “Shared Board (Blackboard)” feature
-
Enhancements to Visual Script
There is plenty more, but explaining all of it would take far too long, so let’s focus just on the above changes for today. Let’s dive in!
◆1. New Actions: “Pick Up / Throw”
This is something we have been criticized for, going all the way back to the previous title, Pixel Game Maker MV: “Why can’t I do what old Zelda and Mario games could do?!” While technically it was possible to implement using object connections it was far too complicated. With ACTION GAME MAKER 2.0, we’ve made it something you can use quickly with just two visual script Actions.

We have also provided systems such as conditions for picking something up, and changing variables/switches when you pick something up or throw it. This means you can set things up like only being able to carry an object while holding a glove, or having a throw count as an attack. It should also work for throws in beat 'em ups and fighting games.
◆2. Enhanced support for mouse / touch / analog stick
Even though you can export to the web, you had to implement buttons via GDScript for touch input; getting mouse coordinates was subtly annoying; and wanting to read stick tilt wasn’t possible — we have addressed all of these areas where ACTION GAME MAKER had not caught up with Godot’s features. Here is what you can now do:
-
A new condition lets you handle cases such as when an object overlaps a hit box or a wall collision. Combined with the pick-up action, you can easily pick up and move objects with the mouse.

-
Use mouse coordinates or stick direction as the target for the throw action or as the firing direction for bullets. (This also solves the quietly awkward problem of building 360-degree shooters.)

-
Use the stick for player movement. True 360-degree movement is possible, and you can vary movement speed by how far the stick is tilted.
-
New actions that store values such as the analog stick’s angle and tilt amount, or the angle and distance to the mouse coordinates, into variables.
With these, I think we have covered most mouse and stick behavior. Also, because touch input behaves as a mouse click in Godot, this should cover touch input as well.
◆3. Enhanced support for top-down view
In the previous Producer Letter we announced that we would improve support for top-down view projects, and we have added three indispensable features to fulfill that promise.
-
Added A-Star style pathfinding to template movement and to the Move Object Action. It is functionally close to RPG Maker’s click-based pathfinding. This greatly reduces cases where enemies get stuck on walls and stop moving.

-
Added water surfaces (reflections) for top-down view. The water surface feature was popular, but there was the problem that it could not provide reflections in top-down view, so we made water surfaces for top-down view. In addition to mirror reflections, it comes fully equipped with features such as characters sinking depending on the water depth, and ripples and sounds appearing when you walk.

-
Added the “Knockback Self” action. Until now, knockback could only be expressed by things like moving in the opposite direction of the facing direction, or by a push Action, and it was quite hard to get the specific movement you had in mind. This new Action performs knockback at the optimal angle based on the angle relative to the center of the hit box. Of course, this can also be used in side-view, where you can additionally configure things like aerial launching.
Together with the stick support mentioned earlier, it has become much easier to make top-down action games where you move freely in 360 degrees.
◆4. New features related to “velocity and momentum”
This is another case of addressing areas where we had not been making full use of Godot’s features. CharacterBody2D, which the GameObject is based on, performs pseudo-physics processing. But for behavioral reasons our Visual Script had been canceling out that physics processing, in particular the Velocity (velocity and momentum) calculations. As a result, only the negative aspects of pseudo-physics stood out (being pushed around by collisions, unexpected behaviors), and we were not making use of the good parts. Learning from that, from 2.0 we have made velocity and momentum something you can use properly.
-
The new Action “Set Object Velocity” lets you forcibly add velocity to a target, which makes “launching” and “firing” behavior possible, such as jump pads and cannons.
-
We made it possible to add the velocity of a platform you are touching when you leave it. (This corresponds to CharacterBody2D’s Platform OnLeave “Add” setting.) This makes things like being flung upward or blasted away by the momentum of a platform that bounces you up possible. One caveat: this also applies to existing objects, so their behavior will change; to preserve the previous behavior you will need to turn Platform OnLeave off.

-
We added a new custom node, the Forced Movement Area. This lets you create an area that moves objects inside it in a fixed direction, and you can specify things like gradual acceleration or constant movement at a fixed speed. This makes it a snap to create conveyor belts, water currents and jet streams, tractor beams, strong-wind areas that make it hard to move forward, and so on.

We had been postponing this because it affects existing behavior, but we took the plunge for 2.0 and implemented it. I hope it lets you feel first-hand what is good about Godot’s pseudo-physics!
◆5. Support for items and objects appearing in large numbers
We have been working on making Visual Script lighter and more optimized, but in recent games there are times when thousands of objects appear almost simultaneously. That is genuinely too much for our current Visual Script. To remedy this, we have prepared something that stays light even when placed in large numbers, at the cost of more limited functionality. This is pretty similar to the bullets in a bullet-hell system.
-
We added “Score Drops,” specialized for things like coins and experience orbs: they scatter in large numbers, move toward an object when it comes close, and change a variable when picked up. It should run even with thousands appearing simultaneously.
-
We added “Gimmick Objects,” the equivalent of PGMMV’s “Gimmick Tiles.” By using these for things like destructible walls that you end up placing in large numbers, you should no longer run into performance problems even with hundreds placed. Also, and this is purely a personal indulgence, I have always liked the chain-destruction walls common in the games of a certain pink round character, so I made sure we included that feature too.

We are continuing to work on Visual Script’s performance, but for areas with hard limits like bullet-hell patterns and the cases above, we plan to address them by preparing similarly specialized structures.
◆6. The “Shared Board (Blackboard)” feature
Blackboards are a feature often used in AI development, and since they looked useful we adopted the idea. The concept is a little tricky, but for now it is fine to think of it as variables/switches that can do a lot more. Variables previously could only handle the float (floating-point) type, but now they can also handle the int (integer) and str (string) types as well.
Due to float’s constraints you could only handle up to 6 digits including the decimal places, but now you can handle things like scores in the hundreds of millions. If that were all, I imagine you would think “so what?” But the biggest point is that you can now store “target objects” as a list.
For example, you can record in the shared board the top 3 objects within a 500px radius of the player, ordered by the highest “HP” variable. And you can use the objects in this shared board as the target of the Change Property action, or as the firing/homing target for bullets (projectiles).

Used well, this makes things like “turn on the ‘Poison’ switch of the opponent with the highest HP" possible and relatively easy to do. Furthermore, by specifying a list as the homing target, you can produce multi-lock-style behavior, such as firing homing missiles at the 3 enemies nearest to you.
◆7. Enhancements to Visual Script
This is the biggest change. We have prepared two features: the “Sub-layer” feature and the “Action Game Maker Debug Monitor.”
◯ The “Sub-layer” feature
This is a feature for handling multiple processes simultaneously within a single Visual Script. For example, until now, if you wanted something like “Super Armor” — where you do not perform a damage reaction but still want to run processing related to taking damage — your only option was to use multiple game objects. With this feature, a single game object can handle all of the processing. Since you can reduce the number of game objects, it also makes things more optimized, and it avoids the complexity that comes from trying to synchronize multiple objects. One caveat: to avoid potential conflicts, only the “Main Layer” can handle animations.
◯ The “Action Game Maker Debug Monitor”
Until now, debugging features relied on “Output to Console” or creating something with GDScript, and we did not provide an official option. But with version 2.0, we are providing an enhanced version of the debug feature that could be displayed from the F1 menu in Pixel Game Maker MV. It lets you quickly check object states, input, variable states, transition states, and more.
Variables can be forcibly changed by typing them in on the debug monitor side, so I think this should make debugging considerably easier.
◆In Closing
Today’s showcase is getting far too long, so I will stop here. There are still many other new features, and I’ll give you some of them to look forward to: grabbing onto ladders, quick restart with no load screen, returning to the last platform you were standing on, autosaves, platform objects that move along a course, targeting the object you “last touched” and so much more!
I would like to introduce them properly at some point, but at this rate it may be faster to just have you try them.
So for version 2.0 “Maker Mode,” we plan to release a “beta version” in the near future! This will be handled by a dedicated branch on Steam.
We really want you to try it, but keep in mind that it is a beta version. We intend to make sure it is stable enough that there shouldn’t be irreversible effects on existing projects, but the possibility is not zero. So please be sure to make a backup before giving it a try.
Also, the new features to be added in 2.0 in particular may change without notice due to developmental difficulties. If that happens, it is possible that properties you had already set on those actions will be lost. Your understanding on that point is much desired.
With that, thank you for your continued support of ACTION GAME MAKER!

