Feels like the first time

Okay, so it’s June. Where are the updates?
Unfortunately, I’m still working on getting my new life squared away over here. Moved to a different state, polished off another course in the online classes I’m taking, took a two-and-a-half week roadtrip to go visit the girlfriend’s family and friends. Really, the only thing I’m still waiting on is that whole “employment” thing. Lots of applications, and lots of waiting. But I don’t want to get too involved with programming and then have to put everything right back down again, so I’ve been amusing myself by playing video games (call it research, if that makes it sound better). Lately, it’s been New Vegas, which has me feeling all nostalgic for the original isometric Fallout for PC. What a great game that was. So, spoiler alert, I’m going to talk about games that I wish I could play again for the first time, and why:

Fallout 1: Road Warrior (one of my favorite movies) crossed with Baldur’s Gate. Where could it go wrong? God, I spent *so* much time playing this game instead of working on my high school homework. It’s just as sandbox-y as the more well-known Bethesda releases; there’s just so much to do! I still remember the very first time I saw a super-mutant, and how completely unexpected it was. One of the first things I did in the game, really. I completely skipped Shady Sands, and went straight to Necropolis. And damn near shat myself the first time a dude twice the size of my character opened fire on me with a mini-gun. I wasn’t expecting that at all. I mean, there aren’t any FEV mutants in Road Warrior. The very best part of the game, I think, was the Master in the south. My first playthrough, I didn’t have the psychic amplifier, so every step I took towards the master was filled with terrifying hallucinations. It was just so perfectly constructed; a masterpiece.

Dead Space 1: Just the first fifteen minutes, really. The game was great for the startle-scares, but the first fifteen minutes had one of the best atmospheres I’d ever seen in a horror game. Anybody who’s ever been around when I describe that part of the game knows how into it I get. I *felt* it- the game gives you no weapon, separates you from the rest of your team, and all of the sudden some horrific monstrosity is bursting out of a ventilation duct and coming for you- RUN! Every time you turn around, some dead body is standing up and chasing after you, some shadow is flitting across the ceiling, something just made a slurping noise behind you, but where is it?! The rest of the game was pretty good, but *nothing* beat those first fifteen minutes.

Braid: The last level- the reveal. That sudden sinking feeling when you realize: you’re the monster. You’re not saving the princess; she’s running from you! The whole game built you up and placed you in Tim’s shoes. You’re just a nice guy, reaching out to this woman who doesn’t seem to acknowledge you. The princess is always in another castle, until she’s *right there.* What a blow to the gut.

World of Warcraft: Technically, the first time I played, I thought it was stupid. I didn’t see the point, and I got bored very quickly. A few days later, I started a new character with some friends, and we did some questing together. I’d never played an MMO before, and every co-op game I ever played involved shooting lots of bad guys, instead of actually working towards some sort of goal. The first couple weeks of WoW showed me how cool multiplayer games could really be.
And then I spent the next 8 months getting ganked.

Aquaria: Alec Holowka and Derek Yu opened my eyes to indie games; I’d never heard of such a thing (that wasn’t just some terribly little school project). The graphics, the music, and the storyline! Everything about this game, which seemed like the most beautiful Ecco/Zelda lovechild you could imagine, was amazing.  Hearing Naija giggle as she destroyed the schools of fish, and then wonder if she’s becoming something horrible… Meeting Li, and then losing him. Discovering that your Creator is some abomination… and how about that boss fight, huh?

Walking Dead: Oh god the feels. This game did such a masterful job of putting you in the protagonist’s shoes; I don’t think I’ve ever felt such strong emotions while playing a computer game before. I would have done *anything* for Clementine. God, I pretty much did. Well done, guys. Just… well done.

