Wednesday, January 28, 2009

I Can See (Through) You

Blitz Plus doesn't support alpha channels or .PNG transparency. That's going to be a problem.

I've discovered a solution - I can fake it.

The technique is something that I'll refer to as "micro-texturing." It works like this : Blitz can remove a single "mask" color from a drawn image, usually flat black but more likely to be green or magenta in the future. So, the idea is to overlay "transparent" objects (see the previous post) with a grid or texture of the mask color. The amount of transparency can then be controlled on a fine level using PhotoShop. When "transparent" items overlap, there will be some look though due to the tiny mask color grid and so they will appear to average out at large scales.

For example, in my test I placed a big red X over a blue field and used PhotoShop to mask out the whole thing. When I added my grid micro-texture to the mask level the big red X appeared to be purple. The amount was adjustable by using different textures.

When I did the same with a Green Stripe and Red stripe over blue, the Green and Red averaged to a kind of yellow (when zoomed out) and a dirty brown when over a blue field.

In the Engine, if a micro grid was applied to the images that we want to be transparent (instead of trying to add it later like in the test) then they would be see through during gameplay. I'll do an in game test when my work computer works again.

Silver Plated Engine

Nope, the computer is still down. But I have figured out a new engine component that will make the game that much better (see the transitional animation hack post below). The new background artist asked about putting animated bits into the background of the levels, and I told him, "Sure, pretty much if it's animated, I can put it in." The thinking at the time was that I would end up scripting all of that. I've found I have a staggering distaste for that now. I mean, it should be an engine side feature with ThiefEd support.
The main issue was creating a dynamic system that would keep up with all of the things that I may or may not want to to throw at it. I mean, I could create 5 discreet "candle" objects (for example) but what happens if I need 7? Or I only ever use 3? So a dynamically created table would be the way to go.
Since I've already tried streaming the enemies, I've found I don't much care for that. It slows stuff down quite a bit when the pages change. To combat that and have different assets for different stages I think that loading a stage's "objects" at the beginning of the stage into memory is the way to start, then I can just reference the objects as I need them. So each stage will have a directory of objects. This is the static part that I need so I can build the dynamically generated part of the system (instead of all dynamic all the time - which is crazy hard to debug and test).
So, in the ThiefEd Editor the objects will have a number and an x and y position. So Stage 2's object #1 may be a tomb or bats or something like that, but Stage 3's may be flags or seagulls or whatnot. So these will be the bits that need to be saved into level information file.
First though, before the object information is saved, ThiefEd will keep a count of the number of objects in a particular screen. This number (let's call it the Key) will be saved first so as to remain at a constant, identifiable, space in the save information. The rest of the objects can be saved in whatever order they happen to be in. With objects placed later being in the "Front."

Right then, when the engine loads a level it will load all of the level stuff that it does now (the collision detection boxes) and then load the Key. Using this Key it will create an array that has a number of rows equal to the Key. So if the Key is 7 (meaning that there are 7 objects in the level) an array with 7 rows will be made. This array will then have 4 columns. The first column will have the object type (a candle, torch, crow's nest), the second the X and the third the Y. The last column will be used for animation and offsets.
When the screen is drawn, the Engine will use a loop to run through this array. It will draw item #(information in column #1) and x position (column #2) and y position (column #3) and frame (column #4). Then it will update column #4 to the next animation frame so it plays a different animation the next time, or in the case of parralax effects it will offset them more or reset them.

It will do this every time the screen is drawn and it should go fast. When the level changes, the array will be deleted and a new array created. So memory leaks shouldn't be an issue. This all seems quite doable, but it will need a lot of building before anything works. At least, if I'm correct, this shouldn't invalidate all of my current level information. I'll just need to keep ThiefEd from looking at the Key information, but save it anyway. So when levels without it are loaded, it won't crash because they don't have it, but it will save a Key in them. Then I can require the Key in the Engine. Shouldn't take more than a few minutes to update that. So I'm happy with that. Of course, designing it in my head and getting the code to dance like a monkey on LSD to its particular beat are different matters entirely. Swearing incoming.

- Level? Stage? What am I talking about? When I started Thief I thought the individual screens would be the entire level. So I referred to them that way in the code and I refer to them that way now. I know that it is confusing and I know that it's incorrect, but that's just how I call it now. So when I refer to a level (especially in terms of system or engine stuff) I really mean a single screen. When you run off the edge of the screen, it takes you to the next level.
So what do I mean by Stage? A "Stage" is a collection of Levels. Stages are saved in the system as 144 discreet levels and in game terms (will) have their own set of objects. The Super Mario naming conventions would call my Stages "Worlds."

- Chapter? Stages are generally broken up into Chapters too. These are just switches in the gameplay style and backgrounds within a Stage. They really have no impact on anything other than being story based and having a music change. They are not in the engine proper. Of course, while playing the game people will probably consider the Chapters to be the base unit of gamplay (as opposed to Levels or Stages). For example, Stage 1 has 2 Chapters. The first takes place in the Prison section and the second in the Warehouse. These Chapters are numbered too, so when somebody says, "I'm in the second level," they'll probably be saying that they are in the Warehouse section, not the second screen. So, yeah, that's a little confusing, but that's how it works.

- Yep, super technical post. But I find if I write it down it helps me build it later and organize my thoughts.

Tuesday, January 27, 2009

Escape Hatch

When I do get a game job the title will be Escape Velocity, but now I have a plan.

It's a 3 part plan really - organized for easy reading in a bullet style format.

1) Apply for more jobs with an updated resume. Yes, a BA is a fetish object, but no it is not a requirement for the kind of jobs that I'm looking for - Assistant/Associate/Systems Designer, Assistant/Associate Producer or Lead QA. For these entry level jobs an AA and some experience (on say, an IGF submitted project) is wanted. So those, I can do those.

2) Reapply to school. Even though it's in the Fall, if part 1 works out then I'm still working towards my long term goal of being a Lead Designer. After a year or 2 working as an A.D. or A.P. I'll be ready to move up to Lead Designer or Producer proper. By then my Degree will be done cooking and ready to eat.

