-->
Recent Projects:
Current Project:

Exceptional Journals (in no order): [Eliwood] [Steve Healy] [Ravuya] [Mark the Artist] [Scet] [Ysaneya] [Mayan Obsidian]
My Personal Website
 What's new? |
Posted - 6/29/2006 12:59:08 AM | Lots!
Happy 20k/anniversary!
Happy 20,000 views! Happy (~6 day belated) GD.NET+ anniversary!
Wow, I'm pretty amazed that twenty thousand times people have bothered to click on the link leading to this little chunk of internet space. Sure it took a year or so (the beginning being rather inactive), but my development has become reasonably exposed. ;)
And another year of game development, to boot. Looking back to my first entry, I can see that things have changed a lot. I've completed several games this year, including Gundown and Magma Duel. Not to mention a few semi-complete ones: Skirmish Online, Admiral Overalls, and Star of Shadows. A big thanks to everyone who supported my hobby, which I hold a passionate attachment to. (Gamedev, that is!)
Awards + $$$
I received my two awards today at the highschool graduation. It was a little awkward, since I was already graduated. No ugly gown for me, but I stood out because I was the only person who had already graduated getting an award. :P
I received both the "Eric Knabe Memorial Award" ($100) and the "Computer Science Achivement Award" ($25). The money isn't the most important part at all, like I may make it seem, but I'm more honoured than anything else to be the recipient of them. I've led a rather under-the-radar academic life thus far, so these being the first awards I've ever really acquired is an achievement for me. ;)
Admiral Overalls
Let's not forget why we're here! 
No screenshots to show tonight, mostly because what is complete can't be seen visually, really, and what's semi-complete is using programmer art which I refuse to show publically. 
All enemies done. Phew, this took a while. Admiral Overalls has 12 different types of enemies, which I think is pretty good considering the time frame. 8 of them are unique, and 4 are variations of the same AI type of a few of the foes. Each is rather unique -- and in a few cases, VERY unique. I must warn everyone however of the sheer scariness of Crocodile-Man, hehe.
Overworld partially done. The overworld is the spiffy name for the big map that the player moves around to select what level they are to play next. Some levels will block passageways, so that the player must beat one level before being able to access others. I'm waiting on Draffurd's good-art(tm) for this, so no programmer art screenshots tonight!
Just two points? They sound small, but they've been a heck of a lot of work. It's also not to mention all of the bug fixes, optimizations, and refactoring that's been going on behind the scenes. You can trust me when I say that I've been working very hard on this. :)
Two more days left until the contest is over. I'm very sure that we'll make it, but it's going to be heck-of-a tight!
| |
 Keeping the ball rolling.. |
Posted - 6/27/2006 1:13:08 AM | 'Admiral Overalls' progress continues to move forward tirelessly. Me and Draffurd have until the end of Friday to finish our game, which means just a meager 4 days remain! I have a feeling that it's going to be very tight, but we should be finished the game by then.
Allow me to toss some more screenshots at you, dear reader. :)

(Easy to tell which maps I make, and which Draffurd makes :P)

(You'll just have to wait until you play to see what THIS enemy does!)

(Hey, who is that Commander beneath those sheets?)
What's new?
Music! Now a music track (MIDI format) can be associated with a map, to play continuously while the map is being played on. Draffurd is pumping out some wonderful tunes that really spice up the atmosphere of the game.
Death! Yes, now the poor Admiral can meet his demise. Luckily, he's armed with a number of extra lives that lend him a second chance. Thank goodness!

Door fixes! Now doors properly block enemies from passing through them -- who neglect to ever carry keys of their own -- and tomatoes now splatter all over the door frame rather than passing through unscathed. Both seem trivial, but it's the thought that counts. :P
Enemy death! Enemies now either "POP!", "BOIK!", or "SPLAT!" out of existance when pummeled with an ample number of tomatoes. There is also a rather attractive tomato-splatter animation. :)
And of course, as usual, a healthy number of bug fixes.
Once again, I think I'll reiterate (and brag a little, hehe) over how extremely pleased I am with how the game is turning out. I think AO will be me and Draff's most professional/polished game we've made, and maybe even the most fun! I certainly enjoy myself when I play over the few test levels we have, and I wrote the darned thing!
| |
 More movement towards the finish-point! |