Half-life 2: Honestly, it was Alyx that made the difference. Don’t get me wrong, the games were amazing. Just the right balance between solving puzzles, telling stories, and shooting things. But Alyx gave the games a more human feel. I found myself shouting at the TV more often than not- “Look out! Yeah, you shoot that critter! Great job!” It was the little things that made the difference. If you shine your flashlight in her face, she squints and shields her eyes. If you turn it off, and it’s dark, a couple beats go by before she makes sure you’re still there, sounding just the right amount of pretending-not-to-be-worried. I’ll just be over here with the rest of the gaming world’s population, waiting patiently for Episode 3.

What about anyone else? I know at least 3 people keep their eye on this blog. What games do you wish you could play again from a blank slate?

The Necessity of Sound

See, I told you I’d still write every once in a while.

I’ve been playing some Mass Effect and Dragon Age lately, and it’s got me thinking about music. The first time I played Mass Effect 3, I played it on someone else’s XBox using a computer monitor as a TV, so there was no sound whatsoever. When you create a new game, captions are turned off by default, and you don’t get the ability to turn them on until after the opening cutscene, so for the first 4 or 5 minutes of the game, I’m just watching everyone flap their mouths, gesticulate wildly, and get killed by Reapers. The second time I played I had the same setup, so by this point my brain was filling in all the sounds and voices it expected to hear.
Just recently, I started playing on my own console, in front of my own TV. It’s amazing to me how much of a difference the audio makes. For some reason, I’d never acknowledged that the Salarian Dalatrass was a female. Ashley’s voice was less soft and girly, and Liara didn’t speak so slowly (seriously, it’s like listening to Captain Kirk). The music made a huge impact on several portions of the game- I’d be standing and looking at something monstrous in the sky (every five minutes there’s something monstrous in the sky in Mass Effect, whether it’s an alien ship, or a planet, or a space station…) The previous times I’d played this game were enough to allow me to form a preconceived mental “image” of the emotions and feelings that Shepherd should have been having, and it jarred me when the music didn’t match up with that. It’s weird to think about how much influence the audio has.
Half-life 2 is a pretty good example; whenever you enter an area that’s about the hold some sort of intense action, this music that’s very different from everything else that’s been playing comes on; a very fast-paced intense sort of thing. That was great and all, but it felt a little weird when you’d killed all the bad guys, and the track was still playing. In Dragon Age 2, I guess there’s a default track that plays in caves and stuff, and at one point it turns into a choir singing sort of intensely, and I always flinch on the inside- “What’s about to happen?”
I remember one of the things that the original Dead Space put out, long before the game was actually released. Somebody had written something about how most games overuse that whole audio stimulus, and by leaving us in silence, Dead Space did a great job throwing you off-kilter, and ambushing you with bad-guys. I honestly can’t remember if the game held on to that, but I remember being disappointed in Dead Space 2 when the music would ramp up during an encounter.
I remember a Kickstarter, one of the first I’d ever contributed to, for an indie game that didn’t pan out. It was supposed to be a game where the main character is blind; it made heavy use of headphones and surround sound. It was some sort of space-horror game, and it sounded amazing. Months and months later, it turned into one of those kickstarters where the money just disappeared and the game never happened- a really apologetic email was sent out about how other circumstances had come up, and the funds would definitely go towards making a game, but that game in particular just wasn’t going to happen. Such a shame, because I feel like that’s a mechanic that isn’t touched very often- the necessity of sound.

A Bad Word

I’ve been trying to avoid using The Word, because it feels like giving up. But I’m not kidding anyone, and I have to admit it to myself before I can say it out loud.

Hiatus.

