Monday, October 24, 2011

Detroit Megacity is born!

After a few days of painstaking pixel-wrangling, Detroit Megacity is finally finished. Behold!

Detroit Megacity, and the shantytown sprawl around it.
I've been struggling with the art for that tile set a while now. I even had to stop and put it aside at one point, to come back later and try again. Getting isometric wall tiles in a hex grid to line up was a bit of a pain, and the amount of detail needed to populate the city was higher than one would expect for such a small collection of tiles. But Detroit Megacity (the DMC) plays a pretty central role in NEO Scavenger, so I wanted it to be something special.

The DMC is meant to be the hub for NEO Scavenger. When not out in the wastelands scavenging for treasure, the player can trade hard-earned loot for a hot meal, safe rest, and replenished equipment for the next expedition. There may also be some clues hinting at the player's origins hidden within the city's sprawling reaches.

The DMC also fulfills a larger, peripheral role in the game. It stands as a stark counterpoint to the ruined, ravaged wastelands, and an example of what's possible. The world of NEO Scavenger includes sharply contrasted civilization and badlands, high technology and supernatural horrors, and mankind struggling to reclaim his once stable footing in a world which has spurned him.

Finally, the DMC is at least one part guilty pleasure. Having grown up with truly inspiring dystopian megacities such as Blade Runner's Los Angeles, Akira's Neo-Tokyo, Shadowrun's Seattle, and Rifts's Chi-Town, I wanted one of my very own to play with.

Usability Upgrades

Outside of having fun with art, I've also been doing my homework, so to speak. The UI still needs lots of attention to prevent new users from giving up in frustration, so I've been hard at work refining that. Having some folks test the game has revealed many shortcomings in the UI, both those that I didn't realize were there, and those I was in denial about.

Above, you can see the status bars have now further evolved to change size as well as color. Now, as they grow more menacing in color, they shrink in size, to further indicate that a stat is running low. What's more, it's now easier to tell relative values, so "how green is my thirst" is less of a question.

I also added clickable buttons for player condition and map screens. There was no excuse not to have them, I just hadn't gotten around to it until now.

Edge-scrolling the map with the mouse was a bit of a failure. Even users who asked for it quickly changed their mind. It seemed to scroll by accident a lot, and it's a lot of work to scroll when one actually wants to. Still, some sort of mouse-driven scrolling is probably a good thing. I've always liked Sim City's style of scrolling (click a spot, and drag to one side or the other to start scrolling the map, kinda like a "soft" joystick). So perhaps I'll have to try something more along those lines later.

And then, there was the big one: the inventory screen.

Inventory UI Polish

I finally did it. I combined the ground and personal inventory screens. I think just about every tester asked for it at one point or another, as dragging from one screen to another was tedious. I had some (likely poor) reasons for wanting them separate, but I finally gave in and combined them.

New combined ground and personal inventory screen.

I gave up the overzealous 8 amulet and 10 ring slots, and shifted a few things around, and now it all fits on one screen.

I also got rid of separate slots for socks, forearms, eyes, ears, and face, and merged them into feet, torso, and head slots, respectively. Originally, I wanted the player to have items for these slots (especially headgear such as sunglasses, helmets, and bandannas), but it was starting to look like that old scheme would be too tedious for the user. Also, the crafting of layered clothes was a bear for what little fun it offered.

So now, players can just drag and drop items onto the paper doll, and it'll "just work." T-shirts will drop over the hospital gown, or vice versa, and still look correct. Dropping a hoodie onto the torso covers them both. (Slots like the torso allow a finite number of items at each layer depth, and they draw-sort according to that depth.) Dropping an item onto a filled slot swaps those items. Dropping an item onto a container inside another container fills the container. Dropping onto a rollover button (right side of screen) tries to fit the item as best it can.

Also, the old shift+click behavior is now default click behavior. If you click an item, it "just goes" to the first appropriate and available slot, or else a container. If it can't fit, it starts dragging. If the user wants to fine tune where it goes, they now shift+click and drag.

Oh, and WASD and arrow keys now rotate dragged inventory items now, for better inventory Tetris.

Bandit Loot, Wounds, and Degradation

I also added a few new features. Bandits now drop loot, so that engaging them is more rewarding for the risk. Wounds are now full-on player conditions, which means they can affect player performance, and get worse over time if untreated. And items can now degrade.

Item degradation was something I had planned from the start, but felt was optional until recently. It didn't seem right in a post apocalyptic setting to find a pair of bluejeans in the trash, and never have to worry about pants again. They'd surely go threadbare over time. New shoes and fresh socks too should be treasures. Lighters should go empty after enough usage, and campfires should go out over time.

Eventually, the reasons to add item degradation piled up, and I got it over with. Items can now degrade based on usage, time, or equipped time, as well as lose charges per use. A lighter is an example of an item that loses charges when used, but can also degrade until it breaks. It might discharge and recharge many times before it degrades, but it has a limited lifespan based on number of times it's used.

Shoes are an example of an item that degrades per unit time while equipped. Meat cleavers are an example of an item that degrades per use. And campfires are an example of an item that degrades over time. When items break, some will turn into new items (t-shirt becomes rags, campfire becomes ashes). Others simply disappear (e.g. plastic bags).

If I do end up adding item repairing in this iteration, it will likely be via combining skills and items in the crafting window (e.g. sewing plus dental floss plus one or more pairs of pants to repair).

Encounter Responses

There's still one more change in the works, and that's how encounter responses are dealt with. I don't think many testers realized they could use skills and inventory items to respond to encounters, since they're on other screens. I had intended for the player to be able to use anything at his disposal to solve an encounter. I thought it'd be fun if the player could think outside the box, and try something that wasn't presented as an obvious option.

However, I think that's going to be hard to teach new players. It also means I need to create many, many permutations of responses, and players have to trial and error to get the response they want.

As an alternative, I'm going to try and pre-fill the response area with items the player could potentially use. If they have the right items or skills for an optional response, it'll be right there for them to use. It means there are less surprises, unfortunately, but also less work for the player. Also, if there are fewer possible responses to each encounter, I can probably make them more meaningful. There should still be some replayability if the player chooses a character with different skills and items the next playthrough.


  1. The walls look great! A question.... do you need all that space for the ground? Could you fit crafting on the same screen as well?

  2. I thought needed that much space, but I guess only the Junk Shop ever uses it all.

    Still, the crafting would be a tough fit even if I axed half the ground space. It'd need input and output areas, and the scrolling "Known Recipe" button list. Skills and abilities are needed as input as well (e.g. use repair skill plus wrench on broken shopping cart plus wheel)

    What if the crafting screen stayed separate, but showed all your items and skills in a more compact way? (e.g. no paper doll?) You'd lose the ability to see whether you're using an equipped item, but no cross-screen dragging.

    Or as Rochelle suggested, maybe a way to change the cursor to "craft" mode, so each click sends an item directly to the crafting screen?

    It's a tough UI problem, but I agree it still needs solving.