Intel sponsors gamedev.net search:   
Metaphorical Journeys of HappenstanceBy Ravuya      
Great Games Experiment

Sunday, September 28, 2008
A lot of under the hood improvements that should make for faster development soon. Big things that have changed:
  • You can now use the inventory panel. I've swapped the mouse buttons from Glow; you now left click on items to use them and right click on them to drop them.
  • You can drop items on the ground and see them.
  • Some further refinement of sprites and animation sets. I'm digging myself out of a dumb implementation.
  • Projectiles have textures.
  • Fixed a bug where you could still "click through" the UI and cause the gun to fire.
  • Made some more components serializable.
Overall, I think that's not bad for a few hours of work. Maybe I'll work on the editor later, or possibly serialization.

Comments: 0 - Leave a Comment

Link



Wednesday, September 24, 2008
A few improvements will show up in this screenshot if you've been paying attention to previous entries:
Those improvements are:
  • UI relative positioning. I finally got around to implementing a few modes (centre, leftmost, rightmost, topmost, bottommost) and set up the UI XML to reflect these changes:
    <HudControl identifier="rootPane">
    	<InventoryPanel identifier="inv" height="0.22" width="0.2" font="data/fonts/Lucida" equipBadgePath="data/sprites/equipTag.png" relativePosition="FromBottomLeft" x="2.0"/>
    	<HealthEnergyIndicator identifier="health" height="0.22" width="0.2" font="data/fonts/Lucida" relativePosition="FromBottomLeft"/>
    	<CurrentWeaponIndicator identifier="gun" x="1.0" height="0.22" width="0.2" font="data/fonts/Lucida" relativePosition="FromBottomLeft"/>
    </HudControl>
    
    
    
    
  • HUD ammo indicator. This should be self-explanatory.
  • Weapon muzzle tracking. I finally got around to doing the math on this one, and it turns out that the implementation in Glow was actually slightly faulty. Anyway, you can now no longer fire when your gun is pointing through walls, and bullets come out of the right part of the gun. Bullets, of course, are still a meter wide, but that's no big deal.


In unrelated news, I got my 16GB iPod nano today. It's remarkably small, and there's a lot of fascinating engineering that went into it. I also beat Crysis Warhead, which was actually kind of underwhelming (but fun). I'm still stuck on Clear Sky until the patch comes out.

Comments: 2 - Leave a Comment

Link



Friday, September 19, 2008
I've been working a bit on Afterglow -- implementing some functionality into some of the core components that cleaned up a ton of code. Additionally, actor serialization works now, bullets fly (and smack into walls) and some other stuff is going on. It's just not very visible in screenshots.

My wish list for the weekend is to get relative UI positioning working, which is not that hard -- just a series of static methods that I have to deal with when the HUD context positions its child elements. After that, who knows? I would like to start implementing some of the entities (conversation, etc) so I can start stringing together levels.

I definitely have to fix up the level editor so I can start actually making proper levels -- the two-box test level isn't very visually fascinating. I've also wanted to get into adding visual wank to make Afterglow look more distinctive from Glow. I have to pace myself!

Schoolwork is going fine: I just paid my tuition (ouch). The first batch of assignments are due soon but it hasn't been too big of an issue so far.
Til next time, Ravuyanauts.

Comments: 0 - Leave a Comment

Link



