Carbon @ The 2017 BGS Showcase

So yesterday I went ahead and did a thing by demoing Carbon for the first time at the 2017 BGS Showcase. Full of bugs, lacking major features like sound, and lacking any real objectives for the player, it seemed to go okay for the most part.

As it stands right now, Carbon randomly generates a large cityscape environment the player can pilot their GeoDyne Carbon mech around in. It also throws in eight randomly placed bases (icospheres defended by turrets) and some not-so-bright tanks that have a surprisingly decent shot at killing players.

Biggest takeaway from demoing it last night: my level generation code needs work. There’s a particularly nasty pseudo-while loop that was causing the build to crash pretty frequently when the player wanted to “play again” after dying. Fixing the loop is pretty easy, but I’m still not thrilled with how it’s building the levels in the first place so I’d rather come up with a better level generation system anyway.

Another thing is the bases don’t do anything other than give you a bunch of points when you destroy them. I made the weapons system in the game robust enough that I could create just about anything, so I’d like them to drop new weapon configurations the player could pick up (kinda like Star Fox). Health pickups and powerups could be cool too, but for now, pew pew pew.

I really hate the mech design. It had been bugging me for a while now, but after last night I’ve decided it’s gotta go. It’s too focused on being low-poly, and that detracts from the general vibe I want the game to give. Still gonna keep that low poly aesthetic to a degree, but just not quite so harsh. I really want the thing to look like a Pontiac Stinger with legs, and right now it’s very much not. This vibe applies to just about all the other art assets as well, so there’s probably going to be a revamp of them in the future.

On top of sound missing, the game really needs some explosions. In a game where your main method of interacting with the world is shooting things like tanks and turrets, it just feels better if they blow up, throwing weird polygonal bits everywhere. Not a terribly difficult thing to do, just something I passed on in terms of priority when getting it ready for the showcase.

All in all though, I think it went pretty well. It got way more play than I expected it too, especially when it was in the company of some way better looking and more polished titles. And the people that did check it out seemed to enjoy it for what it was, so that was nice. I’m not sure what I’ll fix/add next, but if you wanna check it out for yourself and play the latest version(s), you can grab it at carbon.hellocld.com.

I really need to get out of the habit of starting these posts with “gee, it’s been a while since I posted on the blog”

I’ve been working on mech game for about six months now (according to Bitbucket I started it on February 9th), and shockingly I’m still making slow progress on it. Networked multiplayer works, the base code for all weapons is largely implemented, and I’ve even got some basic animation done for the Geon 3 chassis.

And yet, once in a while still get this overwhelming “what the fuck am I doing?” feeling. The sense that I’m biting off way more than I can chew with this project, and it’s never gonna get done or work right. Even though I’ve got the basics all laid out already, I still feel like I won’t finish it. Like it’s gonna be shit. And both of those things could realistically happen. That’s a pretty intimidating feeling at times.

Part of it comes from this tendency I have of reading into things and getting super granular on subjects that I really shouldn’t be worrying about right now. For example, yesterday I was researching different ways of handling the network aspect of the game and the Low Level API offered by Unity, which is basically a multiplatform UDP implementation. Right now I’m using unity’s High Level API, which does a lot of things behind the scenes to make stuff work, and for the most part it’s fine – but there’s a part of me that doesn’t like the black box nature of it and wants to get a deeper understanding and tighter handle on what’s happening. So I started reading up on the LLAPI and spinning your own networking code and serializing data to send as packets and packet compression and suddenly I’m drowning in this pool of information that realistically is totally unnecessary right now.

This isn’t the first time I’ve done this. A couple years back I felt that Unity was too much of a black box, so I went about writing my own entity component game engine in C++ with SDL2.

CLD-ECS-Concepts

I did get it working (and pretty well too, all things considered), but it took me months just to write up a framework that created a window and bounced some sprites around. Whereas if I had just dealt with my weird feelings towards Unity I could’ve written a 3D pong clone in a fraction of the time.

So after delving down the rabbit hole that is advanced networking techniques, I started getting all those dreaded “this project is too big and I just suck so let’s quit and be done with it” thoughts. It took a good chunk of time, focus, and lecturing from my better half to remind me that I gotta keep this stuff broken into manageable parts. This morning I started writing the code for the weapon management system, so I think that’s a good step in the right direction.

This was a far longer ramble than I intended it to be, apologies for the longwindedness about largely nothing. Future posts should be a bit shorter as I’ll be posting more frequently about smaller updates on mech game.

PLEASE-BE-EXCITED-MEME-03172015