Friday, August 28, 2009

Cartographer

Yesterday I got into The Castle Level, and now little numbers are once again slowly spreading across the layout I've, um, laid out. Unlike the last time I'm finding the process a little slower than normal. First of all I can't start at the beginning like I want, since the level is designed to be started hanging precariously above a highly lethal fall (Pun!). So I started at the bottom of that fall and started working my way up. The issue is that the level has double backs and multiple pathways and multiple doors that go to multiple places. So anything I place I need to double or triple check with the areas around it to make sure that the subtleties of its' placement don't totally dog screw the subtleties of a different puzzle. So it's a little like when I built the Caves. The good side is that once I'm halfway done, the rest should already have a considerable amount of work done.
The other thing is the traps. I have to design the areas to have traps that aren't programmed yet. So, lets take the Spinning Blade trap. I have no idea how tall the bloody things are, so when the little map shows me to make a platform as high as the spinning blades, that leads to a problem not easily solved. So, what I'm doing is taking a ton of little measurements and trying to be consistent. Later I'll inevitably have to go back in and make some modifications but I'm trying to keep it as correct as possible on the first go 'round.
The other cute thing is I have to leave spaces for enemies to play. The engine is a little stupid sometimes. Basically it wants art for everything, otherwise it crashes like a Jamaican bobsled team, which is to say quickly before being made into a Disney film (no I will not link that). The enemies are then organized in the databases by type, so different enemies have their own files for stuff. The problem is that the enemies in this stage are of the tougher Knight and Guard varieties, and there are no animations yet for Knights. So I can't put them into the levels yet, cause like I said, it'll crash and make the level unplayable.
It's odd, building around the things that will be there eventually. It's like having a room mate you never see.

- Right then, to the title. I've finally got a general map for The Walls that I'm happy with. Built as a 3D maze I find it just a little tricky to navigate. Since that's how it in on paper, with lines, that I drew I'm pretty confident that once in the game with fully realized puzzle platforming it'll be the quasi-3D path finding challenge that it's supposed to be. Either way I'm putting that on the back burner for now. There are 2 different levels that need doing because I can't cut them. The Walls do not have that particular luxury, so they await execution or salvation by being, um executed well? Damn doublespeak.

The Composer had asked if there was any gameplay footage available recently. I immediately thought that it certainly wouldn't hurt. Flashes of trailers (that I could put here even) quickly filled my head with an assortment of awesomeness. So I went about figuring it out. What I came up with was to write everything to a different buffer like the screen capture works in ThiefEd, draw the resulting image so I can see what the hells is going on and then save the image in a folder I cleverly called "movie." Once I was done the idea was to import those all into an animation program (the Jasc one I've got with Paintshop came to mind) and build a .avi or something with the resulting, delicious, animation.
On a basic level all that crap I just said works. It works like evolution though, in that it takes fuggin eons. Since it captures every frame in the game it reads and saves to the hard drive 30 something times per second, or tries to. Truthfully it does it maybe twice per second and makes the rest of the damn game wait until it's finished, rendering the game unplayable. It's like playing the game in super slow motion, in a glacier, after eating a months worth of Vicodin. Interesting, but hardly how I want to play the game for any stretch of time. So I'll figure something else out.
Not all was failure though, since watching the game happen at the speed of 1 frame eventually showed me a quick selection of very, very subtle bugs. First of all the Portal Rectangles were doing something stupid. They were moving the character and loading the new level, but not in a correct order in terms of the rest of the game loop. So basically there was a single frame where the character was jutted across the screen to the new position and the old background was shown. I mean, this happened in a 30th of a second. Not even Barry Allen on a coke bender would notice that in normal gameplay, but I fixed it to death anyway. Now, just after loading the level the Portal Rectangle function draws the new background over the old. So for a 30th of a second there are 2 backgrounds with the new one on top.
I also found that when jumping The Thief's little feet go into the floor just a couple of pixels before the standing around or running functions trigger and it looked bad. So I scooted up the animation a couple of pixels to compensate. Now es muy bien.

Thursday, August 27, 2009

Taking Cues

