> Return to RTS page <

Independent Study Post-Mortem05/15/2005 05:07pm
The Independent Study is finished and I turned it in on thursday the 12th!

The functionality when I turned it in included a partial Map Editor, partial Animation Editor, full menuing system with text-fields, list-boxes, animated rollover-buttons, text buttons, a bunch of menu-fades, etc. The ingame functionality itself included music, sound-fx, isometric terrain with different passability for different units, collision-detection, ground and air weapons, basic Agent (individual unit) AI, and partially implemented two-tiered pathfinding. Weapons have their own animations (in the animation format I created just for this game) as well as explosion sequences for their impact, and each sprite has a special animation for when they die.

In the 10 weeks of coding, the program got to about 13,141 lines of project-specific code (code written by me, specifically for this project... I didn't count things that I wrote before and just used in the project). I consumed about 2,750 ounces of caffeinated beverages (primarily various flavors of Mountain Dew). And slept a mean of 7.7 hours per night. I haven't calculated the standard deviation, but I anticipate that it is very high just looking at the numbers where I slept 0 hours some nights and 13 others. The caffeine probably increased the standard deviation a great deal and decreased the mean slightly.

This summer, I plan to continue work on the game, however, this blog was just for the Independent Study development. The development during the summer might get to the point where I want to keep some of the components secret so that they are a surprise to players when the game is released.

Thanks for checking in on the progress of the game, and I hope you get a chance to enjoy playing it when it comes out!

05/12/2005 10:29pm

Almost Done!05/12/2005 06:15am
Time is almost up! I started compiling (in the non-programming sense) the data for the CD (design docs, readme's, etc.) and I just finished writing the summary paper. I thought that since I was pulling an all-nighter tonight, that I would have some time to fix up a few more things before submitting the proj., but it doesn't look like it because I have to make a website (about the game) for a business class, and I spent a lot of time on that (browsers are all different.. argh) and writing a paper for that class.

I still have a bunch to do to get that site to where I need it to be for the class at 6pm. I turn the project in at 2pm, but I have a quiz at 3pm that I also need to study for (I should at least look at the book... I don't know for the life of me what it's on). The problem is that I have to go to campus at 11:30, and once I'm there I have stuff to do (print a small little insert for the CD case and make sure that I have the release build right by testing it on one of the libraries computers since they don't have VC++). So I really only have like 5 hours! AAAH!!! I wanted to code more!!! grr. o well. Gotta go work on the website. I get back from campus at 10pm and if I don't update before I leave for campus, I'll probably update then if I am not deathly-tired.


One... More... Day...05/10/2005 11:28pm
Today was pretty productive, I got the HUD working with buttons that change by the units selected (the buttons control the sprites to some extent). I also got collision detection and terrain passability implemented.

There will need to be some changes to what the sprites do when they find a collision (right now they just wait around for something to move out of the way). But this is probably fine for the submission.

W00t! It's not even midnight!

I talked to my advisor today and he def. seems pleased and said he doesn't have a problem giving me an A. This was never about the grade though, so I kept coding, and I got a ton more done! Shwing!

Unfortunately I might not be doing much more work on the game before I turn it in. I'm going to be building the release version of it, making that into a CD... bundling all the design docs together and writing the manditory summary that RIT requires of all its Independent Studies (at least for CS anyway). I also have to work on a project for a business class that involves making a site related to the game (no, this little blog isn't sufficient :P). And I have a paper due in that same business class and the last quiz in my math class, all on thursday.

I'm tempted to sleep a bit tonight so I can skip it tomorrow, but I already have 2 liters of Dew in me, so we'll see. I really do think I should sleep though, so don't expect more updates.

Line Count: 13,141

Erm... almost there05/10/2005 05:12am
Almost to the deadline. Getting up in < 4 hrs. so I'll keep this brief... 5 hours last night, like 4 tonight, hopefully 3 the next day, and either 3 or none the next. A quiz, paper and website are all due the same day as the game. But this is Final Salvation, so I'm gonna do it right!

Line Count: 12,977

Due Date05/09/2005 06:03am
The due date is somewhat undefined for Independent Studies. I've decided to try to turn it in on Thursday. This is just one day before the date that the progress bar on the top of the page has been counting down to (I would turn it in friday, but my advisor's office hours are teusday/thursday). This should give me time to study for finals during finals week (although I'm still gonna be working on the game in my free time as always).

Lotta work to do!

Pwned.05/08/2005 05:54am
Well the week is pretty much over, and I was doing fairly well until today. I wasn't on my A-game. I could have done much more. I was supposed to make pathfinding considerably better today, but there's still a lot more to that end that I wanted to get done and didn't quite yet. I made a better system that I half-implemented (probably more than half, but I didn't get to test it because it's not done).

Tomorrow probably isn't going to be too productive either because I have a "mid-term" (horrible misnomer by the teacher) on monday in Prob Stat and I haven't looked at the chapter yet, so I'll probably be spending an hour or two tomorrow just on that.

I'm worried about the progress of this game. Rather, I'm worried about the lack of progress of this game. I'm supposed to be working on this all summer. If I don't finish it and have an amazing game good enough to compete in the market, then it's pretty useless (as I'm not intending to go into Game Design or programming at all), because I don't want something just to have it look good on a resume. I want to appropriate rent! It may be wiser to abandon the project and work on some other software during the summer that I can actually sell. I'll let you know when I figure it out.

Line Count: 12,233 (i'm pathetic)

Chugging Along05/07/2005 05:33am
I just wrote this whole thing then closed the window instead of the tab when I went to look up a word! ARGH!

Did some pathfinding today. Man my entry was so much cooler before it got deleted. :(

Trying again... I took out the basic pathfinding to fix the trajectories. I'm going to make a system tomorrow that is going to mess up my maps to the point that I'll have to manually edit the maps for a while until I make a way more sophisticated Map Editor with some good AI to figure some pre-processing stuff out. I inundated my game with clicks, and even without any pathfinding (just straight lines for now) it would jump a little bit. This may mean a bunch of coding in my mouse manager to fix this, but it's going to have to be fixed. It is so small of a jump (laggish) that you would probably call it acceptable, but my theories on game design disagree. Games need to be perfectly smooth or the player will realize that they are playing on a computer. A computer that queues input events, then apparently does something to make it lag... what is it doing with the input anyway? My point here is that it distracts them from being fully immersed in the game world. They shouldn't be thinking about the back-end stuff because they should be so caught up in the story and the mission and the challenge to win.

I've done a good deal of reading on the psychology of game-design lately. I learned a ton, and I'm fairly convinced I could make a multi-player system now that would be more addive than a cigarette injected with heroin, dipped in chocolate and hosted on an EverQuest server. Wanna play?

Schedule for Week 9 now looks like this:
  Monday - Get units to know when to fire.
  Teusday - Finish weapon-overlay system (the animations)
  Wednesday - Death management (animations and the clean-up of memory)
  Thursday - Test Land & Air Weapons (this involves making Air Units work)
  Friday - Make pathfinding better
  Saturday - Make pathfinding even more better-er
  Sunday - Implement the whole HUD system (busy day)
  Monday - Make a structure that does something (builds units).

Line Count: 12,052

Cinco de Maio (oops, past midnight)05/06/2005 01:54am
I made different "planes of occupation" or "mediums" if you will. What this means is that a unit can be on land or in the air (or both if it is a hover-craft or something). That was unexpectedly easy, I only started coding at midnight, and it's only 2am now. When I wrote down the schedule in my notebook I technically said today was "implement land/air units and fix all bugs", so I guess I'll spend the next couple of hours fixing the ample quantities of bugs (3: sprites don't chase their targets if the target moves out of range after being shot... no splash damage yet... another bug in trajectory angles for all movement).

Tomorrow and Saturday I am scheduled to work on pathfinding. Right now there is a visible pause when you tell a unit to go far enough away. That's unacceptable, so there are going to be a lot of tweaks. In addition, when a whole group of units is told to go somewhere, they each calculate the path which is fairly redundant and time-expensive. Pathfinding is hard though, so I'm a bit scared. Only a bit though - I'm ready to kick some A* up in here! [note: that's means 'A-star' it's a pathfinding algorithm, not a euphemism for swear-words]

I'm rambling: FIN.

Schedule for Week 9 now looks like this:
  Monday - Get units to know when to fire.
  Teusday - Finish weapon-overlay system (the animations)
  Wednesday - Death management (animations and the clean-up of memory)
  Thursday - Test Land & Air Weapons (this involves making Air Units work)
  Friday - Make pathfinding better
  Saturday - Make pathfinding even more better-er
  Sunday - Implement the whole HUD system (busy day)
  Monday - Make a structure that does something (builds units).

Line Count: 11,981

Haha, it's 05/05/05 !05/05/2005 03:25am
This is starting to look pretty cool. After much toil, weapons are pretty fully implemented (with one small bug, but I'll smash it tomorrow). Melee weapons, instant-hit weapons (can't see the bullets) and missle projectiles (cannon shells) have all been implemented and tested. There are also some cool death animations. This game is starting to look pretty sweet even with my extremely campy placeholder-artwork in there. This pleases me. It even makes up for the aggrevation of spending like 5 hours trying to use a vector of pointers-to-pointers before reverting back and realizing the problem I was trying to fix could be fixed in one line anyway. That was uncool.

Anyway, I'll try to get some screenshots up soon. I haven't had much time for that because the schedule is a bit... extreme. The screenshots will take a while only because I'll have to either splice together multiple shots or give the units some rediculously high health and actually implement all of the weapons at once (right now I just use one at a time plopped on my single good-guy unit type).

Schedule for Week 9 now looks like this:
  Monday - Get units to know when to fire.
  Teusday - Finish weapon-overlay system (the animations)
  Wednesday - Death management (animations and the clean-up of memory)
  Thursday - Test Land & Air Weapons (this involves making Air Units work)
  Friday - Make pathfinding better
  Saturday - Make pathfinding even more better-er
  Sunday - Implement the whole HUD system (busy day)
  Monday - Make a structure that does something (builds units).

Line Count: 11,881

Stop the Violins!05/04/2005 04:38am
What is it with all the violins in videogames these days? :) I got a lot done today, and now my game is finally violent! Weapons work and sprites can actually kill each other off and they are eventually deleted. There are appropriate animations and sounds for SOME of the weapon usage, but I have to finish the rest tomorrow. I finished tomorrow's work today to compensate for the fact that I didn't finish today's work today.

Schedule for Week 9 now looks like this:
  Monday - Get units to know when to fire.
  Teusday - Finish weapon-overlay system (the animations)
  Wednesday - Death management (animations and the clean-up of memory)
  Thursday - Test Land & Air Weapons (this involves making Air Units work)
  Friday - Make pathfinding better
  Saturday - Make pathfinding even more better-er
  Sunday - Implement the whole HUD system (busy day)
  Monday - Make a structure that does something (builds units).

Line Count: 11,727

Fire!!05/03/2005 03:22am
I got units to understand when they are supposed to fire now. "Firing" doesn't actually... do anything except log that the unit is trying to fire. But I'll get on that soon.

I figured out a ton tonight about polymorphism and why my program hasn't been working. I was doing some really foolish things that I am going to have to fix soon to restore polymorphism to the parts of my program without it (it's really clutch).

Schedule for Week 9 now looks like this:
  Monday - Get units to know when to fire.
  Teusday - Finish weapon-overlay system (the animations)
  Wednesday - Death management (animations and the clean-up of memory)
  Thursday - Test Land & Air Weapons (this involves making Air Units work)
  Friday - Make pathfinding better
  Saturday - Make pathfinding even more better-er
  Sunday - Implement the whole HUD system (busy day)
  Monday - Make a structure that does something (builds units).

Line Count: 11,496

Blender 3D05/02/2005 11:49pm
I just found a free Open-Source 3D program called Blender 3D which looks pretty cool and is... free. So that helps keep the 'ol budget down a bit. Hopefully I can get artists who know how to do work in Blender because I might use that for most of the art.

A big problem I've been facing is the fact that students are learning 3D Studio Max and Maya because they are used widely in the "real world" (ie: places they will get jobs when they graduate). Most of these students are learning on pirated copies probably, or using a Student Learning Edition like that which Maya has available for free. The problem with this is that it would cost about $3,000 for a license that would allow me to legally use the art. I'm sure I could get around it from a technical standpoint, but since this game is going to be sold, everything needs to be legal.

Enter Blender! :D I'm probably even going to download it myself and mess around with it a bit. There's a free WikiBook that helps people learn it, and there are video tutorials, etc. just like in the proprietary stuff, so it seems it can hold its own.

I'm still working on creating weapons for the game. This is becoming quite the chore, but I am going to have the units at least knowing WHEN to fire (and calling the function to do the firing) by the time I go to sleep tonight.

Week 9 (of the quarter) is always insane. Last quarter I wrote a 25-page business plan and wrote all of ROFLbooks.com in Week 9. Since I have a very light course-load excluding this Independent Study, I made a schedule for this week that should keep me pretty sufficiently stressed/productive/tired if all goes as planned.

It goes a little something like this:
  Monday - Get units to know when to fire.
  Teusday - Finish weapon-overlay system (the animations)
  Wednesday - Death management (animations and the clean-up of memory)
  Thursday - Test Land & Air Weapons (this involves making Air Units work)
  Friday - Make pathfinding better
  Saturday - Make pathfinding even more better-er
  Sunday - Implement the whole HUD system (busy day)
  Monday - Make a structure that does something (builds units).

That's already a bit into week 10, and I have a "Midterm" exam in my math class on Monday, but that should be the basic progress through the next week or so. That will be cool to see all of that working! Check back for updates if you feel so inclined.

4205/01/2005 12:03am
I've sealed myself in from the world. I'm not going to be going out socially again until May 19th (Episode III and coincidentally, the last day of finals). By then, the game will be turned in anyway.

Unfortunately, I've been having some serious chest pains on my high-caffeine nights, so I've decided to cut back. I'm hoping to stay away from the 'feine until week 10, so I'll be able to hop back on it and be super-productive. I've tried to quit 2 other times this quarter, both with the same results. The "cravings" are very very light, but what hooks me is that I can't seem to get anything done without caffeine. I sleep more, and when I'm awake I just stare off into space or code very slowly. No keyboard-melting ninja-coding goes down :/.

Today I did some code for money (last time of the quarter I presume), and I finished an Animation Editor that I wrote which is just a GUI for making animations in a format the program will understand them in (I made the format, so there are no existing tools). It's still really ghetto, and I would prefer not to make my artists to use it the way it is now, but it's more than enough for me.

There is a big feature that I'm hoping to finish tomorrow (to some extent), stay tuned.

Animations04/28/2005 12:50am
I spent most of the day working on the Animation editor that will let either myself or some artists to create animations out of pictures. They will be able to set the frame-time for each frame, whether the animation loops, what the first frame in the animation is, etc.

I got impatient though, and before finishing that, I finished the code in the main program that will be reading the animation files, and I used that along with a hand-written animation file to add the animated logo into the game. There was a pretty funny error along the way (in the screenshots section) which caused the frames of the logo to be used as background tiles of the map, and sections of the animation to be used as the animations for units.

It works beautifully now though, and just this logo seems to add a lot to the opening menu.

Line Count: 11,020

Back at it04/27/2005 01:22am
I've finally been able to work up the motivation again. I've been moving at a much slower than normal pace. Today I got back on it and wrote several hundred lines of pretty interesting code that did a ton of different little things.

I talked to my advisor today (first time in a couple of weeks) and he seemed to imply he was happy with my progress and that he was probably going to give me an A. That's cool. I plan to knock his socks off with the final product... I want it to be WAY better than it is now. WAAAAAAAAY!

I'm not sure if I've mentioned it in this log before... but I'm planning to spend my summer polishing the game so that I can try to sell it. Not sure what city I would be in when doing that :/

More to come.

Meh04/23/2005 10:18pm
I just got back from the LAN party. I didn't get nearly as much coded as I expected to because I was doing a ton of work helping my friends administrate the thing (they're the admins... I was like... mini-admin or staff?). I got up at about 10am yesterday morning, and now it's 10pm, so I've been goin about 36 hours with a one to one-and-a-half hour nap that was thrown in there... so I'm not planning to be coding anymore tonight :P.

