Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(2 edits) (+1)

Got it working. Need to play with it some more but here are my thoughts from now:

  1. Spawning bullets along a line is problematic.  I set the spawn dir to "directional" and set the "num sides" to 2 to simulate  a line. But radius expands the line/edge length(bigger polygon) and the offset from the center of the bullet manager(since it spawns along edges). This results in appropriate behavior for a polygonal shape but not for a line. So there should be someway to specify a line shape separately.
  2.  Would appreciate a gizmo preview for the shape when the bullet manager is selected. Kind of hard to visualize otherwise.  The above issue with spawning on a line took longer to understand because of that.
  3.   The bullet controller is sufficient for jam needs but most people may want to add their own bullet controllers. 
  4. Rendering the bullets without using gameobjects is a good, performant approach.  I haven't run into performance issues(yet) in my plain ol' pooled bullet setup but this'd surely save a lot of time when I need that many bullets on screen. I would totally buy this if I could integrate just the rendering and collision features with my own bullet movement controller. 
(1 edit) (+1)

Hey, thanks for the feedback! 

Completely agree about spawning bullets in a line, I might have a look at that today/tomorrow and update before the jam. For the line, I'll make it so it has a slightly different editor when num sides is set to 2. How would you want it to behave in that case? Like, what parameters and what should change?

When you say a preview for the shape, do you mean wire lines outlining the shape? It should already preview the bullets in the desired shape, right?

I'm not sure what you mean here. What would you want it to do differently? The BulletManager script only handles rendering and collision, movement is done via a multithreaded Job and everything else is handled in BulletSettings.cs (the SetValues function). You're welcome to change the movement there!

The performance issues are mostly targeted at mobile and console builds, with my old object-pooled approach I only managed about 500 bullets on-screen before performance dipped below 30fps on console, which really sucks for a bullet hell game! The same system manage about 5,000 on a PC with modern hardware... I now get about 2,000 on the Xbox One and well over 50,000 on my PC ๐Ÿ˜‚

(1 edit) (+1)
For the line, I'll make it so it has a slightly different editor when num sides is set to 2. How would you want it to behave in that case? Like, what parameters and what should change?

I think simply not having the radius act as an offset when num sides = 2 would be enough.  Radius can be used to represent the length of the line. I think the particle system does it that way too.

I'm not sure what you mean here. What would you want it to do differently? The BulletManager script only handles rendering and collision, movement is done via a multithreaded Job and everything else is handled in BulletSettings.cs (the SetValues function). You're welcome to change the movement there!

I don't think you should take one person's advice here. My needs may not match others. Anyways, the setvalues function provides a sufficient interface but the function is not virtual. So any person who modifies this directly may have problems integrating when you update the package. Ideally, you'd have some base abstract class for BulletSettings that the user can inherit from to write their own BulletSettings class that's completely independent. Again, that's just my opinion. 

When you say a preview for the shape, do you mean wire lines outlining the shape? It should already preview the bullets in the desired shape, right?

Yes. If the shape is set to a pentagon with some radius, it should show the pentagon.  IDK if preview does this already but it gave me errors(bullets were spawning correctly in play mode though) when I tried it.

 

I have editor coroutine installed.

with my old object-pooled approach I only managed about 500 bullets on-screen before performance dipped below 30fps on console, which really sucks for a bullet hell game!

I mostly make stuff for pc so yeah that might've  caused a bit if the bias there haha. 

(1 edit)
I think simply not having the radius act as an offset when num sides = 2 would be enough.  Radius can be used to represent the length of the line. I think the particle system does it that way too.

Good thinking - I'll get that added before the jam ๐Ÿ‘

I might make BulletSettings an inherit-able class, sure! Probably not before the jam, though, there's a ton of editor code behind it. I didn't really anticipate people wanting to add much more functionality to that side of it ๐Ÿ˜… is there anything in particular that it doesn't do that you'd like it to do? I modelled it mostly off the particle system, though there are a few missing things (like animations and trails, etc - incredibly difficult to implement but I'll get around to it eventually...)

If the shape is set to a pentagon with some radius, it should show the pentagon. 

Yep, I can do that. Currently it should always show a render of the bullet size and position, along with the collider size, while the BulletManager gameobject is selected.

If it doesn't do that, there must be a bug ๐Ÿค” I'll check it out, thanks for the error info!

I might make BulletSettings an inherit-able class, sure! Probably not before the jam, though, there's a ton of editor code behind it. I didn't really anticipate people wanting to add much more functionality to that side of it ๐Ÿ˜… is there anything in particular that it doesn't do that you'd like it to do? I modelled it mostly off the particle system, though there are a few missing things (like animations and trails, etc - incredibly difficult to implement but I'll get around to it eventually...)

Understandable. Currently there is not that much I can think of outside of the line issue.

Actually there is one thing I'd  like to check. The store page lists webgl support but  I can't verify that since the demo version doesn't allow builds yet, Does it really work in webgl? Because from my experience, webgl and jobs don't go well together.

(+1)

Yep, it works on WebGL! Here's a demo: https://app.wayfarer.games/bulletfury-demo/

I've done this and updated it for you! Re-download the asset package from the google drive link and re-import, and it should work a little better.

Nice!