Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs

WayfarerGames

144
Posts
19
Topics
56
Followers
13
Following
A member registered Jul 04, 2017 · View creator page →

Creator of

Recent community posts

just practice! Practice, practice, practice 😉 game jams are a good way of doing that.

Try things. Don't be afraid to just get stuck in: if something works, figure out why it worked. If something doesn't work, figure out why it didn't. 

All this comes over time. You'll get there!

WebGL can cause weird issues like this 😩 in one of the two render feature files, there should be something like "BeforeRenderingPostProcessing" - maybe try changing that to one of the other values? I can have a look properly after the jam, but probably won't have time before then 😅

Fixed in version 0.8.0!

thanks, I'm pretty sure I'll be able to fix those issues this morning 😊 I'll name the command buffer, too, I honestly hasn't even realised that was a thing!

Found a bug? Got an issue? Want to request a feature? Post it here and it'll be added to the to-do list!

  • Rename collider extents and halve the calculations so it's similar to Unity's box collider
  • There isn't enough demo content to fully show all the features yet
(2 edits)

v0.8.0

  • named the command buffer to make it easier to find when debugging
  • added bullet tracking to rotation over time settings
  • fixed issue #0: If "Use Color Over Time" isn't enabled in bullet settings then BulletContainer.Color will never be set.
  • fixed issue #1: When bullets are working in the XY plane I would expect "Rotation Over Lifetime" to apply around the Z axis, not the Y axis.

v0.7.1

  • Fixed a bug where disabling a bullet manager caused any bullet colliders that interacted with it throw lots of errors
  • added offsets to the sphere bullet collider
  • fixed extents for AABB colliders so they mimic Unity's box collider behaviour

v0.7.0

  • Added axis aligned bounding boxes!

v0.6.1

  • Fixed some major bugs with the editors

v0.6.0

  • Added proper 2D mode. Defaults to 2D. You can change the plane between XY and XZ.
  • Added some extra editor functionality for creating bullet settings and spawning settings
  • Added a "WaitBullet" function to pause all bullets in a manager.
  • Probably fixed some bugs too I guess

v0.5.0

  • Moved BulletExplodeOnHit from BulletFury/Scripts to BulletFury/Demo/Scripts because it is only an example. If upgrading from v0.4 or earlier, delete the BulletFury folder before re-importing.
  • Added the ability for Bullet Colliders to be hit by multiple systems, and added a nice little editor tool to make that easier. You need to explicitly add bullet systems to the collider.
  • Updated the "arc" parameter so it actually works properly, with help from my mathematician wife 😂
  • Updated the demo
  • Updated a couple of property drawers

You're welcome to download it and check it out - it's all commented. Easier to answer specific questions when you've actually seen it 😂

As for some tips on making your own system more performant:

  • Are you object pooling? If not, learn how to do that.
  • Do your bullets have rigidbodies? Remove them 😉 rigidbodies are REALLY slow, and you can get away with just having rigidbodies on the colliders on your players/enemies.
  • If that's still too slow, you can actually get rid of the rigidbodies on the players/enemies and use Physics2D.OverlapCircle in FixedUpdate - I'd actually recommend the non-allocating version because you want to minimise your garbage collection.
  • Check your bullet spawning code for any unnecessary allocations - that's anywhere you've got "new". You can, for example, make a list a member variable and use list.Clear to clear it.
  • Check the profiler!! This is a big step, it'll show you where the majority of your performance issues are. You might, for example, be using Linq in your object pooling code to check if there are any available bullets. I was doing that, removing that linq code sped it up about 3x 😅

If that's still not enough, there are some major changes you can make to do it like I do:

  • You can rewrite it so all of the movement code is done from one object, and it just updates the positions of the gameobjects rather than the bullet gameobjects themselves having unnecessary monobehaviours attached
  • Once you've done that, it's fairly straightforward to use Jobs and multithreading to move the bullets
  • Once you've done that, you can try getting rid of Unity's physics entirely, and coding your own circle/circle collision detection as a Job
  • Finally, you can remove gameobjects entirely and use command buffers and a custom render pass. This is how I get to 20k bullets at 60fps 😉

If 20k bullets at 60fps isn't enough, you can go full ECS. You probably don't have to do any of the last section, though, the first lot should be plenty to get 1000 on any hardware :)

it does use jobs, which is a preview package! But seems to be stable enough at this point ☺️ 

Sounds like we're doing mostly the same thing, essentially just rendering differently 😂 most of it should be commented pretty extensively (except the editor tooling) so you should be able to work out what I've done.

It seems to work on WebGL, yeah! However, as with all things WebGL, there may be issues that I haven't seen. The core tech seems to work, at least! I haven't tried collisions yet, but I don't think they're doing any that differently 😂