Whenever I see that word attributed to a game or a webcomic, I think “well, so much for this thing. It’ll never be touched again.”
I guess I’ve had a couple hiatuses, though. One after each iteration of my game: the ActionScript version, the Construct versions, the Python version.
I’ve already come too far to give up and start over now. When I pick back up on it, it will definitely be from where I left off. And I did get to a pretty good stopping point. All I have left to do before I can start working on the Noir level is to link the waking isometric level with the end of the Japan level.
But right now, I’ve got a little too much going on in my life to focus on the game. I’m moving to Tennesee at the end of the month, I just started a bunch of classes at Western Governor’s University that I need to get ahead in, and I’m still looking for a real job. After we get to Tennesee and get everything set up, I still have to come back to Virginia to retrieve my car and drive back to TN, right after which we’re taking a month-long trip around the country to visit some family.
So what does that mean for Waking Dream?
I haven’t given up on it. I expect to get back to working on it regularly sometime towards the end of June, once the things in my life settle into more of a routine. I’ll keep having ideas and writing them down, I’ll keep working on level designs. I’ll stay active on the TIGForums, and I’ll keep downloading and playing other people’s indie games in the constant search for ideas, improvement, and inspiration.
If I find any links or anything interesting I want to share, I might even continue posting some things here. If I get any artwork for the game during my hiatus, I’ll show some of that off. And who knows, maybe in between working on classwork, I’ll need something to take my mind off of stuff and I’ll get a little work done on my game.

Difficult Facelifts

It’s been a while since my last post, but I already posted once without an upload, and didn’t want to do it twice in a row. This last upload has added a difficulty level, which has been sorely lacking, and a couple minor graphical improvements.

Graphics:
– Samurai MiniBoss has a brown robe to match the dialogue picture (and also making him look a little less like Samurai Jack)
– New title screen
– New pause menu
– New View Controls screen (which is now also the Adjust Difficulty screen)
– New Bird animations
– The sake bottle at the top of the screen now bounces a little when you pick one up, and when you drink one
– The water is a little more transparent, to make it easier to see that one rock ledge (you know the one I mean)

Non-Difficulty based changes:
– The mouse now cannot leave the window unless the game is paused. This keeps you from accidentally clicking outside the window when attacking, if you’re not paying attention to where the cursor is when you have a melee weapon
– Fixed a bug wherein if you were standing RIGHT ON TOP of an enemy and using the katana, the attack wouldn’t register
– Made it a smidge easier to jump from some things on to other things
– Bird corpses don’t stick around quite as long now
– Enemies now revert back to walking back and forth when you break line-of-sight
– Enemies also now deal their damage halfway through the attack animation, which looks a little more realistic

Things that changing the difficulty level affects:
– Enemy speed
– Enemy aggro range
– Enemy firing rate
– Enemy damage dealt
– Player damage dealt
– Player invulnerability time after a hit
– Amount of health restored when drinking
– Whether or not checkpoints restore health
– Mini-boss damage
– Mini-boss rolling speed
– Boss damage dealt
– Boss speed-up rate
– # of hits to burn Boss’s armor
– Whether there’s a 2nd guard during Boss fight

The Difficulty Level starts at Normal on a new game, but is saved at checkpoints. I definitely need more testing and feedback to let me know if whatever difficulty level is too hard or too easy, especially at the Boss fight.
I’ve finally finished all the tweaks I’ve been putting off for the Japan level. I need to turn the isometric engine into the first waking level, link the two, and then move on to the second dream level. I’m still trying to decide how much will go online- I don’t want to give the whole game away during development!

Gone to Code

I’m still slowly chipping away at the isometric engine, and I’ve made a couple more changes to the Japan level after watching someone else play. I think I’m going to implement some sort of difficulty setting, which should make the game more fun for everyone, though it will take a lot of work to get it started.
I don’t have any new uploads yet, but I wanted to draw everyone’s attention to this video from Code.org, which is a nonprofit group dedicated to trying to bring programming classes to every school in America. I remember discussing with someone once how much differently programmers see the world- I remember distinctly watching my first hockey game, and in the back of my mind I was trying to design an AI behavior that would emulate what the players were doing. While fishing one day, I was looking at the surface of the water, and wondering how I’d go about implementing a 3D Ripple/particle engine in QBASIC.
After all the military uselessness I’ve endured, I feel like I owe it to myself to do something in life that I’ll actually enjoy, and I’ve been working towards becoming a math teacher. I love teaching, training, and explaining, and math fascinates me. In my high school, the programming teachers were always some other sort of teacher primarily, who also had a collateral job with programming, and so I never really thought that I could just BE a programming teacher. I’ve been toying with the idea- for a few months now- about trying to get some sort of basic computer science degree along with my math education degree and teacher licensing, so hopefully I can land myself in a similar position.
To teach programming- wouldn’t that be an amazing sort of experience?
Anyways, this video- it’s a really well-done little PSA-style thing with interviews from a lot of the computer giants- Mark Zuckerberg, Bill Gates, Gabe Newell, etc.

