So I'm walking out to my car wearing the nicest casual shirt that I own while also rocking the hipster flippy floppies and socks (the kinds with the grey toe even) since my shoes were planning to rendezvous with me at the auto. I'm well onto my way to my first IGDA meeting. Previously I had been a member - I even have a card with my name and everything. I had joined thinking that I could meet new people that have jobs. I think I had mentioned in a previous post that something crazy like 80% of game jobs are not listed anywhere, so I was off into the wilds to see what I could see. Of course I had to drive across the county to see said, um, "see." Which is what I was doing once I had met up with the previously mentioned footwear.
Once they were again lovingly and securely wrapped around my feets, I was on my way at speed. This was ironically my first IGDA get together. When I was a member before I kept waiting for a meeting to come up, so I could meet new people and stuff like that. Well, an entire year passed before anything was even mentioned, and I let the membership, to the cool club that never met, lapse. Which is why this card carrying member of the International Game Developers Association, has a card that says both student, and 2009. I mean, when the whole point (in my eyes at least) is to be introduced to people that may know people that I too may like to know, and then you never get to meet anybody, there really isn't a point.
Either way, when I did finally arrive, it was a modest meeting. The San Diego Chapter of the IGDA was, for all intents and purposes, dead. I mean, flatlined like a Hacker that failed trying to crack black ICE. It started as a smallish group and then slowly grew into a moderately small group. The turnout was interesting.
Mostly, because as a self described "Indie Game Designer" I seemed to be the people that people wanted to meet. Odd considering. Lots of artists, background artists, modelers, people that refer to The Art Institute as "AI" (which is confusing to programmer types) were in attendance. Most of them knowing each other from their normal jobs that didn't have much to do with game development. It's a feeling that I can appreciate on a basic level. Lots of other types too, which seemed to do something tangentally related to gaming, but not. Several programmers in attendance, just happy to code whatever for a living, and not really wanting to throw themselves into the boiling pot that Game Programming is.
I did get to meet some people that I am now Facebook friends with, which is nice. Another, when asking about what I'm working on (which by the way, is the cool question to ask - "So, what kind of projects are you working on?" It's like at college, "What do you want to be when you grow up?") told me about a friend that does all kinds of 3D work and is looking to do stuff for their portfolio. Quality character driven stuff. Emails were exchanged, and I think that it may lead to good things. If nothing else, they know other people that work in small groups. Things may get around to happening, or maybe not. Either way, it's nice to be able to find out.
In development news, ahh, right. I know, I shouldn't, I promised, but all I really did was change the name of two files and play. That's it. I swear. I don't count that as really developing anything. No lines of code where typed. It doesn't count.
Anyhow, the Cliff music works. The Composer really came through on that one. He created 2 different versions of the same music - a somber, and a hectic Cliff Theme. Separate, they're pretty good, but when they are put together, it just works on such a fundamental level. It's really very pro. I haven't scripted the music cues yet, but just with my keyboard shortcuts, they're seamless. It's so nice to know that the level that gave me so much trouble is really coming around to being one of the best.
Saturday, June 26, 2010
Monday, May 17, 2010
Defiance
Yep. It's been a month. Well, longer than that actually. A month and a couple of extra days since the the thing we'll just call the "shenanigans". Not too much has changed really, and this update is more to have something, anything really, to let out some of the steam just before I break down like an old boiler.
On a basic level, I've confined myself in a device of my own making. A device designed from the ground up (which is what I do) to make me as uncomfortable as possible while simultaneously making myself useful at every opportunity.
The more, astute readers (assuming that any are there, which I continue to doubt) could probably figure out exactly what my problem is at this point, but I still refuse to divulge the nasty bits. This is not the forum for self pity or anything even resembling it. Instead, as the last couple of hundred things would show, it's full to the brim with my own odd wit mixed in equal measure with the deep insights into the price of failures, and the staggering aura that success can bring. Set backs of any variety exist only as obstacles that get dashed, usually within 1-2 posts. It creates a kind of episodic nature to this particular diary that I continue to find endearing. but there I go again, getting all self important and assuming that my words have any value, to any one.
It's always a danger when you're talking - the thought that your words are important because they came out of you. Falling to that particular dark side is a sure fire way to be a terrible assed writer. I don't care who that writer thinks they are. Once they stop thinking that they have anything to prove, they've failed.
Anyway, it seems that once I step away and then return to our regularly scheduled programming, that I get all excited by the prospect of writing at all. So please excuse my hubris and my dust. I think I'm getting to my point (finally).
Anyway, back to the device. It works like this - creating games, brings me joy. Thinking about the way that they work, it makes me happy. Designing them is stimulating in ways that illicit substances could never be, since I am the driver of it, not a passenger. Programming, for all of my vocalized hate, is the means to my end. It also tends to make for the best short victories.
So, I am using my own nature, against me. Basically, until I get the new thing sorted out, I have forbidden myself from writing about, thinking about or working on any of my games. The only caveat, is that I still chat with my team members so they know that I'm not dead in the proverbial ditch.
Instead I fill my days with nothing, with nonsense. With a dozen little mindless things awaiting something, anything really, to happen. Acting as a fisherman and hoping, waiting, for a catch.
This is not a place where I complain. Nor is it a place where I tend to wallow in my own self pity. Usually. Today, I'll indulge myself with but a single sentence. It goes like this : I cannot remember a time where I have been more unhappy.
But here's the thing, and this is the important part, and the reason that I write this particular entry today, I've never had more of an understanding of exactly what it is that I want, and specifically, what it is that I am. I have created a space where I have denied myself something, the one thing that brings me the most joy so I can continue to live. To me, it's not just a thing, but the thing. It would be like if you banished a Chef from the kitchen, or told a Musician that they cannot play. I have taken from myself, if only temporarily, the thing that brings me both joy, and it seems, meaning. I keep saying that I need to do this, so I can get back to work. Everything becomes the means to that end.
So, now we're getting back to the titles you see. I've said it before, and I'll continue to say it for as long as I can speak.
I am a Game Designer. Nothing will ever take that from me.
On a basic level, I've confined myself in a device of my own making. A device designed from the ground up (which is what I do) to make me as uncomfortable as possible while simultaneously making myself useful at every opportunity.
The more, astute readers (assuming that any are there, which I continue to doubt) could probably figure out exactly what my problem is at this point, but I still refuse to divulge the nasty bits. This is not the forum for self pity or anything even resembling it. Instead, as the last couple of hundred things would show, it's full to the brim with my own odd wit mixed in equal measure with the deep insights into the price of failures, and the staggering aura that success can bring. Set backs of any variety exist only as obstacles that get dashed, usually within 1-2 posts. It creates a kind of episodic nature to this particular diary that I continue to find endearing. but there I go again, getting all self important and assuming that my words have any value, to any one.
It's always a danger when you're talking - the thought that your words are important because they came out of you. Falling to that particular dark side is a sure fire way to be a terrible assed writer. I don't care who that writer thinks they are. Once they stop thinking that they have anything to prove, they've failed.
Anyway, it seems that once I step away and then return to our regularly scheduled programming, that I get all excited by the prospect of writing at all. So please excuse my hubris and my dust. I think I'm getting to my point (finally).
Anyway, back to the device. It works like this - creating games, brings me joy. Thinking about the way that they work, it makes me happy. Designing them is stimulating in ways that illicit substances could never be, since I am the driver of it, not a passenger. Programming, for all of my vocalized hate, is the means to my end. It also tends to make for the best short victories.
So, I am using my own nature, against me. Basically, until I get the new thing sorted out, I have forbidden myself from writing about, thinking about or working on any of my games. The only caveat, is that I still chat with my team members so they know that I'm not dead in the proverbial ditch.
Instead I fill my days with nothing, with nonsense. With a dozen little mindless things awaiting something, anything really, to happen. Acting as a fisherman and hoping, waiting, for a catch.
This is not a place where I complain. Nor is it a place where I tend to wallow in my own self pity. Usually. Today, I'll indulge myself with but a single sentence. It goes like this : I cannot remember a time where I have been more unhappy.
But here's the thing, and this is the important part, and the reason that I write this particular entry today, I've never had more of an understanding of exactly what it is that I want, and specifically, what it is that I am. I have created a space where I have denied myself something, the one thing that brings me the most joy so I can continue to live. To me, it's not just a thing, but the thing. It would be like if you banished a Chef from the kitchen, or told a Musician that they cannot play. I have taken from myself, if only temporarily, the thing that brings me both joy, and it seems, meaning. I keep saying that I need to do this, so I can get back to work. Everything becomes the means to that end.
So, now we're getting back to the titles you see. I've said it before, and I'll continue to say it for as long as I can speak.
I am a Game Designer. Nothing will ever take that from me.
Wednesday, April 14, 2010
IndieCade
First things first, that cool row loading thing that I talked up yesterday, well, it works now. Unfortunately for you dear reader (*scoff*) it went off without too much of a struggle, so I don't seem to have a colorfully worded story to go with that.
Actually check that, I'll make one up. Assume that none of the following things are true.
So I was sitting around my house watching The Life Aquatic when suddenly, the President of Mexico runs into my house. Frantic and sweating he pleads in surprisingly good English to help him. Apparently kidnappers are after him, like in Man On Fire, except these kidnappers (presidentnappers?) are also members of Al-Quaida. Big ones, since they have mug shots on those stupid novelty playing cards that were all the rage years ago when anybody gave a deuce.
Seeing that he's in trouble, I throw on my flippy floppies, turn in that slow way that both action heroes and strippers use to great effect, and say while tightening my bandanna, "Mr. President, come with me if you want to live. Afterwards, you can buy me taquitos."
I then flip up my couch revealing my giant hidden cache of heavy weapons and samurai swords. Naturally, I pick Daisy, my samurai sword with a machine gun in it. Oh, you see those all the time, so I won't bother you with the details of how it works or looks. Just know that it's not just the coolest weapon ever, but quite possibly the coolest object in the History of Stuff.
So out into the street I ran, flippy floppies making that great flip and the occasional flop noise. Of course, I didn't really hear to much since Daisy was busy turning terrorist kidnapper card Texas style Hold'em into a game of 52 card pickup. Except with blood, and awesome Wes Carpenter synth music, like what Snake Plisken kills to.
Soon, I find myself standing atop a heap of the misguided and the Lost, holding a smoking Daisy. Somehow a half naked woman appeared and kneels at my feet. It's very metal. All of the sudden, one of the terrorist kidnappers reaches up with his last breath and only working limb to shoot me, treacherously.
The President of Mexico looks on and I bleed out, and says, "Thank you for saving me! You are a national hero." Or something like that. I wasn't really paying attention, cause getting shot hurts like crap man.
When I awoke, I was in a dark place, surrounded by stone walls. Ramones flavoured Muzak was piped in from hidden speakers on the walls. Then, as if by some kind of magic, a Man in Black appeared.
"Am I in Space?" I ask.
"Nope," he replies. "I've just found that a black suit is more appropriate than a cloak. I could change."
"Nah," I reply casually, "It works. So, like do I get a challenge or something?"
"Shit. I hate The Seventh Seal. I hate it so hard. Do you have any idea how hard it is playing Twister in a robe?"
"That would explain the suit."
"Alright," he says, checking his watch. Oddly, it's digital; One of those cheap ones you can get at the fair. "I've got time. Well, more than you anyway. What'll it be?"
"Programming. I don't know if you read my blog, but I'm fuggin Li Mu Bai."
"First of all, nobody reads that self indulgent crap. Second, programming isn't a game."
"Deal with it. My choice, my mortality."
"Fine," he replies, and summons up a couple of computers. Death it seems, owns an iTablet. I always pegged him as a Linux man myself. In any event, he gets to coding on it and I get to coding on my laptop. When Death codes it looks like Matrix rain, except as done by emo kids, so it's all full of AFI logos and skelanimals. The ground shakes with his mighty coding prowess, probably like when John Carmack codes.
Soon he's done and holds up his design. He says, "I read your blog thing. Crap man, does everything need that much text? I mean, seriously you write twenty lines of code sometimes and then crank out 1000 words of soliloquy and self fellating nothingness. Anywho, I got your stupid text file reader thing to finally work. You're welcome. Now give me your soul."
I reply, "I but you haven't seen what I did."
"Fine," he sighs, "what dumbassed thing did you code?"
"I coded a way for Daisy to be remote controlled."
"Eh?" was the last thing he said before Daisy did that machine gun katana thing that it does so well. Again, we've all seen exactly what a remote controlled/AI katana machine gun does to a incarnation of mortality, so I'll spare the mundane details. Afterwards I stepped over the still warmish meats and copied Death's code to my flash drive.
I then left Death's domain and took the bus home.
-In something completely different. I've discovered IndieCade, another Independent game show. It has a deadline of the first of June, which gives me like 2 months to get a project done. I'd like to say I can have Thief done, but without steady animators, that's going to be kind of a trick. So unless I can think of something, I'm going to try to get Paper Zeppelin into a playable state for the event. The really cute thing about IndieCade, is that if you are in the final group, then they show your game at E3. I'll repeat that for emphasis. They have your game in their booth at E fuckin 3.
I'm of the mind that borders on the incredibly cool. I'll see what I can do with it.
- This post, is just a little weird. You see, I started writing it about 5 days ago, and never got around to posting it up. I could go into the specific details, but I won't bother here, because nobody cares and I certainly won't in few months when I get back to reading it. What I did do was write a different post, that I titled Call Me Ishmael, but that one will probably never see the light of day. Just know that it was full to the brim with self loathing and defiance in almost equal measure.
What is of note is the IndieCade thing I wrote right above. Even though I wrote it, and I fully intend(ed) to do that, I'm no longer sure if I'm in a position where it would even be possible. My hours suddenly taken up by far more pressing matters, mostly involving starvation and/or homelessness.
So before I get back to doing any kind of hard core (or even soft core for that matter) coding, I need to get something else that's not even tangentially related covered and working. Sooner, rather than later.
This is my serious face.
=|
Patience is just another word for getting old.
Actually check that, I'll make one up. Assume that none of the following things are true.
So I was sitting around my house watching The Life Aquatic when suddenly, the President of Mexico runs into my house. Frantic and sweating he pleads in surprisingly good English to help him. Apparently kidnappers are after him, like in Man On Fire, except these kidnappers (presidentnappers?) are also members of Al-Quaida. Big ones, since they have mug shots on those stupid novelty playing cards that were all the rage years ago when anybody gave a deuce.
Seeing that he's in trouble, I throw on my flippy floppies, turn in that slow way that both action heroes and strippers use to great effect, and say while tightening my bandanna, "Mr. President, come with me if you want to live. Afterwards, you can buy me taquitos."
I then flip up my couch revealing my giant hidden cache of heavy weapons and samurai swords. Naturally, I pick Daisy, my samurai sword with a machine gun in it. Oh, you see those all the time, so I won't bother you with the details of how it works or looks. Just know that it's not just the coolest weapon ever, but quite possibly the coolest object in the History of Stuff.
So out into the street I ran, flippy floppies making that great flip and the occasional flop noise. Of course, I didn't really hear to much since Daisy was busy turning terrorist kidnapper card Texas style Hold'em into a game of 52 card pickup. Except with blood, and awesome Wes Carpenter synth music, like what Snake Plisken kills to.
Soon, I find myself standing atop a heap of the misguided and the Lost, holding a smoking Daisy. Somehow a half naked woman appeared and kneels at my feet. It's very metal. All of the sudden, one of the terrorist kidnappers reaches up with his last breath and only working limb to shoot me, treacherously.
The President of Mexico looks on and I bleed out, and says, "Thank you for saving me! You are a national hero." Or something like that. I wasn't really paying attention, cause getting shot hurts like crap man.
When I awoke, I was in a dark place, surrounded by stone walls. Ramones flavoured Muzak was piped in from hidden speakers on the walls. Then, as if by some kind of magic, a Man in Black appeared.
"Am I in Space?" I ask.
"Nope," he replies. "I've just found that a black suit is more appropriate than a cloak. I could change."
"Nah," I reply casually, "It works. So, like do I get a challenge or something?"
"Shit. I hate The Seventh Seal. I hate it so hard. Do you have any idea how hard it is playing Twister in a robe?"
"That would explain the suit."
"Alright," he says, checking his watch. Oddly, it's digital; One of those cheap ones you can get at the fair. "I've got time. Well, more than you anyway. What'll it be?"
"Programming. I don't know if you read my blog, but I'm fuggin Li Mu Bai."
"First of all, nobody reads that self indulgent crap. Second, programming isn't a game."
"Deal with it. My choice, my mortality."
"Fine," he replies, and summons up a couple of computers. Death it seems, owns an iTablet. I always pegged him as a Linux man myself. In any event, he gets to coding on it and I get to coding on my laptop. When Death codes it looks like Matrix rain, except as done by emo kids, so it's all full of AFI logos and skelanimals. The ground shakes with his mighty coding prowess, probably like when John Carmack codes.
Soon he's done and holds up his design. He says, "I read your blog thing. Crap man, does everything need that much text? I mean, seriously you write twenty lines of code sometimes and then crank out 1000 words of soliloquy and self fellating nothingness. Anywho, I got your stupid text file reader thing to finally work. You're welcome. Now give me your soul."
I reply, "I but you haven't seen what I did."
"Fine," he sighs, "what dumbassed thing did you code?"
"I coded a way for Daisy to be remote controlled."
"Eh?" was the last thing he said before Daisy did that machine gun katana thing that it does so well. Again, we've all seen exactly what a remote controlled/AI katana machine gun does to a incarnation of mortality, so I'll spare the mundane details. Afterwards I stepped over the still warmish meats and copied Death's code to my flash drive.
I then left Death's domain and took the bus home.
-In something completely different. I've discovered IndieCade, another Independent game show. It has a deadline of the first of June, which gives me like 2 months to get a project done. I'd like to say I can have Thief done, but without steady animators, that's going to be kind of a trick. So unless I can think of something, I'm going to try to get Paper Zeppelin into a playable state for the event. The really cute thing about IndieCade, is that if you are in the final group, then they show your game at E3. I'll repeat that for emphasis. They have your game in their booth at E fuckin 3.
I'm of the mind that borders on the incredibly cool. I'll see what I can do with it.
- This post, is just a little weird. You see, I started writing it about 5 days ago, and never got around to posting it up. I could go into the specific details, but I won't bother here, because nobody cares and I certainly won't in few months when I get back to reading it. What I did do was write a different post, that I titled Call Me Ishmael, but that one will probably never see the light of day. Just know that it was full to the brim with self loathing and defiance in almost equal measure.
What is of note is the IndieCade thing I wrote right above. Even though I wrote it, and I fully intend(ed) to do that, I'm no longer sure if I'm in a position where it would even be possible. My hours suddenly taken up by far more pressing matters, mostly involving starvation and/or homelessness.
So before I get back to doing any kind of hard core (or even soft core for that matter) coding, I need to get something else that's not even tangentially related covered and working. Sooner, rather than later.
This is my serious face.
=|
Patience is just another word for getting old.
Monday, April 5, 2010
Solution Set
Paper Zeppelin continues making progress. I spent some time over the weekend getting the rest of the level loading system to work and learning about how to both look and and update table information in C#. It's an interesting thing really. The idea is to have each "row" in the table represent a "row" of objects in the level. That way I'll be able to calculate out starting positions based on what row in the table the information is in. So, say there is a plane icon on the first row of the table. When the system gets to reading it, it'll see that there's a plane on the first row, so it'll spawn the little beastie right at the top of the screen. I think it's adorable, and will allow me to make very fast level changes when I need them.
I'll keep at it, since the next step after this is gameplay testing. Then I'll be able to see if my carefully crafted design holds up, or folds like an origami crane. Excitement abounds.
- In other random crap, I've figured out a solution to the problem from the last post. The issue was, given that both the levels will modify themselves on the fly (given clever use of the characters) based on the number of players and I want to branch levels based on performance, how do I allow drop in and out gameplay without somehow screwing the progress that the players had made? I mean, if 1 player played a level and did well and another player jumped in at the end, the 2 players would have success equal to 1 player's worth of skill - which would be a failure.
The solution, has to do with the total number of spawned versus destroyed enemies. So when an enemy is spawned the game will add up a counter for the Total Number enemies. When an enemy leaves the screen the system will euthanise it (so it doesn't take up memory while being lost in space). When it gives the off screen enemy the final mercy, it'll add to a different counter for Escaped enemies. At the end of the level it will calculate the ratio of spawned enemies to escaped enemies, which will indirectly tell me how many enemies were destroyed by the player/s. I could even stick this ratio in the corner to let players know in real time that they're doing well.
The clever bit (I think) is that if players join the game, the level will dynamically update the number of enemies spawned. If they leave, it'll also dynamically adjust. Further, if 1 player is to the end of the level and another player joins, it has zero affect on the progress made. So the players would then be able to continue to the more difficult branch of levels.
- Speaking of dynamic levels, the design document mentions it, but doesn't go into how it works. I'll fix that for those of you at home. Basically, different characters in my level data will load the same enemies. Take this example:
"......11....22...33...44"
The periods are there to represent empty air. I could use spaces, but that's a lot harder to read and line up than you would think. In any event, if only 1 player is active, the game will only spawn the enemies for the 1 characters. If there are 2 players, then the 2's will activate too. So if 4 players are playing, then it'll activate all of them. The enemies that come up will all be the same, but I'll have fine control over them. The best thing I like about it is that it allows me to do stuff with the single player. So in the doc it says that having the Bomb affects your shooting and speed. So if I have fast dive bombers come in, that's kind of cheap. So I can set the single player to not have those right after the bomb is picked up.
In multiplayer, I very likely would want those enemies to require the players to work together to protect the bomb carrier.
In either case, I could probably use the same thing to create difficulty settings, but I think that's missing the point. I plan the use the extra settings not to make the game harder, but to make it different on a fundamental level.
I'll keep at it, since the next step after this is gameplay testing. Then I'll be able to see if my carefully crafted design holds up, or folds like an origami crane. Excitement abounds.
- In other random crap, I've figured out a solution to the problem from the last post. The issue was, given that both the levels will modify themselves on the fly (given clever use of the characters) based on the number of players and I want to branch levels based on performance, how do I allow drop in and out gameplay without somehow screwing the progress that the players had made? I mean, if 1 player played a level and did well and another player jumped in at the end, the 2 players would have success equal to 1 player's worth of skill - which would be a failure.
The solution, has to do with the total number of spawned versus destroyed enemies. So when an enemy is spawned the game will add up a counter for the Total Number enemies. When an enemy leaves the screen the system will euthanise it (so it doesn't take up memory while being lost in space). When it gives the off screen enemy the final mercy, it'll add to a different counter for Escaped enemies. At the end of the level it will calculate the ratio of spawned enemies to escaped enemies, which will indirectly tell me how many enemies were destroyed by the player/s. I could even stick this ratio in the corner to let players know in real time that they're doing well.
The clever bit (I think) is that if players join the game, the level will dynamically update the number of enemies spawned. If they leave, it'll also dynamically adjust. Further, if 1 player is to the end of the level and another player joins, it has zero affect on the progress made. So the players would then be able to continue to the more difficult branch of levels.
- Speaking of dynamic levels, the design document mentions it, but doesn't go into how it works. I'll fix that for those of you at home. Basically, different characters in my level data will load the same enemies. Take this example:
"......11....22...33...44"
The periods are there to represent empty air. I could use spaces, but that's a lot harder to read and line up than you would think. In any event, if only 1 player is active, the game will only spawn the enemies for the 1 characters. If there are 2 players, then the 2's will activate too. So if 4 players are playing, then it'll activate all of them. The enemies that come up will all be the same, but I'll have fine control over them. The best thing I like about it is that it allows me to do stuff with the single player. So in the doc it says that having the Bomb affects your shooting and speed. So if I have fast dive bombers come in, that's kind of cheap. So I can set the single player to not have those right after the bomb is picked up.
In multiplayer, I very likely would want those enemies to require the players to work together to protect the bomb carrier.
In either case, I could probably use the same thing to create difficulty settings, but I think that's missing the point. I plan the use the extra settings not to make the game harder, but to make it different on a fundamental level.
Thursday, April 1, 2010
The Word
Boy was I up late last night. I was chasing the ability to read letters in a word, and I was so close for so long that I kept on hounding it. Now, I have it. It's not all the way built yet, but enough parts are dancing that I can get the code to summon up an enemy based on what the letter (or character) is.
Still haven't figured out how to load the thrice damned things from a separate text file, but I've got it handled well enough to move on and start prototyping. Basically, each level will be made up of several lines of text, great big words that'll summon up everything in the game. A short sample may look like this :
"......<..<..<....@"
See, that doesn't look like anything. But the computer knows better. So after a set period of time I'll ask the computer, "What's the next character in the Word?"
"It's a '.'" it'll reply.
"So what do we do with periods?"
"Nothing, cause they are empty sky."
Then I'll congratulate the computer and give it a cookie.
Eventually I'll ask and it'll say, "There's a '<' thingy. So we should make a plane enemy right?"
So over the course of the level the system will do this a couple of hundred times if not more. Always move to the right and propagate the levels will all kinds of Class Based wonderment. If I add a little thing that makes all the "stationary" stuff go to the left slowly, I've created a scrolling environment. It's a very good thing.
- I'm discovering that knowing enough about C# to be dangerous is only half the story, if not less. For some time the system kept telling me that files aren't where I said they were, and I told the system that it was a liar. Other software that I look at for guidance (and the occasional reverse engineering) referenced the files the same way I was. The system, was simply wrong.
Turns out, I wasn't being polite. Or rather, I was making some kind of formal / informal faux pas. There's some little command that I could add to a file set, that would allow me to reference stuff relatively. So instead of C:/ProgramFiles/CSharp/Loot/stuff.text I could just say Loot/stuff.text. If I went through the right hoops. It also gave me rage when it demanded that I do something special so it wouldn't get confused by the '/'s.
The thing is, this comedy of manners only exists because the things are too basic to ever talk about. It's assumed that if you are a programmer, you should just know these things. It creates a certain kind of unease. I mean I add things, small things, and compile the code just so I know I didn't make a mistake. It makes for slow going.
Eventually, I'll be fluent if not at least conversational.
Still haven't figured out how to load the thrice damned things from a separate text file, but I've got it handled well enough to move on and start prototyping. Basically, each level will be made up of several lines of text, great big words that'll summon up everything in the game. A short sample may look like this :
"......<..<..<....@"
See, that doesn't look like anything. But the computer knows better. So after a set period of time I'll ask the computer, "What's the next character in the Word?"
"It's a '.'" it'll reply.
"So what do we do with periods?"
"Nothing, cause they are empty sky."
Then I'll congratulate the computer and give it a cookie.
Eventually I'll ask and it'll say, "There's a '<' thingy. So we should make a plane enemy right?"
So over the course of the level the system will do this a couple of hundred times if not more. Always move to the right and propagate the levels will all kinds of Class Based wonderment. If I add a little thing that makes all the "stationary" stuff go to the left slowly, I've created a scrolling environment. It's a very good thing.
- I'm discovering that knowing enough about C# to be dangerous is only half the story, if not less. For some time the system kept telling me that files aren't where I said they were, and I told the system that it was a liar. Other software that I look at for guidance (and the occasional reverse engineering) referenced the files the same way I was. The system, was simply wrong.
Turns out, I wasn't being polite. Or rather, I was making some kind of formal / informal faux pas. There's some little command that I could add to a file set, that would allow me to reference stuff relatively. So instead of C:/ProgramFiles/CSharp/Loot/stuff.text I could just say Loot/stuff.text. If I went through the right hoops. It also gave me rage when it demanded that I do something special so it wouldn't get confused by the '/'s.
The thing is, this comedy of manners only exists because the things are too basic to ever talk about. It's assumed that if you are a programmer, you should just know these things. It creates a certain kind of unease. I mean I add things, small things, and compile the code just so I know I didn't make a mistake. It makes for slow going.
Eventually, I'll be fluent if not at least conversational.
Wednesday, March 31, 2010
Super String Theory
Right off the proverbial bat, I still can't get the C# compiler to notice that I have a text file that lives among the code. It won't do it. I spent the better half of an hour researching importers and loaders to no real avail (although now I know the theory behind adding 3D models and meshes to a game). In an odd kind of seething fury, I hacked the loading functions right out of the code and assigned a string of letters to be looked at. Then, it almost worked.
So basically, I skipped a step. Before I tried loading a text file, taking the contents of that file and making them a string of letters/numbers and then I tried reading that string. No, I just told it what the letters are supposed to be and had the computer read that.
That breakthrough however came just as the promised drowsiness of Tylenol PM kicked my brain into lizard mode . So I have an idea of how, but now I still need to apply. Provided I can remember of course. Either way, it's part of the larger goal of reading from text. So if that works, I could add a bit later to fetch the data from someplace else. If it doesn't, I could always just assign the variables in the code itself, which is also text. That's a win regardless.
Usually I don't post half finished theories on the diary, and today is really no different. The real reasons are:
1) Look at the site! It's so clean now, and uses pages even.
2) If you look at the little box that I've called "Re-Sources" you'll see a lot of the stuff from before. (although by the time anybody reads this, I may have changed my mind and called it something else)
3) You'll notice that the design document for Paper Zeppelin is up, or at least the parts I have done.
Couple things to notice if I could direct your eyes yonder. There is no Break Point listed. It seems odd that I would wax philisophically about it and then not include it. I got hung up on an issue before I could add it. Issues, I will add comments for in purple. Right now I'm having a design issue regarding player progress and how I can combine a drop in and out style of multiplayer gameplay with a merit based system of level advancement. That will make no sense unless you read the thing.
Next you'll notice that it's really quite short. The Thief enemy defense AI was longer than this. That's because PZ uses very few mechanics, but they're integrated in a way to cascade the mechanics together. The pieces all link together somehow, so my short design and limited ingredients is set up to create an assortment of emergent gameplay. At least, I hope that it will.
Finally, there's no numbers in it. Everything is described (at this point) in relative terms. Numbers are the most variable of variables, so there's no point in trying to make them concrete, especially at this early stage.
Someone out there, assuming that they read this (which I doubt, seriously) may be asking, "Why would you put your work up for someone to steal it?" The answer is simple - it's worthless. That's not quite right, it should say - it's fuggin Worthless. Ideas are crap. Garbage. Even basic designs and documents aren't worth the digital paper they may or may not be written on.
"No," the people cry, "ideas are powerful and wonderful and rare!" I'm sorry to burst the bubble, but they're not. For some people, they may have a good idea once or twice and hoard it like the Gnomes of Zurich.
Others, get ideas all the time. I have lots of ideas. They float on through and sometimes they get caught by my brain. Others float right through and are discarded. But I'm not most people. I'm a designer of systems and a prolific writer of prose. I decide a dozen ideas are crap before I leave my house in the morning.
But it does lead to the point, the only thing worth anything is doing. If Founders just had an idea for a Declaration of Independence it doesn't mean anything. They have to do something with it. Further, it's the act of doing that will shape the outcome. A single idea can be taken and made into different things based on who does it. So like, The Thief's Tale is based on the idea of the original Prince of Persia (oddly, a game I had never played). Obviously Jordan Mechner based his game off the same idea. Our games are quite different because of the people making them.
To wit, here's a list of ideas for games I have cooking in my head at this very moment. Some I may have mentioned here, others have never been and probably never will again. They are, in no particular order.
The Thief's Tale - We know about this one. You can play it over there =>
Silver Knight - Side Scroller Action Hell with inside out storytelling
AeroKnight - Tactical RTS featuring fantasy airships.
Legend - A cycle of games featuring downloadable content. 3D action with destructible environments and physics.
SHADOW - A stealth spy game featuring characters with different skill sets, set in a Renaissance world.
The SHADOW TCG - A TCG based on the above property.
Thrae - 3D shooter focusing on Action Movie tropes and basing the mechanics off of them.
Sword of the Slayer - 3D weapons based fighting game (cancelled)
Paper Zeppelin - 2D sidecrolling multiplayer shooter.
The Star Frog EP - The first "Game Album" - mechanics based on Time, Loss and Failure
- Track 1 : Inevitability
- Track 2 : Time
- Track 3 : Entropy
- Track 4 : Fatalism
SF : Learning to Smile Again - The second "Game Album" - based on Love, Hope and Freedom
Psi-Kye - Metroidvania with psionics, physics and multiplayer.
The Adventures of FlyBoy - 3D flying game featuring a would be superhero.
These are just things that I happen to have written about. Some (like SHADOW) have extensive background that I've worked on. In the case of SHADOW, it's also a comic book script I've developed.
One of them hurts a little, but I'm happy for it. When I was young I played a lot of Street Fighter 2, and thought that the game would be better if I had weapons. Oh, and it should be 3D. Virtua Fighter was 3D, and it was so smooth and pretty. I called it Sword of the Slayer and I designed a dozen characters, wrote out move sets and drew a ton of pictures (I was like, 12 so I had lots of time). I even had the idea of making the female character the "heavy" - slow and powerful.
I set it aside and got thinking about other stuff. One day I was at the local arcade and they had Soul Calibur just sitting there. It was almost exactly the same idea that I had, and executed so perfectly that it brought joy. I then realized that my game, would never be this good. The idea executed too well. Namco had simplified and streamlined, balanced, perfected it. So instead, I played the hell out of SC.
My idea was good, but the doing was the important bit. I'll always remember that, and then get back to coding.
So yes, I share all of my ideas in one way or another. I mean, seriously, how many thousands of words have I thrown at internet describing my ideas? So here's an idea - take anything I've written above, and make it. I'll do the same. We'll see how different those seeds will grow.
- I had once regaled with the tale of chatting with the dudes from PAX. I think it's here. I came across something this morning, and had the weirdest feeling. At PAX East, they had an indie area. Not just the PAX 10, but an indie area with booths and stuff.
I'm not saying that I had really anything to do with that, but maybe just maybe, the meme got inserted and rattled around a bit. Maybe when planning the thing it rattled back to the fore.
Else maybe I was one of a legion of indie developers that have posited that same question. One more straw onto that particular camel.
This year, I'll tell them that their booth should have cookies...and blackjack.
So basically, I skipped a step. Before I tried loading a text file, taking the contents of that file and making them a string of letters/numbers and then I tried reading that string. No, I just told it what the letters are supposed to be and had the computer read that.
That breakthrough however came just as the promised drowsiness of Tylenol PM kicked my brain into lizard mode . So I have an idea of how, but now I still need to apply. Provided I can remember of course. Either way, it's part of the larger goal of reading from text. So if that works, I could add a bit later to fetch the data from someplace else. If it doesn't, I could always just assign the variables in the code itself, which is also text. That's a win regardless.
Usually I don't post half finished theories on the diary, and today is really no different. The real reasons are:
1) Look at the site! It's so clean now, and uses pages even.
2) If you look at the little box that I've called "Re-Sources" you'll see a lot of the stuff from before. (although by the time anybody reads this, I may have changed my mind and called it something else)
3) You'll notice that the design document for Paper Zeppelin is up, or at least the parts I have done.
Couple things to notice if I could direct your eyes yonder. There is no Break Point listed. It seems odd that I would wax philisophically about it and then not include it. I got hung up on an issue before I could add it. Issues, I will add comments for in purple. Right now I'm having a design issue regarding player progress and how I can combine a drop in and out style of multiplayer gameplay with a merit based system of level advancement. That will make no sense unless you read the thing.
Next you'll notice that it's really quite short. The Thief enemy defense AI was longer than this. That's because PZ uses very few mechanics, but they're integrated in a way to cascade the mechanics together. The pieces all link together somehow, so my short design and limited ingredients is set up to create an assortment of emergent gameplay. At least, I hope that it will.
Finally, there's no numbers in it. Everything is described (at this point) in relative terms. Numbers are the most variable of variables, so there's no point in trying to make them concrete, especially at this early stage.
Someone out there, assuming that they read this (which I doubt, seriously) may be asking, "Why would you put your work up for someone to steal it?" The answer is simple - it's worthless. That's not quite right, it should say - it's fuggin Worthless. Ideas are crap. Garbage. Even basic designs and documents aren't worth the digital paper they may or may not be written on.
"No," the people cry, "ideas are powerful and wonderful and rare!" I'm sorry to burst the bubble, but they're not. For some people, they may have a good idea once or twice and hoard it like the Gnomes of Zurich.
Others, get ideas all the time. I have lots of ideas. They float on through and sometimes they get caught by my brain. Others float right through and are discarded. But I'm not most people. I'm a designer of systems and a prolific writer of prose. I decide a dozen ideas are crap before I leave my house in the morning.
But it does lead to the point, the only thing worth anything is doing. If Founders just had an idea for a Declaration of Independence it doesn't mean anything. They have to do something with it. Further, it's the act of doing that will shape the outcome. A single idea can be taken and made into different things based on who does it. So like, The Thief's Tale is based on the idea of the original Prince of Persia (oddly, a game I had never played). Obviously Jordan Mechner based his game off the same idea. Our games are quite different because of the people making them.
To wit, here's a list of ideas for games I have cooking in my head at this very moment. Some I may have mentioned here, others have never been and probably never will again. They are, in no particular order.
The Thief's Tale - We know about this one. You can play it over there =>
Silver Knight - Side Scroller Action Hell with inside out storytelling
AeroKnight - Tactical RTS featuring fantasy airships.
Legend - A cycle of games featuring downloadable content. 3D action with destructible environments and physics.
SHADOW - A stealth spy game featuring characters with different skill sets, set in a Renaissance world.
The SHADOW TCG - A TCG based on the above property.
Thrae - 3D shooter focusing on Action Movie tropes and basing the mechanics off of them.
Sword of the Slayer - 3D weapons based fighting game (cancelled)
Paper Zeppelin - 2D sidecrolling multiplayer shooter.
The Star Frog EP - The first "Game Album" - mechanics based on Time, Loss and Failure
- Track 1 : Inevitability
- Track 2 : Time
- Track 3 : Entropy
- Track 4 : Fatalism
SF : Learning to Smile Again - The second "Game Album" - based on Love, Hope and Freedom
Psi-Kye - Metroidvania with psionics, physics and multiplayer.
The Adventures of FlyBoy - 3D flying game featuring a would be superhero.
These are just things that I happen to have written about. Some (like SHADOW) have extensive background that I've worked on. In the case of SHADOW, it's also a comic book script I've developed.
One of them hurts a little, but I'm happy for it. When I was young I played a lot of Street Fighter 2, and thought that the game would be better if I had weapons. Oh, and it should be 3D. Virtua Fighter was 3D, and it was so smooth and pretty. I called it Sword of the Slayer and I designed a dozen characters, wrote out move sets and drew a ton of pictures (I was like, 12 so I had lots of time). I even had the idea of making the female character the "heavy" - slow and powerful.
I set it aside and got thinking about other stuff. One day I was at the local arcade and they had Soul Calibur just sitting there. It was almost exactly the same idea that I had, and executed so perfectly that it brought joy. I then realized that my game, would never be this good. The idea executed too well. Namco had simplified and streamlined, balanced, perfected it. So instead, I played the hell out of SC.
My idea was good, but the doing was the important bit. I'll always remember that, and then get back to coding.
So yes, I share all of my ideas in one way or another. I mean, seriously, how many thousands of words have I thrown at internet describing my ideas? So here's an idea - take anything I've written above, and make it. I'll do the same. We'll see how different those seeds will grow.
- I had once regaled with the tale of chatting with the dudes from PAX. I think it's here. I came across something this morning, and had the weirdest feeling. At PAX East, they had an indie area. Not just the PAX 10, but an indie area with booths and stuff.
I'm not saying that I had really anything to do with that, but maybe just maybe, the meme got inserted and rattled around a bit. Maybe when planning the thing it rattled back to the fore.
Else maybe I was one of a legion of indie developers that have posited that same question. One more straw onto that particular camel.
This year, I'll tell them that their booth should have cookies...and blackjack.
Tuesday, March 30, 2010
Dead Letter Society
Nope. The title doesn't make any sense today, and it probably never will. I'm pretty sure that nothing I'm about to write will get us there in the round-a-bout way that I frequently use either. It seemed like a good idea at the time (which was about 35 second ago). The less said about it, the better. Let's move on.
Music is all installed in Thief now. Well, not all installed, but everything I have is in. The music plays when you start, when you play a level and stuff. It gets quiet when you pause (which is pretty cute really). It also pauses and restarts when you die, with the adorable little, "Ah, I bet that hurt dinit?" doom music in the middle. Finally, the little dolls also trigger a similar, yet happy jingle to play to let you know that you've done something right. Now that it's finally working, I'm rather quite happy with it.
What I want to rip like a TPS Report is the other thing. I'll call it that for now because I have both Fear and Loathing for it. Like I mentioned before, the basic class structure of the thing that will one day be Paper Zeppelin is all finished. It works, and the parts of the design that should interact, do. At this point, it's quite easy to add things to that structure. I could use my time and make what would seem to be "good" progress by filling out the rest of that structure and then making the load engine work. I used quotation marks around "good" because I mean "stupid." The loading engine will be the thing that conjures up the different class things. They require it, and they'll rely on it for the game to work as anything that resembles fun.
So, I could go through and add the rest of the little dudes and add 4 player support and all of that, but unless I can get the game to read my levels, it amounts to about zero. So, I felt an experiment was in order.
I set up a quick new program (having learned from The Thief's Tale that doing experiments in the main code is a bad idea if you can avoid it). It this program, I created a text file with some numbers in it. I then researched (which is plagiarizing from lots of people instead of just one) the function that will read a text file and can assign bits to variables. Then I told the screen to change colors based on what that number was. The theory says that if it's working right, it should sparkle in many colors like Josephs coat. Ah, wait, I hate bible references. I mean to say, "Like Saruman of Many Colours' Robe." That's better.
Either way, it didn't work. The color changing thing works cause I tested it all by itself. The biggest problem that I'm struggling with is that it could not find the text file that I had added to the rest of the program files. It would simply say, "I don't know what you are talking about, because you are stupid." So I went to an example and set up my program exactly the same way and got the same answer, which is stupid because to my eye, the are exactly the fuggin same. Yet the other one works without issue.
Finally, I got a new error, which is a kind of progress really. It said that there wasn't anything that could interpret the text file. I'm not sure what the hells this means though. But if I'm ever going to get this working I'd better get started figuring it out.
- I had mentioned in a previous lamentation a somewhat lofty goal of producing a game in a matter of a month or so. The intent there was that if i could do such a thing and do it consistently, then I could conceivably do just that for a living, and make games full time. There's a odd mix of unease and glorious freedom there. However, since I don't have the requisite 10 hours a day to invest yet, a goal for this project was to see how many hours it would take for me to put Paper Zeppelin together.
Obviously, it's taking a long time. Although I kind of expected it, and I'm no longer sure that it'd ever be a good model anyway.
The first reason is the biggest - I didn't know anything about C# when I started working. I've made some staggering progress since I've started, but I not yet ready to call myself a programmer yet. I know that I'd be far quicker if I knew more about the ins and occasional outs of the language on a higher level. I'm even considering taking a formal class on the subject now.
The second, makes more sense the longer I do this. Classes, by their nature, are portable. This will make all of the later projects go much faster because I will already have the basic block to work with. For example, in the next project, the EP, out of 4 games 3 of them are shooters of some kind. Collision detection, bullets, enemy AI structures, all of that can start with what's already in Paper Zeppelin. I'll be able to get a working thing that I can iterate on very fast. I'm talking in a manner of days if not hours. I'll give you an example. Once I got the basic enemy in PZ working, I was able to copy most of it wholesale, make some small modifications and get bullets working. That was in the game in about 10 minutes, and I could do it faster now. Making them work correctly is a different matter entirely, but the theory holds.
So basically PZ is taking longer than I would thing most of these projects would take, but I'm still convinced this is both do-able and positive.
- Finally, for those of you chomping at the bit (Readers? HA!) to get your hands on some Design Document, it's still in the works. The biggest issue it that I could sit and write with my limited hours, or I could code. Right now, the coding seems like a better use of my time when I'm home. So the design document (and the development diary) get written when I have time at a machine that isn't in my Fortress of Solitude. I'll add it soon-ish. I'll probably also use that opportunity to spruce up the blog a little, and add some more pages. Less stuff running down the side that way.
Music is all installed in Thief now. Well, not all installed, but everything I have is in. The music plays when you start, when you play a level and stuff. It gets quiet when you pause (which is pretty cute really). It also pauses and restarts when you die, with the adorable little, "Ah, I bet that hurt dinit?" doom music in the middle. Finally, the little dolls also trigger a similar, yet happy jingle to play to let you know that you've done something right. Now that it's finally working, I'm rather quite happy with it.
What I want to rip like a TPS Report is the other thing. I'll call it that for now because I have both Fear and Loathing for it. Like I mentioned before, the basic class structure of the thing that will one day be Paper Zeppelin is all finished. It works, and the parts of the design that should interact, do. At this point, it's quite easy to add things to that structure. I could use my time and make what would seem to be "good" progress by filling out the rest of that structure and then making the load engine work. I used quotation marks around "good" because I mean "stupid." The loading engine will be the thing that conjures up the different class things. They require it, and they'll rely on it for the game to work as anything that resembles fun.
So, I could go through and add the rest of the little dudes and add 4 player support and all of that, but unless I can get the game to read my levels, it amounts to about zero. So, I felt an experiment was in order.
I set up a quick new program (having learned from The Thief's Tale that doing experiments in the main code is a bad idea if you can avoid it). It this program, I created a text file with some numbers in it. I then researched (which is plagiarizing from lots of people instead of just one) the function that will read a text file and can assign bits to variables. Then I told the screen to change colors based on what that number was. The theory says that if it's working right, it should sparkle in many colors like Josephs coat. Ah, wait, I hate bible references. I mean to say, "Like Saruman of Many Colours' Robe." That's better.
Either way, it didn't work. The color changing thing works cause I tested it all by itself. The biggest problem that I'm struggling with is that it could not find the text file that I had added to the rest of the program files. It would simply say, "I don't know what you are talking about, because you are stupid." So I went to an example and set up my program exactly the same way and got the same answer, which is stupid because to my eye, the are exactly the fuggin same. Yet the other one works without issue.
Finally, I got a new error, which is a kind of progress really. It said that there wasn't anything that could interpret the text file. I'm not sure what the hells this means though. But if I'm ever going to get this working I'd better get started figuring it out.
- I had mentioned in a previous lamentation a somewhat lofty goal of producing a game in a matter of a month or so. The intent there was that if i could do such a thing and do it consistently, then I could conceivably do just that for a living, and make games full time. There's a odd mix of unease and glorious freedom there. However, since I don't have the requisite 10 hours a day to invest yet, a goal for this project was to see how many hours it would take for me to put Paper Zeppelin together.
Obviously, it's taking a long time. Although I kind of expected it, and I'm no longer sure that it'd ever be a good model anyway.
The first reason is the biggest - I didn't know anything about C# when I started working. I've made some staggering progress since I've started, but I not yet ready to call myself a programmer yet. I know that I'd be far quicker if I knew more about the ins and occasional outs of the language on a higher level. I'm even considering taking a formal class on the subject now.
The second, makes more sense the longer I do this. Classes, by their nature, are portable. This will make all of the later projects go much faster because I will already have the basic block to work with. For example, in the next project, the EP, out of 4 games 3 of them are shooters of some kind. Collision detection, bullets, enemy AI structures, all of that can start with what's already in Paper Zeppelin. I'll be able to get a working thing that I can iterate on very fast. I'm talking in a manner of days if not hours. I'll give you an example. Once I got the basic enemy in PZ working, I was able to copy most of it wholesale, make some small modifications and get bullets working. That was in the game in about 10 minutes, and I could do it faster now. Making them work correctly is a different matter entirely, but the theory holds.
So basically PZ is taking longer than I would thing most of these projects would take, but I'm still convinced this is both do-able and positive.
- Finally, for those of you chomping at the bit (Readers? HA!) to get your hands on some Design Document, it's still in the works. The biggest issue it that I could sit and write with my limited hours, or I could code. Right now, the coding seems like a better use of my time when I'm home. So the design document (and the development diary) get written when I have time at a machine that isn't in my Fortress of Solitude. I'll add it soon-ish. I'll probably also use that opportunity to spruce up the blog a little, and add some more pages. Less stuff running down the side that way.
Subscribe to:
Posts (Atom)
