Monday, October 13, 2008

The Sound of Silence / The Notebook

Got a new notebook. It has graph paper in it. That's it, just though it was cool. I'm wondering if anybody else would ever care in a million years what my notes for the project look like. As least enough to include it in the game as some kind of extra (after IGF of course). Or maybe it's just a super wank thing. Yeah, I think it's that.

Anyway, back to the point. I broke the sound somehow. Now the music doesn't work and I can't put it back. I went ahead and tried to modify the code a little so that different music would play on the different levels, and now no music plays at all. I really hate the sound code that Blitz Basic uses. It's not broken per se, it's just totally unlike the rest of the language. It's like the programmer for the sound code was all by himself in their own little room and never saw, talked to, or pondered the existence of, any of the other programmers. It's called a meeting people. Schedule one and then little ole Eric doesn't want to punt a kitten over your silly concepts of sound variables.

-As a side note, CID neither condones nor endorses the punting of kittens.

-All done. Even better now the music plays with different volumes and everything.

Sunday, October 12, 2008

Totally Rotten

I discovered a bug that brought game development to a grinding halt. The moving platforms don't work anymore. Here's the issue: The original platforms had coordinates (a great Scrabble word by the way), dimensions, their own modifier for where they were drawn, and a movement amount. The modifier is a non-variable, since is it set when the engine is running. However, a flippant thought that I had regarding ThiefEd was that all of the rectangles would move the same speed, so no need to add a way to change the Movement Speed to the Editor. It turns out that I was wrong. In the Engine the Moving Rectangles need said movement work, as it is not specified by the Engine.
This brought me to my first solution- just add a static movement speed. Sorry sports fans, that's a big Epic Fail on that. Since the Editor only creates Moving Rectangles in one direction, there is no boundary to let the other bloody movement variable to ever change. So no matter what, the Rectangles would float around as they pleased without giving much thought to what they were supposed to be doing.
So, this ran me to my second solution, which would be to add the function to the level editor and move along, without issue. That, I thought, would be great. Except for one tiny issue - it would corrupt all of the level data. Adding unknown variables would: A) Cause a runtime error when they are loaded. Since the original files do not have that data, calling it is a crash to the desktop type of bug that would be fixable, but not in a time frame that I have. I do not have a "B" at this time.
So, here I am at the final solution that I ran into and plan to`install today before I finish up the second stage and lay out the 3rd like the no talent flyweight that it is. What I will do is add a quick bit to the loading code where it will specify the Movement Speeds as being 0 or not. If there is a boundary for either the X or Y boundary, then the speed of the other will be made to be zero. That's it. Then, as a workaround, I will code the actual speeds using scripting on a level by level basis (a thought I had before also). So we'll see how that goes.


-For those of you at home, a "FlyWeight" is the smallest class of pro-boxer. These guys are like, 110 pounds. Assume that they go down easy for the purposes of the analogy above.

-Hmm, pretty heavy on the sports metaphors today. In kind of an odd mood.

-That rocks so cool. It works, thank the bloody gods. Plus, now I have the option to make the cave in really awesome from a gameplay standpoint.

-Yep, the Cave In is everything I thought it could be. Discovered something interesting though. Doing scripted stages are more difficult. I find myself having to test and re-test them before I can even make the stages possible let alone passable by most people. I mean, if I can't even do it without getting killed then there probably will not be anybody else. I'll really find out when I have the tester(s) get a piece of it. But I do worry about context though, as from a story perspective this is a Cave In of the Crypt and Cavern. Without the context, the testers will not know what to expect for the first time, so they will not be accurate in their criticism since the test itself will be flawed. *sigh*
-Anyhow, from a design standpoint I have to make sure they are passable, but I do want them to be dangerous. The moving collisionables will kill the player if they get squished. I need to find the middle ground between making them challenging while still making it possible for a player to complete them on the first try, without trial and error. I think I have, but the proof is in the testing pudding, so to speak.

-Do internet people still do that? I mean, put actions inside little stars? *wonders* I probably shouldn't either, especially considering that I think the little *'s look like a sphincter.

-I wonder what kind of things the Google Ad at the corner will give me, now that I've used the word "Sphincter" twice in the same post. I bet they'll be gross.
- In development news, I've had not 1 but 2 different people ask to be testers for the project and/or do other work. This is in stark contrast to wandering internet looking for people. I guess I was just looking in the wrong places. In the future, if I want to find people that want to be game _____ (that's a blank) I should troll the classes where people are learning to be _____.

-What that means is that now I need to keep a constantly updated compile of the project and assets so that other people can play it. This of course means that I have to simplify my file structures so that I can give a playable form of the project without giving away the farm so to speak. Have an odd conversation about NDA's (which I feel are an anathema to the industry {I don't think I spelled that right}) and oddly, now I feel all protective of my work. That's not a feeling I like really.

-Was going to plot out the Cliff/ Castle Walls level today, but it's almost midnight now, so I'll do it on Monday. In total, I'm about a week behind on my schedule, and that stresses me out a little bit. going forward, the levels should come along more easily. Unless I run into something really stupid.

Tuesday, October 7, 2008

Totally Unnecessary


This is for a class that I'm taking. I spent a good amount of time on it, so I thought I'd post it. Remember, you saw it here first at Star Frog Games.

Monday, October 6, 2008

The Cliffs

Yeah, so these are getting hacked down to almost nothing. So, what I will do with them is combine them into the Castle Rooftops/Wall. Then the Castle Interior will be the main highlight of the game (the peanut butter in the Reese's - so to speak). So that will be good. On tap today is to get the Timed Switches worked out (I may be able to use a Type variable - or I may Cave man the whole thing like the rest of the engine). Already figured out the non-timed switches, and they work out pretty good. They work once and then they are always open.

After that, I may get some of the Crypt done. After looking at the plans, there aren't that many places to implement the new switches so I'll work a couple into the designs so they aren't a sudden WTF when they are everywhere in the Castle.

-In random other crap, I made a slight modification to the story so there is a better reason for The Thief to be trapped inside (it involves roof window, a chandelier and a medieval security system).

-Also, got me an idea for my texture artist person. I think I'm going to let them use the level editor. Then they can get the images and crop them and make the changes that they mentioned to get the art to synch really well. I think that's the way I want to go. Plus, I can easily send the downright tiny files that ThiefEd reads over the internet a lot easier than sending dozens and dozens of images.

Friday, October 3, 2008

A Weird Place

This post is a little odd, mostly since it's not just for me and it's designed to be read by other (specific) people. Almost like a broadcast. You see little children, the internet is a strange and dangerous place (just look for chicks and cups in Google) and sometimes an email that is all alone in the big wide virtual world will lose its way, and become lost. Scared and lost and lonely it will turn first to petty crime, just to get by. Then it will join a gang and become a low level enforcer and thug before turning to dealing drugs and pimping. Soon enough, it's just another statistic. Another email lost and with no place in this society.

Oh, and Cox sometimes eats them. That happens too.

Anyhow, the email that I'm trying to send (and is game related) is this:

"
Here is the animation list that I promised to give you. For each item I've also given the total frames it currently has. This can obviously be different if you'd like, but in that case more would be better if at all possible.
We need:
Running Animation (11 frames) Left and Right.
Ducking Animation (1 frame) LR
Standing Animation (1 frame) LR
Jumping Animation (5 frames) LR
Flip Animation (4 frames) LR
Falling Animation (1 frame) LR
"Doomed" Animation (1 frame) LR - In the game if you fall from a certain height the fall will kill you. This animation is what plays when you have fallen further than that. I'll eventually also add a little yell of something with it.
Wall Jump Animation (1 frame) LR - This is the animation that plays when you jump into a wall. Ground Hit Animation (1 frame) LR - This is a hard landing that doesn't kill you.
Hurt Animation (1 frame) LR - the animation that plays when an enemy hits the character.
En Guarde Animation (1 frame) LR - the default combat animation
Attack Animation (4 frames) LR
High Dodge (5 frames) LR - The defense against a high attack. Like a block or a duck under it. Low Dodge (5 frames) LR - The defense against a low attack. Like a block or a hop over it.
Parry Animations (1 frame) LR Step Back Animation (1 frame) LR - a step back while fighting Sword Draw (3 frames) LR - The pull the sword out animation
Sword Put Away (3 frames) LR - The put the sword away animation -For the dodges, what I would really like are variations of the block. So you may hop one time, but block another. Of course, this is all candy at the end if there is any extra time. Otherwise just 1 is great.

We also need enemy animations. Almost all of them currently have 1 frame, but we obviously need more for almost all of them:
High Attack (4 frames) LR
Low Attack (4 frames) LR
Hit (1 frame) LR
Dead (1 frame) LR
In Combat (1 frame) LR
Patrolling (1 frame) LR
Running LR - I added a vision system. So now an enemy will only run at you and attack you if he can see you. So if it has its back to you or you are not in its line of sight it will keep patrolling. In combat is after it has seen you and is close (it's their En Guarde Stance). The "Running" animation for the enemies is once they have seen you they run at you to attack.
Throw (1 frame) LR - When you run into an enemy, it will grab you and throw you. You may also need to draw the animations with both the Thief and the enemy in the same animation.

That's perfectly okay and may be easier than trying to get the animations to sync up. ...and that's it really. before you do any though, just send over some final sketches / models and we can make sure we are happy with the designs. That way you won't have to redo anything if you change your mind on stuff. =D

What else? Hmm, when you do the renders make sure the images are .PNG format. Paint Shop Pro should be able to make those. .BMP is also okay. Just no Jpegs since they do some seriously dumb crap to, well, everything.

Also, for the backgrounds of the renders, make sure that they are all the same color. Pick something stupid like magenta or something like that. Then I can set the graphics to not display that color.

Anyway, if you have any questions, let me know.
"

-For the project, I have smashing good news (yes I used the word "smashing" with italics even). I've convinced another of my classmates to join the intrepid crew of the USS Almost Impossible. So now I have a new Texture / Background artist. Effectively they will be doing what I was going to be doing as far as texturing and creating the background art for the game. The really key bit is that they will be doing it, not me, so that frees me up to do the other things that really need doing on the project. So that's, well, really cool and Graphic Designer Eric breathes a sign of relief.

-Yes I know, too much use of italics again. But dammit, it's right there with "Ctrl + I" just asking for it. I think I have a problem.

Thursday, October 2, 2008

Almost...but not quite.

I just got a reply about the job that I interviewed for. It turns out that they are going with somebody else. So that, well, sucks.

But all is not lost, after all, I am getting TTT done for IGF. Besides, a few things occurred to me:

- The listing was pulled down from their site a few days before I got the reply. This means that I was at least in the final running for the spot. I was not told," Yeah, thanks guy, but you are a talentless hack and will never amount to anything." So that's good news.

- This project got me the interview that put me in the running. So while I didn't get this job, I am doing the right thing. If I keep doing it, and keep applying myself and my resume then I will get the job that I want. It is just a matter of time and effort.

- I learned to play the game I was applying for. So, maybe, just maybe, if the same job opens again, I will have 1 more qualification that may give me that extra edge. So all in all, the fact that I was in the final running and didn't have an intrinsic knowledge of the game I would be working on says a lot about my other qualifications.

-Of course, this is all conjecture. But I really hope not.

Wednesday, October 1, 2008

6 Weeks

6 Weeks, 42 Days. That's all that I have left, and the pressure is suddenly on again. This weekend I was struck by despondency. Granted, the last thing that a game needs is for the Producer to get all despondent a little over a month before something is due. But the reason was this : The game is not going to be finished in time. At least, the game as I envisioned it. Here are the issues, stuff to put into the self-congratulatory post mortem that game designers are all about (I consider it their 1 freely allowed pretentious bullshit thing) {not so Producers})
1) I am way behind on both the levels and the scripting. 6 weeks left? I should be testing and polishing, not constructing. So if I work like a dog from now until then, I may be able to get the content - even by cutting some level work that I then will have to go and do differently (I'm looking at you Cliffs Level). But then what? The things still need to be play tested to ensure correct non-suckiness compliance. So if they are done, they are content for content's sake.

2) The engine doesn't always want to work the way it is supposed to. Gods help me, but for some reason when I play it at the computers (rather, the shiny, new computers) at the school, it runs really fast. As in it is my game and even I can't manage to beat standard enemies without getting my ass kicked. So that needs to get fixed. This of course is just the tip of the proverbial cow patty, and the engine in general needs some polishing to make sure that it works really swell. You know, all polished and purdy like the CryEngine - except runnable on a Game Boy. But that seems less likely to happen now.

3) The bloody artists all, well, went flaky. Not blaming them of course - but I could. I was talking to a new artist friend at school, and he said that sometimes artists just get bored and go away. Apparently a pretty common thing. What I would like is if they could let me know this before they decide to suck, then at least I can plan for it and find different artists. So what I do not want to do is submit with all placeholder art, since that is totally crap. So that makes me a little, irritable.

So what? Am I stopping? Why am I stressed now? Well, I still trying to hit my deadline. Granted, it will not be quite the way I wanted it, but it will be the basic game with the gameplay and story intact. So here's the cuts:

* One kind of enemy now. I'm having my new animator create a single enemy and then we'll color swap them to represent the different difficulties. Maybe, just maybe we'll get the Princes*s finished so she doesn't look like every other rube guard in the game.

* The Cliff level is being cut way, way down. Whereas the rest of the levels have 2 parts, the cliffs will only have 1.

* I am doing the art for the levels. I will use a slightly more advanced version of what I am doing with the placeholder art, and will use more advanced textures and other pastable assets. So it will at least look like something. Besides, this kind of art is what I do for a living, so I should be able to grind the art out.

So what was that about a new animator you say? (And by "you" I mean nobody, because nobody reads this but me). Well, my previous animator that did the design for The Thief has been, well, absent. I would like for him to do the animation, but I am simply running out of time. I will keep him in the credits though, since the Thief design is his work and I am very happy with it (I'm having the new animator use that design - since I do like it). So what we are planning is building the model in 3DS Max (or maybe Maya - I think he prefers Maya) and then rendering single animation frames out of it and installing them into the engine. This should be pretty cool, since relatively quick adjustments can be made to both models and animations can be 2 sided. The issue, as always is getting it finished it time. Oddly, he almost seems to be intrigued more by the challenge of getting it finished in 6 weeks. Either way, I'm happy he wants to help.

Speaking of which, he presented to me a thefted idea that was right. (for my concept of good ideas and right ideas - I think I rambled along in one of the posts) He gave the idea of pressure plates, like in the original Prince of Persia. I immediately discounted it in my brain as being too complicated from a scripting standpoint. The I remembered that a "Pressure Plate" is just an event triggered at a certain spot on a certain screen in a certain status (usually standing or running - but grabbing would work for wall mounted switches too). With this, I can almost reuse variations of puzzles. Doing something once is easy enough, but trying to race it when the door is closing is suddenly makes it a different animal altogether. So I'm looking at using some of those in the next few levels (especially in the Tower and Castle levels) and modify the current levels just a bit to use a couple of them. That way they won't just be a sudden WTF moment later on.

So, the schedule. Here's what I need to do and when I need it by.

Need to Construct
The Crypt
The Cliffs
The Castle (Roof)
The Castle (Interior)
The Tower
The ClockTower

Need to Script
The Cavern
The Crypt
The Cliffs
The Castle (Roof)
The Castle (Interior)
The Tower
The ClockTower

Need to Polish
The Minor Memory Leak
The Switches

So here's the breakdown that I have:

Oct Week 1 - This Week
Construct The Crypt
Figure out and Implement Switches
Script Switches Prison
Texture Prison

Oct Week 2
Construct The Cliffs
Construct The Castle (Exterior)
Construct The Castle (Interior)

Oct Week 3
Construct The Tower
Construct The Clocktower
Script Switches Castle (Interior)
Script Switches Tower

Oct Week 4
Script Switches Clocktower
Install Story Scripting Cavern
Install Story Scripting Crypt
Install Story Scripting Cliffs

Nov Week 1
Install Story Scripting Castle
Install Story Scripting Tower
Texture Cavern
Texture Crypt
Texture Cliffs
Texture Castle (Exterior)
Texture Castle (Interior)
Texture Tower
Texture Clocktower

Nov Week 2
Bug Fixing
Overtime

...so yeah. That's a lot. Not including installing the new animations and all of that - but I can't plan for that since I don't have an ETA. What scares me the most is the fact that I pretty much only have 1 week to texture the entire game, and that is insane. I wonder if I can rope another artist in, just for that. That would free up an entire week for other little polishing bit and level tweaking. I think I may know someone. If not, I'll ask around. After all, there must be someone else out there crazy enough to try.

-Oh, and this is my serious face:

= (