Posted - 6/25/2006 12:02:14 AM | I'm still hugely pumped. Every day now it's starting to look and feel more like a real full game. 


Tomato Shooting: Luckily most of the inhabitants of Trozak are vulnerable to tomato-juice! Admiral Overalls takes a moment of charge-up time before firing, but the tomatoes pack a powerful punch. They travel in an arc-like motion that enables you (craftily) hit enemies on lower platforms. Not shown in the screenshots since they are rather motion-dependant.
Player Health: Shown in the second shot. When the player or an enemy takes damage they flicker white for a moment, to indicate such. I was surprised SDL.NET handles it so well, since it's changing all non-transparent pixels to white on a per-frame basis, which I thought .NET would slow down to heck for since it needs to go through the managed/unmanaged DLLs for nearly all of its pixel-manipulation calls. Oh, and cool hearts I drew. Woot.
Enemy Life/Death: Enemies also have health and react similarly to tomatoes; flickering white upon being damaged. Most of the Bounder enemies only have 1 or 2 health points and are easily evaded or dispatched. I just need a few animations for tomatoes splattering and enemies dieing (POP!) to be done with this.
Map-Scrolling Edges: No more black void beyond the edges of the map. This was a small addition, but it already feels more professional with it added.
Map Backgrounds: Draffurd whipped up a bunch of really awesome paralax backgrounds to be used in the game; these Blue Hills being one of them. I love it, myself.
Kudos to Draffurd for all of the awesome art he sent me today. All of which will be unveiled when you play the game. You are going to play, aren't you?
| |
 Speedy progression! |
Posted - 6/24/2006 12:18:52 AM | Gotta rush, gotta rush! Just 7 days left! Thank goodness the deadline for the contest is at 11:59PM on June 30th, thus giving me virtually an extra 24 hours!
Refactoring
What project is complete without its own share of tedious refactoring? Today I realized a few follies in my code design, and shifted some logic around. For one, sprites (sprites==entities=='things') are now created from a set of 'sprite templates', rather than generated from a hard-coded list every time one is created. This set contains things like: the player, enemies, fruit, and doors. The 'Sprites.txt' file in my Data\ folder resembles:
04,16,16,Blue Bounder
04,16,16,Red Bounder
00,16,32,Boxman
00,16,16,Roller
00,16,16,Spikes
00,32,32,Croc-Man
The first field is the ID of the sprite template (zero being a non-template, generic sprite), and the next two are the width/height of each frame in the animation. The last being both the sprite's name and filename; coincidentally paying homage to Java's equally restricting naming style. :P
I also formed an AddList and DeadList, for adding and removing sprites from the game. Since I can't directly modify a list while I'm in a foreach() loop, I toss to-be-destroyed and to-be-added sprites in their respective lists, and they get added in the next iteration of the game loop. Is this elegant enough? I'm no optimzation buff. Feedback is good. :)
Foes!
I added the (arguably) most basic foe there is: The Bounder! This little fellow jumps up and down in whatever direction it's facing, and reverses directions upon hitting a wall. These squirts come in three flavours: green (jumps a medium amount and moves at a medium speed), blue (jumps really far at a fast speed), and red (jumps really high very frequently). I figured I'd take the multiple enemies per-AI approach, since time is in low supply. Not only is it easier, but it still looks pretty cool! Here's a shot from the map editor whilst making my little test-map:

