Revisiting the Old and Creating the New · 2394 days ago

(scroll down for fullsize screenshots)
This past month has seen many revisitations both in life and in game development (as if the two were separate!). I’ve got so much to talk about, it’s as though this were a mini devdiary in the larger meta devdiary that normally exists. Consider this 13 separate devdiary entries. It’s so BIG it gets its own table of contents:
- Inspiration from Strange Places
- Animations and Skeletons
- Making a Torch Come to Life
- Attachment Code, Linking to Muzzle, Unifying Varied Code
- Inventory UI: Who Needs All Those Icons Anyway?
- Gamma Adjustment
- Physical Properties for Materials
- Critical Hits
- Making Some New Music
- Sound FX
- Fun With Inventory
- UnEarthed Games Website
- Sim’s Dev Journal
Inspiration from Strange Places
Wouldn’t this antique hat look great on me? Why of course it would, and that 17th century Spanish table would look great in my castle!
I really like antique stores. I’ve always got my eye out for a sword, piece of armor, or some old rare book. Not that I have the money to collect them, mind you, but I still take great pleasure in seeing them. A month or so ago Alyson and I were exploring this warehouse-style antique shop. They had these giant doors from some old temple in Asia and some really nice old beaten-up wood table that caught my eye. Later the next day it hit me that antique shops would be a great place to get some rare texture source photos. Just take a digital camera in and snap away. I seem to live in a land of antique shops so I’m planning to try that out.
History in general is just crammed full of great game ideas waiting to happen. I got a few good ones for UnEarthed Gods from this book.
The Americanization of Benjamin Franklin

I picked this book up at the airport last week, and think it’s worth mentioning. Very well written, easy, interesting reading. Benjamin Franklin is the original American entrepreneur/tinkerer, so his life is very applicable to anyone running their own business and nuts enough to do it indie style.
Stop slouching and don’t stand with your hips like that
My character’s skeleton rig has been holding me back lately. I knew I needed to recreate the skeleton, so I’ve been putting off making new animations. After using the Character Studio (CS) rig from Max for my Shadowbeast, I knew it was the way to go.
My original skeleton was custom made, and while the experience of making a full rig was worthwhile, I’m happy to use a standard one and modify as needed.
The process went smoothly. The only problem I ran into was trying to use CS’s ponytails as cloth bones on different parts of the body. It seemed to be working great for a few animations until I needed to turn the head. Then the ponytails turned with the head, hovering about 5 feet away from where they were supposedly attached—not acceptable! To get around this, I got rid of the CS ponytails, and made a few custom linked bones for animating the cloth strips and bags.
I’d really like to use Max’s built-in dynamics code to do the animating for these floppy bits, but I have to take the time to figure out how it works. Since the exporter requires you to animate at such a tiny scale (1 max unit = 1meter, and my character is 1.5 meters tall), the dynamics system complains that my units are too small. If you’ve run into this and know the solution, please post a comment or send me a mail.
Once the skeleton was done and the mesh re-skinned, I went about recreating the animations. They look 100 times better now, which makes the game much more enjoyable. Thanks in large part to
The Animator’s Survival Kit.
Really, really good books are hard to come by, and this is certainly one of them. Full of advice from a real, honest-to-god, practical, experienced, master in the field. It was recommended to me by an animator friend and is one of my prized books now. If you are doing any animating check it out.
One. Two. Three. Three particle systems. Ha. Ha. Haa.
In my previous diary I talked about some of the graphics improvement work I was doing for UnEarthed Gods. Now that I had the dynamic lights working properly in interiors, I could make a nice torch. I did a quick model in Max and a texture in Photoshop, added the weapon script and datablocks for the torch, and popped it in the game.
Then I used the custom particle system editor my friend Robert Mays and I have been working on to make three different systems for the torch.
The first is the basic flame system. Most fires have some tiny sparks that pop off every now and then, so I added the second system, a spark emitter that falls toward the ground ever so often. The third system is smoke rising up from the flames.

The final thing I did was attach an fxlight to the torch to give it that glowing look. I might get rid of it, though, because it looks a bit odd that the glowing blob is attached firmly to the tip of the torch. The glow should really belong to the flames and not the torch. A bloom filter could take care of this.
Attachment Code, Linking to Muzzle, Unifying Varied Code
Two ways to do one thing is one two many
While I was making the torch I needed the ability to attach particle systems and fxlight objects to the torch tip. I had done some work a while ago to make particle systems and any other GameBase object attach to another object. This worked great, but the torch is not your normal ShapeBase object, it’s a weapon ‘image’ that is treated differently. So my previous generic code wouldn’t work for this situation.
I could have done some work to make weapons use my generic mounting code, but I decided to take the path of least resistance and just add a special flag to my mounting script functions that would point to the mounted image. Hacky? Yes! Working great? Yes!
As I was adding the light to the torch, I found some specialized code for mounting lights onto objects. In a stroke of software engineering bliss, I changed the specialized code to my new generic attachment code and got rid of the special case code there. The world balances itself out, I guess.
Inventory UI: Who Needs All Those Icons Anyway?
Simplify at first, expand only when necessary
One of the first things I worked on was a more traditional inventory with a limited number of slots using icons. But lately I’ve found this holding me back whenever I added a new item or weapon; I need an icon for it. It’s a small psychological thing, but it really added to the work I felt I needed to do (and any addition right now is too much). So I cut it out and used a simple text list instead (see image below), then reworked the inventory script system so that you can hold any number of anything now.
Your sea of flaming skulls is but an ocean of blackness, as my cavern of creeping shadows is a day-glow happy hollow
In exchanging screenshots with Billy from SpineCrew Entertainment I noticed that his images were always very very dark (I just figured he was into death metal). Meanwhile the images I sent him were very very bright (I’m sure he thought I was a happy-pony-loving-hippy…and of course, I am). But that wasn’t the exact look either of us wanted. We had, or rather _I_ had a screen gamma problem.
We have to make the levels consistent across various hardware with different monitors, graphics cards, operating systems, and brightness settings. It’s really a science of which I’m but a neophyte, but the quick easy way to get 90% there was to add a gamma adjustment step in the options. This lets you adjust the ‘brightness’ until the gradient in a picture looks like it did when I made the game. This will hopefully ensure that when something is in shadow to me, it will also be in shadow to you, brave player.
Here is the image I’m currently using:

