Sign in to follow this  
Broxxar

[Dev Log] Unnamed Bullet+Physics Hell

Recommended Posts

Someone's gotta do it...
 

What you need to do is combine bullet hell and physics hell into the most terrible experience.
 
Chris Remo, Idle Thumbs Ep. 233

 
Planning on using at least Focused Palette, Talk is Cheap, and Tone Control diversifies. If you are a musical person interested in making some music for me that would be dope. I'll post some pretty gifs and stuff here as I go along. My offer of scripting/shader help for other Unity users is still open, so hit me up if you get stuck on something and need a second set of eyes.
 
Dis gon' be fun.
 

Previous Updates: 


Update 1: Early GIF
WeirdFaithfulHoopoe.gif
Two guns attached by a rubber band... Here's the .webm version if this fat gif isn't loading for you: http://gfycat.com/WeirdFaithfulHoopoe
 
Update 2: Object Pooling

Got a lot of instantiates going on in your Unity game? A bullet hell like this one is going to shred through memory allocations pretty quickly, so I'll be recycling objects using an object pool. Here's a hastebin with my relatively simple pool manager: http://hastebin.com/gazawayove.cs and the script that should go on your individual pooled objects: http://hastebin.com/uwuhokepaq.vala
 
The second script is a needed so that the pool knows what prefab pool the object belongs to. You could use the name of the object, but names can be changed, string comparisons are slow, and fetching gameObject.name actually allocates a bit of memory each call.

 

Update 3: Bezier splines and other math


So you know how ships fly in formation and along paths and all that good stuff in most shmups? I wanted to be able to create a lot of flight paths quickly and dynamically, so any type of enemy could be stuck to a path. I ended up writing this whole Bezier spline thing so they could fly along nice smooth paths. That worked, but then I had a whole new issue. If you're evaluate a position on the path at some time t, well, it's going to depend heavily on the shape of the spline how much distance you've traveled along after t seconds. So I ended up having to do some crap where I take discrete samples of the path and turn it into a series of linear paths, which actually worked pretty well. Anyway this will probably be in my dev commentary. Here's a gif of my path system in the editor:

 

cgOWW0S.gif

 

Update 4: Enemies, Particles, Wave System and a progress GIF

Since I finished my bezier system a lot of systems have started to come together. My controller for letting out waves of enemies is complete along with a basic enemy type that can follow along a path created with the system above! Rad. I've been polishing things up as I go along, with particle system and some changes to my color palette. Next up on my todo list is taking a look at sound and music... anyway, here's another cool gif showing how everything is coming together:

 

EnragedQuickGartersnake.gif

 

Update 5: Starting to feel like a game

 

 

Note that the Starfox music is temporary! When badatstuff comes up with an original track to use I'll toss that in and it will be way better/ not subject to DMCA take down! :D

 

Update 6: New Enemy - Octo Shot 

 

EpamrSS.gif

 

Update 7: Death


Now that I have an enemy actively shooting at me and not just flying by, it felt like it was time to code in some death logic. My plan all along was to treat the death of each gun as individual, when either gun is hit, it starts malfunctioning, shooting and aiming randomly on it's own making it WAY harder to control the other gun (because of course, you are attached by a rubber band). Needless to say, this is super fun...

 

I think when I do the shield power up, it will also function as a "fix". Either gun picking it up will result in the broken gun being repaired instead of applying a shield to the gun that picked it up.

 

Addendum to Update 7: HAHAHA oh man your malfunctioning gun also functions as shield against hostile projectiles and can kamikaze into other ships... stupendous.

 

Update 8: Getting hype


Dang I just I wanna get to the boss so badly... designing a third enemy, then going to add the shield/fixer upper item. But I just wanna make da big boss battle... must resist urge to start art assets/animations for that....

 

Update 9: State Machines or, "how the hell was I doing this before?"