Thursday, September 11, 2008
Today, two big improvements:
  • Projectiles spawn (but they are 8 meters wide)
  • Most of the components are serializable now (but animation won't deserialize properly because of my multi-directional design -- I broke my Novarunner rule of only designing depth-wise to make serialization easier)
I'll have to spend some time revamping several of the components to make serialization a lot better.

Fun feature: In Glow, I determined the stackability of an item based on its name. This means if you picked up two guns both named "Shotgun" I just combined their ammunition and 'threw away' the second gun item. In Afterglow, you can modify weapons, which broke this system as it was difficult to tell which gun was "better" and therefore the one to keep. Afterglow's weapon modifications are implemented as stackable, serializable 'buffs' similar to the player character's, and they use non-uniform ammo, which means that if you pick up a gun that's not name-equal (modified and unique guns have a custom name such as Vampire Shotgun or Fire-Breathing Laser-Sighted Bonesaw), you will have to unload it and then load the ammunition into the gun you want. Then, toss the old gun at your leisure.

If that last paragraph didn't make any sense, let me know and I'll draw a diagram or something. It's late.

Tomorrow I might say something about my electronics class, we'll see. Right now I'm tired and going to bed.

Comments: 2 - Leave a Comment

Link



Wednesday, September 10, 2008
Last night, I implemented a bit more infrastructure for firing guns, and also added a little ammo-meter UI element and a handful of other bits and pieces

My current plan is to spend time improving the UI system so I can make a workable-looking HUD and then actually make projectiles launch. Dunno how long that will take, though, and tonight's class is laaaate.

I also want to build a test level and take a video eventually. My copy of Snapz Pro X is already gathering dust.

School seems to revitalize my motivation; perhaps it's because I'm not supposed to be writing code all day.

Also, the local race track closed as of this morning (I suspect the LHC had something to do with it) and now I'm getting invites to autocross events in random parkades around town. Somehow I doubt that Vin Diesel's next film will feature illegal impromptu races of FWD economy cars at low speed around plastic traffic cones. I actually have a lot more to say about this, but I'll keep it for the comments section if someone local wants to pop by and discuss it.

Comments: 2 - Leave a Comment

Link



Sunday, September 7, 2008
Yes, holding weapons in hand draws properly now. It's still done in immediate mode, which I'll have to resolve.
It almost looks like a real game now. Now: to prevent clipping of the gun through the wall. That could be harder, so I might not bother with it. It's a videogame!

Comments: 3 - Leave a Comment

Link



Wednesday, September 3, 2008
Remember when I said previously that my system of message passing and multiple dispatch was nice and clean? Well, see what I ginned up in about two minutes (including all the boilerplate code for derivation):
It was pretty easy, although I will obviously have to go back and clean this up a bit.

Other notable things: weapons are equipping and unequipping properly but I still need to figure out how to clean up showing them "in hand." It's harder than I thought it would be.

Comments: 0 - Leave a Comment

Link



Monday, September 1, 2008
Did a bit of work on the inventory today and over the past couple days. I'll give you a screenshot first and then go into details about how I implemented it.
Okay, so you can see an item up in the corner there.

How does this work, you ask? Well, we make the HUD manager subscribe to the player's "changed" event. Then we have the HUD control (the inventory) subscribe to the HUD manager's "player changed" event. Then we just cache the inventory and go from there. This could all be done in an old-school way like Glow, where the HUD was reaching directly into the game entities, but I expect this way to be nicer and cleaner.

Here's an ASCII diagram:
You ---> HUD Manager ---> HUD Controls (inventory, health bar, etc)
Additionally, now that this interface is in there, I can have other controls subscribe to player data -- for instance, health bars, debugging information, etc -- which I can turn on and off from the UI XML. That's pretty slick. Hard to believe I came up with it.

On top of that, since the event system is multiple dispatch, other things can subscribe to the player as well. Not sure what those could be, yet, but it seems like it might be useful for multiplayer.

The only real problem with the event handling system so far is cleaning up references -- if a listener gets freed before the dispatcher gets freed (since the dispatcher retains references to the listener) it will crash. I'm thinking of taking boost's weak pointer implementation and slapping it in there so at least I have a safety blanket. Problems relating to this will show up later on, so be sure to kick me in the ass if I post a whiny journal entry saying that was the cause of a bug in a few months.

Next: Making inventory actually do stuff.

Also: Today, Don LaFontaine died. He was awesome. You should go out and watch some movie trailers now. As well as this.

Comments: 1 - Leave a Comment

Link


All times are ET (US)

Most of this crap is copyright 2004-2009 Ravuya.
 
S
M
T
W
T
F
S
2
4
5
6
8
9
12
13
14
15
16
17
18
20
21
22
23
25
26
27
29

OPTIONS
Track this Journal

 RSS 

ARCHIVES
November, 2009
October, 2009
September, 2009
August, 2009
July, 2009
June, 2009
May, 2009
April, 2009
March, 2009
February, 2009
January, 2009
December, 2008
November, 2008
October, 2008
September, 2008
August, 2008
July, 2008
June, 2008
May, 2008
April, 2008
March, 2008
February, 2008
January, 2008
December, 2007
November, 2007
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
November, 2005
October, 2005
September, 2005
August, 2005
July, 2005
June, 2005
May, 2005
April, 2005
March, 2005
February, 2005