3) If by March I still have no job, then I'll consider trying out for the EA internship and figuring out working in Los Angeles while living in San Diego. Some may say that EA is the Dark Side, but honestly it doesn't matter to me, I just want to rock out with the full power of The Force.

and...

3.5) Get Thief done by November. Including getting it ported to XNA for Community Games. Maybe make a few dollars, maybe be able to pay my rent with it (after I split it up with the rest of the team - of course). Maybe if I can't find anybody else, maybe I can hire myself.

So, yeah, I have a plan. Some long term steps and some short term steps and a goal. Today is a good day.

-Oh right, January 30 is my published date for my Post Mortem. Mark your (I kid nobody, since nobody reads this) calendars and/or Blackberries for what I consider to be a great achievement. Or don't - it's your calendar.

- Yes, I like the Sith Joke. So what?

Monday, January 26, 2009

Claustrophobia

Trapped like a rat in a maze without doors. Trapped like a doomed cosmonaut on a space station leaking air. Trapped like I'm in an Iron Lung. Trapped with no way out.

As per the technical difficulties post, I've got no new game stuff, but I do have some new "student" stuff, so that gets a post. Like in the experiment of Science, I decided that I was going back to school in spite of my shiny new degree. The BA being an object of lust for HR managers and practically a requirment for jobs. Once I got over the sticker shock, I've spent the last 2 days trying to log into the CSU site to register for classes.

This gets to the issue, and a mistake of mine, but the story starts last year. I thought last year that I wasn't sure if I wanted an AA, and applied directly to Cal State to get in. My thinking at the time was, "Even if I stay at Palomar to get my AA, I'll be in the system and be able to register at a later time." Figuring that a later date there may be more students trying to attend, I thought that applying and getting in would secure my spot ad infinitum. So the logic went anyway. So I was accepted for the Spring 2008 semester and it turned out I stayed to get my AA and my Game Design Certificate.

But here's the problem in my plan and the flaw in my logic - the school has a policy of attendance. If you've been in classes, you can take 1 semester off. If you haven't and you've just enrolled you must attend classes during the semester you were accepted for or else your admission is voided. So yeah, turns out I am not a student at Cal State - student number and Acceptance Letter be damned.