One thing of notice from RITfest... 70+ people with amazing gaming rigs and access to most every game in the world: what did they play? Obviously the new big names like UT2K4 and CounterStrike Source with some SourceForts at times, but many big names with huge budgets weren't seen there. I don't think I saw anyone playing Doom 3 even though it was on the myriad posters that nVIDIA gave out. Games are getting way too competitive about technological impressiveness and forgetting gameplay. I saw a lot of Total Annihilation, War Craft II, WarCraft III, and even a good bit of StarCraft among some other old games. These older games were all about the gameplay, and that's being sacrificed to a great extent these days it seems. Note to self: focus on the GAMEPLAY in Final Salvation... that's what really matters in making it "good". (On a side note: game companies are in the business of selling games, not of entertaining customers. Doom 3 probably way outsold Total Annihilation in just its first week even though it's only a few months old and is shelved whereas Total Annihilation is almost a decade old and is still getting more CPU cycles. So you may be able to think of Doom 3 as "successful" in regards to fullfilling its mission of selling games).

I did get a little done today. I passed the 10,000 line mark by the way... I think this means my program is no longer "trivial" in size by the text-book definition (gee, thanks for your stamp of approval guys).

But I digress... SLEEP!

24 Hour Codefest04/22/2005 10:59am
This should help me catch up. In a minute or two I'm leaving for a 24 hour LAN party where I'm friends with all the admins. I'm not gonna be gaming tho... I'm just goin to hang out with the admins and code for as much of the 24 as possible. Technically it's 6pm tonight till 6pm tomorrow, but I'm goin early to set up and staying late to clean up. Be back in probably 36 hrs.

I should have some cool updates for you by then!

Menu Fades04/20/2005 06:19am
Menu fades are implemented. This isn't too important, but it's been on my mind for a while. I used to play StarCraft long before I actually planned to play games, and I was always impressed that the menu components moved in from the sides of the screen. I've added several menu fades to the program including alpha-blending from the old to the new, horizontal and vertical splits (the StarCraft fade is a vertical-split), all components coming on-screen from any side, each component coming in from a random side, and an option to randomly choose a fade at run-time.

The speed can be changed for any fade (pretty fast by default). Only fade-ins are implemented right now (as opposed to fade-outs that may eventually show up). There are sound-effects for the fades (one for the blend, and a different one for the motion-fades).

Line Count: 9889

A Bit Behind04/19/2005 08:26pm
Last week I planned to have some extra time during the Plot phase to catch up on some other things that hadn't been done the way I wanted. That didn't happen at all, the Storyline isn't even entirely done (it's about 20 pages, but 2 of the missions and 3 of the cutscenes aren't finished). I was also supposed to have designed all of the units and structures, but that's barely begun. I really should have spent less time designing the campaigns :/.

I spent a ton of time on the project for my other class, and then I slacked off professionally all weekend.

Right now I'm going to try to add some Python into the program so that I can use it for loading sprite settings, running sprite AI, and handling trigger-based events.

Line Count: 9995

Plot04/12/2005 12:53am
This week I'm working on Plot, Storyline, Character / Unit / Structure Design. There won't be many updates because I'm not going to be doing that much coding (unfortunately), and I'm not going to publicly release the plot, etc. before the game comes out.

This week I also have a major project to do for a business class (which coincidentally is a group project with the goal of making a strategy for releasing Final Salvation to the market). This is going to take a ton of time, but should be really interesting. All things considered, I really lucked out that the large project in a non-independent study class happened to fall during the Plot/Storyline portion of my schedule. It is the most relaxed pace of any of the scheduled tasks, and can be done much quicker than planned, so I shouldn't fall behind too much on coding.

Halfway04/10/2005 12:23pm
The quarter is now half over! Yikes.

Anyway, since the last entry I added sound support for sprites (they report when selected, and acknowlege move orders). I set up the support for keyboard input during the game, and used it to create a pause screen when the player hits p, pause, or F10. When the game is paused, all sound effects pause as well, and the music is knocked down to half volume.

Line Count: 9522

Sound04/07/2005 06:02am
During the on-campus portion of my coding today, I did a whole bunch of really joyless bug-fixing. There was an error that caused movement not to worked when scrolled (fixed that). Also worked on getting the map editor to work with the changes I made to the menuing-system since I wrote the editor. Then there were errors getting the map editor to load map files (fixed that too).

Since I was supposed to work on individual unit AI, I messed with that for around an hour, broke my program hardcore, then ended up reverting back to a previous commit of the code.

Given that all of this was really painstaking and annoying, I didn't feel like tackling the AI again tonight, so I postponed that and started in on the sound support. It's working. To test the functionality, buttons play a sound when they are moused over, and a different sound when they are clicked. It works well! (sooo glad I built onMouseOver and onClick, etc. into my button classes).

Line Count: 9114

File Choosers04/06/2005 01:21pm
Both the main game and the map editor allow files to be loaded from a semi-transparent, portable, file-chooser dialog box.

Map editor is still ghetto... no support for adding Sprites. All sprites have to be added to the file manually (lame).

The plan for today is to get make it so that all sprites share some basic AI (if there is an enemy nearby... kill it, if there is someone attacking you from out-of-range... run, etc.).

Line Count: 8850

Movement04/05/2005 12:52pm
Sprites can move around now. They have time-based speeds (so it won't change based on your processor). This should also allow the art to be created in a way that will prevent 'ice-skating' (foot movement not lining up with actual speed, so it looks like they aren't making contact w/the ground).

There is no hit-detection so sprites can occupy the same place at the same time, and just generally run right through each other to get where they're going.

As far as the schedule is concerned, I'm supposed to completely finish movement tonight (this looks do-able) so that I can allegedly do all of the generic sprite-AI tomorrow (what was I thinking?).

Throughout all of production, one thing that has been getting repeatedly neglected is keyboard input. I still haven't even designed the rest of the HUD layout, let alone implemented a system so that each sprite can have its own buttons w/hotkeys.

Slow weekend04/04/2005 05:01am
I spent a lot of time not-coding this weekend. I took a break on Saturday morning to do a quick coding competition at TopCoder. It was pretty fun, I did alright.

A ton of time was taken up by setting up the new laptop & wireless network. Way more than necessary.

Luckily the laptop is all set up with the project, so I can work on-campus starting tomorrow. I'll need it, there is a lot of work to do in order to stay on schedule with moving sprites around the board as planned.

Line count is not as good as it sounds... the pathfinding stuff is in there, but doesn't work fully.

Line Count: 8856

Back to normal04/01/2005 03:26pm
There was a screenshot that most of you probably recognized as StarCraft (the game which I keep hearing my game compared to).

My April Fools Day joke grows tiresome. Now is the time on Sprockets when we code!

Game is Done!04/01/2005 04:37am
Yay! I finished early!

I drank a TON of caffeine and I finished writing the game. I was coding so fast that some of the keys on my keyboard melted a little *shrug*.

Anyway, look below for the screenshot!


Caffeination and Innovation04/01/2005 04:33am
I got a little done today. Not enough considering my Caffeine intake (single-shot espresso, 32oz Baja Blast, 2 liter bottle of Code Red). Meh.

My laptop is coming tomorrow, so I shall go to sleep sitting on a compilation Catch-22 (my A* Algorithm needs to know about my map, but my map needs to use the A* object... sigh).

Gonna try to haul tomorrow despite the excitement of playing with the new laptop (I'm getting it so I can develop faster). I'm going to do a TopCoder.com competition on saturday because I can't get it off my mind. I need to quantify my skillz one way or the other.

Selection03/30/2005 03:09am
Units can now be selected using a lasoe tool in the normal manner expected of an RTS. Holding SHIFT adds to the selection, otherwise new group replaces selection, etc.

I did that quickly. Should have spent more time physically at the keyboard today.

Line Count: 7992

Sprites03/29/2005 04:19am
Until tonight it would appear that all I had accomplished in the last week was to get the text-fields working as well as the variably-sized semi-transparent menu-backgrounds and extensive use of over-hyphenation.

Luckily, tonight was productive: Sprites can now be loaded from map files (edited by hand, sprite support is not in the map editor yet), and then displayed at the correct location. The sprites are attached to animations that are cached by sprite type. The animations work! :D Animations are based on raw cpu clock cycles (roughly in terms of milliseconds) as opposed to cycles through a given function, so any additional cpu-intensive code added later (probably AI) will not destroy the appearance of the animations.

Chickidy-check the screenshot out.. I'm on the map!

Another note on the caffeine logging I mentioned yesterday... it is actually available online. It's just not visible. You may have to get creative and figure out an alternative way to come across it. But if you are a FireFox user, you are probably already very good at controling your browser. ;)

Line Count: 7829

Durp03/28/2005 06:17am
Started implementing the Sprites and how they are going to be drawn in the map. I put in some functions that will be helpful when I get to moving units around.

I also ran into a mention of TopCoder while I was looking up documentation... proceeded to waste about an hour and a half messing around there. It's competition speed-coding. Hopefully I can force myself to stay away from it until this project is done, because there is enough practice-coding and live competitions to keep a person distracted full time. My goal is to stay away from that site until summer. However, the temptation is rather strong to prove to the world that I am in fact the best :P.

Oh well, Final Salvation will prove it in the mean time because it will rock people's faces off.

Side note: I've been logging my caffeine intake. I just passed the 1,000 ounces mark for the quarter!

Line Count: 7575

(parody)03/28/2005 12:20am
Then I remember that I am Sean Colombo. I am no longer worried.

:P03/27/2005 08:41pm
Stuff is all about not working. ( -_-)

Hmm03/27/2005 07:38am
Think I figured out the way to fix it. It will take probably close to an hour to implement however, so I will get to that later. It's going to make everything work a good deal more smoothly I think. Less pointer hackery. C++ is trixable, that's pretty much why I could hack my way around the problem without even understanding what was going on. Now I get it though, so I'm going to fix it the right way. Night.

BAH!03/27/2005 07:12am
It's hitting the fan and I have to go to sleep soon because it's Easter and I have to go out to eat w/the extended family in a few hours (don't even know when).

Everything is b0rked right now. I just realized that C++ casts subclasses to the superclass when you use the copy-constructor to save it as a member object of the superclass (instead of a pointer). I appologize, that's really poorly written and is quite possibly in Greek or Persian. I probably wouldn't understand it myself if I didn't remember writing it. Bah. Anyway, I have several types of menus and their data gets lost (which has made me do weird things to fix it) when I save them. I shouldn't even be messing with the menus. I was supposed to be done with the In-Game GUI today and I'm not sure that I really started it. To help with a decision I did some experiments regarding time complexity. The logFile for the output is fairly interesting (closest thing you'll ever see to the source-code of the program) and is available in the "files" section of this page below.

No line count cuz I have no idea what is going on right now.

Text Input03/26/2005 05:30am
I'm getting behind I think. I haven't gotten to work much on the in-game GUI which is supposed to be done by tomorrow (meaning Saturday) night.

Being trapped on campus a bunch over the last few days, I wrote a lot of code that I couldn't test until I got back. Some of that was tested and fixed (I now have fairly decently working Text Fields... arrows to move cursor, basic letters with capitalization, backspace, delete, home, end, etc.). Another thing I wrote but as of yet have not tested at all is the File Chooser class that I really wanted to get done. It's "there" and it compiles, but undoubtedly doesn't work yet because I haven't tried it at all (the save menu requires a text field which was only now completed).

Hopefully Saturday can have inhuman levels of productivity. That's what will be required to get the in-game GUI where I would like it to be. I might just let the FileChooser ferment (since it compiles and links) and just add that later if/when I get the time.

Line Count: 7076

Finally have a name03/23/2005 06:58pm
Final Salvation

Menus03/23/2005 07:02am
I deviated slightly from the task at hand to go back and make a feature that is going to be useful in the In-Game Menu as well as the file-chooser menus (once I get those done).

I made a system that allows me to generate a menu background as a semi-transparent box of any color overlayed over the current background. The box has rounded edges, which is cool considering that SDL doesn't have any geometry functions. I thought of a pretty sweet hack to do this fairly simply. If your interested, ask me and I'll go into more depth.

I wanted to do the file choosers this morning, but that transparency thing took a few more hours than I expected (I originally wasn't planning to make it so that I could dynamically make boxes of different sizes), so I'll have to get to that later because it's pretty late/early and the sun is seeping in trying to keep me awake (but alas, I need to sleep, so I shall).

Line Count: 6662

Scrolling03/22/2005 09:48pm
Scrolling works in-game now. The HUD also has a non-rectangular boundary (configure it with verticies and it computes the real bounds).

The changes to mouse-handling from this morning let me delete an entire file that I realized I didn't need. So now there are even less lines of code, for yet again more functionality.

Not sure what's next. Probably have to figure out what components really are going to go on the HUD (should have done this before). And I also have to write the keyboard manager for the in-game stuff. Right now my program doesn't do anything with any keyboard input at all.

Yesterday I installed a plugin for Visual Studio 6.0 called WndTabs that I came into contact with at my co-op. It's really cool, and if you use VS 6.0 I really recommend it. It makes tabbed files and lets you press CTRL+SHIFT+H to go between a .h and its corresponding .cpp (that's a huge time-saver when you have a lot of files).

If at any point you realize that you are too gangsta to read this properly written blog, you can read the entire Gizzogle'd Vizzersion.

Line Count: 6492

Legit GUI03/22/2005 06:09am
The flicker is fixed and now the display refreshing can be set to either event-based (which is used in the menus and Map Editor) or frame-rate based (used by the in-game GUI).

It runs comfortably at 30 FPS (for now.. may need to bump it down or make something else more efficient once there are sprites moving all over the map).

I was confused earlier in the night as to the best way to implement the different processing in menus and in-game. But I figured it out, and this let me remove all of that ugly copy-paste code I referred to in my last update. This means that the program works way better now than 3 hours ago and uses about 100 less lines of code :D.

Line Count: 6538

Sorta GUI03/22/2005 03:32am
The Good: You can see a map physically under a HUD. The map is legitimately from a file that was created in the editor.

The Bad: Scrolling doesn't work. Lucky the "Exit Program" button even works because the mouse handling is all messed up.

The Ugly: When I move the mouse around, there are some refresh issues that cause a flicker on the button (the gray gets drawn over the button for a moment).

I think I made some seriuos structural errors. I'm going to have to look over everything again. This line count is probably a bit over-inflated because there is some pasted code in there that hopefully I can get around without actually needing it.

Line Count: 6656

Err oops03/21/2005 05:04am
Yeah, so I didn't really get anything done today. I started piecing together the in-game GUI, but then I realized it was going to be easier than I thought.

So I slacked and had a long talk with an old friend for a while, then got distracted by the Tucker Max she introduced me to.

I'll have to make up for this lost time in the next couple of days (no regrets though).

Save / Load03/20/2005 04:01am
Save / Load / New Map now work in the Map Editor. It's a fairly ghetto implementation (temporary because it's not really part of the game engine, so it's not part of the Independent Study entirely... it's just to help in making the regular game). Right now, it makes a time-stamped filename on save (instead of letting you choose) and loads the most recent file on load (again, no choice yet). The "New Map" button also uses a default size... no choices.

This was the first actual use of Glib though (loading files from a directory), so it's good that it's working.

The night is still young, or rather, the morning is not yet entirely bright... so I'm going to work on the Text Field and Text Areas a bit before I sleep.

Tonight is the end of my "Add Trigger-Based Events" task on the schedule. I didn't really do anything with them. The struct is there but there isn't even a simple GUI or any backend support to save it in the file.

Tomorrow I start the main game! :D (excitement + fear + caffeine).

You might want to click the "view all" link at the top of this table to see the administrative note I made yesterday... it's about artists & trailers, etc.

Line Count: 5851

Schedule Update03/19/2005 04:53pm
Thought I'd discuss some of the more administrative stuff.

I just added Glib to the project, so now I am safe to do multiplatform file system stuff. Thought this would be of interest to the Open Source advocates out there.

I have no name for the game yet. I need one.

I still have no artists, I think I need three:
- Still artist: Backgrounds for menus, splash=screen, HUDs.
- Sprite artist: animated units, buildings, projectiles, etc.
- 3D artist: Cutscenes, in-game briefings, etc.

I'm looking to get together cinematic trailer to display at RITfest at the end of April. Anyone interested in making a video? Hopefully someone with a film jones will do this, because I doubt I'll have the time to do it on my own, it's going to be really hard to code the game to a point where the trailer could even be made, that'll probably take most of my time.

I feel like I'm behind schedule, or worse, that I'm "off" schedule. This would mean pretty much that I did a bad job of planning the schedule accurately, and I'm on another path entirely. We'll see. One week from now, the Map Editor, scrolling In-Game map with HUDs, and Trigger-Based Events are supposed to be done. We'll see (I'm saying that a lot lately... I'm nervous).

Gonna get back to work.

Map Editor GUI03/18/2005 09:26pm
The GUI for the map editor is done. The list box is now a legitimate, scrollable list box (buttons & scrolling) that can highlights the last value clicked (in a different color than the item moused over). List boxes in general (although not implemented in the map editor yet) can be switched between text and graphical mode to allow the user a more customized appearance.

I stress tested the GUI and came up with two small errors which I fixed. Then I stress tested more. I can say fairly confidently that I don't think there is a way to make the map editor behave in any way that I didn't intend it to (even when you're doing 150 clicks-per-minute).

I am supposed to be in the "Add Trigger-Based Events" phase right now. Listboxes were very important to that process, so I feel somewhat justified in spending time on them. In my mind, I've basically determined that the three tasks of Map Editor, Events, and Scrolling In-Game GUI overlap enough that I will consider the last deadline to be the deadline for all three. I still feel confident that I can meet that deadline.

What remains in the map editor are just the Save-Open-New functions which I will be working on tonight after I go out (probably one of my last social interactions for quite some time because I intend to up my production).

Line Count: 5408

Am I On Schedule?03/17/2005 06:06am
Hard to say whether or not I'm on schedule. I'm thinking not. The reason it's hard to say is that I'm in the "add trigger-based events" phase, and I sorta need fully functioning list boxes for that. So that's mainly what I've been working on aside from the additional catch-up work to try to finish the main part of the Map Editor that was supposed to be done yesterday. I have a few more hours before I have to go to sleep, hopefully I can get really caught up on the Map Editor because I have a head-start on the Event system. So far, today is already a 12-hour coding day. :/ I'm behind.

Encouraging note: Everything works way more smoothly than I could ever have expected. When it's done it's gonna be awesome (hopefully the rest of the game can work as well as the menuing system and map editor).

Line Count: 5074

RTS_ListBox Implementation03/15/2005 05:34am
I made the list boxes work so that they actually return values when desired (right now, when a user clicks on an item). Scrolling over the listbox causes the item that the mouse is over to be highlighted (border drawn around it).

Supposed to be done with the map editor by tomorrow night. Highly unlikely.

I think I may start just doing line-count updates daily instead of these notes because the changes may seem small since I keep you so well updated! :) If I do a weekly update instead, the differences will be more drastic and thus far more interesting.

Line Count: 4137

Scrolling Map03/14/2005 05:14am
The map editor now has the ability to display a map and have a user scroll around it. This is really helpful because the same functionality can be modified for use in the main game.

It's getting very scary looking at that progress bar. It's only been a week and about 10 percent of my time is gone. That makes sense being that there are 10 weeks in the quarter, but the visualization from the progress bar kinda rams home that urgency. I don't feel like I'm anywhere near 10% of the way done, but if I can stick to the schedule (posted below) this should be do-able.

Line Count: 3911

Daily Update03/13/2005 05:56am
Even more menu functionality. It is polished very nicely now.

The Map Editor has been layed-out differently and now the menuing works (seemingly) perfectly with it. There is a main panel with a map in it. Can't scroll the map yet. That shouldn't take long though.

I put up a structure page and some more screenshots today.

Line Count: 3727

More Menus03/12/2005 03:55am
I got a ListBox class started and I finished the mouse handling for all menus. So now I have a working menu with text buttons and image rollover buttons. Still don't have the keyboard processing done for menus.

Next up is probably to push along the development of the Map Editor to the point that it can actually... edit maps (or at least display and scroll all over them).

Map Editor03/11/2005 05:08am
Started the Map Editor today.

Writing two programs that share the same files but have project-specific variables is really uncool. There has to be an easier way than I'm doing it. Maybe not... it seems to work this way (I dunno :/).

More to come on the Map Editor... nite.

Menuing03/10/2005 04:32am
I was supposed to finish all of the menuing by today. This didn't happen. I have a bunch of menu components (Buttons, RolloverButtons, TextFields, etc.) that have been finished to various degrees. Right now, the menus don't process input (mouse & keyboard), but they are all set up so that the flow of the program goes to the right places.

According to my schedule, I'm supposed to start the Map Editor tomorrow (literally speaking, that's today the 10th). Luckily, since menus are a critical part of the Map Editor, this should give me some time to get the input processing for menus done during the next week (the schedule has a week allotted for the Map Editor).