Also, check out some of those offices, man. How incredible would it be to work there?!

In Which Nicholas Learns About Pathfinding

I’ve always been pretty aware of pathfinding. A*, that’s a thing, right? And there’s some Russian dude with an unpronounceable name that starts with D? I’ve never really needed true pathfinding; if I made an AI who needed to get from point A to B, he’d use some sort of “randomly pick left or right” or just “follow the player” sort of method. I have a textbook called AI Game Programming Wisdom, which has never really offered up much wisdom as it has inspiration for ideas. It has multiple chapters on pathfinding, and every single one of them has to do with A*. I recognize A* as being the “best in the field,” but I’ve never really known for sure how it works. I’ve never needed to, really.
But a few days ago, I started working on code that would allow the player to click on a location in the isometric map, and the character would walk there. You know, like all the other old isometric games. Or any point-and-click adventure game. It obviously wasn’t that hard; people had been doing it literally for decades. Except it was. What made it worse was the fact that I’d “homebrewed” my own isometric engine; it didn’t really recognize that you could travel straight north and not deviate east or west- as far as it was concerned, you only went up, down, left, and right. And if you were traveling straight north, you were going up and over to the left, which confused the bejeebus out any sort of click-to-walk code I attempted. I realized after a while that I was going to HAVE to use some sort of pathfinding algorithm.
The textbook I have doesn’t do a very good job explaining A*; it assumes you already know what it is. All the forums for GarageGames (the makers of Torque) kept touting a resource that had been released 6 years ago that added A* functionality, but it didn’t apply to what I’m using right now. The more and more I read, the more I realized that A* was just too complicated for what I wanted to do. Dijkstra’s Algorithm was the precursor to A*, published in 1959 –1959!– and seemed far more suitable to my needs (and isn’t Russian, it turns out). I spent another couple days trying to find a good explanation of it in pseudocode, and it was finally the wikipedia page (of all places) that clicked with me. In not more than a couple of hours, I had a fully-functional click-to-walk code. The only problems is has is if the path it needs to take wanders too far off the screen; the algorithm essentially can’t “see” where he needs to go, and it calls it a null path (that is, a little red click-y target). So far, I can only find one place where that even applies, and you really have to go out of your way to click in the right spot to make it happen. Plus, I feel like that’s a pretty intuitive problem- just get closer to where you want to go first.

The isometric engine aside, I commissioned some artwork for the final boss in the Japan Dream level, so it’s a lot easier to see what’s happening throughout the boss fight now. It looks pretty good, especially just for prototyping graphics, and it’s courtesy of Lucas Onky of Puffergames. I found his portfolio in the TIGForums and he was an absolute pleasure to work with.
I also made it so the mouse can select menu options, since I saw so many playtesters trying to do that. I still need to update the “View Controls” thing to show the spacebar as jump, but aside from that (and graphics, of course) the level is pretty much finished.
The isometric level takes a while to load, but that’s because it’s generating all its geometry information at runtime instead of loading it from a file. Once I have the level design completed, I can save it and then load it whenever I like, cutting the level-loading time down by a huge chunk, but it needs to be done in-game for now. Just bear with me; it’ll get better.