Why Claustrophobic? I'm trapped. At best I can apply for next Fall, and still not be doing what I want to be doing, my life stuck in the mud of anonymity and obscrurity. Or at the very least, passing me by. So here I am, professionally and academically stranded in Purgatory feeling that the goal that once seemed so obtainable - is slowly slipping away. I mean, one more semester, six more months and so on and then I find that I've never done what I really wanted to do.

I feel that something drastic may be in store. Dante managed to escape Hell and Purgatoy, I should be able to also. In any event, I simply cannot stay.

Sunday, January 25, 2009

Technical Difficulties

Funny story.

My laptop was bought for a dollar. A single, George Washington embellished American dollar. It came from a business that was going down like a plane with one wing, and the boss was liquidating the inventory, something about taxes. Either way, the wife had the option to purchase it for the rock bottom price of a single dollar. This is how I came to own my computer. Best dollar ever.

Different story.

So I was in the process of using this computer last week and browsing the majesty of internet, when I noticed the distinct smell of ozone and burned plastic. To my surprise I looked down to see that my cord was arching electricity and smoking like a coal plant. Needless to say, I felt that the time had arrived to maybe retire my laptop and consider my dollar investment paid and used in full. So I went and purchased a brand new laptop.

So all's well...but not. You see, all of my programs that I use for development, like Paint Shop, my IDE and ThiefEd and the ThiefEd assets are all hidden within the recesses of my dollar laptop. These are programs I may or may not have the discs for. This is stupid. I have artists waiting for stuff that I can only get out of that laptop, the laptop that I can only run for a minute before A) The battery dies or B) the cord heats up, arcs electric death and starts a fire.

So yeah, we are experiencing technical difficulties here at Star Frog Central and CID.

Oh right, so I went and bought a new cord yesterday, thinking it would be all nice now. Wrong, giant big stack of utter wrong. Utter $70 worth of wrong. The cord is incorrect and I'm still without access to my damn files. I have found a cord on the endless magic of internet, but that's an entire week before I can get back to work. It's like 360 dev kits all catching a red ring. Development stalls. I mean, stalls like a Pinto running on coal and Orange Julius. So I should be back on track in the next week or so.

Wednesday, January 21, 2009

Next Time, Maybe Next Time

Independent Games Festival announced the Student Finalists. The Thief's Tale in not among them.

After the initial crush of disappointment I found that I am okay with that. If I placed, if I won, what then? What new thing do I have to strive for? I don't know, maybe I'm still in shock, the hope that has carried me washed out with the tide. Or maybe, just maybe I've done what I set out to do. I made a game.

I made new friends along the way too.

But thinking, I read the list of people that judged the IGF. That list of people that do this for a living and are in a place to judge. They played my game. Designers, business people, bloggers, magazine writers. People who write stuff that I read and people that make stuff that I play - they loaded and played Thief. They saw our logo, they know our names. Even more will after they read the Post-Mortem.

Looking back, that's the whole point now isn't it? The Thief's Tale wasn't built for fortune and glory, it was built to show people that we could. So we can do this kind of thing for a living. So I think that's why I'm feeling a strange kind of serenity right now. We didn't get to go to the show, and yet, we accomplished our goal.

So, moving on, next November we can try again, with more game and more art in it. As always, XNA Community Games awaits.

- Right, so I have some results from the Science. Designers need a degree, and it does not matter what that degree is really. I got a reply back from Sloper that went thus:

"... right now I have an Associates Degree and a Certificate for Game Art and Design from the Palomar College Game Program. Moving forward, would this be a liability?" Yes.

"Or would a bachelor's degree in English be that much of as asset? " A BA in English would be good.

So I guess I'm going back to school.

Tuesday, January 20, 2009

IGF

Eeep. Student Finalists announced tomorrow morning.

1-21 will either be a day or great joy or terrible sadness. I feel like I'm on the way up for a roller coaster and I don't know if the track continues after the first drop.

I hope it does.

Protomen - GO!

Yep, I broke it. The music's gone again and my prototype that I set up doesn't work. I think I've complained about the sound and music system implemented in Blitz and how it was designed by somebody with either a passing knowledge of computers, noises or both. So working with the code is akin to trying to solve a Sudoku puzzle where all of the numbers are filled in with equations, in Latin notation. Possible, but really not all that intuitive.
So what was I doing exactly? I had an idea. The idea went that maybe the key of the music could change ever so subtly when you're in combat to give an aural clue as to the kind of attack happening. So for high attacks the music could follow a major key or even a major seventh key and for low attacks a minor key would suffice. Eventually, people may be able to fight based just on the sound itself.