(The editor's viewport is 50% the actual game screen, for ease of use)
Points! (and HUD)
I implemented the "points" system today, which is essentially a trivial accumulation of values by collecting fruit sprites and other tasks. As trivial as it might seem, when I grab an apple and I see some flashing numbers appear and fade up into the air...well, it just feels good!

(Points++)
Also shown here is the HUD/status-bar, which currently shows points (functional), lives (non-functional), and tomato(e)s left (non-functional) in a cool semi-graphical fashion.
Overall
Overall I'm very pleased with how the game is coming together. Granted I only have one week left until I need to finish it -- so stress is a factor -- but I'm surprised how easy it's been to toss together a game in C# -- a language I've never made a game with before -- and SDL.NET -- a library I've never used before. The other cool thing is that there's been zero speed issues. The game runs wonderfully, and I haven't even optimized that much of the drawing!
An Extra Gloat
Oh, and I apparently have won two awards at my highschool. The "Computer Science Award" which is "based on your outstanding achievement in Computer Science". And, to which I feel particularly humbled: the "Eric Knabe Memorial Award" which honours my late CS teacher, and was given for my advocating of technology and helping others, to be presented by his wife. Mr. Knabe was an awesome teacher who taught CS at my highschool for many years, and helped form me become the programmer I am today. I feel very flattered for receiving both. :)
| |
 Cram! Cram! Cram! |
Posted - 6/23/2006 12:08:01 AM | Phew, what a long week that was! It was a real fight to not update my blog. :P (not really)
"Where have you been?"
Studying. The whole reason I've been at highschool (for an extra year) this year was to gain the Geometry/Discrete Math credit, which all of the reputable universities (Waterloo too, of course!) required. Darn. So this meant I had to take Grade 11 U-Math -- not Grade 11 U/C-Math which I took already -- and be stuck with little Grade 11's for a semester. Then this semester I took the actual Geo/Discrete Math, and did sort of mediocre/subpar (~70%). And then there was the deciding factor: THE EXAM! DUN DUN DUUUN!
So, the last week (or so) has been pretty much non-stop studying. I put somewhere in the ballpark of 25 hours into it, and I'm really really confident that I did quite well on my exam, which was on Wednesday. It should help pull my mark up. I think it's safe to say that Waterloo won't yank my acceptance out from under my feet, now. :P
"What of gamedev!?"
An excellent question. With an equally excellent answer. I'll illustrate this by showing you Draffurd's friggin' awesome title screen for 'Admiral Overalls', in all of its 4-bit glory!

(MSPaint FTW!)
It's done in the same general style of Apogee's (old) wonderful games: show a cool shot of what the game is like in a location that never actually appears in-game. Awesome. :D
The Map Editor is now also virtually complete. I had to revamp a bunch of things of a boring nature that I won't babble about here, but needless to say, it's looking good. Looking so good I won't even post a screenshot (today).
"Let's see a random in-game shot!"
Okay. Glad you asked. 

Next on the Roadmap is collecting fruit to gain (elusive) 'points', followed by basic enemy logic and tomato-shooting action.
All of which in the next ~6-7 days before the contest ends. It's going to be tight!
| |
 The Good and the Bad |
Posted - 6/15/2006 12:19:21 AM | The Good
Been getting some nice/slow progress on Skirmish done. Slow because of both pending exam(s), my job search, and Admiral Overalls. But like I (almost) always say: a little progress is far better than none. Today I decided to glitz up the Hosting window a little more, with a better mode-selection and a map thumbnail:

Unfortunately GDI+ is slow, so the bigger/busier maps take a second or two to load. I'll need to think of a way to get around that elegantly when people start making bigger maps!
The Bad
My "Admiral Overalls" motivation is rock-bottom at the moment. In ye olde days, this the point where I'd say "nuck this!" and quit the project. But I'm far l33ter now, so I just fall into a lapse of depression until I get back on the horse again.
The only problem is: this time around, time counts! The contest ends June 30th, and I should be roughly half-way done. Well, I'm not. I'm still struggling to get the (very buggy) map editor finished so that Draffurd can start pumping out some content. My lack of extensive C# experience (especially with SDL.NET) combined with the time limit is really nerve-wracking.
On the upside, I did implement object placing/deleting, which includes the player start-point, tomatoes, and various fruit. (The fruits being collectable for 'points' of a trivial nature)
But it'll get done. By George, it'll get done! Whenever I feel down, I just look below for motivation:

