Friday, August 23, 2013

Physics Updates

Today is "Physics Improvement Day" - I've made changes to character control and block physics.

Character Controller

The character controller has been adjusted to allow autoclimbing up to single block height.  No more pressing SPACE like a demented rabbit just to climb hills.  I've also tweaked movement speeds and gravity caps.  It still needs some work, but the behaviour now feels a lot better (at least to me).

Block Destruction

I've also adjusted block destruction in a couple of ways.  First, blocks have densities that match their strength.  So basically, the stronger a block is, the harder it is to knock out of the way.  This isn't realistic in the strictest sense, but it allows for some interesting gameplay.  For example, walls made of hard blocks will be tougher to knock down.  Your first shot will probably knock several blocks free from the terrain, but tough materials probably won't move much.  This means you can actually put up a barrier and it has a hope of standing against a couple of shots.
The second change to block destruction is the size blocks spawn at when knocked loose.  They have a greater tendancy to be full sized now, allowing for that experience of battering bricks out of a castle wall instead of having them all disintegrate.  As an added bonus, cave-ins are much more impressive.  This will make caving in tunnels a lot more effective way to hurt opponents once physics-based player damage is in.

There's still a lot to do before it's an actual game, but it's coming along nicely.


Thursday, August 22, 2013

The Junk Engine

So what's this "Junk Engine" thing anyway?

The Junk Engine is what I'm calling the vector/block-based game engine I'm creating.  I suppose it's not an engine in the truest sense, since it's being built in Unity3D.  So I guess Unity3D is the engine, and Junk is a framework.  But I'm going to call it an engine anyway.

So the idea is that I'm going to continue to build and refine Junk as I go, building a series of games with it.  My ultimate goal is a procedurally generated, "infinite" persistent multiplayer RPG (not MMO - I'm not that crazy).  I'm envisioning something along the lines of Cube World, Block Story, and a splash of Unlimited Adventures.

So that's the ultimate goal, but I'm not starting there (I like to actually finish stuff).  Along the way, I'm going to be building multiple games with Junk as I add new features.  The first game on the list is a rocket arena style shooter thing (dev build playable here).  I plan to keep it nice and simple, probably with two-stage matches.  The idea is to allow a couple of minutes to build defenses, then go nuts on your opponent.  The only weapons available will be rockets and the terrain.  The next game after that may be a first-person zombie roguelike, depending on how the rocket-y awesomeness turns out.


Sunday, August 18, 2013

So I was playing this game...

I was playing this game called Cube World not too long ago, and enjoying the hell out of myself (if you haven't tried it, you should - it's fun!) when I was hit with the (apparently irresistible) urge to make something out of voxels.  Voxels are really hot right now (wear oven mitts), thanks largely to Notch and Minecraft.  Of course, there are several other voxel related games out there (EQ Next anyone?), and there's the whole argument about whether some of them are really using voxels at all.  But all that aside, the Infiniminer/Minecraft/etc style block engine is really popular now for what I see as primarily one reason - freedom.  There are several forms this freedom comes in, and two main ways it expresses itself:

  1. Player Freedom
    This is what allows the player to build and destroy live in these games, altering the world to a degree that's more or less unprecedented prior to this.  This alone is powerful enough that there is an entire genre of games with this as their central feature.  Minecraft is a solid example of this.  Minecraft became wildly popular as a game before its feature set really included anything else.
  2. Developer Freedom
    The other expression of freedom is on the developer side.  Due to several of their basic characteristics, voxel/cube-based games lend themselves quite well to procedurally generated content.  This is of particular benefit to smaller studios that might not have the manpower to put out a lot of handcrafted content.  A solid world generation algorithm can let them focus on interesting gameplay and new features, rather than the hundredth QA run through the game's intro level.
So what do you do with all this freedom?

I don't know what you do with it... but I'm doing this.

More coming soon.