June 2009 Archives
06-30-2009 06:54:51
June 30 Update
Today I finally got the round
progression code in (basic stuff, forward only!) and fixed up the
FrameListener situation so there was only one FrameListener for all
moving entities. Other than that I've been planning out a GUI,
which should help me figure out what exactly I need for round
progression.
Tomorrow? I'm going to finish sketching out the GUI, make it, and see where it goes from there. (Screenshot lite today, nothing exciting! Although stay tuned for a movie of the move events once I find some good 3d recording software)
Tomorrow? I'm going to finish sketching out the GUI, make it, and see where it goes from there. (Screenshot lite today, nothing exciting! Although stay tuned for a movie of the move events once I find some good 3d recording software)
Posted by Landon | Permanent Link | Categories: Summer of Code, Thousand Parsec | [ 0 ] 2009/06/30/index.php#e2009-06-30T06_54_51.txt
06-28-2009 10:12:26
June 27,28 Update
Warning! There are no pictures! (Or
video, yet!)
Basically, June 27 consisted of much more research into the problems of putting text up near an entity. However, I haven't been able to get much further on this, other than finding one more way I could work around not being able to set damage text near an entity. The temporary workaround would be using a GUI (to be developed this next week) to display damage text on top of a smaller picture in the info-bar for each ship.
The next day I worked on the move event, which got a lot further. By the end of the day I was able to move a planet and swallow some ships! I was also left tracking down a nasty segfault that seemed to occur for almost inexplicable reasons.
Basically, June 27 consisted of much more research into the problems of putting text up near an entity. However, I haven't been able to get much further on this, other than finding one more way I could work around not being able to set damage text near an entity. The temporary workaround would be using a GUI (to be developed this next week) to display damage text on top of a smaller picture in the info-bar for each ship.
The next day I worked on the move event, which got a lot further. By the end of the day I was able to move a planet and swallow some ships! I was also left tracking down a nasty segfault that seemed to occur for almost inexplicable reasons.
Posted by Landon | Permanent Link | Categories: Summer of Code, Thousand Parsec | [ 0 ] 2009/06/28/index.php#e2009-06-28T10_12_26.txt
06-26-2009 07:15:34
June 26 Progress update
Today has been uneventful. I spent
most of the day trying to get a good damage text system set up (you
know, the little floating text ala WoW.) Right now there seem to be
two good solutions to this:
On the other hand ObjectTextDisplay looked promising, but I wouldn't automatically get a floating number, which was fine for now. David Mandelin was kind enough to post his python port of the OTD code on the ogre wiki, so I used that and fixed a few blatant errors. However, it isn't displaying anything at all after I enable it. Perhaps this is one of those Ogre workflow issues I have trouble with :) .
Tomorrow? I want to debug this OTD or see if I can maybe get a basic particle effects thing going without too much hassle.
- Using particle effects
- Using an ObjectTextDisplay
On the other hand ObjectTextDisplay looked promising, but I wouldn't automatically get a floating number, which was fine for now. David Mandelin was kind enough to post his python port of the OTD code on the ogre wiki, so I used that and fixed a few blatant errors. However, it isn't displaying anything at all after I enable it. Perhaps this is one of those Ogre workflow issues I have trouble with :) .
Tomorrow? I want to debug this OTD or see if I can maybe get a basic particle effects thing going without too much hassle.
Posted by Landon | Permanent Link | Categories: Summer of Code, Thousand Parsec | [ 0 ] 2009/06/26/index.php#e2009-06-26T07_15_34.txt
06-25-2009 02:40:37
June 25 Progress Update
Today I was able to finish the bare
bones for two events, Fire and Death. The fire event for now is
just lasers, which are implemented with a BillboardChain. (
pictures ship to
planet, ship to
ship)
I also discussed improevements to this event code with mithro:
The other event I finished tonight was the death event, which for right now is very simple. It just turns the SceneNode containing the Entity invisible. The major improvement on the way for this is adding a debris field afterwards (right now it looks kind of sparse) and creating a death animation for planets as well as ships. As inspiration, mithro pointed out a few clips from scifi shows.
Tomorrow's goal? I'd like to get the damage event done and the move event started so I can spend friday catching up on the other event TODOs.
I also discussed improevements to this event code with mithro:
- Shield and hit animations
- Tapering the laser when shot at a planet
The other event I finished tonight was the death event, which for right now is very simple. It just turns the SceneNode containing the Entity invisible. The major improvement on the way for this is adding a debris field afterwards (right now it looks kind of sparse) and creating a death animation for planets as well as ships. As inspiration, mithro pointed out a few clips from scifi shows.
Tomorrow's goal? I'd like to get the damage event done and the move event started so I can spend friday catching up on the other event TODOs.
Posted by Landon | Permanent Link | Categories: Summer of Code, Thousand Parsec | [ 0 ] 2009/06/25/index.php#e2009-06-25T02_40_37.txt
06-24-2009 05:48:01
June 24 Update
Today I've been working on getting
the fire_event stub filled out. I ran across one Ogre user's code
for creating Star Trek-like phasers, so I turned
that into python. Several hours later I finished fixing bugs in my
port of his laser code that kept it from working at all only to
fnid that for some reason it moved the attacker to the right every
time the fire method on the laser was called. After I wake up I'm
going to see if this can't be better done with a Billboard or
BillboardChains (which have very little documentation other than
the API material >.< )
Posted by Landon | Permanent Link | Categories: Summer of Code, Thousand Parsec | [ 0 ] 2009/06/24/index.php#e2009-06-24T05_48_01.txt
06-23-2009 00:18:27
Week of June 14 Progress Update
This week was pretty uneventful in
every way, shape, and form. I initially had the idea to make a
function generator and then attach the functions to Entity objects
after they were created (not my most brilliant moment). However, it
turns out that Entity objects lose all of their attributse when you
put them into the SceneNode. The SceneNode keeps them
however.
What I began implementing at the end of the week was a Participant class that wraps Entity. I haven't tested it yet, but I'm pretty sure it should give me the results I'm looking for.
WRT midterm goals, I would like have a few basic events done this next week: Fire, Damage, and Death (Log is done already and I'm not yet sure how to work out Move in 3D.) After this I want to get round progression up, which should be simple enough since I can just loop through event lists and call the appropriate methods on appropriate Participants. It would also be great to have a GUI for round progression, but that will have to wait until I get the underlying bits worked out (nothing ever seems to take near the order of magnitude of time that I imagine it will!)
What I began implementing at the end of the week was a Participant class that wraps Entity. I haven't tested it yet, but I'm pretty sure it should give me the results I'm looking for.
WRT midterm goals, I would like have a few basic events done this next week: Fire, Damage, and Death (Log is done already and I'm not yet sure how to work out Move in 3D.) After this I want to get round progression up, which should be simple enough since I can just loop through event lists and call the appropriate methods on appropriate Participants. It would also be great to have a GUI for round progression, but that will have to wait until I get the underlying bits worked out (nothing ever seems to take near the order of magnitude of time that I imagine it will!)
Posted by Landon | Permanent Link | Categories: Summer of Code, Thousand Parsec | [ 0 ] 2009/06/23/index.php#e2009-06-23T00_18_27.txt
06-13-2009 03:19:33
June 13 Update
Finally moved into the house, have
internet, and they're almost done working on it! That's the real
life update, but for Thousand Parsec I've been working on the
battleviewer, which is now sporting two new classes: BattleManager
and RoundManager.
BattleManager takes the place of TestBattle, with some extra functionality to keep the battle progressing (or regressing!) For the most part though, it maintains a list of RoundManagers.
The RoundManager itself contains a list of BattleScenes, which can be called up when needed via the next()/prev() methods in RoundManager.
This upcoming week I'm going to be finishing up these classes so a battle will be able to progrses smoothly between all event scenes as well as the important bit, actually having event specific scenes other than the initial scene where all the battleships and scouts and frigates (and planets) are just staring at each other.
While my mind is on the topic, some elaboration on how BattleManager keeps the battle rolling. Right now it checks for the next/prev flags on the current scene (this is because each scene handles gui events, probably a better way to go about this, but it hasn't popped into my mind yet.) If it catches one of these flags it calls its own respective method which checks the current round for any more scenes to view and if the round is completely over it moves on to the next. The current round/event is tracked via a simple tuple in the BattleManager itself. After all rounds have been expended, that's the battle and the viewer will exit/pass control back to the client (ok, so client integration isn't started yet, but that's the plan eventually.)
BattleManager takes the place of TestBattle, with some extra functionality to keep the battle progressing (or regressing!) For the most part though, it maintains a list of RoundManagers.
The RoundManager itself contains a list of BattleScenes, which can be called up when needed via the next()/prev() methods in RoundManager.
This upcoming week I'm going to be finishing up these classes so a battle will be able to progrses smoothly between all event scenes as well as the important bit, actually having event specific scenes other than the initial scene where all the battleships and scouts and frigates (and planets) are just staring at each other.
While my mind is on the topic, some elaboration on how BattleManager keeps the battle rolling. Right now it checks for the next/prev flags on the current scene (this is because each scene handles gui events, probably a better way to go about this, but it hasn't popped into my mind yet.) If it catches one of these flags it calls its own respective method which checks the current round for any more scenes to view and if the round is completely over it moves on to the next. The current round/event is tracked via a simple tuple in the BattleManager itself. After all rounds have been expended, that's the battle and the viewer will exit/pass control back to the client (ok, so client integration isn't started yet, but that's the plan eventually.)
Posted by Landon | Permanent Link | Categories: Summer of Code, Thousand Parsec | [ 0 ] 2009/06/13/index.php#e2009-06-13T03_19_33.txt