That's the idea anyway, but the code got in the way. First the music would stop and the game would stutter when I triggered the alternate music since it was loading. No problem I say, I'll load both musics and just mute one. But then the computer lets me know that I can only have 1 music playing at the same time. So I convert the code to consider the music a sound effect instead. Then I bash at it for an hour and then realize that it wants a .wav file and all I have are midi files for my music. So, yeah, that went well.

-Did I mention that I saved over my most recent file? Cause I did. I'm not too worried about it since I do have a rollback system and can pull the function from the last build that the sounds still worked in.

- I did have an idea that will make the game much nicer looking overall. I originally was thinking that I wanted a variety of transition animations, but arrived at the conclusion that setting up all of those transitions as their own player states would be bad design. So I didn't do it. What I figured out yesterday was an animation hack that would keep the current system pristine but give me the transitions animations that I want. Basically, the animation system runs on a counter system. Each game cycle the animation counter (AFrame in the code) is increased by 1. When this is fed to the animation system it checks to see what the animation counter is at along with the current state and shows the correct frame of animation. When it gets to a preselected number it will reset in the animation code. So the run resets on the 16th frame and the counter goes back to 1 - looping the animation. There are a variety of checks to insure that the counter is never outside the ranges. If the counter is say 18, then the run will not play and the character will disappear.
So here's the hack. Coming out of a certain state (say jumping) it will jump up the counter to something outside of the range to a different set of animations that will then reset. So using the transition from Jump to Run as an example. When the character lands, instead of setting the animation counter at 1, the jumping function can set it to say, 20. Then the animation system can find the little running staggered animations for 20, 21, 22,23 etc. When it finishes that animation it will reset back to 1 - continuing the regular running animation. So, I'll draw out a map and see which moves transition into what moves and figure it out. I get the impression that the amount of animations would be doubled, but I think the end result would be awesome.

- In Science news I got some replies back, one of them from Tom Sloper of Sloperama, who directed me to the article that caused the confusion that led to the Science. I replied for clarification. I also got a few replies from some other very nice HR Recruiters. The general gist that I get is, "The type of degree is unimportant. We just want you to have one." So I wonder if my current degree is enough. My hypothesis is that it may be. But only with a properly applied experiment and results will I know for sure.

-Right, it just occurred to me that anybody reading this (which is nobody) may not have 9 years worth of classical music training and would consequently have no idea what a major seventh is, so I'll explain. It refers to a chord. A Chord is basically notes played at the same time. So if you are at a piano, pick a key, now count 4 keys (not including the key you started with) to the right and press them both. You are playing a major chord. If you count 3 keys instead, that is a minor chord. It sounds more somber or darker. A seventh chord also includes the seventh note in the scale, so if you are playing a G Major Seventh you are going to play G, B, D and F#. That set will sound very bright. For kicks play G, Bb, D an F# and you're playing a G Minor Seventh chord.

Monday, January 19, 2009

I Can Do Science Me / Deadline v2.0

Lots of good stuff going on recently. I'll start with the newest.


- My Post Mortem is scheduled to be published by Game Career Guide on Friday. That's awesome. Finally some of what I write will be read by game people. I mean, you may be reading this, but I write this as if nobody reads it but me (hence the title). The article though, that's for everybody. It's a condensed Campbells soup version of the 3 weeks of grinding blogs during the final push for the Thief Demo. I'm proud of the article, but more proud that it will put all of our hard work in front of more people and that's the whole point isn't it?

-Right then, had a meeting with the Artist again and we're zeroing in on a look for the game. Once we narrowed down the stuff I don't like (like 4th wall stuff) or things I don't know how to do (like Alpha Channel stuff - I have no idea what that even means. Is that transparency?), we arrived at t he conclusion that anything animated is very easy. So it seems like the backgrounds will be hand drawn (or look like it) and have animated bits like swinging cages, candles, lamps and torches and small things like fluttering bats and seagulls. So I'm happy with the look in my head now and we should have some concept stuff started around Tuesday when the artist gets the list of things to do.

