Producer Letter #17
About the “Lightweight” Game Objects Currently in Development
[p]Happy Holidays! This is Producer Morino again, with the last letter for 2025![/p][p]In this 17th Producer Letter, I would like to provide you with some information about the upcoming “lightweight” game objects that are currently under development.[/p][p][/p][h2]
◆ The Need for “Lightweight” Game Objects[/h2][p]Currently, all game objects in
ACTION GAME MAKER are created based on the
CharacterBody2D node from the underlying Godot Engine.
This node performs real-time collision handling and pseudo-physics processing, enabling advanced behaviors such as velocity-based pushing against other objects or sliding along walls according to inertia.[/p][p]Because it offers so many capabilities and makes issues like passing through walls at extremely high speeds less likely, it is ideal for player characters and enemies in side-view experiences. However, it has the drawback of being relatively ‘heavy’ in terms of processing costs.[/p][p]As a result, when using these objects for things that are needed in higher numbers, such as shotgun bullets, items, UI elements, and other objects that do not require collision processing, this approach has proven to be overly expensive.[/p][p]To address this issue, we plan to implement two new types of game objects:[/p]
- [p]A lightweight game object based on Area2D[/p]
- [p]A FireBarrageBullet object that performs only the minimum required processing needed for bullets[/p]
[p][/p][h2]
◆ Area2DGameObject Details[/h2][p]As stated above, this is a game object based on
Area2D, one of Godot’s default node types.[/p][p]Area2D is the same node type used for hit areas and attack areas. Unlike CharacterBody2D, which is used by ACTION GAME MAKER’s existing game objects, it does not have a physical body. Instead, it functions like a sensor that detects when objects or other areas enter its region.[/p][p]Depending on how visual scripts are used, this can reduce processing load by approximately
20% to 40% compared to the existing game object type. However, there are some limitations.[/p][p][/p][h3]
◯ Area2DGameObject Demerits[/h3]
- [p]It cannot use Godot’s physics-based 2D collision system.[/p]
- [p]Certain node and visual script properties that require collision do not function, specifically:[/p]
- [p]“Slide on slopes”[/p]
- [p]“Corner Correction” in MoveAndJumpSettings[/p]
- [p]Certain visual script action settings that require collision do not function, specifically:[/p]
- [p]“Bound”[/p]
- [p]“Can’t Fall Off Ledges” in MovementTemplates[/p]
[p][/p][h3]
◯ Area2DGameObject Merits[/h3]
- [p]Other than the listed demerits, can access the same functions as the current GameObjects.[/p]
- [p]Although Godot’s collision system cannot be used, contact with tiles and objects can still be detected. By creating visual script with conditions like “stop when touching a tile,” it is possible to simulate collision behavior.[/p]
- [p]Existing GameObjects can be converted directly into the new Area2DGameObjects by using Change Type. The reverse is also possible.[/p]
[p][/p][h3]
◯ Intended Usage: Area2DGameObject and GameObject[/h3][p]For characters that need some presence, such as players and enemies, we recommend continuing to use the existing full power GameObject.
However, for top-view characters that do not require complex collision behavior such as being pushed by moving objects, Area2DGameObject may work without issue.[/p][p]For items, bullets, UI objects, and other objects that do not require character-level collision, use of the new Area2DGameObject is strongly recommended.
But if you need blocks that can be ridden on or pushed, or bullets that need to bounce/reflect, the GameObject type should still be used.[/p][p]Give that in most games the doodads like collectibles are the most common game objects, and most of those can be changed from GameObject to Area2DGameObject, we expect that many games will see a noticeable reduction in processing load.[/p][p][/p][h2]
◆ The FireBarrageBullet Function[/h2][p]Rather than being a new type of game object, this is a new visual script action that fires very simple bullets with extremely minimal processing.[/p][p]These new bullets cannot have a custom visual script assigned to them, but their behavior can be controlled to some extent through the visual script action that creates them.[/p][p]Here is a video showcasing the new system in action:[/p][p][/p][p]In this example,
30 bullets are fired simultaneously, repeated
20 times every 0.3 seconds, for a total of
600 bullets on screen.
Please note that since this system is still under development, the final performance at release may differ.[/p][p][/p][previewyoutube][/previewyoutube][h2]
◯ Overview of the FireBarrageBullet Action[/h2][p]Movement patterns are created by combining the firing method with the bullet’s behavior after being fired.[/p]
- [p]Firing Methods[/p]
- [p]Omni-directional[/p]
- [p]Rapid Fire[/p]
- [p]Shotgun[/p]
- [p]Bullet Behavior[/p]
- [p]Straight[/p]
- [p]Curve[/p]
- [p]Direction Change[/p]
- [p]Homing[/p]
- [p]Division[/p]
[p]In the example video, the barrage uses the Omni-directional firing method with bullets spaced every 24 degrees. After firing, two types of Curved bullets are generated simultaneously: one curving by +0.3 degrees per step, and another curving by −0.3 degrees per step.
![]()
[/p][h3]
◯ Limitations of FireBarrageBullet[/h3][p]As mentioned earlier, visual scripts cannot be assigned, so fine-grained control is not possible.
And also unlike existing bullets, barrage bullets also cannot be edited directly by modifying a specific bullet node.[/p][p]As a result, it is not possible to attach particles to bullets or apply animations.
So while this system is extremely lightweight in performance terms, it comes with soime strong limitations.[/p][p][/p][h2]
◆ Closing Remarks[/h2][p]Area2DGameObject and the barrage system (FireBarrageBullet) are currently under testing, and we plan to release them as
Version 1.2.0 in the early part of the coming year.[/p][p]It has been six months since release, and we understand that there are still areas where we inconvenience our users. However, we remain committed to continue our updates the coming year, so please stay tuned![/p][p][/p][p]And that’s all for this letter. Happy New Year’s to you all, and we’ll chat again in the new year![/p]