I had the opportunity to talk to the Composer yesterday and I think it's going to work out just fine. We came up with some good ideas about what we are trying to convey in each area and he was just full of useful information regarding different kinds of period style musics. I mean, I have a decent idea what Baroque music is, but he mentioned some very obscure types, that thematically fit extremely well. What'll be interesting is seeing how he updates them to make them sound authentic while being interesting to modern ears. Oh, and looping it since it's a game. His only request game wise is to figure out how to make the credits longer, since he wants to do a medley. That's easy enough.
The nice thing about the music (unlike the SFX or animations) is that the core for having it is already there. All I really do is just plug it in and it'll just go. It's a little like the backgrounds in that regard.

I've been in the process of playing Rise of the Argonauts and after an hour I considered taking it back. Now I'm glad I didn't. I was always given the impression it would be a combat oriented kind of experience, so when 20 minutes of stabbing with the spear (which is sweet) was followed by 60 minutes of talking with the mouth, I was confused just a little.
Turns out, the game has a lot more in common with Knights of the Old Republic than it does with God of War. The talking and the story are actually the core of the game. Once I realized that and started enjoying the game it is and not lamenting the game it isn't I found I enjoyed it quite a lot.
RotA is a perfect example of something I learned the hard way last year : The game you make is the game you have time for. It does have some odd inconsistencies that could have been ironed out with more time, but I don't mind. Actually, like a cookie, I like it more because it's a little undercooked. But the obvious detail and craft that went into everything show me that the people that made it really wanted to do something cool with it. So it seems that they spent every minute making sure that as little as possible was cut instead of chopping away and polishing the rest. I respect that.
Besides, it's the first game to come along in a while that I can play for 4 hours straight (sorry Castle level - you can wait another day) so that has to count for something.

Tuesday, August 25, 2009

En Absentia

Star Frog Games is now bi-coastal. Yesterday I sent an email to The ADA that went something like:
"Hey, what's up?"
To which he replied: "Not much, starting classes and so on."
To which I replied: "Wait, in Florida? Shit."

I'm torn about the entire thing. I'm making the rational decision to be happy, while I worry about the project. I find that I'm so conflicted that I can barely fashion a coherent thought about it, which isn't good. What I do have are continued assurances such as, "I think we can do this. I remain confident." Oddly, I don't think that it'll change anything too much. I mean, now when I have meetings I'll just put him on speakerphone or conference call through the all powerful sorcery of internet. Otherwise, the series of tubes that connect everything, everywhere has always been the main method of, and source of, information and communication. The internet is a 24 hour thing after all.
The silver lining (other than one of my team members is now going to a prestigious art college) is that now our schedules may meet somewhere in the middle. He has a habit of being up until 3 or 4 AM and I'm usually up until 1AM. So now I can probably send emails when I'm up and get emails the same night, not the next morning due to the time zones.
You know, with enough silver linings you can knit a sweater.

The thing is, the other real thing, dropping the pretense of form, Anguel moved. He's away. My friend and continued compatriot for the last year and change is someplace else. Having grown up as a military brat, where I moved constantly and so did my friends, I try to put on the strong face and say that I'm used to it. But I'm not. It's impossible. We'll make due.

What it means further, (back to Producer mode now) is that I need to communicate a lot more with the team members I had more or less handed off. Basically the Team is arranged by discipline. The Art Director/Animator was the main point of contact for the entire art team. He would translate what I want to something that made sense to The Background Artist and kept the whole thing consistent throughout. The Tester is the same way. He asks people to test the game and they talk to him and he to me. It adds a layer to an otherwise small team, but allowed me to deal with a very small number of people day to day. With my main line of talking on the far side of the country, I'll have to figure out something else.

I remain confident.

It's not over 'till you're underground. It's not over before it's too late.

Friday, August 21, 2009

Rounding a Corner