I wrote a generic state machine. The basic idea is you write a simple enum and fill it with the names to use for states. Then you instantiate a new generic state machine using your enum as the type. You can get the current state and the previous state, each hold the elapsed time since that state became active. There's also an event you can hook a delegate method up to so you get automagically informed when the state has changed.

 

This is really cleaning up my enemy scripting and is basically going to be a necessity for any sort of complex boss fight. Anyway if this sounds useful here is the script: http://hastebin.com/yaqimoluza.vala

 

Update 10: New Enemy - Lazr Claw

 

CdWQvak.gif

 

This is the enemy that prompted me to look into a more sophisticated system for scripting enemies. Basically I need them play animations, particle effects, sounds, and shoot stuff, all at certain times but I want to avoid an absolute cesspool of timers and if-else statements. Unity's coroutines don't really do the job either, because starting/stopping them is a bit of a pain in the ass, namely because everything is pooled. I'm happy with my bare bones solution. Octo Shot's would benefit from this because it's a pretty garbage script now. Anyway... almost boss time... sooooonnnn

 

 

Update 11: Do the death things


God damn... I just added a 150ms time stop, particle effect, and a camera shake to the death mechanic. Talk about 2 minutes of effort making things 2x better.... 10 times better even. Everyone do that if you're reading this and you have a death mechanic in your game. Seriously.

 

Update 12: Fun


This game is quite fun now... I'm very excited for you to all play it!

 

Update 13: Shields/Revival and the homestretch

 

http://i.imgur.com/uFFncHR.gifv

 

Another gif, this one featuring the shield powerup. I have it on both my guns, I then proceed to kamikaze into the wave of tri creeps. It doesn't go so well, shields only last for one enemy/projectile hit. Picking up a shield while one of your guns is malfunctioning (doesn't matter which one picks it up/which one is broken) will revive it. You can live for a surprisingly long time trying to fight against what is basically terrible AI controlling your other ship (meanwhile the thumb that would be controlling it is idle, so to speak...... nailed it).

 

 

Now on to the big boss battle. Well tomorrow anyway, it's 4am my time and I needs ta sleep....

 

Update 14: #Cheat2Win

 
What's that you say? I've failed at the focused palette diversifier with all my gradients, particle effects, and use of vector art? Don't know what your talking about, my game has only 8 colors in it...
kM3Flge.gif
 
This is a fun post process effect, it will be optional to play the game in game boy mode. Yes it has double the colours of an actual gameboy and a greater resolution, but damned if it doesn't invoke the same nostalgia.

 

Update 15: Damn Real Life...

 
I needed this last weekend to finish things up but unfortunately I'm heading away for the weekend and don't have time to finish scripting the boss and adding the last couple sound effects. But worry not! I will finish as soon as I can and post the finished product for all to play! Until then, here's a preview of the boss in Gameboy mode to tide you over...
 
PjMvy7c.gif

Share this post


Link to post
Share on other sites

Edit: Amalgamating everything into the main post so replies aren't mixed with my updates :3

Share this post


Link to post
Share on other sites

Thanks all! It's coming along quite well. I'm still interested in working with a musician, if you want to make some music for this game let me know!

Share this post


Link to post
Share on other sites

Is it ok for musicians to work on multiple projects?  Because if so, sign me up!

 

Definitely okay as per (there are no) jam rules. As per musicians code of honour, I can't speak to that.

Share this post


Link to post
Share on other sites

Looking forward to some original music! I posted a progress video where I'm using a remix of the Corneria music for now :P

 

Things are starting to come together. I think I'll add a shield power up, 2-3 more enemies and a boss and call it done. That's the plan anyway, we'll see how that goes....

Share this post


Link to post
Share on other sites

jxpBRdM.png

 

If I don't share these variable names with you guys, who will ever see them?

(Answer: nobody)

Share this post


Link to post
Share on other sites

jxpBRdM.png

 

If I don't share these variable names with you guys, who will ever see them?

(Answer: nobody)

 

Good!

 

Also, the new death mechanics sound hilarious. Can't wait to play this.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this