The idea is that you adjust a slider until the large box on the left is completely black, while all the other tones are distinct and the right box is completely white. I’m planning on having this adjustment be a required step the first time you go to options.
I’m sure there is some psychologically tested, standard version of this type of thing. If you know about it send it my way.
Physical Properties for Materials
The ninja and the mage have more in common than you’d think. Stylish outfits, appearing in puffs of smoke, disappearing in puffs of smoke, staff skills, quick to anger…
Around the same time I switched to the Torque engine, I ran across this game N from Metanet Software. I played it for hours and hours. Check it out if you haven’t played it. Ninjas, robots, exploding body parts, great tight action, and free! What more do you want, peoples?
It reminded me of one of the small things I like in games: sliding when you change direction quickly. It’s such a small thing but something about it is just fun. So I added it to UnEarthed Gods with four different sliding animations (left, right, front, back) and some fun physics to go along with it.
This was all done a while ago and was great, but the slippery properties were hard-coded into the player/creature’s class structure, when what I really want is for it to be a joint property of the creature and the surface you are sliding on. In some other work I had discovered TGE’s materialProperty mapping system for footstep sounds and environment mapping that lets you associate variables with a particular texture map. This was exactly where I needed to put these values.
A couple weeks ago I gave myself a bit of time to do this, and it went very smoothly, maybe 15 minutes of work. Now I can have slippery patches of ground wherever I want: icy floors, sandy slopes, etc. I see a snowboarding mini-game in my future. :)
To make this easier on the level designer (me) I need to get rid of the properties being associated with specific textures and instead make a materialProperties datablock class where I can keep all the properties. Then I can just associate materials with textures and not have to go and change the slipperiness of rock on each of my 5 different rock textures.
It’s only a flesh wound
This was a very small change that makes it feel so much better when you whack something. I added some camera shake when you score a critical hit.
BAM!
Now I need some good bone crunching sound fx.
I love you but you have to leave. It’s the law, baby
I’ve been using some placeholder music for my game since last November. It’s by an Irish group called Lunasa (track 4 from this album). I love the song, but I need something I have the legal rights to use. I ended up making an ambient tune with an acoustic guitar and Reason, that came out very nice.
I can’t afford sounds, so I make ‘em with a muffin
I’ve long been lusting over various sound fx libraries, beggin’ the fx companies for special treatment of us poor indie developers. I’ve come this close to dishing out wads of cash for some of the nicer libraries, but at this moment, I’m glad I didn’t. Sure it’d be nice to have 10,000 sounds at my fingertips, but I’m on a tight budget here. Necessity calls, and I think back over all I’ve ever heard about sound fx creation. Usually, at its core, it seems to be two guys, a bucket, a plunger, and a box of rocks. We can do that!
Ok, I need some footstep sounds. I need a walking on marble sound and a walking on grass sound. I’ve got a fork, a saucer, muffin crumbs, a shoe, a desk, and some old dry decorative grass. A bunch of flailing of arms, some minor audio adjustment, and I’m done! I am the Foley!
Not only did I save some money, but I also learned some new tricks and had a whole lot of fun in the process.
You are going to eat this sword and you are going to like it
After reworking the basic inventory UI, I could start working on some of the more complex features. Now you can eat things in your inventory (or try to, and stab yourself in the mouth). You can also combine items to make new items, or use one item on another one. For instance, you could combine your bashing weapon with a stone to get stone fragments. You could combine the bashing weapon with the fragments to get stone powder. You could combine the powder with liquid to create a paste. Or perhaps you’d like to eat the powder to create the paste. This is all handled by the items themselves right now, so the combinations are only limited by our own creativity. I’m sure you can guess at how this will be used in the game.

I keep clicking but nothing happens. Is that so wrong?
A solo game developer’s job is never done! I made a few minor changes to the website. I temporarily commented out the “Forums” and “Store” links, updated the intro message, and tweaked the screenshot page.
Brave New Galaxy Sprouts from Head of Developer
Here’s some fun news: my friend and ex-boss Sim Dietrich set sail into the shark-infested waters of indie game development last week. He has a Developer Journal for his game over at GameDev.Net. The man is a master and I’m sure his game is going to be great. Take a look
Thanks for checking in. I’ve enjoyed your company and hope to see you back for my next tale of toil and adventure in game creation.
-Clint

well I just made my quickslot bar (the cave thing at the bottom of the screenshots) functional today, and I need icons for that. I might go back to icons for the inventory. I personally don’t care either way, icons or text descriptions, but I wonder how you guys feel about it.
The quick slot bar could just turn into 10 lines of text as well.
Or I could make a small set of icons for the type of object in the quickslot bar, weapon, spell reagent, tool, paper, etc. So you’d have to remember what it was still, but the icon would at least hint at what type of thing it was.
— Clint Jul 19, 03:11 AM #
— wheelbarrow Jul 20, 12:52 AM #
It’s definitely encouraging to see the game developing. I’ve got some good stuff with the magic system next. Maybe some edible rocks just for you!
— Clint Jul 20, 05:33 AM #