~melmon/danmaku_engine

A bullet hell plugin for Godot
122160e4 — melmon 4 months ago
hiatus
e5ce4e69 — melmon 4 months ago
More patterns and improvements
b344b1df — melmon 4 months ago
Emitter things

refs

master
browse  log 

clone

read-only
https://git.sr.ht/~melmon/danmaku_engine
read/write
git@git.sr.ht:~melmon/danmaku_engine

You can also use your local clone with git send-email.

Danmaku Engine logo

#Danmaku Engine

DISCLAIMER: This thing isn't completely finished! It might (will) be very buggy!

Danmaku Engine is a C++ plugin for Godot I write and use to make my SHMUP games. It's geared towards my workflow but it may be useful to you too!

At the moment the plugin can handle ~7000 simultaneous bullets before it starts to hang. I'm looking for more ways to make it performant though!

I've spent time researching, and much more time playing, great SHMUPs such as Touhou and DoDonPachi, and I have tried my best to develop this plugin so that you can create amazing bullet patterns at that level.

#Features

  • Bullets! Lots of them!
  • A bullet emitter node.
  • BulletSettings that you can save and reuse.
  • BulletPattern resource.
  • (coming soon!) Seeded randomisation for deterministic emitting. #replays

#Setup

To get started, create a BulletPool node in your scene and set how many bullets you want the pool to... pool. Make sure you set correctly as the node will never activate more bullets than exists within the pool.

To spawn bullets, you can either do so by first creating a BulletSettings resource, then using the Emitter2D node to emit bullets for you.

Alternatively, you can do it manually:

bulletpool.start_bullet(relevant, parameters, go, here)

Once a bullet is emitted, it will have the physics layer that you set it to. Add a hitbox to your enemies/player with the matching collision mask, then connect the body_shape_entered signal to do whatever you want when something is hit with a bullet.

#Bugs

Probably infinite (although countably infinite). However, the distant screams of Godot running this thing is not a bug. It's a feature.

If your game crashes because of this, feel free to let me know, making sure you give me as much juicy detail as possible.

#FAQ

  • Q: Will you be making 3D versions of the nodes?

    • A: Since this plugin is what I use when developing SHMUPs, it depends on whether or not I make a 3D SHMUP.
  • Q: Can you recommend me a SHMUP to play?

    • A: Play Like Dreamer, or any of Outside's other games!

#Licence

Copyright (c) 2024-present MELMON PROJECT.

This program is released under the MIT Licence. In short, you may use, study and modify the source code in any way your heart desires. If you use this program in your own project, credit is not required but highly appreciated!

THIS SOFTWARE IS PROVIDED "AS IS" WITH NO WARRANTY OR LIABILITY OF ANY KIND. FOR DETAILS, CHECK THE PROVIDED LICENSE FILE.