| |
 Le Editeur du mapp! |
Posted - 6/12/2006 12:21:24 AM | Oui!?
Yes, it truly is Le Editeurè du mappè! Excuse my horribly broken French, but I am in fact referring to the map editor for my contest entry, Admiral Overalls.
So far the map editor is basically the modified game's source, with a bigger resolution, scrollable via the arrow keys, and able to edit the map with the mouse buttons (left for place tile/sprite, right for delete tile/sprite). It's so easy it should be illegal. It very likely is.

As you can see the interface is quite simple. Since time is the major constraint, as with any contest, the KISS method (Keep It Simple, Stupid!) was deemed the most appropriate. We have the left SDL-rendered window that draws the map and its tiles/sprites -- sprites being entities like enemies, powerups, and their ilk -- while the window on the right lets the user choose their palette (tile or sprite) and choose whichever they please.
Currently placing tiles/sprites is pretty simplistic: point and click. This gets to be a royal pain when needing to fill in solid areas, like the large region of 'dirt' at the top-left area of the screenshot, so I'll probably end up implementing a rectangle-fill feature sometime in the near future to avoid future pain. ;)
Draffurd has drawn a few really cool enemies that are both comedic and will make for some interesting gameplay. I won't unveil anything, except that one of them is inside a cardboard box. Literally. Don't worry, you'll get it when you play. :P
| |
 Jumping forward in development! (/pun) |
Posted - 6/9/2006 12:41:59 AM | Admiral Overalls
Implemented jumping today, along with it's (groovy!) character animation. Hard to see in a still-frame screenshot, but he bends his knees and pauses for a moment before each leap, in tribute to the original Commander Keen. ;)

Hope to get the map editor mostly written during Friday/Saturday. Excuse my boringly brief entry. 
| |
 ADMIRAL OVERALLS TO THE RESCUE! |
Posted - 6/7/2006 11:04:04 PM |
That's right, folks. Be sure to hold onto your hats, because Admiral Overalls -- a suspiciously similar character to the infamous Commander Keen -- is making his debut at the end of June. :)
Gameplay
The game will play a lot like the classic 16-colour DOS PC platformer, with cool levels, cool features, and really lame sound effects. The main idea is to get together a really solid, functional, but not overly flashy game together. I've found that focusing too much on glitz *pokes at the 3D entries :P* is the road to incompletion, or an unpolished entry. Platformers are fairly simple in general, and I've written a tile engine and sprite manager over 50 flippin' times, so no problems there.
Admiral Overalls will wield his trusty slingshot, ready to unload countless rounds of tomatoes from his trusty tomato-basket (not drawn yet :P) upon his back. His mission: to recover the energy-crystals spread out across the hostile alien world he haphazardously landed on, in order to escape from their clutches back to Earth!
It's almost so corny it's cool!!
Progress
The SpriteManager class is now written, and is more or less fully functional. The Player class derives from the generic Sprite class, enabling user-input in order to walk left/right, and allow our hero to jump (fully affected by gravity). The spaceship was tossed in there for fun, the graphic being from another project, but we may 16-colour-ify it and use it for the Admiral's spaceship. :)
The standing animation is as far as Draffurd has right now, but it looks infinitely better than my hideous placeholder art, which I will not post here lest you gouge your own eyeballs. :P
The map is also still semi-random, providing a few interesting jumps around before getting stuck in a pit somewhere in that random rubble. The map editor is the next item on the list, so the screenshots will hopefully get more exciting, hehe. And of course, kudos to Draffurd on his awesome tiles, and really cool cloud-city backdrop!