it is actually intended for top-down 3D because that's the game I'm currently working on 😂 it should work with any meshes. The demo uses quads, but there's no reason you can't use a sphere or something else!


It uses DrawMeshInstanced, not InstancedIndirect. Couldn't get indirect to work before the jam, not going to have time unfortunately! That just means there's a cap of 1023 bullets per manager. I don't think you should need that!

It does use the jobs system - it should be commented so you can see what's going on!

There are actually no gameobjects at all, so pooling isn't needed. The bullets are all rendered with one draw call per bullet manager, it's about as optimised as I can make it at the minute. It should be ok with around 20,000 bullets on-screen and stay above 60fps 😁 obviously you'll never need that many, but it means you've got a lot of performance budget for other things like  post-processing.

You're welcome to have a look and see how it works - that's half the reason I've put it up here and made sure it's so well commented 😂

(3 edits)

I'm making my bullet spawning system available for anyone in the jam to use! https://wayfarergames.itch.io/bulletfury 

Let me know if there are issues, this is an early version of the package so there may be some minor bugs.  However, it has gone through some quite rigorous testing, so it should be stable enough for you to use in the jam!

I managed 20k bullets at 60fps on a macbook - should be FAR more than you need 😉

if you want credentials, I've done over 100 jams - my best was #26 out of almost 2,000 for the "fun" category in the last brackeys jam 😉 https://wayfarer-games.itch.io

You can shoot me a message on Discord - I'm theChief#8571 or send me an email dom@wayfarer-games.com ☺️

I could really use some music for this jam actually!

(1 edit)

Thought I'd put together a list of tips for game jams in general, I'll throw in some bullet hell-specific stuff at the end too  😁

General Jam Tips

  1. SLEEP ENOUGH. DRINK LOTS OF WATER. EAT HEALTHY SHIT. Seriously, don't go too hard. You'll make far too many stupid mistakes if you're tired/dehydrated/surviving on pizza, monster and doritos.
  2. Check your scope! Try aim for something you think you can do in a couple of days, then add to that if you've got time. Honestly I'd put this as number one if people stopped destroying their bodies during game jams, but alas...
  3. Build early, build often. I always try have a playable build ready and being played after about 6-8 hours of work. Getting your core done early means you can get feedback, but also the process of building and uploading to Itch can introduce a few really weird bugs. Specifically, Unity's WebGL implementation is trash and usually causes some weirdo issue or another.
  4. If you're stuck, ask for help! It looks like there's a fairly active Discord server - I've just joined, and there'll be many other people in the same boat. Don't sit there agonising for hours, a second pair of eyes on your code can often solve things straight away.
  5. Get up and go for a walk. This doesn't have to be your whole life for a week. Some fresh air, some social contact, etc will do you a world of good. Particularly if you've got a stubborn problem and the above advice hasn't worked yet!
  6. If you don't have an idea straight away, you can still hop into your engine and make a menu system. Best to get that out of the way first 😉
  7. "Theme" is only one category! If there's something you want to make, make it. I guess at the very least, make it have a lot of bullets/projectiles given that this is the bullet hell jam, but when the theme is revealed don't worry too much about it if you don't have something that fits. It is a jumping board - NOT a road block!
  8. Have fun! Don't worry about your rating, don't compare yourself to other games. If you finish something, you have something to be proud of. Hell, if you don't finish anything - you've probably learned a lesson about scope 😂

Bullet Hell Specific Stuff

  • POOL YOUR OBJECTS. There are plenty of YouTube tutorials around. You're not going to get above 50 bullets at 60fps if you're Instantiating and Destroying constantly. Those are expensive functions, it takes a lot of time to run them, so create a "pool" of bullets when the game loads and activate/deactivate them when needed.
  • Rigidbodies are sloooooowwwww. You don't need them. They do a lot of cool stuff, but 95% of it is not necessary for bullets. All you need to do is move the bullet and check a radius around it. You don't need collisions to be pixel perfect.
  • Make your bullets bigger! Increase your fire rate! Reduce your accuracy! If I'm shooting bullets, let me shoot bullets damn it. While you're there, probably double or even triple your movement speed and enemy movement speed.
  • If your game is lagging, open up the profiler. It gives you the knowledge you need to fix things! If you see a lot of calls to GC.Alloc (in Unity), that's a problem and you should try fix it. Drop me a message on here or on Discord if you're really struggling - I'm in the jam's server ☺️
  • Make your player's hitbox smaller than it looks like it should be, and make the enemy hitboxes bigger than it looks like it should be! This will stop players from complaining when it looks like something didn't hit and it should've, or vice versa.
  • A global leaderboard can go a long way toward increasing your game's popularity - I usually use http://dreamlo.com 😁