- Science! Or rather, the application of the Scientific Method to arrive at a conclusion is being done now. Like I said previously, I've sent out my email messages to the HR departments of studios both large and very indie to see what kind of degree I should be working on. So we'll see how that goes. I hope I get a few responses so as to make my sample size large enough to remove biases, but really, any push in a direction would be appreciated by myself.

- Finally, we have a deadline now. November. Probably the beginning of it for well, IGF. The Pro version now though. I think with the extra time and the vision of what the game will be, I think that we may have a sporting chance of showing or at least doing well. At least well enough to give us a boost and maybe publish on an downloadable service. That would be tre cool.
So that means the art has to be done by October, which means the levels have to be blocked out as early as possible. Then we'll have a month for playtesting, interface designs and that kind of stuff. With the time I think we can do this and we'll avoid the 1st problem the development of the Demo had. So, as Producer I need to plot out milestones to get to that seem reasonable. That also means that I can't lolly-gag and I've got to get back to work, like, yesterday.

Thursday, January 15, 2009

The Dark Side

Holy crap. I've made some staggering discoveries. First, The Behemoth game studio has as many people as Star Frog Games. That's great! It gives me a bad case of hope.

Next, I was thinking (look at the last 2 posts) and came to the basic idea that I have no real idea as to why I'm going for an English Degree. Since this isn't something that I couldn't sit down and work out myself, I was off to research. I thought the best way would be to find the email addresses of a dozen or so HR Departments of some game studios (both local and distant) and ask.
I know, that seems a little, um, dumb, but I feel that the best way to know what HR people are looking for in Game Design positions is to ask. Mostly though I know what a Designer does, and I actually have all of the requirements already, but I do want to know if they look for or prefer a certain major. Since this is a scientific test, I'll try to find a way to formulate the question in such a way as to receive as unbiased an answer as possible. So no, "Hi, I'm studying English and I'm almost done and I want to be a Game Designer. Am I stupid?" or "I think English is a waste of time. Should I focus on obscure European history instead?" I'll post the details once I get some feedback.
Anyway, along those lines I came across a site that has the local game studios in and around any area. It's a big map http://www.gamedevmap.com. I've already found a few that either have jobs I can do available or have internships that can lead to said jobs. New resources are exciting, no?

Right, something something Dark Side. In my search I found that the best, most thorough, and most specific information for would be designers to be from Electronic Arts. Yes, I know, they are supposed to be evil. The big, black box where dreams go to die. But then they bought BioWare, and released some IP that was pretty far out, and put some serious money behind it making sure that lots of people knew about it. It's a shame Mirror's Edge didn't sell better, but I have it in my GameFly Que and I'll get to it eventually. Right-O the link is at : https://jobs.ea.com/about/roles/role.aspx?id=6#0
This is the best information I've found that tells me what skills a Designer actually needs. Not general interests, not general notions and ideas, but the specific skill set that can be learned and refined. Of course, reading this seemed like a laundry list of things that I've learned making The Thief's Tale, so it's nice to get some recognition in that respect. What it doesn't tell me is what kind of Major. I mean, they have design interns that studied Japanese. I'm beginning to think that it doesn't matter. I've heard that games are a Meritocracy, but really, now I'm beginning to see it. The work is everything. Do good work, do well.
Right, but now I'm thinking, maybe EA would be a good place to get started. Maybe I could get into their summer internship program and move into one of their studios, move up, start my own one day (where I can pay people). I could see that. Of course, I have heard some, let's say interesting things about their practices, especially developer grinding, that could make that thought a very dangerous one.

-What is Developer Grinding? It's a term I made up, just now, but is real. It's the concept that you can hire new people, pay them new people wages and work them like animals until they burn out. Then you get new people. Morale suffers, stock prices go up and games are made without passion and are crap.
This is different than Crunch. Let's assume Crunch Time is like going to war - people participate and make sacrifices that they would not make otherwise knowing that it is temporary at best. Grinding is like 1984. There is always war because the people in charge keep it that way so that they keep the powers that they have. Sacrifices are demanded and constant. There is no light since there is no tunnel and so there is massive developer die off. I mean artists, designers, programmers, the whole lot of them. I think this is one of those things to be aware of. I think that this is a practice that has fallen out of favor in recent years, and I hope so.

