Closed GoogleCodeExporter closed 9 years ago
Dan ... I am not familiar enough with the code base understand to what you are
referring based on the brief description below. I do know that the former team
optimized drawing using a portal-type system. That is, they would not draw
(i.e. they would cull from the scene graph) objects in a room unless the player
was in the same room as the objects. In the old game you can see this kind of
behavior when standing in a doorway. Looking through the doorway, the room
would appear empty, then once you moved through the doorway, objects would
immediately become visible.
As far as the locking was concerned, I'm not familiar with that feature. I
know that Aaron Ramsey tried to optimize drawing using shared mesh nodes, but I
am not familiar with a locking/unlocking strategy.
v/r
Dr Shomper
Status: Started
Owner: DanielTJ...@gmail.com
CC: calebmay...@gmail.com, cjbus...@gmail.com, kshom...@cedarville.edu
Labels: Type-Defect Priority-High Milestone-Release2.0 Performance Usability
New issue 17 by DanielTJ...@gmail.com: Speed Optimization
http://code.google.com/p/burriswarehouse/issues/detail?id=17
The problem that I had predicted with loading the thousands of new objects
into the warehouse as sprung. The game runs incredibly slower now and
needs some optimization things.
I noticed some code as I was reading up on the old versions of Pallet,
StackedPallet, and there Rack code that they were using a feature of
locking when they done loading the object. They would also unlock the
object when they needed to do something with it (like move it).
I avoided using the locking and unlocking functions because it didn't work
exactly when I tried, and wasn't sure what it did. What I do know is from
the comments last year, they say it is a speed optimization. My question
is how, and how do you use it?
Secondly, I noticed and began using a room manager that the previous team
had worked on. I think this is a great idea for speed optimization.
However, it doesn't entirely work like I thought it may have worked. I
believe this is just because it was a feature that was not finished.
However, I do not know, and it may have been something I broke. Dr.
Shomper, do you know how this feature ended? I would like to expound on
this feature because it has great potential.
I will own this issue, but could use some help possibly from either of my
team members or Dr. Shomper. This problem needs to be taken care of, or
the game may die of an overdose heart-attack. If other solutions are
possible, present them here.
Original comment by kashom...@gmail.com
on 28 Feb 2011 at 3:40
I see the behavior happening with the room manager. It is just not consistent.
I was wondering if the consistency was something that had not been finished by
the previous team or was a problem I had created.
I have seen the shared meshes and know roughly how that works. This only
speeds up load time I believe.
I believe what locking and unlocking does is some optimization (maybe since it
is "locked", the computer knows that it can be moved or something, so it can
render it faster), but I didn't know how this worked, so I was wondering if
anyone knew what its purpose was, or if it was actually worth trying to get
working with my new stuff.
Original comment by DanielTJ...@gmail.com
on 28 Feb 2011 at 3:46
I think your thoughts on the points below (shared meshes and locking) are
accurate. Regarding portal culling with the room manager, I was not aware of
limitations. Perhaps you can determine this from the maintenance manual which
I just sent. If there were limitation, they should be referenced there.
Comment #2 on issue 17 by DanielTJ...@gmail.com: Speed Optimization
http://code.google.com/p/burriswarehouse/issues/detail?id=17
I see the behavior happening with the room manager. It is just not
consistent. I was wondering if the consistency was something that had not
been finished by the previous team or was a problem I had created.
I have seen the shared meshes and know roughly how that works. This only
speeds up load time I believe.
I believe what locking and unlocking does is some optimization (maybe since
it is "locked", the computer knows that it can be moved or something, so it
can render it faster), but I didn't know how this worked, so I was
wondering if anyone knew what its purpose was, or if it was actually worth
trying to get working with my new stuff.
Original comment by kashom...@gmail.com
on 28 Feb 2011 at 5:11
In the VirtualWarehouse class, there's a boolean member called
optimizeVisibleRooms. The javadoc for that member is the following:
/**
* Optimizes the displaying of rooms to increase fps. When false, all rooms
* of the warehouse are connected to the scene graph. When true, only the
* room occupied by the player and nearby rooms specified in the rooms XML
* file are connected.
*/
Does the fact that it's looking for the rooms XML and the fact that we're now
pulling models and everything in from the database have anything to do with the
portal culling issue?
Original comment by cjbus...@gmail.com
on 28 Feb 2011 at 6:44
Threaded loading? We could only load the start up rooms and then in the
background load the rest of the warehouse.
Original comment by DanielTJ...@gmail.com
on 28 Feb 2011 at 7:50
Also, we did this today during the demo. But the whole room manager seems to
be working now based on killing the visible room part of our grammar. What we
need now is a plane with the texture representing what the room is about to
look like.
Original comment by DanielTJ...@gmail.com
on 28 Feb 2011 at 8:11
From my quick research, the locking and unlocking does not work within child
classes of a node. The team before us did not lock and unlock children.
Therefore, I am going to leave this part of the code as is and assume this is
optimized enough.
I am still going to look into the plane resolution and threaded loading.
Original comment by DanielTJ...@gmail.com
on 1 Mar 2011 at 3:00
Original comment by cjbus...@gmail.com
on 21 Mar 2011 at 7:15
Original issue reported on code.google.com by
DanielTJ...@gmail.com
on 28 Feb 2011 at 3:22