I've been doing some thinking recently in regards to the damn Wall level, and to a lesser extent, the bloody Tower level. The reason why I couldn't quite wrap my brain around the concepts, the idea of expressing a 3D type space in a 2D type area. My original idea of having a front and a back of an area just didn't seem to jive. No idea or rough layout that I did held any water. The reason is that the idea couldn't ever actually exist anywhere but an M.C. Escher drawing. Ironically, considering it's a 2D game, it had to do with the view. Think about this. So the player is walking to the right and enters a door set into the wall behind them (away from the player). They then appear on the other side, and as a Designer I have 2 options there. I can either consider the behind space to be just the other side, and flip the view around, so if you were to look through the door just passed through you would see the other side. Or, I could render the wall and everything in the foreground blank and only show the background.
With the first option, while working, it has the nasty tendency to reverse all the controls and the directions since I had basically flipped the imaginary X Axis. So left is right and right is left while up and down have remained constant. So, if you were to hold down the Right Arrow key (or button or whatever) and enter one of these doors, it would place you and then odds are, you would walk right back into the door you just came out of. That's confusing so I abandoned it.
The other has the problem with foreground interaction. Basically if I make the foreground stuff invisible, I can't honestly expect the player to interact with any of it. Like when I was 3, if I can't see it, it doesn't exist. So any doors I use are a one way trip, which defeats the entire purpose of the concept.
Which brings me back to the title. The solution is to flip the X Axis 90 degrees. So when you enter a "door" the engine resets you at a space which would be perpendicular to the place you just were. So hypothetically, if there was a woodchuck statue on the first screen with the door and it was facing you, after you're through the door said woodchuck would be looking to the left.
The really cute thing about this idea is that it requires exactly zero modification to the engine to work, just clever application of what's already there. The trick lies in the layouts, as I now have to consider them in 3D space and how pieces connect together. A larger mock up and top down approach may be required here. Thankfully, due to the nature of both levels I don't have to design anything that goes in 2 directions or anything with a high level of scripting. In the future if I decide I hate myself I'll design a level with 3D spaces and traps and a stupid amount of terrain deformations. Or find a bridge, a really high one.

-Castle still isn't in the can yet. I went to a concert instead. It was sweet.

- In other crap, I discovered that I have a terrible habit of needing to check my email every, oh, 5 minutes if I can manage it. After the initial idea that I'm just crazy OCD I began to wonder why. I think it's because I'm the Producer. People send me stuff. I don't know when they'll send me stuff or require instructions or advice or guidance or any score of other things. Email is checked constantly just to be sure. I considered getting a Blackberry just so it'll buzz or something when I get an email, freeing me from constantly thinking about it.
To put it another way, it's like playing an RTS without graphics and the only thing you know about are what your troops tell you and when. Responding to said troops as quickly as humanly possible is the only real way to play well.
Oh, and boredom. I check whenever I'm bored too. Especially so.

Wednesday, August 19, 2009

The Hammer of Hope

At long last, we've gotten a Composer. Having done some chatting through the sorcery of internet I think we're on the same page for what we want, which is good news.
The downside of course is the other emails I get to send. Having spent a lot of time trying to apply for things I know all too well the, "We're sorry, but..." email. I hate those. I get the impression with every one of those that I have to send that I've ruined somebodies day. It's the part that I really do not like to do. I like even less to dwell on it, so...

-In other news I was considering exactly how the hells I'm going to do the traps in The Castle. Part of me thinks to just go in and use variations of the code that I've been scripting with. The other part thinks that I should just build a function for each trap and feed it variables, since that'll be a lot more efficient with computer resources. So I think I'll do that right after I get the geometries into ThiefEd.
What I've designed for are 3 different kinds of traps from the Classic Traps Emporium down the street. So we have spinning neck high blades (that must be ducked under), spikes from the floor/walls/ceiling which must be avoided and bladed buzzsaws that travel to and fro which have to be outrun or dodged.
The first two (the spinning blades and spikes) can have a variant of each other from a scripting standpoint. Basically, they run on a timer. If you are standing around (or not ducking in the case of the blades) when the timer reaches a certain number (or range of numbers with the spikes) then you get wasted. When the timer will probably then reset. Nothing too fancy there.
The Saws are harder though. Basically they too run a timer, from 0 to whatever and each cycle that timer is reduced or added to and the saw moves. When it gets where it's going, it turns around. I would rather it run on a single (reusable) variable if I could though. Hmm, functions for another day.

