Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

INCOMING! (Day 5)

It was already coming together fairly well, but now with the Enemy "AI" cinched, it's actually starting to seem like a real game...even if an old one, with "meh" level enemy "AI". :D

And today I come with more pictures!  Yaaaay pictures.

I'll Throw You Into The Sun

One of my tasks on Todoist for today involved making scenery for the game.  I quickly found out, however, that my shader makes that...almost impossible at this resolution.  Maybe given 128x128, or definitely given 256x256, I could have scenery that played well with my edge shader.  But no!  Pixel economy, man!  Pixel economy.


Above are some examples of things drawn at range.  Cube, cylinder, and sphere, to be exact.  The cube only shows non-edges because it has a completely flat side facing forward.  The other two?  Hell if you'd figure out what those were without passing them on by.  Unfortunately, I had the same issue when trying to make stuff to fly 'through'.  Not every idea you have works, but it makes me sad to not be able to develop the experience I was hoping for.

That being said, it's not all a wash.  I played around with the "planet" that existed before.


That planet?  Is now a sun.  Why?  Because I figured out that if I set a emissive shader (aka Particle) shader, it doesn't actually...push depth values to the depth buffer?  I don't quite get it, actually, but it works!  Now because of that I have a far-off object for visual stimulation.

Good Luck, Star Fox

There's enemies in the game now.  No, for realsies!  You can actually get shot by things now.  I cheated a bit on this, though.  I did not need to spend multiple days writing an AI that can path-find in space, especially not for a game that is basically a very short "Get The Hell Out Of Dodge" scenario packaged with pretty pixels.  Instead, I used a (relatively) inexpensive Asset Store tool called Camera Path Animator.  It's a bit much to learn eventually, but that's mostly in figuring out how to set up the paths and their orientation/etc points (making ships go the right way and the right rotation).

So, the API documentation on CPA is balls.  I mean, balls.  However, Visual Studio has intellisense magics that let you autocomplete function and parameter names.  What that also allows you to do is see public members of a class or object.  I, being a lazy twit who didn't want to dive into the non-web documentation, figured out the few parameter names I needed to work with fairly easily - animationObject being the only actual one I had to find.

With all that set up, I went about making the "AI".  It's fairly simple -

  1. A Spawner object spawns x enemies every y seconds.
  2. Each Enemy looks up all of the available CameraPathAnimators and picks one at random.
  3. If a CameraPathAnimator is currently playing, the Enemy chooses again at random until it finds one it can use.
  4. The Enemy attaches itself to the animator, tells it to reset+play the animation, and flings off on its course.
  5. Once the Enemy is within the center ~50% of the camera view, it randomly chooses when to fire its single laser.
  6. The Enemy goes to the end point and then stops.

That's it.  That's all!  It's fairly simple.  The randomization of animation paths, as well as semi-randomization of laser firing times ensures that things don't get too stale too fast.  I do need to make at least two or three more paths to work with later.

The Giffening! (Bonus Points Time)

Enjoy~


Super-Obligatory Task List Here

  • Music.  Or something for sound at least.
  • A few more CameraPaths for the enemies to animate on.
    • Add one camera path that sends a enemy ship whizzing by.
  • Fix bullet hits not registering on the Hits counter.
    • Fix the Hits counter not even being scripted yet.
  • Fix max Charge not triggering outro sequence.
    • Fix not having an outro sequence made.

-stares at Todoist again-

Wow.  That's almost it for eXpat.  With two days left that were planned for it.  Cool.

Challenges Update

I don't like lingering on a prototype too long during a game jam.  Eventually once all the major work is done, it gets fairly tedious to do more.  That being said, my basic Game Design Document is almost fully represented in the game and I feel it's acceptable to write off a few of the challenges.

Pacifism: Nothing's changed here, move along.  You're still playing a Dodge'em'up, after all.

Freak, Mitosis, Eco-Friendly: Heck no.  Not happening at this point.  I'm okay with that.  We'll see what prototype #2 brings, though.  I might bring Freak back for funsies, and it might be easier to do Mitosis too...especially if I plan ahead of time.

Wait, What?  'Prototype #2'?

Yes!  Even after taking a day's break yesterday and starting a day or so late (I think?), I'm still on track to having roughly a full week of time to work on a second prototype.

Genre?  Rhythm game.

I like the addition of color (sun, bullets).  After watching this latest GIF about 20 times I realized you are missing stationary stars in the background. The stars shouldn't all be moving towards the camera at the same speed. I really like the feel of the ship movements (players and AI).