Archive:
Always fancied doing a sorta Uridium thing; a horizontal scrolling shooter, over a dreadnought, with plenty of explosions. I fancy it even more, now I’ve got a stupid ultra-wide monitor. It’ll look the business!
It’s now or never…
A couple of years ago, I took December off for a busman’s holiday, and made a Time Pilot prototype. Mainly to get my head around UE’s Gameplay Ability System
stuff, which is probably why I never finished it. But, waste not, want not. I built a lovely looking level for the space section, and it’s’ perfect for this. I had a hunt around for some kit-bash assets for the dreadnought, and (lucky me) Kitbash3D had a sale on. One of their packs was a spaceship kit, so I yoinked. Also found some explosion assets on the Epic Marketplace, (for a tenner!) that came with audio. Bingo Bongo.
Blocked out a ship, migrated over the background parts from my Time Pilot thingy, and created empty classes for the various Gameplay Framework
bits. Tomorrow, I’ll get the thing moving.
Hit a load of niggly issues, so I don’t feel like I made a lot of progress today… The biggest was that shadows from the player’s ship were clipping before they hit the Dreadnought. Bizarrely, they were fine in the editor window, but clipping during PIE
. I couldn’t get to the bottom of it, despite a long chase, so I ended up shrinking the dreadnought and moving it closer to the directional light. Ship it!
The player’s ship is moving, and animating when you change directions. Wrote a fairly nice follow cam that zooms in front of the player, although, I may need to tweak the movement speed a tad. Dunno. Feels OK for now.
Added bounds to the ship’s movement, some collision, and started on an Actor Pool
plugin. The Actor Pool
spawns a fixed number of actors, of a given class, at the start of the level. Say bullets. When you want a new one, you grab it from the pool, and when it’s done, it returns itself to the pool. Why bother? Well, it saves some over-head from spawning new actors, and gives the Garbage Collector
less to do.
That said, I’m not entirely sure if I’ll be firing enough bullets to stress the GC on this level – I never really managed to in my FPS prototype – but an Actor Pool
’s pretty trivial to knock up, and it’s one of those useful things to have that, er… I don’t. At least in Unreal Engine.
Anyway, I think it’s working. I’ll use it in anger tomorrow.
Added some decals to the ship and got the player shooting bullets from the Actor Pool
.
Collision’s a bit of smoke and mirrors. There are parts of the ship that are high enough for the player’s ship to fly into, where normal static colliders are fine, but destructible items, resting on the ship, are actually quite a bit lower. I don’t want to suck bullets down to them, as that’d look weird, so I’m going to raise their colliders and let them overlap, rather than block. On overlap, they can pass a Gameplay Tag
to the overlapping actor, which can then decide if it cares. Flying ships won’t. Bullets will.
I’ve got the bones of this in place; I wrote a skinny wrapper class around Actor
which adds the Gameplay Tag
containers, and bullets respond to certain types of tag. Knocked up some impact effects to cover up the bullets killing themselves, and they’re returning to the Actor Pool
as intended.
I had to be a little careful when bullets come back out of the pool, cos of an interesting ‘bug’; teleporting them to a new location takes a frame, which, occasionally, leaves a visible smear in the motion blur. Not pretty... If I delay making them visible by a frame, that doesn’t happen. Filth, but whatevs, Ship It! :)
Friends:
If you like any of my work, please consider checking out some of the fantastic games made by the following super talented people: