I so like it when something finally works the way it is supposed to. The Object Loading system is all done now, TheifEd saves it, the Engine loads it and it works when the game is running without the faintest hint of slowdown or irony. I’ll toss up some before and after pictures and we can all be impressed by (and by “all” I mean both of you that read this). That’s really great. The only thing that doesn’t work yet is the background parallax effect, only because the backgrounds don’t have any yet to test. But since they work just like the foreground effects but in the back and the code is already written, it’s no big deal. I can move along to more and different.
Of particular note is that I made my code pretty again. I previously um, bitched, about how I couldn’t reference an array “Off Page.” Well, I still can’t. But my then solution was to add all of the bloated saving/loading code (of which there are about 500 lines) to both the engine and ThiefEd. This made me a very unhappy panda. But it worked.
I found a hack though that made me yell some very choice words at the code, mostly about my greatness and sexual prowess. Think of the words you’d use when you beat a very hard boss, like those, but really really vulgar. I’d found that although I can’t reference the array off page, I can reference a function that has the array in it on an off page.
I’ll explain. There is some code that loads up the objects. This was included in the Load Code (say that 5 times fast) and the Saving Code. Since that code has to be on the main page, I went ahead and had all of the loading coding on the same page too. Well, I found that if I make just the Object Loading its own function, I can put all of the loading stuff back in its own area and add the Object Loading function to it. Since the tiny Object Loading Function is on the Main Page, it works and I don’t have 500+ lines of bloated loading/saving code in my main source code. So when that worked, four letter words ensued.
Next up on the dock it to finish out the prototype for the Major/Minor sound code for combat, then I can move along to the other prototypes that need doing. I’m thinking that my idea for an enhanced throw won’t add much. I did some thinking about it with my XBox controller, and the side to side motion doesn’t seem to add anything, unlike the key mashing for the combat dizziness. Right now, I’m trying to figure out what other input I can use that is both different enough from the main combat to be unique and not totally random. Methinks it may end up being hacked.
-Ah, right. Another person has decided that they want to join Star Frog Games for fortune and/or glory. Well, maybe not fortune. I mean, I’m poor, and I technically own the studio. Either way, I’m happy for the help honestly. I think I mentioned before that I want another Level Designer (so the levels can be huge and awesome and opposed to huge or awesome) and another will allow me to focus on the levels that I’ve personally constructed and more of the programming work that I find myself doing most of the time.
-Speaking of doing all the programming. I’ve found that doing all of that affects my design process by adding a 3rd step. 1st – Will this feature be cool? This is the easy one that everybody can do. “You know what would be cool? If Sonic had Guns!” 2nd – Will that feature break the rest of the game or add to the pieces that already exist in a positive way? This is the really hard one. Mostly because games have lots of systems that interact. Dozens, and all of them work with each other. Being able to calculate effect before you make cause is the skill a Game Designer needs as far as I am concerned. Prototyping will also help, but being able to figure out in advance some of the problems that the prototype is likely to run into will make you loved by all of your artists and your programmers. Less thrown out work = better used work.
Right, so usually the first 2 steps are everything you’d need on a day to day basis. The 3rd thing is this : Can I implement the feature? The quick answer is often – no. I then have to cycle through the first 2 steps again. Often I find the implementation isn’t worth the effort. Other times, I find that I have to figure it out. No matter what, it always adds a step. I would think that in a professional environment you’re dealing with CS Graduate Coders who can do code like Jackie Chan does kung fu – with extreme prejudice. Even still I’m thinking that knowing, at least on some level, how a feature could be installed into the current code would always be a good thing for a designer to know.
-Speaking further about programming, I looked at my code yesterday for the new objects system and it looks, at first glance, like some kind of alien hieroglyphs. Yet, I knew and continue to know what it does and how it works. Even better, I can build another one if I need to. Still not a 9th Dan id Programmer, but I think I’ve earned my Green Belt.
– Ah, and the internets seemed to be involved in some kind of Warp Storm, so my emails seem to be getting eaten by the dark things from beyond space and sanity. So I’m of the mind of using StarFrogGames.com as the actual official place for this and game development news/rants/thoughts. Then I can have an actual, super pro, email address like Best Designer Evar @ SFG or CID @ SFG. Or not, probably not.