Thursday, March 31, 2016

Hammer devlog 08

note: this has been migrated from elsewhere, and formatting may be a bit wonky

I said the next thing I was gonna do was going to be the energy meter.

Apparently I lied?

[​IMG]

I looked at the snazzy official Unity tilemap tools with no discernable release date and despaired. Then I looked at the free Asset Store tilemap tools and also despaired. (There might be some nice paid things, but I'm a broke fuck.)

Then I found the amazing UnityTileMap library and found it to be just what I needed!

So I ripped out the ghetto level layout system I was using and incorporated this. UI is a little janky - and it doesn't play well with my game's unit scale out of the box, giving me a hilariously fucked-up workflow for editing tilemaps ATM - but the underlying code is solid and does what I need it to. At some point before I get to actually doing real non-test level designs, I'll probably want to go in and get the tilemap editor working in a way that's a little bit less of a pain.

I also did some quick programmer-art dungeon tiles, which you can see here.

This, of course, broke everything. But that was a good thing, because I had a lot of hacked-together logic that I knew I'd have to replace before it'd be practical to actually expand this to a full game anyway!

Under the principle that something simple and effective, if clunky, was preferable to an elegant solution that would never actually work, I did this by implementing something called a WorldController.

The WorldController is, uh, much less exciting than it sounds. It's a MonoBehaviour that stores references to a bunch of specific "always in the scene" objects (player, reticle, a set of rooms, etc.) and facilitates letting GameObjects find all of these without a bunch of redundant GameObject.Find calls. It should really be a struct as opposed to an object - it doesn't even have methods; it doesn't even make sense for it to have methods, it'd just be a Big Ball of Pointers if I wasn't writing managed code - but I have surrendered to the "MAKE IT A MONOBEHAVIOUR" Unity devil on my shoulder. I can sit a WorldController in a scene, populate its fields, and then start putting things down and having them Just Work.

Some other things:

I've decided on, at least, a working title, because it's helpful to have something to call this thing other than "this thing." Being as this is an over-the-top shmup-RPG where the player faces off against an array of dead presidents turned Wacky Boss People in order to rescue their ninja boyfriend: the tentative title I'm playing with is Jacqueline Hammer vs. the Liberty Gang.

Having cleaned up the worst of my messes and come up with something to call the repository: the GitHub is up. I'd certainly like to retain the ability to try and go commercial if I get this to a point where I've finished the current prototyping/mechanical testbed phase and I feel satisfied enough with the core of what I have going that I think it could produce a product I'd be comfortable charging money for - as mentioned, I am a broke fuck, and plus I imagine saying I've shipped a commercial indie title looks good on a resume for a more pays-the-bills sorta job - but at the current time, I'm not exactly worried about anyone seeing in-development content - because there's nothing here that really counts as content - and I'd certainly love to hear thoughts or criticisms re: what's already in place.

Also, yeah, I'm aware that the code that keeps the enemies in the room was still broken at the time I captured that gif. I've fixed that again in the intervening time.