Saturday, April 23, 2016

Gearend Devlog Video Dump

Yo, there!

I've been making a lot of progress on Gearend, but haven't actually shown any of it around here! So first up, a devlog video dump!

Friday, April 1, 2016

Gearend Devlog Video #6 - AI Theory

Yo! Here's a quick devlog video showing how I'm approaching AI for Gearend.

The idea is to base everything around tracks that you can turn on or off, and that control which behaviors are being executed at any given time. It's basically lines of Finite State Machines strung together.

Each Track will have only one active Behavior at a time, though you can have as many Tracks as necessary. Each track also will have its own mode (Normal, Choice, etc) and its own controls (for reversing, toggling, clearing, copying, etc). The general idea is to make reusable behaviors simple and easy to use across the different games I make.

Anyway, that's it for this one. Thanks for reading!

Wednesday, March 30, 2016

Gearend Devlog Video #5 - Loadout and Location


Here's another development log video post showing some of the stuff that I've changed / improved!

And here's a text dump in case you don't wanna watch!

Friday, March 25, 2016

Shoulders, Shots, and Shclouds

Yo! Here's a quick GIF update dump!

Tuesday, March 22, 2016

Gearend Revived

Yo! It's been awhile, hasn't it? Well, then. Lemme explain:

Airgrift is being paused for the moment, as I've decided to go back and start and finish Gearend.

As you might recall, Gearend was a 2D Metroid-like that I was working on a couple of years ago, and subsequently abandoned because I thought it was too big of a project for me. Since then, I've figured that the game's not gonna get done unless I started on it, and so I started planning out how I'm gonna start and finish the game. I believe I've grown leaps and bounds since then (or maybe I just know a bit more about how to get myself to get stuff done), and now I'm working on it again. Hurrah!

More info after the break!

Monday, October 19, 2015

Airgrift Devlog #2: Gooey!


Here's another devlog video for Airgrift! In this one, I talk a bit about some new GUI stuff, some new enemies, a new camera system, and s'more stuff! Making games is fun, but it can be hard work too, haha.

Here's a bit of a write-up that's also in the video description:

I've been working on Airgrift for a little while now, and I've implemented and added quite a bit to the game and engine it's working with (BDX). So hurray!

I've added some GUI elements - mainly the Cash counter, the portrait and name in the top-left corner, and the camera icon in the bottom-right. These elements still need to be positioned to work more in the favor of the gameplay and to be streamlined, but overall, they look nice and work well.

I've added downsampling for a smoother, more efficient bloom filter (hopefully, anyway), and a couple of enemies, as well. The enemies aren't finished as of yet, but the core ideas are definitely there and working. The Discharge slowly follows the player and fires electricity straight downwards. The strikes are periodic, but they hurt when they hit!

I also wrote that music in the background. It's not really for any project in particular, but it might work well for this game. I have, however, written some other music for Airgrift that sounds really awesome, I think, so that's something to look forward to implementing.

Thanks for watching!~

Monday, September 7, 2015

Airgrifting All Over The World

Hey, there! So today, I managed to get some more done with Airgrift.

I finished the first few sprites for the first enemy, known as the Grinder. The idea is to make something simple, slow, and predictable, but also dangerous in tight corners or when you don't have room to breathe, like the ghosts from Pac-man. I think I want this to be a one-hit-kill kind of enemy, but I also think that it should be a beginner's enemy, so it can't be too hard. Perhaps a happy medium is that it will literally grind your health down gradually. So staying at high speed, boosting away, or whatever else you can do to help get away would be a fine strategy and makes them easy to avoid.. This is all tentative, of course. And yeah, I know the sprite's not perfect when it comes to perspective. Gotta pick your battles.

Anyway, I also put particle systems in when you bounce off of walls, which adds a bit of (needed) polish, I think. Not sure if I'm going to keep the "Ow.", since that might make people think they're taking damage. Maybe I'll save those particles for when the player character actually gets damaged.

The particle system itself is one of my own design. I started it months ago, and operates a bit similarly to an old particle system I wrote that was known as the X-Emitter from when I was using the BGE. The new particle system is in component form, and is just known as Emitter and Particle in my BDXHelper package. Here's some example code that sets up the emitter to work:

partEmitter = new Emitter(g); partEmitter.addTemplate("SmallParticleCross"); partEmitter.addTemplate("SmallParticleCross"); partEmitter.addTemplate("HitVoice"); partEmitter.spawnTime(0); partEmitter.friction = 0.025f; partEmitter.startingVelocity.z = 2; partEmitter.randomVelocity.x = 2; partEmitter.randomVelocity.y = 2; partEmitter.colorStages.add(new Vector4f(1, 1, 1, 1)); partEmitter.colorStages.add(new Vector4f(1, 1, 1, 1)); partEmitter.colorStages.add(new Vector4f(1, 1, 1, 0)); g.components.add(partEmitter);

As you can see, the process is all rather simple, as I'm just creating a new Emitter and then customizing it to fit my needs. Pretty simple and easy to manage - even easier would be a GUI. Maybe I'll manage that later.

Anyway, in the above example, I add a template (the GameObject to spawn that represents the particle), I set up different properties like friction and velocity, and then add color stages. Color stages are basically "keyframes" of color; it starts off white, and then turns invisible.

The two "white color" vectors basically means that it stays opaque for half the particles' lives, and then fades out over the second half, rather than fading over an entire second (like it would if one of those 1,1,1,1 Vectors weren't there). Anyway, it's rather simple to use, which is fun. If you want to actually catch the code that makes the particles work, it should be up to date over here.

In any case, here's a devlog video to show the game as it stood a couple of weeks ago (gasp!).

So what else have I been really doing for the past couple of weeks? Mainly, replays.

I think I've finally gotten input-based replays working and finished for the game engine I'm working with. It's been a pain because we weren't sure the physics engine was entirely deterministic as the replays were playing out completely differently when we'd run them - sometimes it would run correctly, other times kinda close, and other times it would be horribly wrong. However, it seems like the physics are deterministic to a point (at least, the way we're running it). I think it's just a matter of where and in what state the game objects are that influences the replay's process. When I'd play the replays, the game objects weren't in the exact same positions, and I didn't start the replays on the same frames in game time as the recording started on, which means that it boils down to a different situation, even if it looks the exact same.

Anyway, I think I've sorted it out, and if so, then it'll be merged into trunk, which is cool. Attract Modes for everybody! The code's here, in case anybody wants to take a peek.

Anyway, that's about it. Thanks for reading!