Looking at that progress bar on the top of the page scares me. It's almost at 5%, and it doesn't seem like I'm anywhere near 1/20th of the way done. Yikes!

Line Count: 2634

First Official Day03/07/2005 05:35pm
This is the first official day of the quarter. Over the break, I stubbed the really basic parts of the classes and put them together. Today I got my first Runtime Error! This is a good thing because it means that the whole structure compiles and links. There have been some changes to the structure since the original ghetto-UML, and now the project is up to 54 files not counting the outside packages (SDL libraries, headers, dll's). That counts .cpp and .h files, so there are probably around 26 classes (and 2 additional headers). Glad that worked out... I was a little worried that I may have to start from scratch if I botched up the design because I didn't have a working IDE at home where I wrote the files *whew*.

Design Doc Prelim02/25/2005 10:09pm
In my free time this week and all day today, I worked on the design of the program, and I think its to a good point now where there will only be small changes. I drew it up in Paint... I'll do the real UML later. The paint pic is posted in the Files section on the main page.

Hopefully I can get it all stubbed over break, this would give me a good jump on the quarter.

Earlier, I thought of a good plot (finally... I've been dealing with it on and off for weeks). I typed up some notes (4 pages), which will eventually turn into a full-fledged doc for all Plot & Storyline (campaigns, etc.), but for now it's going to be kept quiet so that it's more interesting when the game comes out. I'm having a problem naming one of the races, a bunch of the characters, and the game itself; but this will come with time.

Game on.02/20/2005 12:24am
On thursday I met with Sean Strout, who is going to be my advisor for this project. On friday I submitted the paperwork to the CS Office. It's like the Mountain Dew shirt says: "game on".

> Return to RTS page <