About this blog
An epic journey of self-discovery, learning, creation, and B-grade philosophy.
Entries in this blog
Chicken is a favourite food of mine. As is pie. Chicken pie is probably my all time best-food-in-the-universe. I've been playing Command and Conquer: The First Decade a bit lately. I bought it a while back, but there's many games I've never played. Currently I'm in the later parts of the Allies campaign in Red Alert. Good times.
So where do I go when I want food? I go to the mall. And games? The mall. And delicious things which are probably more damaging to my health than good? And vitamins? And computer hardware? The mall. Today I went to the mall, as per usual, but I noticed something. I looked around the parking lot. Hundreds of parked cars. Trees. The paving. The buildings. The people. All these things that we just accept when we go to the mall. Then, something hit me. Something that only a complete and total nerd or computer geek would think of. I looked around, and I thought to myself.
"Jesus, what would it take to render all of this?"
Every day I see people talking about how "Graphics are as good as they're going to get". Normally, I'd agree, but today, looking at the massive landscape of the mall before me, I couldn't help but think to myself that maybe we really do have an incredibly long way to go.
I admit I haven't played most of the latest games out there. I don't have a Playstation 2, and my graphics card is a Radeon 9600; Completely incapable of handling most of the more attractive scenes in games today. But even when I look at the screenshots from the latest games, I can't help but feel that our environments today.. they're too.. something. They're either too small, or too simple. And when they're big and complex, they're always too clean. Look around your room. Look at your desk. I don't know about you, but my desk is a mess. Looking at all wires, the CD cases, the junk.
It's an incredibly complex scene, but it's also dirty. You've got dust, dents in the wood, stains. All these little details that make it all seem real. I believe developers today spend too much time focusing on the graphics technology. But at the same time, I think I'm just realizing that we are nowhere near the peak. We've got a long way to go yet.
Oh well. Guess it's back to my good old inverted sleep pattern.
I've received an offer from a fellow independent who thinks we can be of use to each other. So I'm giving that a shot. Who knows, it might lead to something. If nothing else, it'll give me something to do. But it might also mean slower progress on Kingstone. But that's okay, because Kingstone was progressing way too fast for my liking. Like a new-age supersonic jet, just screaming through the air, unobstructed by any of man's creations, with only the frail forces of physics to keep it in one piece.
I have, at times, been accused of being full of shit.
More as it develops.
There was no news yesterday. I think I'm going to stick with the approach of "talk, but only when there's something worth talking about." Yesterday, there was nothing to talk about. Today, there kind of is.
Two things. First, I'm dropping hexagons. Honestly, they're just a far bigger pain in the ass than I feel is actually worth my time. I don't feel that having funky six-sided tiles really helps with anything aside from a couple of minor technological benefits (which are far outweighed by the general pain in the ass of dealing with them, in my personal opinion.) I'm going to stick with squares, probably with diagonals thrown in at no extra cost. It'll be simpler that way, and I think it might feel more natural, too. So that's decision number one.
Decision number two, is that I'm not going to bother with multiplayer. Why?
Several reasons. For starters, I have very little experience with networking, and online communication in general. I feel it'd be beyond my abilities to attempt to construct a multiplayer system over a network or the Internet. But that's just the technical reasoning.
The design reasoning on the other hand.. I looked at the realistic consequences of trying to make a game playable online. If I wanted the game to be good online, what would I have to do? Well, first, I'd more or less have to dumb down the game to the level at which it wasn't really an advanced strategy game anymore. Secondly, and this is part of what sold me; It'd have to be a war game. I'd have to make it a war game, because any and all subtle features in the game would (for the most part) be ignored by players trying as hard as possible to win. In the face of competition, I think most people forget about doing anything other than trying to achieve victory. I believe the old saying "It's not whether you win or lose, it's how much fun you have," is pretty much a load of crap. I think it's a lie told to children, in an attempt to blunt their natural competitive urges that tell them to achieve victory at all costs. If a person wins or or not has a heavy effect on how much fun a person has. Argue with me on that one if you want, but it's honestly what I believe. If I want to make Kingstone a multiplayer game, it'll have to be war-centric.
Now don't get me wrong, nobody likes leading massive armies and crushing my opponents more than me. I'm down with all that sword-flailing, siege-lobbing, horse-riding shiz. But it hit me that there are too many war games out there. Anybody can make another brainless war game about killing everything around you, world domination, ruling over the population, blah, blah, blah. The truth is (and maybe this is a bad thing, I don't know,) I tend to be the kind of person who looks for more in games. I don't believe in simple, shallow games. They're good for a laugh, but they rarely last long. And there are just too many good things that I think I could include in Kingstone if I chose to make it a purely single player game that I couldn't include if I just wanted to make it a multiplayer war game.
But I also had a flash of inspiration earlier today. Namely, I wondered if it'd be possible to combine a turn based strategy with a sort of construction-and-management simulation. A turn-based strategy with more than just war strategy to it. Tactical diplomacy, trade agreements, territory control, the bickering between two leaders. A game not about war, but rather, a game about ruling a Kingdom. Maybe I'm just a peaceful man at heart, but I think it might prove to be a highly playable game. I'm hoping to appeal to the people who like strategy games and management games, but are often thrown off by the element of time. Perhaps, most of all, I'd like to create a game without a real end. Without a score. Without a hard and fast victory condition to force people to play. But I still think it has some potential. Throw in a few campaigns for good measure, and some nice random content generators for replay value, and you might have quite an enjoyable game.
And if not, I'll learn. But I'd rather learn making something a little different, than I would by remaking a game that we've already got dozens of. Even if it doesn't pay as well in the long run.
I slept a lot today. Don't know why, I guess I was just tired.
Why did I originally choose to use hexagons in Kingstone? I think it started when I found myself reading Amit's programming pages, and saw my options of grids. Hexagons seemed like a good idea at the time, as many things do when you first look at them. After working with them for a good while, my opinions changed significantly. I wouldn't recommend hexagons to anybody who doesn't want a royal pain in the ass. They don't fit very well to two dimensions is the main problem. They're also a little unconventional. In short, if somebody asked me, I'd tell them "don't bother, they're not worth the trouble."
But hexagons aren't all bad. They have the wonderful advantage that when you use them, you don't have to deal with diagonal distances. Diagonals are a royal pain in the ass. Not quite as much as hexagons, but they're still iritating. When dealing with a square grid, you can treat diagonals one of three ways. You can either A: Eliminate diagonal movement entirely, B: Alter movement costs for moving diagonally to, say, a multiplication of 1.4, or C: You can make them just like moving horizontally or vertically, eliminating a little realism in the process, but making life easier for all involved.
There's a lot of questions I have to ask myself. Maybe "hexagons or squares" seems like an odd question to be asking at this point. And maybe it is. In order to decide between hexagons or squares, it might help me to decide on a level of abstraction. High abstraction seems to tend more towards hexagons, because they're rather unusual shapes.
In my last entry, I went on about how people who play online are impatient. Well, this is a direct parallel with abstraction. People playing against others seem to prefer faster, shorter, simpler, smaller, more abstracted games. Single players tend to prefer longer, more complex, larger, less abstracted and more detailed games. I'm still not sure how much I can achieve a happy balance between the two, or what it would even entail.
I remember one of my original ideas for Kingstone was the concept of "armies". You would have a head unit, and that unit would lead an army. The armies themselves would only take up one "Tile" on the map, and you could lead these armies around and make them fight each other or invade cities or whatnot. The kicker was when I had the idea to allow the player to decide what soldiers to place in the army. For example, being able to make an army unit comprised of 50% archers, 20% cavalry, and 30% swordsmen. This would effect how they engaged with other armies. I ditched this idea for several reasons; The primary being that it would be a pain in the ass for the player to handle. Can you imagine having to sort through all your soldiers every time you wanted to create a mobile attack force? It'd get old, quick.
That was a "low abstraction" idea. The problem with low abstraction is that things get more complex. While this can be good, if you're not careful, it can also be pretty overwhelming.
Most any gamer worth his salt will have played at least one game in the Civilization series. I always thought these games were delightful, but they always seemed to give you way too much to manage and handle. Even in Civilization 4, the most recent of the series which attempted to fix a great deal of the micromanaging issues in Civilization 3, felt a bit too overwhelming for me. Maybe I'm just bad at playing games. But the point is, bogging down a player with too much stuff to deal with can really hamper their enjoyment. And it's something I want to avoid.
There's another factor that I feel is important to look at, and that's scale. Abstraction is how detailed the world is. Scale is the size of the world. To pull multiple games off the top of my head; Final Fantasy Tactics is a game of small scale and low-moderate abstraction. Advance wars is a game of moderate scale and high abstraction. Civilization 4 is a game of very high scale and moderate-high abstraction. Abstraction and scale were things I've been having a great deal of trouble with.
I'm going to admit I'm a bit of a perfectionist when it comes to some things. This is a bad habit that I need to get over. But it's still causing me a bit of trouble.
For Kingstone, scale was also a bit of a problem. Scale is a bit like abstraction; When you get higher, you lose more detail. Individual trees, for example, that's something you'd expect in a low scale game. In a high-scale game, you'd get general areas representing forests, but you wouldn't count the individual trees. I do know a bit about the kind of challenges I want in Kingstone. Mostly, I want strategical and tactical challenges, with some economic challenges for good measure. Scale effects it all, and it's a very base decision. It's also a very important one, so I've had a lot of trouble with it.
Finally, a thought about diplomacy.
I'm a bit of an intellectual man, or at least, I like to think so. Because of this, mindless war bores me a bit. I'd actually like to see more games out there designed for the thinking man, as opposed to games filled with mindless violence and explosions. But I have to think about potential players of my game, too. Now, I want to include diplomacy because I think it's interesting. But it may also be completely redundant. After all, not a lot of people enjoy diplomacy. A good portion of people do, but I think most gamers tend to enjoy just grabbing their swords and going at it, so to speak.
Now, while I would like to fit tactical diplomacy into Kingstone in some form or another, I don't know if I can, and even if I do, I don't know if anybody will bother to use it. Going flat-out war might make things more simple for me. But if I can get diplomacy in, and make it work, then I really would like to.
Oh well. Time will tell. Have a good one.
So, what did I do today? Well, for one, I DIDN'T code useless programs that I wouldn't be able to use. In fact, I didn't do much work at all. I read a chapter of one of the only books in my library, though; Ernest Adams and Andrew Rollings on Game Design. It's an awesome book. But then, I'm a big fan of Mr. Adams' writing. Talked about high concepts and such. How all games start as a daydream. Good book. Anyway.
So, if I didn't do any design-like work, what did I do? Well, I performed basic maintenance on my computer. installed a second hard drive, dvd drive, and a new fan (which actually sounds pretty damned obnoxious at the moment.. I really need to buy some new fans.) And, actually, I did think about it for a few hours. If a game idea starts out as a daydream, then I have tons of potential game ideas. We all do. So what was Kingstone founded on? What was the dream?
To start with, I just felt like mentioning this. I, like most wannabe game designers, want to design an online RPG one day. Everybody wants to design an online RPG, or an online game of some sort these days. Online games are the new black. Being a guy who likes online games, I happen to like multiplayer. No computer can ever compare to the rush that's obtained when you fight a human opponent. Because of this, all games, I believe, should have some fort of multiplayer, if at all possible. These days, there really is very little excuse not to put in a mode that allows more than one person to play the same game.
Where am I going with this, anyway.. Oh, right. Now, here I am, trying to figure out a basic frame for a turn-based strategy game. Now, turn based strategy games are fun games. Or, they can be. But here, I've got a problem of balance.
If it's one thing I've learned from online games, it's that online gamers have no sense of patience. It's reflected pretty much in every online game you can imagine. Blitz tactics in FPSs. Power leveling in MMORPGs. Rushes in RTSs. We even want our computers to be able to keep up with our rapid speed and reactions! Faster internet, faster graphics processor, more ram, more, better, faster, harder. More and more. It's a habit of online gamers, and I'm not quite sure why. But again, like I said, it seems that almost no online gamers have any concept of the word "patience".
Now obviously, the above is a generalization. It's also a bit of a guess. I could be completely wrong. You could hand me statistics showing that 90% of online gamers have a ton of patience, and I'd just sort of stand there looking like an idiot. But I think I can make such an presumption and not risk looking like too much of a moron.
Now, a turn based strategy game is a game that requires a lot of patience. You take a turn, then you wait for the other players to take their turns. Now this can irritate the hell out of a lot of online gamers. So what happens when on one hand, you want to design a turn-based strategy game, and on the other hand, you want to make it multiplayer?
For lack of better words, we have a problem.
So now, we've got a balancing act. To make a game tolerable to the energy-hyped masses who want things faster, faster, now now now, we have to make the game a bit more simple. Cut down things. Make moves easier. Make a smaller map. Shorter battles. Earlier victory conditions. Cut things down smaller and smaller until it can be played like a quick game of chess. But of course, in doing this, the game loses some of its soul. You can no longer realistically include big and complex things in your game, simply because they'd take more patience, micromanaging, and, most importantly, time, in order to play with and enjoy.
This has been a bit of a pain whilst developing Kingstone. A constant balance of speed of gameplay and complexity of gameplay. I'm not sure you can have both; I honestly believe speed and complexity are mutually exclusive. Now a lot of you would probably argue with me on that, and you may very well be right; but honestly, it seems that the more complex games get, the harder they are to play rapidly. Just seems like common sense to me.
So here I am with a balancing act. I have to figure out what I want more priority over; Online playability, or game complexity. Because I really don't know if I can have both.
On one hand, I really want to create something really deep. A game that people remember and keep coming back to, not for a quick bit of fun, but to be totally absorbed in. On the other hand, I want to create a multiplayer game which can be enjoyed by people all over the place, in different timezones, sharing the enjoyment of the experience with each other. I don't know if I can have both, and it's a tough decision. It's also a very basic decision.
Oh well. Maybe more as I feel like typing it all up.
The work day is over. Now I get to bitch about how much I want to kick myself in the ass. This is going to be longer than long-cat, so unless you particularly like casual writing, you may want to steer well clear. I'm not in the mood for being particularly tactful, or tasteful.
I started this journal for reasons I can't remember. According to my first entry it was to "scribble down notes and ideas". I don't know if you've noticed, but I haven't been scribbling down many notes. Nor ideas. Hell, I haven't been saying much at all. Lately, I've managed to not say much on a more frequent basis, but I'm still not saying much. Why is that?
Here's the thing about me; I have a bit of an ego. Now this actually governs a lot about my nature. On one hand, it gives me a fair bit of confidence (read: foolhardiness), but at other times, it can reverse on me. Rather than being blatantly open, it can backfire, and I'll become very cautious about what I do and say. This isn't just random, by the way; it depends on if the person I'm talking to is somebody I respect or not.
Because you see, as well as an ego, I also have a bit of superiority complex. It can be a bit of an ugly trait, but I don't mind it. Now this superiority complex of mine, it isn't stupid. I can and do feel humbled on a frequent basis. But it really does depend on who I'm talking to, and if I respect them more than the average person or not.
Now, here I am at GameDev. My whole life, I've had desires to get into this industry. For the last ten years of my life I've wanted to be a game designer. Computer games were just so cool as a kid. It's like they could take boredom, and just obliterate it instantaneously. I had a real passion to want to make and design these games. Now, not everybody who loves books wants to write, and not everybody who watches TV wants to become a director, so why did I want to make games? Two reasons; One, because I wanted people to play my games and have fun and praise me. And two, because I really wanted to play my games.
So at first I thought the idea of making your own games was foolish and such, because after all, it takes a big company, thousands of dollars, yada yada yada. Then over time, I started to realize that it was actually possible to make games, good games, by myself, without a six figure income. So I studied, and studied, and after about a decade of studying and testing and screwing around, I decided it was time to come here and get serious.
Now, back to what I said earlier. I have a superiority complex. But I can also be humbled by people whom I feel are superior to me. When I came to GameDev, I looked around, and it seemed like most every damned one of you had accomplished at least a part of what I wanted to. And good on you all! But I still felt a little under dressed, to say the least.
So here's the thing. When I'm surrounded by people whom I respect, like I said earlier, I become very conscious of what I do. It's a terrible habit of mine to not want to look bad, especially not in front of those I respect. Now I realize that there are probably a ton of people who are on the same level as me, but there are still a lot of you who are more experienced than I am.
Now, we go back to the beginning of this message, where I talked about why I haven't been writing much. Now you know why. I let my nerve get to me, and as such, looking back on all my old pages, I realize I've said surprisingly little about Kingstone. Or my code. Or my design. Or pretty much anything. I've been keeping my mouth shut mostly because I'm afraid of looking like a fool. I'm sure you know the old saying, "It's better to remain silent and be thought a fool, than to open your mouth and remove all doubt." I think I stuck to that motto a little more closely than I should have.
Sadly, it doesn't work like that. Not only does staying silent make you look like an idiot, it also tends to defeat the entire purpose of a public journal. It's like being a news reporter who doesn't give details on his stories for risk of being called a lousy reporter. I'm not sure why I started up this journal in the first place, but I'm pretty sure it wasn't so that I could not discuss things.
So. This random thinking lead me to stop for a second, and look back at the last few months of work. Have I become a stronger, smarter person? Have I obtained a level of skill closer to that of the people I look up to? What the hell have I accomplished, anyway? When I first started, I did one thing right - I got the feeling that I'd overestimate my own abilities. So for my first game, I deliberately chose a game based on three premises. Two of them, were smart. The third one.. well, you'll see.
First, I wanted it to be a project that I knew was well below my (believed) skill level. Something that I could make which wouldn't require much effort co create, realistically.
Second, I wanted it to be a project that, while easy and simple, I could have a bit of fun with. I knew that if I didn't choose a project that'd be fun, I'd lose interest too easy.
The third premise, however, was a stupid mistake. I chose a project based on a game I enjoyed that I'd been playing at the time (Civilization III, to be precise.) If I've learned only one lesson in all this time, it's that you should never, ever, EVER design a game that's the same type of game that you've recently been playing. It's absolute suicide.
So what was the result of this? The first sketch of my design felt really like a B-grade medieval Civ3 knockoff, which, essentially, is what it was. Now don't get me wrong - I believe that borrowing elements from other games can be vital. There are some tried and true things that you really shouldn't try to leave out just for the sake of being original. My problem was that I wasn't trying to make a game and then borrow aspects from another game; I was trying to make a duplication of a game. The biggest kicker was that I'm the kind of person who believes that derivative game design is one of the biggest reasons for the declining quality of video games these days. And I was doing it myself.
Of course I didn't think much of it at the time. Hell, I tried to counter it. I thought to myself, "this game feels too much like Civ. What can I do to make it seem less like Civ?" The problem with this was that I was still using Civilization III as a base. It got worse, too. My game design seemed to progress from Civ 3 knockoff, to a Hearts of Iron 2 knockoff, to an Advance Wars knockoff. Those are all games in my library, of course. It wasn't all derivative, mind you. There were quite a few ideas I thought up that I didn't rob from other games. An (overly complex, now that I think about it) economic system based around non-infinite resources and transmutation between resources was one of them. But for the most part, I was just borrowing ideas from other games.
Now, recently, I've been coding a bit. But why have I been coding?
Coding is fun and rewarding. It produces results. Not only are results rewarding to the coder, but they can also be shown off. You can't really show off "ideas". If you do, you're all talk, no action. And I was really, really worried about coming across as a guy who was all talk and no action. If there's one thing I've learned about game design, and life in general, it's that talk is cheap.
My biggest problem here was lack of hindsight. I assumed that by coding something, I could LOOK like I wasn't all talk. Then, randomly, whilst trying to code out a graphics engine for my game today, I started to realize I didn't exactly know what the hell I was making. I didn't know enough about my game to be designing a graphics engine. I had an idea about how it'd work mechanically, but I didn't have any idea what I was making. I knew that if I left something out, I'd have to go back and re-code it all. So I wanted to make sure that I coded everything in so that it'd work effectively. I probably would have done a good job, if I'd known what "everything" included.
So, I looked back over my project folder, and looked at what I actually did manage to produce.
A program for displaying my heuristic
A program for displaying my A* code
A program for randomly generating terrain
A hybrid program from the A* code and the terrain generation code
A mess of a system that was supposed to be an attempt at spreading my A* algorithm over multiple cycles (as to not slow down the program when finding long paths)
My heuristic code
A collection of functions related to hexagon positioning
Some bizarre attempt at recreating Advance Wars style pathfinding
A collection of code snippets, made only to test out functions I'd written
A few screenshots which I've put up in this thing before now
A bunch of miscellaneous concept sketches done in MS Paint
Several charts and images of hexagons used to try and get my head around some of the programming concepts I was having trouble with
A random flowchart for representing program flow
Seven documents containing senseless ramblings about programming concepts
Two pseudo-design documents that look more like briefing documents than anything substantial
Two documents containing long-winded design ramblings
One document that looks like some kind of conceptual feature checklist
One document containing a list of units that looks more like a list of MMORPG classes
One list of "lessons I've learned" from this project
One list of design restrictions (which I've only half-followed)
One deceleration that I'd get the damned thing done
One book containing a bunch of scribbles of diagrams, concept sketches, and notes
Now that list, to some people, may seem pretty good. But, there's a problem. Back when I started writing in this journal, I believe I made a statement that nothing I'd ever created really exceeded the realms of code snippet or tech demo. It's been three months on one project, and sadly, nothing has really changed. So, basically, I've been not producing much except bits and pieces. Although I have held true to one thing; I haven't technically quit my project yet. I'm just doing a really bad job at it.
So, what now?
My biggest problem when I started this thing up, was that I gave a damn what people actually thought of me. Now, I'm paying for it. So, I'm going to stop doing what I think will make me look like a worker. I'm not going to produce little bits of code in an attempt to get a tech demo screenshot out so that people will like me more. I'm not going to talk in an overly formal tone out of the hope so that people take me more seriously. I'm going to do what I think will actually help me work. I'm going to do what I damn well want to do, instead of doing what I think will make me look good.
Tomorrow, I'm going to wake up, and I'm going to work out what the hell I'm doing with myself, and this journal, and my project. Then, at the end of the day, I'm going to sign into my GameDev account. And rather than leaving a cryptic node that implies consistent progress and spiritual development, I'm just going to bitch on for a while about the thoughts in my head, like a normal person would. You know, as opposed to some d-grade office worker trying desperately to convince his superiors as to why he shouldn't just be fired.
Thank you, and goodnight.
Most of today was spent sketching out programming concepts on paper and playing with charts and diagrams and such in an attempt to work out what I'm going to need to do next, programming-wise. I've narrowed it down, and I've decided that my next priority is going to be my graphics engine. I'll start work on that tomorrow.
Tanstaafl was right. Never confuse motion with progress.
I love knowing when I'm logged out by noticing the glaring "THERE ARE ERRORS FIX THEM NOW?!" add banner in the upper right corner.
Alright. Today I finally finished all I needed with my pathfinding functions, commenting them, and such. Now that that's done I can focus on more important things. Namely, program structure and design. I'm designing and programming with a (probably foolish) play-it-by-ear style. I'm not sure exactly how I'm going to get my work done, only that I will.
My main problem now is figuring out what to work on.
Do any of you ever work a ton, and still feel like you're barely getting any work done at all? Sort of like you're running on a treadmill? You know you're getting the exercise, and you're putting out a load of effort, but you don't feel like you're actually moving. Huh. Maybe I'm just losing it.
I leave you with two more pages from my book of random drawings and misspelled words.
Load of code commenting today. Also tidied up a bit of what was left of my pathfinding troubles. Now I have to start thinking about program architecture, and how I'm going to get all the pieces to fit together. Things like the general program flow, input, yada yada yada. I'm just looking forward to putting pathfinding behind me. Working on one thing for over a week non-stop kind of wears you out.
Over the weekend, I was reading some of the articles about starting up your own development studio, and I got thinking. I wonder why people have a desire to get into this business? I imagine some people think it'd be a really fun, easy job. Of course it isn't, it's hard work just like anything else. But aside from just plain old ignorance of what it takes, why do people get into this business? What makes people want to put in the hard yards?
I think for myself, I look at the (what I feel to be) low quality of games today, I shake my head, sigh, and think "I can so do better than that." And maybe I can. I don't know, I guess I just feel there's not enough really good games out there. I can't tell if it's a feeling of odd nostalgia or what, though. Maybe I just remember games being better when I was younger because I was less jaded at that time.
Still. Why do people want in this industry? Why do you? Maybe I should start a topic on the boards or something. Hmm. More work tomorrow. I'd better start planning things out.
And the second week of solid work in a row comes to a close. I finished up my pathfinding code, finally, after getting a few vicious bugs out. Now I just have to finish commenting on it, which I HOPE will take no more than a single day. Either way, the week is over, and I think I've earned a break. When I first started Kingstone, I purposely chose a project that I knew was below my skill level. What I knew then, and what I know now, are two very different things. I can't get over how humbling this has all been.
That's about it. If you'll excuse me, I feel like a game of Battlefield 2.
Okay. Finishing up my pathfinder wasn't too hard. Debugging it has proved to be.. a somewhat more difficult task. I also didn't get any work done yesterday due to having to visit the elders, and I overslept a bit this morning because my alarm didn't go off. I really need a new alarm clock. I'm getting bizarre bugs effecting area searches, causing strange effects on search regions, and locking up the system in endless loops. I don't know exactly what I'm going to do, but I'll work out something tomorrow. If I can just get past this pathfinding issue.. Anywho.
It always saddens me to look out upon the population, and see so many people who have absolutely no idea where they're going in life. People with no real hopes or dreams, no ideals, no sense of direction, living day-to-day doing jobs that don't interest them in the slightest. I realize everybody has obligations, but I've seen way too many people I know not have the most remote clue as to what they want to do with themselves. What good is opportunity if you don't know what to do with it?
What about you? Do you know where you want to be? What you want to be? Who you want to be? If you really know what you want, be proud. You're way ahead of most people.
Chase your dreams, guys.
My pathfinding routines have almost been completed. They're probably only going to take a little more time and effort to get done. Another day or two worth of work, tops, is my guess. Sadly I still don't have much to show yet; But chances are, I'll soon have all the pieces I need to actually put something together. Then the real fun starts.
I should probably start keeping track of exactly how much progress I make daily. Maybe I'd work harder if I new, for a lack of better words, how hard I was working.
Tomorrow I have to visit my elders, so I may not be able to get any work done, but I'll try to at least try to finish up the little work I've left for myself today.
More as it develops.
Alright. Pathfinding work today. This time I think I've got it nailed. I haven't quite finished it, but by tomorrow, the code should be finished, and maybe even commented in full. It's a bit of a mess, but it should work reasonably well. Not much else to say, really. This grunt work doesn't seem to result in much visible change, but it's all there. It must be painful being a programmer who doesn't get to see his work in action until everything comes together at the end of the project. I'm looking forward to making some sort of playable game.
My condolences to the friends and family of the September 11 victims.
It looks better than it tastes. I'll probably consider it a success if I don't get food poisoning.
Good news, bad news.
The bad news is, a lot of my coding and planning isn't working right. Some of it just isn't structured properly, and I didn't put enough thought into the planning before I started coding. I made a classic mistake; I didn't know what I was coding until I'd already started coding it. The good news is, I've got a clear idea of what to do now, and I'm a little wiser for it.
I think I'm going to change the caption for this journal to something about a journey of self-discovery or something.
In other good news, I just worked a 40 hour work-week. Technically more if you count Sunday. I haven't done that much work in a focused period in.. well, possibly ever. I'm actually making progress for once. I think I'll keep doing it. Got nothing to lose, after all. I think I really do need to start.. organizing my life more. I'm going to keep up with this full working week thing. Maybe organize my entire life a bit more. But either way, the weekend has come. And for the first time in about ten years? I think I've earned it.
I'm going to go and prepare my dinner now. I have peanut butter, chicken, and white rice. I have never really cooked chicken before. Ever. If you smell burning coming from a house is the South Australian suburb of Elizabeth South, call the local fire department.
I leave you with another random journal page.
Decent day of work today. I've come up with a.. solution.. to my pathfinding problem. It's a little odd, and actually may result in a slight changes to Kingstone's final gameplay. It's interesting how designs change and evolve and such. Long story short, my pathfinder isn't really A* anymore, it's more of a bastardized version of Dijkstra's algorithm crossed with my old A* code. Haven't actually got it to work right yet, but it's coming along decently. I'll probably be able to finish it up tomorrow. I need to get a playable version of Kingstone up and running as soon as possible (without sacrificing too much quality of course) in an attempt to dispel the "vaporware" aura that seems to be slowly engulfing it.
Not much else to say. Have a good day, Gamedevs.
Today was mostly working on re-writing my A* algorithms. Optimization really. But the sad thing is, It's probably going to take longer than I originally thought to get it working. I've got a bit done (and I actually got the pathfinder working again,) but sadly, there's more to it than just finding a path from point A to point B.
For starters, I need to optimize. This means primarily one thing; I need to be able to stretch pathfinding over multiple cycles. If I do everything at once, I occasionally get a "hiccup", usually when the pathfinder searches a map for a spot it can't get to. Also when calculating paths over long distances. Reducing my map sizes is one option, and I intend to do that, but I'm also looking for other ways to minimize how much juice the damned thing burns. Mind you, if I ever got it compact enough, I wouldn't have to worry about stretching it over multiple cycles.
I need several things before I can even try tweaking the rules of the game beyond a very conceptual level, and a good pathfinder is one of them. So, until I can really get a grip of this stupid thing and work out how to get it to function how I need it to, don't hold your breath for anything fancy.
Still, I got work done. I'm getting better.
Another fairly productive day of work. Wrote a few major functions, including re-writing my heuristic. All seems to work as planned. Tomorrow I'll be re-writing my entire A* code base. That should be interesting. I have it fairly well planned out, so it should work efficiently.
This is the third day in a row where I've actually worked my ass of. It seems the remote sense of structure and schedule has done a lot for my natural productive abilities. I'm actually making steady progress now, and let's face it, if you've been keeping track of this thing, you probably would have figured out by now that I really wasn't making much progress beyond what was minimal.
When I started out with Kingstone I made a mention that a progress update could be expected once a week.. so far I've stuck with that, but only barely. I think I'm going to step it up; From now on, I'll update once per weekday, right after I'm done with my scheduled work. Occasionally I have other obligations like visiting the family, but for most every weekday, I'm going to try and get work done. I really wouldn't want to be labeled as one of those independents that claims that they're working, but really aren't. Although I think I was one until very recently.
Honestly I doubt anybody gives much of a damn, and they honestly shouldn't; Talk is cheap. People need to see results. I'm hoping by the end of the week I'll have something playable (kind of) up and running. Might be a bit tough, but I think I'll try it anyway.
Finally, just some little things for curiosity. I did a little word counting and found out that I've got about a 1/8 code/comment ratio. I guess that means I'm getting a little better. Secondly, just for kicks, when I was trying to figure out how the hell my heuristic was supposed to work, I ended up using a pen and paper to figure it out. Here's the page I was using at the time, just for the hell of it:
I'm not a terribly structured writer.
Have a good evening, boys and girls.
Mostly just finishing up some more code today. I also started re-coding my heuristic. It makes a little more sense now than it did looking over my old code, and I may actually be able to make it smaller this time around, but it's still confusing the hell out of me. Oh well, just another reminder to comment my code in the future. I'm going to start working on actual game code soon, so that I can actually get a botchy prototype of Kingstone going for me to actually work on and tweak. I'm not sure how I'll get the AI done.. but that's a ways off.
I've been having weird internet problems, also. Not sure what the deal with that is. Ahh well. Have a good evening.
Progress-wise I got a fair bit done today. Mostly just writing and commenting functions, but it's still work, and it's still progress. But it's also unsatisfactory. I need to rectify this whole lack-of-work thing. I'm finding myself only doing work when it's absolutely necessary. This is hardly ideal.
Project-wise, I'm working towards trying to develop a proper prototype, so that I can start testing my concepts. Prototyping is something I missed out seeing the major and essential benefits of, and I'm regretting not seeing it sooner. So my current focus is trying to get a very simple working game up and running. Seeing as I don't have many ways of testing it myself, for prototype testing I'll probably need some help, and I'll probably need to program in some multiplayer support. That'll be.. fun.
I'm going to try giving myself a rigid schedule. I'm going to start working from nine to five each day. For those unaware, I'm unemployed, and not currently getting an education. Actually, the limits of my academic education may astonish you. But that's a personal thing not really of any significance for this journal. But regardless, I really need the restrictions, the boundries, and the structure.
Oh well, work's out for today. I might doodle with my code a bit later, but I'm more or less done for today. Hopefully more progress tomorow, but we'll see.
Oh, and, welcome to spring or autumn, depending on where you live.
After re-writing some functions and commenting them thoroughly this time (you know you're a moderately decent programmer when only 10% of your code is actually code,) I had an odd revelation.
Design is hard.
Now this might not be new to most people, but it's new to me. See, for me, I find programming kind of easy. There's a line at point you simply don't have the tools to do something, because you don't know how. But before that, everything else is pretty much just figuring out how to implement things. It's fairly simple, as long as you know what you want. You wish to achieve a result, and you work to achieve it. It's slightly messy work, but it's all basically one great big logic puzzle.
Here's the thing. I like logic puzzles. I really like logic puzzles. I've always liked them. Primarily because the solution is.. well, logical. It's how my brain works. Now design, design isn't like logic. It's got logic in there, but it isn't entirely logic. I'm just now starting to realize that, contrary to popular belief, NOT everybody can just be a game designer. It's a very difficult skill to learn. I'm almost ashamed to admit that this kind of shocks me. I always assumed it was a very simple skill that just required the right frame of mind, but it's not. It's really, really hard.
This doesn't so much disappoint me as encourage me. But it still comes as a surprise. Perhaps despite how much time I've spent studying it all, there's still a lot I have to learn.
Note to self: If you don't work to maintain a steady rate of progress, you can actually stand to lose some of the progress that you've already made.
Most of my time has been spent screwing around with design aspects. Wondering how to give the player more enjoyment, the importance of avatar customization and specialization as a sense of gameplay variety. Not much to say except that I have several pages of design rantings since last update. But I don't have much to say on that front.
The state of the industry somewhat frustrates me. There's not enough good innovation going on. It's all the same old stuff (this coming from the man making a hex-based strategy game.) But really, I think everybody sees it, and everybody's annoyed by it. No self-respecting designer looks at the state of the industry and smiles at the massive budgets, heavy restrictions placed upon developers, and the high rate of failure with creations of interactive entertainment.
So what's the solution? I see many people complaining, but nobody actually doing anything about it. Maybe I'm no better. But I still think there are ways to improve the state of things. Namely production costs.
Why is it that in order to create the content for today's games, we're using 10 year old methodology? Say what you will, but I 'm willing to bet that 3D modeling techniques haven't changed in the last decade that much. We're still dealing with vertexes and polygons and edges and such things. This was fine back when 3D models were kind of simple and basic, but now we're trying to make models with thousands of polygons in them, and we're still ultimately screwing around with individual vertexes. It's a joke. To use such old methodology in such a rapidly developing field is just poor.
I see people looking at Will Wright's little "Spore" thing. The idea of procedurally generated content is much older than some people may realize. We were doing it with random map generators. We were doing it when we started replacing sprites with pre-rendered 3D graphics. We were doing it when we made sprite rotation routines, hell, we were doing it when we put dice in our games as a sense of randomness. This stuff isn't as new as some people would have you believe. It's an old concept of doing something in a different method because the old method is starting to take too long.
But it's sad. It really does have a lot of potential. But we're not taking advantage of the concept enough. I think that's one of the reasons why the industry is in the state it is today. Maybe if people started using different content creation methods, we'd have lower costs, and maybe we'd be able to afford taking more risks. I'm sure what I'm saying isn't new. I HOPE what I'm saying isn't new. But maybe if it's coming out of one more mouth, people will start applying it more.
I believe the key to developing great design tools is to look at the most tedious parts of a job, and then getting the computer to do it for you. That's why we made computers in the first place, isn't it?
Not much to say. Lately I've just been commenting and re-organizing my code the best I can. Also, Battlefield 2 has me a bit distracted. Trying to work out if I can establish a better underlying framework for my codebases. More as it develops. (Hopefully soon.)
Next time I decide to put off commenting on code because it's an easy job that I can always go over later, and because it's simple code which I should easily be able to get the gist of just by reading it?
Somebody, please, kick me in the crotch.
It'll still probably be less of a pain.