Kinda, I use Unity in my day job and I'm setting up my own studio now. I've been making games as a hobby in my free time for more than 10 years :) 

Check out global game jam! GGJ is (pre-covid) an in-person jam, I assume after the pandemic it'll be the same. There might also be a few groups for game dev in your city, here in Sheffield we have SHINDIG 😁

I'm going to take the opportunity to  experiment with some interesting bullet patterns I think! I have not spent any time honing my design skills, so this will be a good opportunity to do so.

I'm also a UK dev! Currently working on an Xbox bullet hell - PolyFury. It's basically just shapes + bloom, and I'm pretty sure I'll use a similar style for this because I'm not an artist 😂

I didn't seem to be able to play, sorry! I'm on Chrome on macOS. I'll give it another go from my windows PC towards the end of the week.

Thank you! I'll get around to your game later, I don't have access to my Windows PC at the minute. It'll be towards the end of the week I think 😅

Thank you! Yeah it is not particularly well balanced unfortunately, though for a "post-jam" version I am definitely going to fix that. I've got a lot of possible ideas! 

It was around 24 hours, yeah 😅

Thank you! 😁I'll need to work out on-screen thumbsticks for mobile, I might just go for Xbox first 🤔

I'll play and give feedback on your game once I'm back on my Windows PC, will be a little bit of time before I get to it sorry!

Great little game. Really well polished! I don't have a huge amount of time for playing and rating, so I didn't get too far - but I was incredibly impressed with what I saw. Also, great choice of font 😉

I don't really have much to complain about here, though the camera pan keybinding is a pain on macs, but that's just because there are no mouse buttons 😅 did get a little crampy in the end. 

That's really only a minor issue though, it seriously is a great little game - congrats!

I'm loving the portal vibe! Graphics were really clean, the puzzles were fun too. 

Had a bit of an issue with mouse sensitivity, as you can see from the video lmao! And it felt like the character controlled really weirdly. 

But other than that, it worked really well on WebGL, the puzzles were interesting, it was a great use of the theme and the music. Holy crap. The music and sound effects were perfect. Great job!

Thanks for the feedback! Yeah I definitely meant to add health regen pickups, I just didn't get around to it unfortunately. I've played your game, just waiting for the youtube video to upload - I'll comment on your game page when it's done! 

There was no restriction, but I'm not giving you a score on it because you didn't make it 😂can't have someone winning in the "audio" category if they didn't make the audio during the jam!

Thanks for the feedback! You just move near the blue pentagons, they'll automatically be added. I'm glad you enjoyed it!

I'll get to your game when I've got my windows PC, which might be a little while 😬

Thanks for the feedback! I'll get to your game when I've got my windows PC, which might be a little while 😬

Thanks for the feedback! I'll definitely make sure I make the explosion damage more clear in the post-jam version :) I've given my feedback for your game on your page, and uploaded a gameplay video.

Great entry, well done for finishing something! I didn't quite make it to the end sorry, but I thought the theme was really well implemented and the character design was great. I'd agree with the comment below - 1,2,3 would've worked much easier for the character switching, I felt like I didn't quite have enough time to move through the CCTV camera before it came back on. You could also keep them switched off for longer. 1 star on the audio because it wasn't made during the jam - sorry, those are the rules! It fits really well, and adding the music meant the whole game felt a lot more complete, though, so it's good that you put it in!

As you can see from my video, there was a small issue with UI on the tutorial screen. Other than that though, it seemed to work really well. Good job 😁

update: yeah the mac version looks MUCH better, nice one!

I was playing the WebGL version - WebGL sometimes turns things like that off by default, so I'll give the mac version a go now :) 

this looks gorgeous - visually minimalistic but it works so well. Particles are perfect, too. And hey, less gameplay is definitely more winning, so you get a high score in the "theme" category from me too ;) 

Damn this is a fun little game, and an incredibly creative use of the theme! I have one complaint - needs more bloom 😉 throw down a post-processing volume and turn up the bloom, maybe add a vignette, and this will look amazing too!

Music fits the game perfectly, sound effects are nice and punchy. I actually can't really complain about anything, gameplay-wise. Movement is nice and fast, which is usually an issue with games like this. Maybe crank the default fire rate up a lot - I played with max fire rate because I didn't care about item spawns, and even that was a little bit slow for my taste, but that is really only a minor complaint. Great job! 

it's really pretty, shame you didn't have enough time! Unless it was intentional and you're going for less gameplay = more winning ;)

Interesting little game - the story made me laugh and I clearly am a fan of killing my family 👀 as other people have said, being able to skip the dialogue would be nice, and I know it's a jam - but coyote time and jump input buffering make platforming feel SO much nicer 😅

Neat puzzle game, I like it. Well polished, too! That character controller feels wonderful!