(How do you plan on getting out of THIS one, Admiral Overalls?)
Visual C# Express Banter
Generics are really cool. The List<> generic makes life massively easier compared to the boxing/unboxing hell of .NET 1.1 and its coveted ArrayList class. I'm also using the Dictionary<> generic in the SpriteManager too, in order to refer to loaded images by name instead of memorizing obscure index numbers. VC# Express is doing a wonderful job of boosting productivity. If I were using SharpDevelop or another 3rd party IDE, I'd likely still be only half as far as I am now.
If I had to complain about *something*, it'd be how Intellisense likes to pop-up after every modifier keyword preceeding a function. Typing out 'public virtual static void OnUpdate()' makes me wade through like five Intellisense popups as I go. Arg!
Skirmish Online
Not a huge update, since the Admiral (above) is taking up most of my development time. I added a neat feature onto the "Host a Game" window that displays cool map information about each map as you click on it, so the host-to-be can get a better idea of what the map is like. Eventually it'll include a cool thumbnail of the whole map, but let's not push it. :P

(This is done by simply loading in the map file on-demand and filtering out the appropriate data. Not pretty, but it works, and with virtually no delay!)
University Adventures!(tm)
Today I scooted over to the University of Waterloo (the uni I'll be attending this Fall) to check out the campus and get a feel for the place.
The tour was pretty good. We had a nice guide named Justin, which the our tour guide comedically called Jason most of the time. Our group did a LOT of walking (3.5 hours :P) around the huge place, visiting one of the residences, student services, and one of the science buildings. Afterwards I also got a personalized tour of the Faculty of Mathematics building. Cool! They had a lot of neat specialized stuff, like the most advanced cryptology/optimization course in the country, and the only University in Ontario that offers a neat 'real-time programming' course on managing trains (ie. not asploding them :P). And a HUGE room full of servers that we passed. Groovy.
I also checked out what my course-load was looking like. Mind you, I'm taking Computer Science *with* the Co-Op option, so I'm essentially looking at five years at this University. I've got 6 work-terms (Co-Op) that are 4-months each, which is 2 years of just full-time work alone, and then the other ~3 years of actual classes. All spread across evenly, not in those big chunks. :P
There's lots of cool classes to choose from. The first term I'll be taking Algebra, Calculus, a neat programming course on functional programming (with Scheme), and two electives. Philosophy and Japanese might be neat ones.
So anyways, that's enough babbling on my end. Long story short: I'm extremely pumped about going to University this fall. It's going to be nothing short of kickarse. 
| |
 Skirmish Quasi-Hiatus |
Posted - 6/5/2006 10:53:58 PM | Now that I have just deemed v0.06 of Skirmish Online as complete, me and Draffurd have decided to take a quick (~1 month) break from Skirmish in order to join in on a short contest.
What contest? No, not GD.NET mystic 4E5 contest; sorry. But rather a contest being sponsered by the nice folks over at GeeksWithBlogs.net. They're hosting a game development contest that yields a prize of an XBox 360. From Mars. So the shipping+handling really gets you.
Anyways, they're doing it with cooperation with Microsoft in order to promote MS's line of Express products released a few years ago. I'm personally a fan of these awesome, yet free, products, so I have no issue booting up Visual C# Express and writing a nice game with SDL.NET. 
Part of the rules is that you have to keep a blog on their website detailing your progress and experiences/feedback regarding Visual Studio Express. I'd rather hang out here, but rules are rules. Anyways, you can keep up on that blog (if you dare) over at HopeDagger's GeeksWithBlogs.net Blog. Development is already heating up amongst the contestants, and with less than a month left it should prove to be very interesting. Even if me and Draffurd don't win, we'll still have another game to toss on the 'ol portfolio. 
Skirmish updates won't outright halt, but likely they'll fall to 25% of full sail. I've still got enough free time left before this summer (Summer=Fulltime-teh-work) to keep these two projects going. As for Star of Shadows, my other RPG project, well, it's still on ice for the moment. But it'll get done too eventually. :)
| |
 Boom! |
Posted - 6/5/2006 4:54:05 PM | Playing with mines and claymores is fun. Especially when there's lots of them. I'll let the images do the talking. 





(Only got the smoke because the explosion killed my framerate down to under 1 :P)
Don't worry, lots of REAL work going on too. ;)
| |
 Getting there.. |
Posted - 6/4/2006 1:00:45 AM | v0.06 is nearly completed. Just a few bugs to clean up, and then it's off to v0.07, which will essentially be a "polish-up" version before Open Beta commences. After all, everything needs to look shiny and presentable in preparation for the unwashed masses. 
Today I added a new bullet-expiration-animation (original art thanks to Draffurd!) that replaces the previous system of spawning ~7 additive particles upon a bullet being destroyed. This saves a lot on drawing/processing time, since, for example, a shrapnel grenade releasing 75 shrapnel bullets would create 75*7=375 particles, as opposed to now making only 75. The other cool thing about the new effect is that 'debris' remains for 5 seconds or so after the bullet is destroyed. Gives a cool effect after a bunch of shrapnel grenades have gone off in a room. 
Also fixed up some more layering issues (darn layers!) that was more or less just a logic-burp in my head with how I was Z-ordering sprites on-the-go. All fixed up now; so you can safely hide under that tree, hehe.
The game now also refrains from drawing the 'ground' graphic on portions of the map outside the map's physical boundries. This was making for some confusing instances for players where -- if the map-creator neglected to wall-off the map edges -- they would bounce off seemingly an invisble barrier for a very "WTF" moment. Nothing says home like an endless black void.
Two new maps today as well! One from Draffurd, and the other from DarkCampainger. Both of which are Capture-The-Flag maps for the gamemode-in-the-works. Although both of them (ironically) look similar, I'm positive that they'll both be very fun to play on. I'll post up some screenshots later, or maybe coax them into posting them up on the Skirmish forum. :P
And lastly, the last couple of bugs I'm fixing before we can proudly call v0.06 complete. The main two are players who leave a game can't rejoin (unproducable thus far), and the master-server sometimes neglecting to drop a player from the online list, thus preventing that player from accessing his account afterwards.
Since TCP/IP is connection-based, I reasoned out that I would have to get a notification if the player left. So, I determined that it might -- nay, must! -- be because in some rare case Skirmish is hiding its windows and refusing to actually shutdown, thus maintaining the connection invisibly! Doh. So I slapped in a timer that checks for the game becoming a run-away process and terminating it. Hopefully that fixes that one. 
And what's a journal entry without a screenshot? This one is from Thursday night, where we had an absolutely mayhem-esqè Free-For-All game on DarkCampainger's "Arctic Outpost" map. One of the more notable things about this image is the average player latency. Previously having an 8 player game would bring all players up to at least 200ms+ ping. Now our highest is at 221ms. This is a huge improvement, and a great leap towards having much larger-scale games of Skirmish in the (hopefully!) near future. Yay. 

(Alex's little, ah, comment aside, the lag was very much at a minimal. )
Which reminds me, YES there will be a spiffified new playerlisting system in v0.07. I'm well aware of the current model's ugliness. :P
| |
"Good night, Monster Land."
"Good night, brave warrior."
|
| S | M | T | W | T | F | S | | | | | 1 | 2 | 3 | | | 6 | | | 9 | 10 | | 12 | 13 | | 15 | 16 | 17 | 18 | 19 | 20 | 21 | | | | 25 | 26 | | | 29 | 30 | |
OPTIONS
Track this Journal
ARCHIVES
August, 2009
July, 2009
June, 2009
May, 2009
April, 2009
March, 2009
February, 2009
January, 2009
December, 2008
November, 2008
October, 2008
September, 2008
October, 2007
September, 2007
August, 2007
July, 2007
June, 2007
May, 2007
April, 2007
March, 2007
February, 2007
January, 2007
December, 2006
November, 2006
October, 2006
September, 2006
August, 2006
July, 2006
June, 2006
May, 2006
April, 2006
March, 2006
February, 2006
January, 2006
December, 2005
October, 2005
September, 2005
July, 2005
June, 2005
|