- I've retooled and polished up the second level. I had to nerf the enemies to do it though. Basically I don't have all the art installed for them yet, so the system falls down when they hop in. So I turned them off and got to work. Tweaked the level layouts and whatnot. There were puzzles designed from before I made the changes to the physics system and how far you can drop before the cold, sweet embrace of death takes you (it's like a hug from sorbet!). It had also rendered some of the puzzles impossible, so that's better now. The new checkpoint system seems to be working better too. I die and I get to try again whilst avoiding additional shenanigans. Hooray!
While playing around in the second level I'm glad to see that it holds up. Given an option I would probably tear the whole thing down and do it again, but it's good. All of the experience I've gotten with pacing and structure during the Cliffs Saga are in their proto stage here. I'm finding it an interesting, and quite playable, artifact.

-Finally, the machine that is Google has found my previous nonsense about being #1. It's cut a little odd and says something like, "nobody reads this" or somesuch. While technically true, I'd rather readers (Hah!) find that out themselves after, um reading (double Hah!). So without further ado:

We're #1 for "Indie Confessions" now! That's good considering this is the actual development diary of an actual indie game studio.

The ball's in your court GoogleBot.

Tuesday, August 18, 2009

(Trap)per (Keep)er

The Castle map is finished now. It's...complicated. I did a run through of the thing and I found out that the critical path is 97 screens long, if you take the backtracking into account. Let me type that out again and add a little emphasis, 97. In other words it's longer than than both Stages 1 and 2 combined. Filled to the brim with devious traps to boot.
Backtracking of course is the key bit here, and I've an idea about how to avoid the Fail. Basically, the entire level is designed around 5 switches. 3 of which are in an area dubbed "The Control Room" in the lower area and 2 in the other far reaches of the Castle. Between each of these are a wide variety of traps, enemies and other tricks that execute things faster than a Texan Judge. However, the key conceit of the stage is that the Security System has been activated and The Thief is tasked with shutting it down and escaping. So, by activating the different switches, different traps are activated or deactivated in different parts of the Castle. So, even though you may pass through an area more than once, the traps and the solution to passing it are different each time.
Having finally laid it all out, I'm quite happy with it. It's a fitting end to the pure gameplay of the game. The next area, The Tower, is mostly plot centric, like the Shagohod area in MGS3. Consequently it leaves me less room to do the kinds of things I have in the Castle. Now, map in tow, I can put on the headphones and get this thing done.

-In Sound news, I've narrowed down the search to a short list of about 3 people. I've also found some people that, while aren't good for this project due to the kinds of music that they do, would be fuggin great for the EP.

-Oh, and I'm still #1 on internet for "Indie Confessions" and most variants. Of course, nobody reads this, so that amounts to less than dick.

Thursday, August 13, 2009

Someday

We're now up 1 Sound FX guru. The List has been updated to show it. So that's nice. He's a graduating college student and has never composed music, yet is all about doing SFX, so I'm more than happy to add him to the project. This would also allow whatever Composer I find to do just that - compose. So basically the only thing that would prevent the sound and music from being Epic, is me. I'll try not to disappoint.

-Oh, right. Because of the overwhelming number of applicants, all of them awesome, I pulled the advert down from the list of the Craig's. My new composer is in there somewhere, waiting patiently to be unleashed.
I'm finding that reading the bios and whatnot of the composers, it's like Bizarro world.You see, I spent 9 years training as a musician. Music theory, instruments and so on. I still feel odd if I don't have a piano to screw around with. Anvil Studio has been on every computer I've ever owned, including this one. I considered for about half a second going to music school and trying to be a composer myself, but the lure of, well, this, was simply too strong.
So, when I read the bios and MySpace pages it's me looking at what could have been, maybe. I see in the musicians that applied something that I wouldn't have had should I have gone that way, a real passion for the work. I find that fascinating.

- In other game stuff, The Tester agrees, The Cliff level doesn't suck and is almost bug free! In spite of all the bloody scripting. It's so nice to when the code, you know, works.

Yesterday I had a sit down and tried to discover the cause of my general malaise (yeah, that's right malaise. It's a real word, although it does sound like a condiment). What I discovered is that it's entirely due to a complete and almost total lack of directions. Yep, directions, not direction, there's a key difference there. You see, I know what I want. What I want, is to own my own studio. I basically want this guy's job. The despondency comes from the fact that I have exactly zero idea of how to get there from where I am standing right now.
But here's the really stupid thing, 8 year old me, would be proud of 26 year old me.
"What do you do?"
"I make games, but no money. So I work 2 jobs."
"You make games?!"
"Yeah, but not professionally and..."
"That's so cool!"
Odd, reading that back just gave me an overwhelming sense of, well, something I've never experienced before, and lack a word for. It's like finding out that you've already won in some way, as if you just washed your jeans and discovered a lottery ticket inside the pocket.
8 year old me would be proud of 26 year old me. In a way, I'm already what I've always wanted. Now, I just have to finish what I've started. We'll figure it out as we go.

I'm Working so I won't have to try so hard,
Tables they turn sometimes.
Oh, Someday,
No I ain't wasting no more Time.

Wednesday, August 12, 2009

Storming the Castle

I've decided that I need to get going on The Castle, and the Walls can wait because the Walls can be cut. The Castle cannot be. So I'll start putting together the layouts and get that going. I've already planned out how the traps are gong to work from a coding standpoint, so that's nice. I may even be able to get away with a limited number of variables, which the Coder in me is very happy with.

-In other news, I'm surprised by the sheer number of very talented people that've sent me stuff and want to do the music for Thief. Like, quite a bit. I had thought I'd get 1 or 2 maybe and have to make due with whatever I got, but a score? Any of which could probably do awesome work? I was up late into the night listening to musics and that was work somehow. I'll probably make a decision soonish and get that going.
Oh, and I think I found a dedicated FX guy. That's sweet.

-Talking with The ADA, and we've decided that we're going with static drawn images and words for the scenes. Nice pretty pictures offer some bonuses. First of all, they're fast. Second, they'll go in easy. I can have the game draw pictures for days. Finally, I can do things with the story that wouldn't have worked otherwise, like give The Thief damage and cuts that are small enough to only appear in the pictures.

-Generally speaking I'd type out another 1000 words or so and rant about one thing or the other that gives me the Rage, but I've only 9 fingers working at their maximum word creating capacity. My rotten rabbit thought my finger looked like a carrot or some such crap and proceeded to bite the hell out of it. So, yeah, ouch.
I do have to be thankful for 2 things though. First, it's on my left hand, so I can still do anything that doesn't require a dominant hand. Second, ThiefEd was designed to use the mouse all by itself if needed. A mouse I can, and will, use with my fully functional right paw.

Monday, August 10, 2009

Sounding Board

Hey all of you out there that have read this and thought wonderful things like, "That seems like a good idea, I want in!" or something like that, we are in need of a Sound and Music guy and/or girl (I'm not particular).
If you just came across this, the official site of the Starfrog Games Project and the development diary of The Thief's Tale, click here for all the specific details on the project, contact information and the details on the gig proper.

-In other news, like the link shows, I figured out how to add more useful pages to the other site. Still don't know how to export the blogger software to it though. Maybe later.

Checkpoint Reached

The new cute Checkpoint system is in now. Basically how it works is that checkpoints only trigger when you're walking. So, no triggers on falls or dashes or anything like that. Then, I made almost every screen a checkpoint. This is now designed to make the game a little (okay, maybe a lot) more forgiving. Now if you get taken out it's not back to the most recent and convenient checkpoint screen you had reached, but very likely the screen that killed you, or the one that invariably led to your untimely digital demise.
To wit, if you're running along a high platform, like in Stage 3, and you fall down, you'll fall for quite a few screens (I got 6 once - it was quite a drop). The last one of those that you ran into, will be the checkpoint and all the ones you happen to fall through, will not be. So once you go splat, it'll put you right back up at the top where the proverbial pooch was screwed to give you another shot.
Since it still uses the existing checkpoint system, with actual trigger information, I can also choose to specifically not have some screens be checkpoints, like any of the scripted excitement in Stages 2 and 3.
Although, as I thought about it, it occurred to me that hypothetically, a player could jump into every portal rectangle and then die at the very end of the stage. The system would then trigger the last checkpoint reached, which would be the very first screen. As I thought more about it, I'm okay with it. It'll teach people to not do something silly like that.

-While I was actually adding the Checkpoint status to every screen I also went in and updated all the geometries with the current format. Little things like putting all of the Portal Rectangles just off screen instead of sticking into the edges and making all the handholds be half inside blocks for better collision detection. I also tweaked some of the other small things that either didn't work right or presented an odd difficulty spike, especially in the first level. Now with some more levels done I can compare the puzzles in each. In one of the puzzles in Level 1 the player had to jump to a handhold, wall jump off and then double jump, maybe even dash to get across to another handhold. The punishment for failure - death. So I went ahead and modified that just a little. I don't think it'll take The Background Artist too much time to update that.

-Finally, a thought on the musics of the game. I'm thinking I'm going to post a thing on the magics of internet for a composer and/or FX dude. The odd thing is that I already have a very real understanding of what I want the music to be.
Basically, I want orchestral style music (to match the themes of the story) and I want the whole thing to be thematic. So I would like individual themes for The Thief, The Princess, The General, The Captain and The Grand Skeleton. I also want individual themes for each Stage - The Prison/Warehouse, The Caves/Crypt, The Cliffs (maybe), The Castle and the Tower. Then use the themes as they are and combine them together in the Stage.
For example, the Prison starts off with the Prison Theme. Once you get to the second half then the music should be a mix of The Prison's Theme and The Captain's theme. Finally, for the boss fights it should be a mix of whatever theme the Boss has and the theme for The Thief.
The individual themes will also be played during the scenes, depending on the mood of the scene and who I would argue the focus of the scene is.
All in all, that's 9 individual pieces and 8 theme mixes, so 17 songs in total. That's actually quite a lot. To give an idea for how long that kind of stuff takes for those of you out there that haven't ever written music before, it takes me about 2 hours to compose 1 minute. Assuming each song is about 2-3 minutes, that's 85 hours worth of work. Granted a real composer with real composer tools may be able to do it a lot quicker, but that's still a lot of work and doesn't even include the SFX.
Ah, and The Cliff level. My thoughts are that we only have The Thief's Theme on that stage and maybe give a variation halfway through. Since he's the only character in the entire stage and we'd only ever hear The Thief's Theme in pieces, it seems appropriate.
I'll post the want ad on the giant list of Craig and see what I can get.

Wanted : Composer for Independent Games Festival game project. No money, 90+ hours worth of work, super tight deadline. Maybe go to IGF. Great resume builder! ...and so on.

Wednesday, August 5, 2009

Hitting the Wall

Leaks. Why did it have to be leaks? I hate 'em. I really do. The baleful looks that I throw their way should carry the raw loathing in some kind of concussive optic blast, reducing them to their tiny, and I assume - adorable, pieces. Or my hate based heat vision would destroy my computer and most of my living room, also a possibility considering the magnitude of the hate and the size of the accompanying stink eye laser it would produce.
Right then. The engine leaks for some reason. the previous reason I could blame entirely on enemy animations and loading. Now I find the leak goes even in the enemy free Cliff area, which is stupid. So, once again I loaded up the CAD Menu (which has a variety of delectable treats - try the veal!) and tried to summon up increases in memory usage. I found that when I just stand there and do nothing, no leak. No increase in memory usage. When I run around though, I get small and slightly random increases in memory consumption. So I went in and found/remembered that the Death Rectangle collision is pixel perfect and to get that the engine makes a copy of the current animation frame. This gives a static variable for the Death Collision. What I didn't find was where it released that memory where it was done. So I added that and bingo, bango, I still have a bloody leak.
What I do know is that the engine only leaks when I touch it. So the current leak has something to do with either Control, Animation or maybe the Collision Engine. Oddly, none of those really run or load anything dynamically, so I'm at a bit of a loss.
What bothers me more is the fact that the game slows down disproportionately to the amount of memory being quaffed. So when it's running at 45000 Kb the game is dandy and runs at the silky smooth 35 FPS it's supposed to. However, after a few minutes of play at 48000 Kibbles it starts to run like an octogenarian asthmatic - slowly into the ground. Those 3000 extra Kb's don't seem enough to cause that. It's possible that the slowdown is caused by something unconnected to the leak, which gives me additional hate to focus into an eye beam. It may be an optimization thing with the new enemy animating codlets, but those are even referenced when the area is enemy free. So for right now, I'm at a loss for how to correct a game breaker. I'll think of something. I have 200+ posts of figuring out something.

- Moving on to the next thing I have to build (once I get that^ bashed to death) - the walls. The conceit of the level is that the walls are all broken with ways to get inside and ways to get outside by getting cute with the Portal Rectangles. In effect I want to create a maze style environ that requires the player to think in 3 dimensions.
The more I think about it, I want the area to be small. I mean, quite small. Especially compared to every other area in the game. I'm shooting at building a layered puzzle with about 16 screens in it. Since the area is broken into a front and a back that's really only 8 screens worth of area. To put that in perspective the Cliff level (in spite of my wish to shrink it) came out at almost 60 screens, including all the screens that exist only to fall through.
By keeping it small I can do quick concepts of it and throw it out if I find it distasteful. No building an entire level worth of 50 screens and then deciding to give it the heave. Further, the smaller area will actually serve the puzzle itself. If there's 40 screens worth of stuff it makes it impossible to remember your way around an area. With 8 it's possible to get the player to get their bearings and feel all smart when they figure it out.

-Yep, that's an extended mutant power metaphor. I regret nothing.

Tuesday, August 4, 2009

Machine

You know there was a time when I could do some work and just be happy with it for a while. Like Sunday, I finished laying out the first half of Stage 3 in ThiefEd and yesterday I could have, and probably should have, been happy with the fact that I finally got that thing in the can as it were. Yet, I wasn't. The idea that it wasn't finished but almost was drove me crazy. So I went back, once more into the breech (which sounds dirty if you know what a "breech" is). Once again the hours slipped away. Reload after reload, tweak after tweak, life after life, I was possessed. The part of me that thinks silly things like, "I should sleep now," or "No really, I should sleep now," and "We're good, we can stop," was silenced. I was in the zone. I was a Machine - a scripting robot that could, and given the opportunity - would , destroy Tokyo with a bombastic blend of scripting prowess, wicked beats and raw programmer machismo.
So yeah, level scripting's done. It still needs all the pretty picture things and playtesting, but the heavy lifting is all done. If need be, art could be installed and it could be done.
I'm staggered. I mean, at about 1 AM when I realized what I'd accomplished in just 2 days I was actually struck silent. The words were simply not there. I'd built most of an entire level. I only have 3 left. At this rate, I can do that in a week. For the first time in a while that big assed thing over there => looks possible, and more impressively, ravagable. I know we can do this. It's not a matter of managing to cross the finish line, but what method of Silly Walk we choose to employ for effect when we do.

-Okay then, with that self back patting out of the way, now onto the self deprecation/flagellation. There's a concept, well a saying anyway, that says, "Familiarity Breeds Contempt." It actually fails on some level, as I science has shown that with people and with ideas the opposite is true, but the saying holds up in terms of private works (see there, I avoided using the term art). I've been playing some form of this game for a very long time now. New levels that I build are played until dead like an overworked horse. Nothing in the game is new to me. Consequently, all the parts that are and were designed to be "fun" don't work on me. I don't see the fun, I only see the mechanics and the engine. I don't see the puppets, I only see the strings.
Over time one begins to lose sight of the good parts of what they're building, the act of creation usurping the act of play. What I'm trying to say is, I can't have fun playing Thief anymore. Well, maybe not. I'm sure if somebody else built a level I'd be all over it. But as it is, I can't,
This is an odd thing for me now, since new stuff will be new, and hence to me - fun. But that doesn't mean that the mechanic is sound or even good. It's just new. Normally when I design games I can trust my internal instincts to guide me to the golden land of enjoyment. Now, after 2 years, the instinct is dulled and I can't trust it anymore. It loathes the old and demands something different, in spite of how wrong that demand may be.
This is why there are principals of game design. A solid structure to fall back upon when the instincts don't hold anymore.
"Let's make jumping a variable thing!"
"No, let's not, consistent player input requires consistent output."

"Let's make platforming more scripted and set up."
"The computer should never have all the fun."

"It would be cool if The Thief could do blah, blah and blah."
"The Core Mechanics are Law. Everything should support the Mechanics. Anything that doesn't gets the chop."

...and so on.

-In totally not game news I got to playing something called Bookworm Adventures 2. Oddly, it's a game that I can only play as a team. My brain works oddly and hates scrambles. It tries to discern a word and then, once it has a word, it's all I can see. The problem is it'll do that even if the word is misspelled. Then I'll start thinking about how the word should be spelled. Like here's an example:
pelamxe
I have no idea what a "pelamxe" is. Is that some kind of ancient Chinese custom? Some kind of fight to the death with wiffle ball bats? I'm pretty sure I saw a movie once with Let Li were he fought somebody in one on one pelamxe at the epic conclusion. Ah, wait, no, it's just the word "example." I hate it.
So yeah, I play Bookworm with the Wife. She's good at scrambles but bad at spelling and I can spell like the 2nd place spelling bee contestant of the 2nd, 3rd, and 4th grades that I am. So we play together, she finds words that she thinks are there while I try to do that same and then I confirm the spelling of said word.
In the game when you spell a word it attacks an enemy, dealing damage based on the word's length and the letters you've managed to use in it. I find I like words that are ironic or appropriate for the concept. "Attack," "Ruination," "Destroy," "Stabbed," and so on. I laid waste to a fool with, "Hemorrhage."
Of course that's secondary to the real point of this post and my personal joy in the game. We were doing verbal battle with a boss, I think it was the King of Hearts, and we were doing well, throwing out 5 and 6 letter words like they were 4 letter words (which aren't in the Bookworm dictionary oddly). Then once he was down and hurt a little, my brain found a word so ironic and powerful, I had to use it for the story that would ensure. So I entered the word and sent the attack flying. On that day, I killed the King of Hearts with "Penises." Tell the kiddies. Like Beowulf, that's a story for the ages.

-Ah, speaking of irony, when I did the spell checky to make sure that my stupidity is somewhat filtered, it turned out that I misspelled "misspelled."

Monday, August 3, 2009

Looking Down From the Top

I had an entire day to myself yesterday. Shortly after I decided that playing Gears of War 2 on their Hardcore mode campaign is a lot more difficult by yourself, I willed myself back into the project. After throwing on some headphones (and finding an odd appreciation of They Might be Giants - thanks Pandora!) I got to work. The hours of the day passed by, the twilight overtook the daylight and then, when I looked up from my labours, sore from sitting in one place for hours and sporting sweaty headphone ears, I found that the Cliff Saga, had come to and end.
Oh, right, the Cliff Saga, do an experiment and type "Cliff" into the little search bar up there ^. You'll get, oh 30 or so hits on it.
Right then. They're done. They're laid out and waiting patiently to get their scripting stuck in as if by a rude medical student. That analogy seems uncomfortable somehow. In any event, they're done and, you know, I finally, finally like the way that they came out. It just took 3 tries and a paradigm shift in what the level is supposed to fundamentally be. I quickly got a compile done and FTPed and now The Tester has it. Now for the orangification on the list and...done.

- While fiddling with the code I discovered the root cause of the stupid stair bug in the Weevils post below. It turned out it was the main collision ordering. Now what I got it to do is to skip to the end of the main collision if you're climbing up anything. It should speed up the loop (like only doing it if it had a greater than 0 height) and it also removes the stair problem. It can no longer hurt you, and that's a good thing.

-Speaking of those rotten stairs, I think I had figured out a scripted way to make lots of them. Basically, as the Cliffs have shown me, I can modify the terrain and geometries dynamically if I want to. Stairs eat up almost all of my rectangles, since they can only have a height of 10 pixels in the engine and still work. So without doing something cute, I can't get them to be in anything that requires those rectangles to work. The idea is to set up large scripted "Zones," say, in quarters. When the player enters one of those Zones, then the scripting will trigger and change the level parameters. Basically that part of the screen will only exist if you're touching it. In this way, I can put steps and diagonal surfaces and all over the place, and due to how the engine renders the backgrounds, nobody will ever know. The trick being getting a complete version to the Background artist, but I'll figure out something.

-Got a response back from CSU, it basically went like this:
"Hey guys! I know you were all looking forward to going to our fine University and all that, and you'll be glad to know that we're done jerking your chain. We've decided that nobody gets in! At all! Isn't that special?
As you know, California is broke and so are we by association. We care little for the fact that we also change you out the ass for classes. Due to that, we've had to curtail enrollment further. In case your Plan B was to apply again for spring, well, guess what, we're not taking any applicants for spring. Yes, we fully know that several people may graduate in that time, but we've already rented out the space to a clown college, so that's just too bad.
Since we're not leaving you totally in the cold though, oh no! You (and the untold Legions who've also received this email in the last 2 minutes) can still sign up for our Open University thing. You can go to class and pay for class without hope of actually graduating, since you have to be formally accepted to formally exit! Applicants are all looked at based on space available. Oh we forgot, all the spaces are already taken up, which is why you got this email in the first place!
Hope to see you soon!
Love,
Timmy the Tukwut (or whatever the fuck our mascot is)"
I sometimes feel like I live in an episode of Punk'd.

-So as not to end on a total downer, you'll notice (assuming that somebody reads this, which they don't) that the demo downloads are gone now. The reason? I don't actually have my demo file anymore so I can't upload it again. The downloads however, ran out. That means that the kill quota had been reached and the downloads simply stopped. So, 20 times. The game has been downloaded 20 times. I wonder if any of those people read any this first?
Probably not.