Wednesday, January 14, 2009

University

College is expensive. Who knew?

I think I was supposed to, you know, before I was accepted to Cal State. I mean, wow. $300.00+ per credit. Holy shit, that's $1200 goddamn dollars per class. $13,000.00 for the 51 credits to get the degree. That's 5 bloody digits and it has a comma in the number.

So I find myself at another crossroads. Do I stop now and just focus on finding a job with fewer qualifications? Or do I press on, accrue some massive debt, and then try to look for a job that may not be there when I'm done? Without the degree getting a job ahead of other people with the 4 year will be harder. With it, there is still no guarantee.

Oh, and Sloper isn't helpful. He says, "Do what you are passionate about." Then I go looking and the most common degrees for Designers is English and Art. Yet, when I tell people, "I study English with a focus on writing," they reply with, "And you want to be a Game Designer?" I hate people sometimes.

On the one hand I'm terrified that my life will be in some kind of holding pattern until I finish. Three more years (of night classes) and being in my current situation seems unbearable. Yet, after I have it I can only see good things. Even if I never get to be a Game Designer (again) I'll always have a degree to fall back on and jobs that I could not get without it. I can get a job as an Editor for a magazine or an online publication, do some writing (which I enjoy almost as much as designing - just differently).

So I guess in some small part, it's what I want, deep down. The Degree. I see it as another step, the next step. But the way it will change my life for worse in the meantime frightens me.

I'm reminded of a quote by the former host of Monster Garage, "If it wasn't hard, it wouldn't be cool."

- At least it isn't just me. The Animator is trying to get accepted to an Art School and is totally stressing about it. Consequently that's taking up his time and making it a little tricky to schedule our first post-school get together. But you know, if I was making the choice of doing a side project or using the time to get accepted to a prestigious school, I would do exactly the same thing.

- Right, speaking of the Project again, I'm trying to organize a meeting with the Artists so we can get some art finalized and/or conceptualized and move ahead. I think that that is the next logical step. I'll post something useful afterwards, maybe even pictures!

- One more thing, Gears of War 2 is more difficult than you'd think it would be. They've gone and added bits that can kill your ass quickly - outside of the main game mechanics. I get it, if a Locust hits me with the Lancer Chainsaw I get killed. But mortars? Really? I can get dropped by stupid shit like that which I can't duck and avoid? That's so stupid. I think it's just that one part, but I find it asinine. I meam, I'm not bad at the game, I beat the first one on Nightmare or Insane or whatever the hardest setting was, and now Hardcore puts me over a barrel and does unpleasant things to my soft inner meats. Yet, when the gameplay is working, it works. There's some of kind of alchemy at work in the code of something. It's digital crack and I'm addicted.

-Speaking of digital crack, I like playing the Horde mode all by myself. Me against 12+ of them makes me feel like John McClane. Even when I die it's heroic. When I win, let's just say the language is...colorful.

-Wow, I sound totally schizo in this post. It starts angry, gets melancholy and then ends with a joke about my inside meats and a Die Hard reference. This is already a very weird day indeed.

Monday, January 12, 2009

Now What?

In games, I love "Now What?" moments. Places where you have to sit back and think for a moment and choose the best path. Where sheer impulse takes a back seat to methodical reasoning and tact. In life, I hate it. With a game I have the option to try again, there is no difference, the choice is without meaning or consequence. So when put into a similar situation in meatspace - I freeze; often unable to continue or think of the situation with the correct perspective.

So what does that have to do with anything? I'm stalling out on Thief. The big list of things isn't done yet, programming is slow, art is slow and I can't think of what to do next. I can't plan the steps ahead. I can't figure out what to do when the very nature of the thing is so mercurial. All I can do is ask the artists what they're doing and build some more levels. So, I'm frustrated without the feedback loop of progress. Yet at the same time I can't complain. Everybody is volunteering and doing the best they can. Indie is hard.

What I find I need, what I always needed, is an Art Director. More than that, the project needs to find its center again. We need a common goal and a common view. I think the next step is getting a solid look and idea conceptually of the project. Then the artists will know what to do and how to do it. Then art will not have to be redone and we can move forward again, not wandering in the desert without direction.

