Intel sponsors gamedev.net search:   
Gauntlets of Recursion (+7)By HopeDagger      
-->

Recent Projects:

[Gundown]
[Magma Duel]
[Admiral Overalls]
[Membrane Massacre]

Current Project:



Exceptional Journals (in no order): [Eliwood] [Steve Healy] [Ravuya] [Mark the Artist] [Scet] [Ysaneya] [Mayan Obsidian]

My Personal Website


Thursday, October 30, 2008
Whether you're a student or a course tutor, midterm-time is always busy-time. As a student, my main concern was of course to study my buns off and make sure I knew the material inside-out. As a tutor, not only do I need to know the material inside-out, I also need to help administrate the delivery and marking of the midterm, as well as host a few midterm-review sessions. (Psst. That's my excuse for the lack of activity lately. You can't argue with that! )

The review sessions that I hosted on campus went really well. The second one went even better because I didn't make the same mistakes I had made on the first one, heh. The course covers a LOT of material in a small period of time, so it felt like things were rushed both times. Tonight is the midterm, so I'll be proctoring for a good couple of hours. Monday all-day is marking, which promises to be a long (and fun) day.

If you're curious about this enigmatic course that I'm describing, take a gander at it. It's sort of an 'intro to compilers and formal languages' course. The pace is pretty accelerated, but the stuff you learn makes it a real blast. You actually end up writing a real compiler for a 'real' C-like language on the MIPS processor by the end of the course, which is utterly awesome. If you're at the stage in life where you're considering which university to go to, think long and hard about Waterloo! </ad>

Comments: 3 - Leave a Comment

Link



Saturday, October 25, 2008
More screenshots!

Certainly nobody can get tired of screenshots. If anyone else here (or in the world :P) is like me, they'll scan a page for screenshots or images before they start reading the text. A good first impression for a new person looking over a journal is pretty screenshots, despite how clever or awesome the text might be.

In my last entry I mentioned that gore and scoring has been implemented. I didn't show any 'proof', so this entry is really just an excuse to throw a few more 'shots on the table, and perhaps to hide the fact that I haven't been working on the scripting system. Heh heh.

Oh heck, it looks even nicer in motion.





More on scripting next entry. I promise.

Comments: 2 - Leave a Comment

Link



Wednesday, October 22, 2008
Gore

Ahoy, individuals. Work -- my 'real' job that is -- has been picking up in intensity a smidgen, but Skirmish is still pushing forward with the momentum of a small spacecraft.

The last visual addition, and the final masterstroke needed to finish Milestone 5, is chewy, gooey, delicious gore. Previously players who were killed in combat would vanish and a puff of smoke, and emit large planks of yellow wood in place of humanly innards. It wasn't very convincing, but fantastically PG-rated! Despite pleas of protest from parents around the globe, I pushed forward.

Players will now, upon their untimely demise, spew out gobs of gore and gibs which will -- albeit a little eerily -- bounce off the walls and finally splat to the ground in a great crimson mess. It's not as clean as wooden planks, but according to reliable sources, it gives the killer a good sense of satisfaction. I heartily recommend you try it out.

Another minor addition is scoring, which is just local to the game, and per-session. Master Server-wide scoring will come one day, though. Projectiles and explosions track the player who initiated them, and the host sends out the appropriate notification messages when a player is killed by another, and also updates the values on the scoreboard.

Scripting

It's been a genuinely weird jump from being knee-deep in practical programming, and suddenly leaping head-first into theory once again.

I don't think that I blabbed about it much, but my [master] plan is to rig up a fairly basic programming language + interpreter, integrate it into the game, and use it as a base for various types of content. Primarily would be the use of scripting game modes. Things like Deathmatch, Capture the Flag, Freeze Tag, Skirmish Football, or whatever else players might think up. This opens the door to modability, which is a very cool and popular feature nowadays.

Going from networking programming to facing the task of constructing a scripting language is a big move, but certainly a welcome one. I'm really enjoying this fresh start on a new area of the game, and absolutely can't wait until it gets hooked up with the rest of the code.

SkirmScript

The language will tentatively be called SkirmScript. Haw haw, very clever. Like I said, just tentative. The whole "Skirmish" enchilada is still something I consider a codename until something more appeasing comes along. Maybe something that is less ambiguous when entered into Google.

SkirmScript was decided to be a very Scheme-like language. Functional languages aren't usually my first choice, but I had a few strict requirements imposed upon myself before I began. The language needs to be relatively easy to implement, and decently flexible. Scheme has a pretty straightforward syntax, where expressions are just functions that in turn can nest more functions inside of their arguments -- with only a handful of exceptions. Sufficient flexibility is also given. The language is technically Turing-complete, and fits the (already modest) requirements I've set on it.

I'd love to talk off another ear, but it's getting late 'round these parts. Have a quiet and safe night.

Comments: 6 - Leave a Comment

Link



Monday, October 13, 2008
Words are insufficient to describe the previous few hours of testing. Behold.






Massive thanks go out to Dean, Cliff, Mike, and Mark for testing.

Comments: 4 - Leave a Comment

Link



Thursday, October 9, 2008
Shout-out

The first thing I want to do -- and that I had forgotten to do in my previous post -- was to give a shout-out to Martin Bell (ie. that nifty Carrier2 guy).

It was his work that gave me the final nudge I needed to get back in line and crank up development on Skirmish once again. Martin has been working on his game project since January 2003! That's nearly 6 dargin' years!

