2015-05-05

Mock-up of what's next...

Did something different this evening. Created a mock-up for the next game I'm planning on working on. I'd originally only planned to do a static screen, but making it animated was too easy to pass up.

Essentially, this is meant to be a mobile, randomly generated RPG of the dungeon crawler variety. With a minor twist.  It's planned to be quick to pick up, and easy to play on mobile devices (tablets and phones).  It should be friendly enough for casual folks to be able to dig in, too.

DISCLAIMER: I borrowed some graphics and textures from various public domain sources. Absolutely nothing here represents anything except attempting to visualize what might be. The graphic style presented here, especially, is essentially pieced together at random from whatever I could find.  I do have a specific look and setting for this game in mind, and this isn't really it.

More on this later.



2015-04-25

On Ludum Dare 32...


So, I was planning to enter the 32nd Ludum Dare game jam this past weekend.

I had been flip-flopping on entering, since I was rather occupied with guilt over other, unfinished things (and fighting general malaise) but the theme, "An Unconventional Weapon", made me reconsider.

You're looking at roughly $3 million US dollars in
black market giraffe eyelashes.
After sketching things on a pad for a bit, I settled on the idea of a hidden object game. The plan was to pull in 3D assets from the various free game development resources, like opengameart.org, among others.

The plot was flimsy: in a dark, nasty alley, a terrorist has hidden a bomb. The "unconventional weapon" was disguised to look like unassuming, everyday items.

A walking stick. A fan. A pumpkin. A severed giraffe head. You know. The usual things people leave lying around.

You'd be shown the item of interest at the start of the round and have 30 seconds to locate it before it exploded. The more successful you are, the shorter the amount of time you are given, and the more decoy items would be scattered around. You would simply click around with your flashlight. Candidate suspicious items were to be outlined under your cursor, until you found it. It was supposed to be stupid easy at first, and then grow increasingly more difficult.

Not exactly a deep game, but something I figured would be a hoot to slap together, and would give me a chance to throw in some humorous lines with the item descriptions.  I was going to go for a kind of faux-British slang-like gag, like calling the walking stick a "stiffy poker" or the fan an "electronic air pusher".

The pumpkin face actually glowed properly,
showing it's creepy grin projected on the walls.
I bounced between a flashlight, and then a UV light (I was struggling with game mechanics and originally was going to have the item react visually under UV light -- like finger prints, or something), and then back again. That's why there's a violet look in some of these shots.

This project gave me an excuse to work not only with Unity 5's now-free pro features, but also with other peoples various 3D assets, and the difficulties that are involved. Missing textures, scale problems, reducing the number of polygons to something more manageable, cutting out unnecessary parts of the models, retexturing and/or creating new materials, etc.

Then, my favorite part, bringing them together into a single visual style, tweaking the lighting, atmosphere, and so forth.

Had some issues with the thickness of the outline shader at first, but this was fixed.
The glowing fish fins, no matter how cool it looks, were not.
Ultimately, it WAS very educational, and I enjoyed it. But I ran out of steam somewhere around the end of the second day. I had other things come up, and honestly, my heart wasn't really in it. I wasn't putting in the hours necessary. As the weekend progressed, it was as if the jam wasn't even happening, and I was just screwing around.