So, now what?

-Oh right, jobs are stupid. I keep looking, but there is some serious worry on that. At the most I am looking for some kind of entry level job, maybe level design, maybe scripting or mission planning, maybe associate work. But here is Sunny San Diego, studios are closing and/or downsizing. So there are fewer jobs than there were, and the number of qualified candidates with real 9:00-5:00 job experience has suddenly become very large indeed. So what can I do? I mean I'll keep looking and keep applying, but my prospects are becoming more bleak by the hour.
So with Thief, the point is to do the work to get the job, but the jobs may not be there when I'm done. It's catch-22 all over again. I'm not just a college student, I don't have loans holding me up, I have to work. I can't just stay in school and get out when the weather is clear. I'm in the storm and I can't see what to do, or where to go or even where I'll be stepping a few feet in front of me. There is nobody out there going to save me. Sitting around will not help. These words will not save me. The only thing I can do is keep moving, keep trying, keep doing the best I can and maybe, just maybe, I can save myself.

Tuesday, January 6, 2009

Small Pleasures

I'm knee deep in level building again. Like I said previously, the 3rd level needs some major work. I can see what I was going for in the levels that i have, but it is clear that they were put together during the time before IGF when we thought we could do it all. So they have a rushed kind of quality to them and that's not quite perfect.
Like the Portal's on the edges of the screen. They're an easy thing to forget about since I don't place them in the Editor Screen. They live just off the screen and most of them have positions in the negative numbers, like -30 Y or -20 X. Normally, they line up with the Critical Path, so a screen will have 2-3 of them. The Cliffs are a wide open level, so many of the screens have the full compliment of 4. If one is missed, then there is no trigger at the end of the screen and the character just falls out of view. They exist in this "outside" world for a few moments before the program executes them gangland style. It's not pretty and is very jarring.
Of course, in some places that's the point. Like it may be possible to fall into an area, but have no portal the other way. Death falls for example, or anyplace I don't want players to sequence break. But that's not the case here.
Right, so the title. It's been a while since I just sat down and worked. Not figured out some aspect of the programming, nor debugged something, or built a prototype - just sat with my notebook and ThiefEd and got to work. It's a slow process, but every minute brings more good things. I mean, it's right there just waiting to get done. It's a different feeling that one can forget sometimes.
Design is great, the big ideas that make something work are my favorite thing. The System is paramount. But when building levels each screen gives the chance to make a little bit of that. Especially with Thief, every screen has the chance to create some enjoyment. So making them one at a time and tweaking them and re-tweaking them until they are fun offers dozens of their own rewards. Granted, not as glamorous as the Big Design, but enjoyable nonetheless. I can see how some people could really enjoy this. Given a system and a set of tools to make fun happen. That makes sense to me. But I guess it's a mindset. Eventually I'll work and I'll want to change things, design things. That's the part I like, but it's nice to take some time to just make some fun.

-What, 2 posts in the same day? This is craziness(!) Well, no. The last post was about nothing at all. This is about the game, the work and the real point of this diary. So I felt it deserved its own space.

More Good News

Okay, this has nothing to do with the Project per se, but I just got my final grade for my final class for my Game Art & Design Certificate and I passed. That's bloody awesome. So for just the game stuff I rocked out with a 3.4 GPA. Oddly, the last class killed an otherwise flawless 4.0. But I did build a game in that time, so I'm going to go ahead and call that squarsies.

-Oh, more nothing about nothing. I just noticed in the upper corner I can search for words. Turns out I like using the F word slightly more than the S word. I should reconsider my priorities.

Sunday, January 4, 2009

The Two Week Test

I learned a trick a while ago from an artist friend of mine. It was a principal he called the Two Week Test (or something similar). Since a person is not able to look objectively at their own work when they are doing it, they have no way of knowing if it is really any good. So, the trick is to not look at it for 2 weeks (or more if you can swing it) and then come back and look at it again. I did that yesterday and I discovered some things. First of all, the game stills works and is fun to play. I mean I enjoy it still. The combat is a little confusing, but it's nothing that can't be fixed. So that's good.