Of course there are other GD.NET legends like Mr. Green who have been working steadfastly on their projects for years as well, and their work is also heartily commended.

I suppose the reason Martin's work stood out as an inspiration to me was that it was just a fellow programmer who decided he'd start the whole thing up as "something to get into 3D programming". His steadfast dedication to this project over its many years made me think wishfully toward what kind of state Skirmish would be in if I put another year (or several) into it. I really liked that thought, so I latched onto it and here we stand now.

Skirmish news?

As of today, bug fixes are finally no longer the main item on the menu. I feel as though I have finally cleaned up a lot of the grit that was plaguing the project, one of which was a second pass at the movement prediction code, which I think paid off very nicely. Remote player movement feels a lot more fluid now, and another issue -- weapon firing accuracy over the network -- has also been rectified, which will hopefully lead to a satisfactorily accurate hit/miss model when 'real' players actually play this thing.

I've started on player death, which is of course intricately linked to respawning and health and damage. Currently, not having had imported my old gore/corpse graphics, the player will poof into a burst of smoke and instead of gibs emit wooden crate shrapnel. Not that satisfying, but deliciously PG-13.

This upcoming Thanksgiving weekend (got to love being Canadian!) should provide me with plenty of time to implement death/respawning/health, and finish off the current Milestone. Huzzah!

Comments: 4 - Leave a Comment

Link



Sunday, October 5, 2008
A Familiar Face in the Crowd

I've been under the radar for a couple of weeks, slowly biding my time in my dark lair of solitu---

No, that's not true. I've been under the radar being busy at work and slowly changing my spare time to focus on a (hopefully) well-known long-standing project of mine: Skirmish Online.

For those of you unfamiliar with the project, I'll refer you to a post from my previous journal that talks a bit about the 6-odd years of dreaming and attempts behind it.

After having a few months to play around with alternate projects -- surveying the land, if you will -- I came to realize that I keep ending up coming back to my original calling: writing an online shooter game. Okay, there's a little more to the vision than that, but that's the very core of it. To create an online game from the ground up, start a community of players, and provide the world-wide audience with a genuinely enjoyable game to play against eachother.

What's New?

Two words: bug hunting.

The primary reason why I ceased development on Skirmish back in July was because of the overwhelming number of hard-to-track bugs. You know, the sort that seem to appear randomly and without giving much of any indication as to what is causing them. Except, this is magnified a bit since we're talking about bugs that affect the flow of network data, resulting in very strange outcomes for players, which might not bear any resemblance to what the real problem is.

Long story short: it got hard, and I felt like working on something easier. A perfectly normal -- and perfectly human -- response to a rough situation like that. I felt like I was in over my head, couldn't figure out how to fix the problems, so I went away. I didn't really plan on coming back, but somewhere deep down I knew that I could never just walk away from all of the work I've done so far.

So, I sat down in front of my laptop on a crisp Autumn morning and booted up Netbeans and loaded in the Skirmish source -- all 18,000 beautiful lines of it. After blowing the dust off a few function calls, I brought up the ToDo List and looked at what all the fuss was that convinced me to cease work on it back in July. The list felt a little spotty, and had entries like:

  • Props 'corrected' by server not always setting the correct rotation
  • Props moved around due to explosions don't seem to be sync'ing across to clients properly
  • Explosions on remote players will (remotely only) show their inventory items knocked out of their inventory
  • Projectile rotation not accurate across server->client when firing
  • Having multiple events in a player's firing queue overwrite the last-inaccuracy of the Firearm and cause a stream of perfectly-accurate projectiles
  • Projectiles are not entirely accurate when the remote player has a non-zero velocity
  • Empty weapons ocassionally dropped from a non-host player with -1 ammo
  • Ammo clips displaying random values before being destroyed (after consumed)
  • Client->client firearm uses not passing along inaccuracy-/use-info (seeing 0-inaccuracy)
  • Grenades not activating properly when clients see another player throw


They're written in a small font intentionally, since it's not really important what the bugs were, in particular. The important thing, and the lesson that I've taken away from it all is: think, and be patient.

I'm sure that coming back after a few months and having a clear head and a fresh mind about things has been a huge contributor in getting these bugs fixed, but the main thing I learned was that getting worked out of shape by a bunch of hard-to-track bugs can be avoided. Taking it all in at once can be very overwhelming, but examining each of the problems one by one in a piecewise manner keeps things manageable. Not only that, but having the patience to go slowly through the code and just rationally think about what's going on does wonders. Heck, half of the above bugs were solved just by putting hand-to-chin and plain thinking about it. Patience really is the key.

In the end, I was making a lot of silly mistakes and assumptions about how the network synchronization model that I implemented worked, and found a large hole in it that explained why a handful of the problems that I was having occurred. Most of you wouldn't find it interesting, but I'd love to talk about it in length to anyone interested. I was certainly amused by it. Heh heh.

What's Next?

Aside from a few more bugs to clean up, the next step is to implement some more key systems that start to turn Skirmish into something resembling a game. In particular, player health, player death, and respawning are on the short list. I feel like I've been promising those for a while, so here's to hoping that things get there this time around.

Comments: 3 - Leave a Comment

Link


All times are ET (US)

"Good night, Monster Land." "Good night, brave warrior."
 
S
M
T
W
T
F
S
1
2
3
4
6
7
8
10
11
12
14
15
16
17
18
19
20
21
23
24
26
27
28
29
31

OPTIONS
Track this Journal

 RSS 

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