By the early afternoon of the third day I decided to throw in the towel and work on other things... like finishing off watching Cowboy Bebop for the first time. (Seriously, do it. It's amazing.)

Eventually I'll return to it and finish it off. I think with some more work and polish, there's potential there, despite being such a simple idea.

Hopefully by then the Unity 5 WebGL export will be improved. Right now, this looks like crap with it. There's an early WIP version (like, mid-first day?) for the deprecated WebPlayer, if you'd like to just wave a flashlight around, with no objects.

The deprecation of NPAPI in Chrome this past weekend has thrown the Unity world into crisis mode... without a timeline, or public reassurances (that I am aware of) that WebGL builds will be given priority, I have to think hard about my future with the engine. I was not expecting browser deployment of my projects to be so important.  I doubt I'm going anywhere, however. I've come to greatly enjoy C#, and despite this setback, Unity still builds to MANY other platforms, including mobile. I'm sure they'll get this sorted out...eventually...

2015-03-22

Recent WIP screenshots of LaserSmash!

Changes made recently:
  • Updated to Unity 5 and it's vastly improved lighting
  • Replaced the space background with a procedural skybox (the hue changes as your score goes up!)
  • Stars are randomly generated using a particle system.
  • Added sci-fi buildings to the background. With the exception of the dome, the ones in the shots are temporary buildings fished off the asset store. Will rebuild them from scratch.





2015-01-11

Just taking the dog for a walk...


The winds blew a certain way this week, and I decided to spend some time working on a Unity framework for a Sierra/LucasArts style adventure game. Even stole some sprites from my favorite one.

The very moment you have Sam walking into the background, with scaling, and behind other objects it all feels very lovely and alive suddenly.  Also, it's kind of weird doing a 2D game with fake 3D, when you're in a 3D engine.  But hey. :D

When I get a short demonstration game going, I'll probably throw it all up on GitHub. It'd be fun to try to throw a game together for a future Ludum Dare jam.


2015-01-04

UE4: The First Day

For Ludum Dare 31, Epic offered up a bunch of free 90-day Unreal Engine 4 subscriptions. I wouldn't have dared make use of it for LD31, since I'd almost certainly be spending 95% of my time simply learning the engine.

However, now that the jam is over, and I have a weekend free. I decided to explore it, by attempting to port over the entry I DID wind up making, SnoZonE.

The results, after a day, are visually astounding so far:

It's a start.

There's quite a bit of a learning curve. Random glitches appear now and then... I crashed the engine no less than 7 times in about 10 hours. I caused a some major hair-pulling issues with lighting, because I marked some things as 'static'.

The editor interface is a bit rough in spots, compared to Unity, but it's also quite a bit more powerful and deliciously complicated.

I haven't even gotten into the code side of things; just importing existing assets, exporting the terrain, and learning the interface and UE4 way of doing things. I had planned to completely ignore Blueprints, in favor of using C++ exclusively, but it there's plenty of things (like that cloud-filled sky in the screenshot) that use them.

I made some attempts to migrate over the skybox, but skipping that in favor of the procedural materials that come with the engine was an easy choice.

Unity has the huge advantage of being able to export to the Web Player.  UE4 doesn't do that... yet.  Somewhere down the line, there's plans for a WebGL exporter, but until then, desktop and mobile (Android/iOS) will have to suffice.

So far it seems like it will be worth the effort in the long run, if only for the experience associated with working with a AAA-level engine.

It will be very interesting to compare this to Unity 5 when that drops, for us mortals.

2014-12-27

How I Spent Christmas

Warning: I am not a biologist. I am not even a scientist. I am just a foolish game dev who's read a little bit on biology and decided to explore some of the ideas in code without the benefit of seeing what's already been accomplished in this field. My assumptions will be wrong. I will make major mistakes. If in doubt, seek a proper scientist. Do not pass Go. Do not collect $200.

Intro

For quite a while now, I've been pondering some fairly heavy stuff. Ideas that are probably far outside my usual bailiwick.

One of them is in relation to emergent behavior and biology.  If you're not familiar with emergent behavior, the simplest way to describe it is a more complicated, unplanned construct formed from interaction of simpler components.

Can you identify which
one stole your purse?
Snowflakes are often a good example of this in nature. A simple consequence of molecular structure and atmospheric conditions causes a nearly infinite combination of visually pleasing, often complex designs.   And those designs have even greater consequences.  The flakes accumulate, causing snow to form.  And that snow caused Jessica to start her own snow plowing company, which now has 12 employees, etc, etc.

Why am I here? For the powah...
Humans are almost entirely composed of oxygen, carbon, hydrogen, phosphorus, calcium, potassium, sulfur, sodium, chlorine, and magnesium.

And that bag of chemicals lounges on the couch binge watching House of Cards on Netflix.  Other chemical bags also created the show.

And that's basically what got me thinking. The last year or two I've been doing a lot of reading on biology, how cells work, and so forth.  It's absolutely fascinating stuff.  (In a parallel timeline I totally got into that field.)

I decided to take Christmas Day off from my other obligations and just kind of explore some of my ideas using Unity.

What was the idea I was interested in looking at? Cells multiplying based on their DNA programming. Each cell has a copy of the human 'source code'.  I wanted cells to multiply based on a layout specified in a bytecode script.

Rather than go full on with what I was thinking (which is what usually gets me into trouble), I wanted to paint this with very broad strokes, at first.

So no scripting. No "DNA".  No major genetic mutation.  Just cells replicating.

In code...


So I have an Atom class. I mean 'atom' in the abstract sense, not literally representing a real atom. This is simply the smallest, indivisible unit. (I didn't want to be a jerk and call it a 'cell' for some reason, but I needed something. In retrospect this was ridiculous, but the bed is made!)

An Atom object can "bud", meaning it copies itself, undergoes minor mutation of its parameters (currently just it's size), and then attaches the new child to itself.

Actual e.coli just
doin' it's thing.
Each Update() cycle, I walk the tree of Atom objects and Bud() each one, growing the tree... around this point you should be absolutely panicking and trying to throw the Wikipedia entry on exponential growth at me.  Trust me.  I know. I bloody know. I had to murder the Unity process at least a dozen times while debugging the thing while it ran wild.

Eventually I threw down limits to contain it's growth. Each Atom object would only spawn n siblings. And there was a maximum number of generations each 'strand' could hold.  Turns out 4 siblings out to 5 generations each branch was tolerable.

At first, I didn't do anything but make them grow downward on the y-axis:



So Atom objects were overlapping each other. It looks neat, sure, but there's more to do. First, I made them randomly distribute a bit along the x-axis:



And then the z-axis (after a bit of tweaking):


Looks rather neat.  

Then I added rigid bodies to each one... pop:


Aaaaand then I attached a FixedJoint component between each Atom, hooking each parent to it's sibling...


Then I tweaked the 'break force' attribute, and suddenly...


Whoa. Gettin' all astronomical in here!

I tweaked it a bit, cranked up the Generations/Siblings a bit and ran it again...

I accidentally big banged.



From what I can tell, the 'pressure' of all these objects spawning so fast in close quarters made them be violently thrown outward, causing the break force limit to be reached, but only sometimes. 

This caused entire clusters to splinter off, yet stay together.  It's kind of like gravity holding bodies together, I guess.

But damn if that isn't an interesting, unexpected side effect!  Here I was trying to naively simulate something very small, but wound up stumbling on something entirely different. Not the emergent behavior I was curious about, but I'll take it! ;)

Eventually I tried to slowly increase the generation/sibling values to see how high I could go. Here's what it looked like a couple frames after I cranked it rather high:


I have a feeling we're hitting the limits of the physics engine here, instead of discovering a new side effect.  Still, looks rather neat, and you can cook eggs on the CPU, too.

Another neat shot, flying the camera into that mess:


I assumed the spheres, especially in this quantity, were ridiculously high poly for the job. So I went into Blender and created the cheapest, vaguely sphere-like shape I could muster.  It didn't change much. 

But, again, neat visuals ensued:


So, that's how I spent my Christmas.

What did I learn here? Well, this reinforced in my mind the necessity of taking a potentially ambitious idea and doing something much simpler first.

All of this code was ridiculously unoptimized. I didn't even attempt it. Hell, I'm not even going to post it, it's so awful. In something simple like this, its best to get the basic idea out.  Make it work first. Then go in and optimize, if it's worth it. In this case, it's probably not.

There may be some value here in procedurally generating somewhat realistic looking space maps. I didn't go into this with that intention, but it's what I came out of it with.

I'll still play around with it a bit, though. If anything interesting 'emerges', I'll post an update.

2014-12-14

Game Development Resources



Every indie game developer has a list like this on their site. Why should I be any different? :D  Let's start off with audio. More to come!

Updated constantly.  Last update: 2014 Dec 14

Sound Effects

Collections

  • Freesound - One of the biggest public collections of Creative Commons licensed sound effects. Often my first and last stop.
  • LaptopNoise.com - A large collection of random 'glitchy' computer effects free for use. Check out the rest of the site, too, for more curiosities.
  • SoundBible.com - Huge, searchable collection of Creative Commons, public domain, and other licensed sound effects in WAV and MP3 format.
  • RCP Tones - A deliciously professional collection of professionally created sound effects. Good for user interfaces, notifications, ringtones. The full collection is $35, but the author offers a subset free for use by app developers, with attribution.
  • Octave - Free library of user interface sound effects; attribution optional. Can also be contracted to create custom sounds.
  • PacDV - A decent collection of various sound effects from Pacific Digital Video. Free use with optional, but encouraged, attribution.
  • OpenGameArt.org - Open Game Art maintains a sound effects collection.
  • Transformers Animated Sound Effects - This isn't legal for use in your commercial projects, but if you're building a prototype, or doing something fun for a game jam, or some other non-commercial project, you may get a thrill throwing in some of these old school, and more modern Transformers cartoon sound effects.

Generators and Tools

  • bfxr - An extremely popular fork of the Sfxr tool, for creating your own, unique sound effects. Flip switches and sliders until things sound good and then render it out as a WAV file. Available as a desktop app, too.  (Also, check out this super pimped out version, jfxr.)
  • LabChirp - Similar to bfxr; a Windows desktop tool for creating sound effects.

Music

Collections

  • incompetech - The master collection of Creative Commons (or no-attribution, with a fee) professional, royalty free music.
  • Free Music Archive - An interactive library of high-quality, legal audio from WFMU. License varies by title, but most are quite liberal.
  • Partners In Rhyme - Modest selection of free, royalty-free music. Only asks for attribution.
  • Looperman - "Royalty free loops, samples and sounds kindly uploaded by other users; free to use in your project"
  • OpenGameArt.org - Open Game Art maintains a music collection.

Generators and Tools

  • Musopen - A non-profit focused on increasing access to music by creating free resources; free, without restrictions.
  • Fake Music Generator - I haven't used this in anything, myself, but you may find it useful.

2014-07-16

Whack-a-Burster (Final, Post LD48 Revision)

I finally decided I'd put enough time and effort into polishing up my Ludum Dare #29 game jam entry, Whack-a-Burster.  

Give it a shot over on Itch.io: fortyseven.itch.io/whack-a-burster

It's been a fun and extremely educational experience, but it's time to move on.  There's still some rough edges, but it's come a long way from this:


to this:


Picked up a lot of skills (working with shaders, etc), most importantly working with Blender to create new models.

While I replaced most of the found or Asset Store art with hand-crafted objects, there still remain some things not created by me.  The texture on the soldier was revised a bit, but the mesh is still the original one from the Asset Store.  The terrific UI graphics on the control panel and walls were taken from a website showcasing graphics from the movie Prometheus.  The texture on the planet was taken from a pack of planet textures obtained elsewhere.  And of course, things like flares on the laser and so forth are stock Unity assets.

Other than obvious bug fixes, and possibly the addition of a crosshair cursor (it's easy to get lost, visually), I'm done with this and I'm about to move on to more important projects that have been waiting.  I also hope to be participating in the MiniLD #53 this weekend!

2014-06-14

Ambient Backgrounds


Like most coders, I'll put on a YouTube mix, or let Pandora shuffle about in the background while working.  But once in a while it's just nice to just have some ambient background noise.

Sure, you could have a fan blowing around, but what about the background noise of the TARDIS?  Or the idling engines of the Enterprise?  There's a ton of these up on YouTube, often lasting hours at a time.

Here's a sampling:

2013-11-27

Gamey Bits: Alien 3 (1993, SNES)


A dark, depressing future filled with aliens ready to probe you? This sounds like a job for a bored Conspiracy Guy.

2013-11-22

Gamey Bits: Blackthorne (1994, SNES)


Hey, sometimes HE takes a break from fighting The Conspiracy. And when he does, he plays old video games. And that’s about it. He’s not very good.

2013-07-14

Mini-Review: Rubber (2010)


Rubber is the story of Robert, an inanimate tire that has been abandoned in the desert and then suddenly and inexplicably comes to life. As Robert roams the bleak landscape, he discovers that he possesses terrifying telekinetic powers that give him the ability to destroy anything he wishes. At first content to prey on discarded objects and small desert creatures, his attention soon turns to humans, especially a beautiful and mysterious woman who crosses his path. Leaving a swath of destruction behind, Robert becomes a chaotic force and truly a movie villain for the ages.
If, after reading that description, you find your curiosity was in any way piqued, trust me, just go ahead and pull the trigger. It’s even weirder than you think. There’s more to it than just “psychic tire goes on a violent, gory rampage” — not MUCH more — but I won’t dare spoil it.

Visually, it’s a good looking film, set in the wastelands of the Southwest. The effects are decent enough for a small budget, and “Robert” seems more alive than any tire has a right to be.
 
The wheel everybody is raven about.
Unfortunately, the story, running at just under an hour and a half, drags now and then. It often feels like a simple short film that was expanded on, and yet even then required empty filler to justify calling it a movie. The delivery of what little dialogue there is can feel a bit stiff at times, often littered with full words where contractions would feel much more natural. (That sounds trivial, but when you hear it, it’s abrasive.)

That said, Rubber is a weird, strange, often violent, and unexpectedly meta experience. You won’t be better off as a person after seeing it, perhaps, but you definitely won’t forget it.

4/5


Positives
  • Strange, funny, and enjoyably self-referential experience.
  • Gorgeously filmed, yet depressing Southwestern backdrop.
  • It’s a fucking killer psychic tire. 

Negatives
  • Runs a bit too long for such a thin story.
  • Dialogue flip-flops between interesting and stiffly delivered.

2013-07-05

The Conspiracy Guy’s Intelligence Briefing…Vulture Club


This week The Conspiracy Guy educates you on the history and security defenses of...vultures?


2013-06-28

The Conspiracy Guy’s Intelligence Briefing…Pandora’s Games Box


The Conspiracy Guy taps his contacts in Los Angeles to fill you in on the dirty secret history of the Ouya video game console!


2013-06-18

The Conspiracy Guy’s Intelligence Briefing…The Demon Chip


A bit of a history lesson as the Conspiracy Guy brings you an Intelligence Briefing about a chip that had a lot more going on under the hood than most people thought!


2013-06-15

Sneak a Peek Inside the Guts of the Orignial Prince of Persia


Oooh, these are my favorite kinds of stories. Coding bad-ass, Fabien Sanglard, yanks on some latex gloves and performs a digital autopsy on the recently released source code to 1989′s Apple II mega-hit, Prince of Persia.
Even though it is the Apple II version written in 6502 assembly language, it was a pleasant experience to dive in the code of that mythical game: As usual there were many fascinating sofware wizardries to discover. The Apple II apparent poor environment for game programming was actually ground to unmatched innovation and creativity: From self-modifying code, in-house bootloader, clever floppy disc format to skewing lookup tables: Prince Of Persia features engineering treasures in every modules. Reading the source allowed me not only to learn about the game development process of the 80s but it also renewed my appreciation for things that we take for granted today.
While you’re in the neighborhood, check out the rest of Fabien’s excellent code teardowns, includingDuke 3D and Quake 3.

2013-06-03

TF2 Tips for Filthy 2Fort Pub Rats (Part 1)


Professional Team Fortress 2 players are horrible people. They drive around in their fancy hot pink sports cars, race their 5200 dpi Razer mice around their gold encrusted desktops, and literally make millions of dollars a day professionally playing a free-to-play game. They make me sick!

But not you and me, though. We’re not pros. We’re just everyday, blue collar gamers. We join a pub, light a cig, blow some guys up, and then we go home and drink heavily.

Like a lot of us, I’m stuck in the 2fort rut (i.e. Twoforticus rutticus). That’s where you have hundreds upon hundreds of base and custom TF2 maps to choose from, but inexplicably you still choose to play 2fort. The only reasonable explanation, aside from mental illness, is that 2fort is scientifically proven to be the fuckin’ bomb. (You know it’s true.)

So, I figured it wouldn't hurt to unload some of the tips and tricks I've learned over the years of slamming my head repeatedly against the 2fort wall. These are probably considered common sense for most veterans of the map, but I've had enough clueless players on my team that it couldn't hurt to have a refresher.

Taking Out Those Uncouth Eggheads Camped Out in Front of Your Base


Occasionally one or more Engineers on the opposing team will feel brazen enough to actually begin erecting their sentries, dispensers, and teleporters outside YOUR base. This. Will. Not. Stand. Like a typical coward, they will almost always attempt to build them in the corners, like so:


They foolishly believe this to be safe. And, indeed, when used against lousy, uncoordinated teams (like their own), it can be an absolute nightmare. Unfortunately for them, YOU are on the server, which means their little mechanical wonderland will be tits-up moments after the last bolt is tightened.

What they quietly pray you won’t realize is that placing structures in the corner actually makes them easier to take out. The trick is, instead of attacking the structures directly, you use splash damage. As a Soldier, you simply spam the hell out of the ground NEAR the nest, like so:

Skill?
Assuming the equipment is at 100%, it will probably take a couple more missiles to do the trick, but it’ll work if you stay alive long enough. But watch your back — you WILL probably have to reload, and if the enemy team is any good [they aren't], his teammates will help defend. Even if the owner of the equipment is repairing it as you attack, eventually the splash damage will get him. Then you can whittle away the rest of his toys near his dead corpse until they’re gone.

Make sure you aren't using the Direct Hit (it has considerably less splash damage than a regular rocket launcher), and, my god, completely avoid the Cow Mangler 5000 unless you’re using it’s alt-fire to disable the sentry for 4 seconds to assist another Soldier’s destructive intent. But that means teamwork, so let’s not get carried away.

An alternative is to have the Demoman plop down a bunch of stickies and blow them all at once. This is less desirable, though, because it tends to require several stickies at once to do the kind of damage you’ll need, and they’re easy to shoot away (or a Pyro may simply blow them off). It all depends on what kind of defenses the jerks are employing. (Probably none, am I right?)

I've never tried doing one sticky after another, simulating the soldier’s technique, however, but I have a feeling the damage from individual sticky blasts won’t be enough.

You’re free to try though. If you’re a dope.

Bonus: Chances are, there’s a dispenser nearby, too, which means that there’s probably semi-wounded enemies hanging around suckling at the Engineers metal teat. On a good day, you’ll take out the sentry, dispenser, the Engineer, his mother, and if you’re lucky, maybe even crash the server.

**drops the mic**

It Was A Good Day To Spy


Good Spies instinctively stick to the walls and corners, because, not unlike Engineers, they have horrible social skills. They stick to where the least enemy traffic is, because if they’re discovered, they’ll have to engage in conversation. (With enemy bullets.) With this in mind, a good role for the defensive, domesticated, live-at-home Pyro is to repeatedly patrol the base, hitting all the usual places Spies love to chillax:


Another good habit to get into is to regularly fire a rocket or flare down the long hall on your way out of the respawn. Quite often you’ll accidentally hit a spy trying to sneak through the otherwise low-traffic path. Always think in terms of where you, yourself might go if you were trying to avoid human contact. And then smother that area with fire. (This also applies to real life.)

It’s like playing a slot machine. Usually you get nothing. But, sometimes, you set a man on fire.

Side-Stepping The Issue


As a Spy, you just can’t catch a break. There you are, hiding against a wall or in a corner, minding your own business, when bam! Suddenly, your skin is burning, or you've had a missile inserted forcefully into your rectal cavity.

And that’s IF you can even get into the enemy base!

The odds of crossing the bridge unharmed are downright dismal. The rockets of Soldiers whiz by. Medic-reinforced Heavies unload their dark business. Pyros perform spy checks by randomly coating the area with fire. Demomen launch their grenades with reckless abandon. You will probably break like a rice cake before you hit the front door.

But they all have something in common: they’re usually either aiming down the center of the bridge, the two entrances, or at the sniper deck. (Duh, right?)

That’s where this little feature comes into play. Along the side of the bridge are these supports:



Start by crouch-jumping onto one, like this:


Then, hugging the side as best as you can — this will take practice — keep walking, slowly, while crouching, along the side.

You will appear to float in the air at times, just like Jesus. (You are not actually Jesus, however. But you can wear the Cheater's Lament if it makes you feel more holy.)


Eventually, you'll waddle enough to get you to the other side. Probably unscathed. This interesting zone along the side does not make you invincible or anything, but it’s almost always ignored. Granted, a Heavy’s bullet spray will probably nick you and reveal you for a sec, but they’re usually not paying attention. Because they’re fat.

Your mileage may vary with this one, of course. It depends on the battle, and if you've pissed off Jesus or not. Which I have. So this doesn't work for me anymore. (But it probably will for you.)

FLIP SIDE: Pyros, be sure to spam this area with flames when you walk across the bridge, in case some dumb, sneaky backstabber took this terrible advice.

Closing



That’s all for now.

Again, I realize these are pretty basic tips. Most regular players know them. But, since we've had a lot of new guys in recent years, it couldn't hurt to document some of this stuff.

If you find this useful, there’s plenty more where it came from. Let me know!