Second, the cliffs level is boring. I mean, it is really quite dull. I grossly overestimated the enjoyment of climbing up things. So I'm going to have to rip it apart into little pieces and make some serious modifications to the level as it is. I think it may be salvageable, and I can see what I was going for, but it's not there yet. There are so few enjoyment nuggets in so much space that I'm just not liking it. Bungie designers follow something called the 30 Second rule or something like that. It says that the whole game should be made up of 30 second pieces of fun. So in a 6 hour game you should have fun 720 times. The cliffs have fun in them, but it's nowhere near the 30 second mark, maybe once every minute and that's an Epic Fail in my book. So yeah, a tear down is in my future.

-In programming news, I tore apart my scripting system. How it was set up, all of the scripting was in a single function that I could comment on or off in the code. Not a big deal, but then the doors and switches stopped working when I turned off the scripting for a level. Non-working doors make a level unplayable, and watching my scenes every time I want to check something makes me want to kill. So I went ahead and broke the scripting into pieces. Now the doors, dolls and end of level stuff is all in its own function and the story stuff is too. Now I can toggle 1 or the other as I want. So that's less then warm legumes.

-I'm also in the process of cleaning up my code base. Like I whined about in a previous post, as the deadline approached i found myself doing a wide variety of things to get the game to work. Nothing fancy and most of it put together awkwardly. An example I've got is my enemy loading function. At the time I built huge lists for the enemies and their sprites.
So,
Load Enemy1Standing, Load Enemy1Running and so on.
This made huge and unwieldy lists of crap, but worked at the time. So I changed it to be more flexible so now it loads like:
Load "Enemy"+enemyskill+"Standing, Load "Enemy"+enemyskill+"Running"
So I have 1 list now.
But that's just an example. Like I said before, I had to cut up the scripting, and that code is a giant cluster-fuck. I'm not even sure why it works. It just does, almost in some violation of logic - the proverbial exception to the rule.
So, yeah, I'm fixing all of that as I go. I can only imagine what the Programmer thought when he saw that. I assume it's something like, "Ah, I see. This guy clearly codes using his feet."

-In other news, I got to playing with the XNA Community Games. I'm sure there are some gems in there, but they are surrounded by crap. They make the short bus that is Live Arcade look like honor students. I mean, wow. I even started trolling for "award winners" and was staggered by their lack of creativity / polish / game. These are indie games. They're supposed to break outside the mold and offer experiences that would not be expected to come out of the publisher business model. Yet at the same time a game is supposed to be fun. Some of the things I played should have been stopped at the prototype level since they were lacking enjoyment.
Of course, I shouldn't bitch since these people managed to do what I am trying to still do. But it confuses me it does, especially with the democratic way Community Games are passed. Either nobody said, "Hey, you game sucks because..." or somebody said, "Shut up, you guys are assholes. My game is awesome." Whichever way it was, there was some kind of failure in the system. I hope, hope that they get better soon for everyone's sake.

-Oh and 1 more thing. I hate timed demos like I hate people that spell "a lot" as "alot." Give me less content, but let me explore it at my leisure. Don't give me a crappy 60 seconds to play your damn game after it loads and then try to hit me up for $4. It's unprofessional and totally F'ing Lame. It's not that hard to give the first 1-2 levels. If you don't have 1-2 levels to give away for free, you game is not that bloody good. You want a good model, look at the Demo for Braid or Bioshock. They let me play. A 60 second little tease doesn't make me want more, it makes me want something else.

EDIT:
Turns out that the time limit is imposed my Microsoft. So that would mean than my game would suffer the same limitation. Although I stand by my comment that, "It's unprofessional and totally F'ing Lame." But what would you expect? The Live Arcade Games and the Community Games have different price points and publisher cuts. Like I said, it makes me want something else. Something that I can play for an hour and explore and enjoy. Something on Live Arcade. Something that Microsoft makes a bigger margin on. I get it. But really? To hobble the horse before the race, the horse that is already a long shot, is absurd. Argh. I find I lack the words to express it correctly. Ah, wait, I do have the word. Fuck.

-Wow, totally snarky post today with more swearing than usual. Weird mood I guess.

-"Less than warm legumes" or LTWL is my dumb way to say "Cool Beans." Yes, it is dumb.