Baby Steps

I’m approaching this version differently than I have other versions in the past. Namely, I’m trying to handle everything in smaller, more incremental chunks. Before, my plan was always “get it put together as close as possible to the finished product (at least on a per-phase basis), and then spend however much time necessary fixing it.” The reasoning was that I would be less likely to have to go back and redo sections as I found that newly-added features necessitated major changes and alterations to past code.

I’m not sure that’s really the best idea, though- for me, anyways, it always seems to lead to a sort of burnout, as I’m faced with trying to get something functional out of this monumental mess of just screen upon screen of code. This time, I’m breaking it into smaller chunks, even if it means I have to go back and undo/redo parts in order to work on the next chunk, so that I’ll have something to show for even small amounts of work.

For example, I’m currently working on the combat function (WIP showcased below using prototyped graphics). Rather than try to get all of the features in place before I start bugtesting, I started with the entirety of the combat level doing nothing more than reading the data from the necessary XML serializations and then placing the placeholder sprites where they needed to go, all as the “full function” of the level.
Next, I worked on the GUI at the bottom of the screen, making it so the mouse could hover over everything, change the text boldness, and click to select as necessary.
Then, I worked on making the clicks change the text in the GUI, even though that meant going back and adding all sorts of extra variable definitions and functions.
Afterwards, I started working on making just the “Change Position” function work so that it would instantly teleport the characters where they needed to go.
Once that was done, I went back and rewrote the code so they would actually animate and run to the desired location.
Etc, etc, etc…

Obviously there’s still SO much left to do, and it’s a little frustrating knowing that every time I start on a new step, half of what I worked on in the previous step is no longer relevant. But I think doing it this way helps me to stay motivated- instead of having to put weeks of work into just a screen full of code, I get to watch the incremental changes and evolution of the game gradually, a day or two at a time.

The “two steps forward, one step back” method seems more frustrating on the surface, but I think the key is that the frustration is kept at a manageable level, being “cleared away” every time I make measurable progress. If I were more organized and had more time, I’d probably try to do it right: sit down and paper-prototype everything out with flowcharts and design documents so I had more of a plan. But after multiple iterations, I think I’ve finally settled on the “lesser evil” as far as my personal game development methodologies go.

Right now, the main struggle is just trying to overcome the frustration of having to redo everything in Unity that I already had working in the Construct version. Construct really was very well-optimized for simple 2D GUIs and basic sprite movement; it’s taken me a significant amount of time to reproduce some of the effects that were basically single-click-setup in Construct. I’m confident that going with Unity will pay off in the long run, though; I’m already seeing the benefits of working in an actual object-oriented language as far as modularization goes.

So, here’s hoping I can keep it up.

Best-laid plans

Per usual, work got in the way of my programming time more than I was counting on, but even given that I still managed to make some decent progress in Construct 3. The new Construct interface is entirely web-based, and integrates very well with Google Drive so my entire project is stored in the cloud (which comes in handy when I want to work on it during my lunch break, and also at home on a different PC).

Construct has a lot of pre-defined behaviors that are commonly-used in game development, and they cut out a lot of the time it would have taken me to program those behaviors myself- click-to-move and pathfinding, for example. However, I started running into the limitations of a game engine designed to be “code-free” when I started working on the combat system. Trying to access and manipulate data that’s better-suited for something structurally object-oriented was… extremely frustrating from within the Construct engine. I spent probably five or six hours trying put together the equivalent of a serialization/spreadsheet hybrid in Construct, while doing the same thing in any C- or Java-based language would have been a nearly effortless endeavor. So finally, after attempting the programming equivalent of painting a masterpiece with an etch-a-sketch, I gave up on Construct.

Back to Unity it was. I originally discounted Unity because of the amount of effort it would take to go 2D in a system that was designed for 3D. However, that was 6 years ago, and Unity has evolved a lot in the meantime. I’ve had to program a lot from scratch, but it’s only taken me a few days of work to reproduce (and improve on) the click-to-move, pathfinding, and dialogue-imported-from-XML systems I had working in Construct. Unity seems to have quite an active community of 2D developers, so there are lots of forum posts and discussions out there when it comes to trying to find a solution for a problem I’m having. After just these last few days, I’m already more-than-satisfied with the preliminary engine I’ve cobbled together, and I think Unity is going to be the most efficient path forward.

Another advantage (well, disadvantage that I’ve found a silver lining in, anyways) to using Unity is that it’s forced me to embrace source control in a more professional manner. I’ve had *very* minimal experience with true source control in the past, and now that I don’t have access to Construct’s Google Drive integration, I’m using a SourceTree/BitBucket combination for a true Git source control solution (as opposed to the method I use at work, which is basically a buttload of windows folders on the share drive named things like “version 1.0,” “version 1.1,” and “version 1.1 backup”).

So now I’m about to get started on the combat portion of the engine, which will likely take me a significant amount of time. From there, I’ll need to work on some sort of character stat/level up screen, and then the “down time” screen (for between “missions,” that will incorporate all the time-management stuff in it). Once I’ve got those finished, I can get started on the actual meat of the game itself. I’m sure I’ll run into other aspects of the engine that will need to be fleshed out as I start digging in, but once I have the Scene, Combat, Menu, and Home-Base portions finished, the engine will be at a prototype-ready state, and I might finally have something worth showing off.

The Long Sleep

It’s been five and a half years, almost to the day. I haven’t forgotten about the game or this site, but game development has definitely taken a backseat to a lot of things going on in my life. Not shuttered, just… given a heavy dose of tranquilizers and tucked away.

In the last five and a half years I still haven’t completed any just-for-me projects, but I’ve started and stalled a few different iterations of the game; each time the story changes and evolves, and I feel like it’s finally where it needs to be, story-wise and conceptually. I turned it into a tabletop RPG campaign that I’ve played (and also stalled on) with a group, and that helped to give the story more shape and substance than any amount of daydreaming and storyboarding I’ve done in the past.

I’ve experimented with a bunch of different game engines, and a bunch of different styles. I keep falling back towards something simple, though- I don’t want to spend years trying to develop just a basic structure to try and build everything around. Isn’t that the entire point of using a pre-built game engine? I went full-3D for a while, but after the amount of effort it took just to build what would only end up being the first few seconds of gameplay, I think I’m going to de-volve towards a classic point-and-click adventure game, with a couple gimmicks to give it some flavor outside of the old Sierra or JRPG styles.

And so, having finally finished the last of my schoolwork (just waiting on the degree conferral process, now) I think it’s time to dive back into development in a more serious way. Way back in the day, I used Construct 2 to build the beginning of my game, and I was pleased with the results. I think that’s what I’ll head back to- Construct 3 has been out for a while now, and looks to be the next best thing. Maybe I’ll take a little bit of time and see how much work it is to build the first level in Construct; if it’s not too bad, I can stop searching for something new and finally commit to making this work. Again.

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.