Saturday, April 5, 2008

SVN upto r63: New Stuff

Well, updates have been happening yet we have been slow to post here. Currently I have particles working. To use the particle effect, go to the arena and use the 'e' key. I have, slowly, but surely been working on getting physics up, hopefully by next week some will be working. Also, testarena and vc.h have finally been removed from the repo. Enjoy!

Keep an eye out, progress is being made,
Justin

P.S.
Something I left out:
The options menu now allows you to go back to the main menu with a Go Back button, and you also have an option in there finally which is the availability to turn on and off the background sound.

Tuesday, March 11, 2008

SVN r51/r52/r54: The Main (Joystick) Event

Okay. This one's sort of a doozy, so bear with me.

Up until r51, there was a functional difference between joystick and keyboard events. Joystick posted events to Player, which crafted Irrlicht events as necessary and made the system run. This would be all well and fine, if we wanted to use gamepads as keyboards. However, our goal is quite the opposite: We want the gamepads to be our main input devices, with the keyboard as a fallback and debugging tool.

So, here's the basics. Player should be a lightweight class. Joystick will generate events as necessary, using StateManager to determine when keyboard events should be synthesized in addition to joystick events. The struct JoystickEvent will be used to pass around joystick events. Joystick and JoystickManager will become smarter, and Player will become dumber. This is the plan.

r51 and r52 put down stubs and the initial code move from Player to Joystick. r54 simplifies the code, since being in Joystick means that less Joystick-specific information needs to be passed around.

TODO: Test this stuff. I haven't been able to test it yet. Also test OpenAL on Windows and get Irrlicht to use vsync on Linux.

~ C.

SVN r50/r53: VC2005 Support

r52: VC2005 finally works! It takes a load of work to setup, but I have written a readme that explains how to do all of it.

r50: Simple clean up.

Sunday, March 9, 2008

SVN r49: No More Duplicates

In rev48 when you left the arena and re-entered the model form the previous arena was still being drawn, this revision fixes that problem thankfully. And all it took was a simple little line node->remove(), but of course I had to spend forever figuring that out. I also did some code clean up as well.

Anyway, small fix, but very worth while.

Keep an eye out, progress is being made,
Justin

SVN r48: Some Player maturity and bug fixes.

The player class is now creates and handles the models for itself rather than the Arena creating them. The arena is able to handle up to four players now, but since there are input limitations, only one is created for now. With the advancement in the Player class there is no reason now for the PlayerManager class and it's construction was removed from opensmash.cpp.

I also fixed a bug in the console that caused opensmash to crash when you backspaced too far. The bug was a string shrinking smaller than size 0.

Keep an eye out, progress is being made,
Justin

SVN r47: Cool new stuff.

R41 was my commit, but sadly, it was just code that I had slightly touched on and was too lazy to go back and try to remember everything about what I was doing.


Now there is r47. This is an excellent and much needed commit. I have fully obsoleted ArenaTest, made Arena work, but a major bug exists that is stumping me right now.

ArenaTest was the old way that the arena was loaded. There were many issues with it, mainly everything was hard coded; not very flexible or pretty.

Arena, oh Arena, thankfully it has come. I have been sitting on this idea for FAR too long. Arena now loads maps from an xml file. When we have more mature item and player classes the features of this new Arena class will extend heavily, look forward to that in the (hopefully) near future.

Sadly though, there currently exists a bug where the loaded player does not get deleted when you leave the Arena. When you leave and re-enter the Arena, the previous player(s) is still there and a new one is drawn.

Keep an eye out, progress is being made,
Justin

SVN r45/r46: Saturday Night Commit Fever

Hmm. I seem to be making a lot of broken-up, patch-style commits. Must be from working on git-based projects. At any rate, it's nice that the code is getting mature enough that variated commits aren't breaking the tree.

So, r45 brings Character Select up to feature parity with Menu. It's got FPS in the corner, and a Console hook, so the console displays properly. I'm considering making a global setting "show_fps" to control whether there's FPS in the corner for all states that support it, and also a global macro for making all drawing classes automagically have the Console included.

r46 makes the Console actually display in Character Select.

For some reason, Character Select both runs faster and is less responsive for me. I need to figure out why.

Talking about the future now. I need to find out why Irrlicht doesn't respect vsync, and also where the joystick mangling code in Player should go.

TODO: Settings-ify Character Select and Menu.

~ C.