mirror of
https://github.com/overte-org/overte.git
synced 2025-07-16 14:37:02 +02:00
updated to do list
This commit is contained in:
parent
eab9f391ee
commit
c83cb6386a
1 changed files with 75 additions and 77 deletions
|
@ -1,51 +1,40 @@
|
||||||
// REQUIRED:
|
// REQUIRED:
|
||||||
|
|
||||||
|
|
||||||
1) Lifetime, Age, Created
|
|
||||||
* support created timestamp in all entities
|
|
||||||
* handle old model files with no created time stamp
|
|
||||||
* add age, ageAsText properties for scripting
|
|
||||||
|
|
||||||
* make sure that entities that expire are correctly deleted safely
|
|
||||||
* make sure that deleting a mortal but not yet dead entity works
|
|
||||||
|
|
||||||
|
1) Crash in delete model - deleting the geometry...
|
||||||
* make sure that newly "viewed" entities are correctly added to our simulation lists: moral, changing, moving
|
|
||||||
|
|
||||||
|
|
||||||
2) Crash in delete model - deleting the geometry...
|
|
||||||
I think this is a cross threading issue... delete Model needs to be on same thread that created it.
|
I think this is a cross threading issue... delete Model needs to be on same thread that created it.
|
||||||
|
|
||||||
-- change Model* RenderableModelEntityItem::getModel(); to call a new method on EntityTreeRenderer::newModel();
|
-- change Model* RenderableModelEntityItem::getModel(); to call a new method on EntityTreeRenderer::newModel();
|
||||||
-- change RenderableModelEntityItem::~RenderableModelEntityItem() to call a new method on EntityTreeRenderer::deleteModel(Model*);
|
-- change RenderableModelEntityItem::~RenderableModelEntityItem() to call a new method on EntityTreeRenderer::deleteModel(Model*);
|
||||||
|
|
||||||
3) Look into why non-changed octree cells are being resent when editing an entity
|
|
||||||
|
2) Moving models don't always move.. I think this relates to the render optimization...
|
||||||
|
need to make sure we re-simulate when a model is moving...
|
||||||
|
|
||||||
|
3) if velocity sends a model out of the domain - delete it
|
||||||
|
|
||||||
7) Test file save load for case where two siblings have more than MTU amount of data. I wonder if the fact that file save
|
4) Test file save load for case where two siblings have more than MTU amount of data. I wonder if the fact that file save
|
||||||
doesn't include the extra exists bits will break something.
|
doesn't include the extra exists bits will break something.
|
||||||
|
|
||||||
14) Make sure LOD logic honors the LOD settings for entities in "spanners/parent" cells.
|
5) Make sure LOD logic honors the LOD settings for entities in "spanners/parent" cells.
|
||||||
|
|
||||||
|
6) Don't allow models to be "edited" to be outside of domain. clamp them to the domain.
|
||||||
3) Don't allow models to be "edited" to be outside of domain. clamp them to the domain.
|
|
||||||
|
|
||||||
4) if velocity sends a model out of the domain - delete it
|
7) random crashes on moving (I think things going out of bounds???)
|
||||||
|
|
||||||
3) random crashes on moving (I think things going out of bounds???)
|
8) some jutter with moving entities
|
||||||
|
|
||||||
4) some jutter with moving entities
|
|
||||||
|
|
||||||
5) test animation again...
|
9) test animation again...
|
||||||
5b) animations not always working?????
|
|
||||||
|
|
||||||
6) clear all entities when changing domains?
|
10) What happens if the edit properties don't fit in a single message MTU???
|
||||||
|
|
||||||
11) What happens if the edit properties don't fit in a single message MTU???
|
|
||||||
|
|
||||||
13) EntityItemProperties::decodeEntityEditPacket() doesn't include PROP_SCRIPT
|
11) EntityItemProperties::decodeEntityEditPacket() doesn't include PROP_SCRIPT
|
||||||
|
|
||||||
|
12) quickly do some edits... then change domains... watch the entities continue to exist in new domain and move around.
|
||||||
|
|
||||||
|
13) Look into why non-changed octree cells are being resent when editing an entity
|
||||||
|
|
||||||
15) quickly do some edits... then change domains... watch the entities continue to exist in new domain and move around.
|
|
||||||
|
|
||||||
|
|
||||||
// NICE TO DO:
|
// NICE TO DO:
|
||||||
|
@ -167,46 +156,46 @@
|
||||||
===============
|
===============
|
||||||
|
|
||||||
|
|
||||||
// SOLVED - 5) crash in client assert on addEntity() assetting that not viewing???
|
// SOLVED - 1) crash in client assert on addEntity() assetting that not viewing???
|
||||||
// SOLVED - 7) when changing properties that include position OR radius, but not both the update logic gets confused.
|
// SOLVED - 2) when changing properties that include position OR radius, but not both the update logic gets confused.
|
||||||
// SOLVED - 8) in assignEntityID() we assert if the containing element exists... this is too harsh, what if someone sends us a bad packet
|
// SOLVED - 3) in assignEntityID() we assert if the containing element exists... this is too harsh, what if someone sends us a bad packet
|
||||||
// -- fixed this by only storing assigned IDs in the server's ID base
|
// -- fixed this by only storing assigned IDs in the server's ID base
|
||||||
// SOLVED - 9) problem here... looks like the client got confused and sent us an unknown edit packet with a creator token id we already had...
|
// SOLVED - 4) problem here... looks like the client got confused and sent us an unknown edit packet with a creator token id we already had...
|
||||||
// we probably can't keep the creator tokens in our server tree or else we'll collide between multiple editors!!
|
// we probably can't keep the creator tokens in our server tree or else we'll collide between multiple editors!!
|
||||||
// -- fixed this by only storing assigned IDs in the server's ID base
|
// -- fixed this by only storing assigned IDs in the server's ID base
|
||||||
// SOLVED - 15) fix all places where "Voxels" turns off some features of models/entities
|
// SOLVED - 5) fix all places where "Voxels" turns off some features of models/entities
|
||||||
// SOLVED - 16) duplicate copies of entity references in the elements... this appears to be caused when "viewing" while editing...
|
// SOLVED - 6) duplicate copies of entity references in the elements... this appears to be caused when "viewing" while editing...
|
||||||
// SOLVED - 17) Handle the newer on client vs changed on server problem properly for entities
|
// SOLVED - 7) Handle the newer on client vs changed on server problem properly for entities
|
||||||
// SOLVED - 20) Verified that multiple machines viewing real time edits works - fixed bugs in lastEdited.
|
// SOLVED - 8) Verified that multiple machines viewing real time edits works - fixed bugs in lastEdited.
|
||||||
// SOLVED - b) entities have same ID? unknown??? - wasn't setting ID on read from buffer...
|
// SOLVED - 9) entities have same ID? unknown??? - wasn't setting ID on read from buffer...
|
||||||
// SOLVED - a) crash in entity server on add entity?
|
// SOLVED - 10) crash in entity server on add entity?
|
||||||
// SOLVED - 8) addOrUpdateEntity()
|
// SOLVED - 11) addOrUpdateEntity()
|
||||||
// SOLVED - B) enable animation in model class
|
// SOLVED - 12) enable animation in model class
|
||||||
// SOLVED - 18) change ID's to UUIDS????
|
// SOLVED - 13) change ID's to UUIDS????
|
||||||
// SOLVED - L) sometimes assert/crashes in server about containing element? I think we're adding entityIDs with UNKNOWN_ID to our maps
|
// SOLVED - 14) sometimes assert/crashes in server about containing element? I think we're adding entityIDs with UNKNOWN_ID to our maps
|
||||||
// this crash is definitely caused by starting a server with an existing models file which has ID's already in use...
|
// this crash is definitely caused by starting a server with an existing models file which has ID's already in use...
|
||||||
// SOLVED - M) change EntityTree::handleAddEntityResponse() to not scan entire tree... it can use the containing element stuff!!!
|
// SOLVED - 15) change EntityTree::handleAddEntityResponse() to not scan entire tree... it can use the containing element stuff!!!
|
||||||
// SOLVED - F) TODO: do we need to handle "killing" viewed entities as well???
|
// SOLVED - 16) TODO: do we need to handle "killing" viewed entities as well???
|
||||||
// void EntityTreeElement::updateEntityItemID(const EntityItemID& creatorTokenEntityID, const EntityItemID& knownIDEntityID)...
|
// void EntityTreeElement::updateEntityItemID(const EntityItemID& creatorTokenEntityID, const EntityItemID& knownIDEntityID)...
|
||||||
// SOLVED - R) move to EntityItemProperties
|
// SOLVED - 17) move to EntityItemProperties
|
||||||
// EntityItem::encodeEntityEditMessageDetails()
|
// EntityItem::encodeEntityEditMessageDetails()
|
||||||
// EntityTypes::decodeEntityEditPacket()
|
// EntityTypes::decodeEntityEditPacket()
|
||||||
// SOLVED - Aa) handle sublass appendEntityData() and readEntityItemIDFromBuffer() similar to how we
|
// SOLVED - 18) handle sublass appendEntityData() and readEntityItemIDFromBuffer() similar to how we
|
||||||
// handle setProperty()/getProperty() so that each subclass doesn't have to completely reimplement
|
// handle setProperty()/getProperty() so that each subclass doesn't have to completely reimplement
|
||||||
// the entire base class data stream...
|
// the entire base class data stream...
|
||||||
// SOLVED - Ab) implement support for requestedProperties in appendEntityData() to be virtual to handle various subclasses
|
// SOLVED - 19) implement support for requestedProperties in appendEntityData() to be virtual to handle various subclasses
|
||||||
// SOLVED - A) add velocity, gravity, damping to entity base class
|
// SOLVED - 20) add velocity, gravity, damping to entity base class
|
||||||
// SOLVED - 2) EntityTree::update()/EntityTreeElement::update()... velocity changes...
|
// SOLVED - 21) EntityTree::update()/EntityTreeElement::update()... velocity changes...
|
||||||
// SOLVED - C) verify "update" works
|
// SOLVED - 22) verify "update" works
|
||||||
// SOLVED - V) crash/assert when you move an entity out of domain bounds???
|
// SOLVED - 23) crash/assert when you move an entity out of domain bounds???
|
||||||
// SOLVED - U) UNEXPECTED -- OctreeElement::getMyChildContaining() cubeScale=[0.000012] > ourScale=[0.000004]
|
// SOLVED - 24) UNEXPECTED -- OctreeElement::getMyChildContaining() cubeScale=[0.000012] > ourScale=[0.000004]
|
||||||
// SOLVED - 19) what about??? rememberDirtyCube()... -- removed it... not needed
|
// SOLVED - 25) what about??? rememberDirtyCube()... -- removed it... not needed
|
||||||
// SOLVED - zz) what about editing/edit messages... moved to EntityItemProperties...
|
// SOLVED - 26) what about editing/edit messages... moved to EntityItemProperties...
|
||||||
// EntityItem::encodeEntityEditMessageDetails() -- this could be a member of EntityItemProperties
|
// EntityItem::encodeEntityEditMessageDetails() -- this could be a member of EntityItemProperties
|
||||||
// EntityTypes::decodeEntityEditPacket() -- this could be a member of EntityItemProperties
|
// EntityTypes::decodeEntityEditPacket() -- this could be a member of EntityItemProperties
|
||||||
// SOLVED - 12) change delete to use delete messages instead of shouldBeDeleted property
|
// SOLVED - 27) change delete to use delete messages instead of shouldBeDeleted property
|
||||||
// SOLVED - 12a) make sure server is deleting items??
|
// SOLVED - 27a) make sure server is deleting items??
|
||||||
// SOLVED - 12b) Use the delete message instead of shouldDelete property
|
// SOLVED - 27b) Use the delete message instead of shouldDelete property
|
||||||
// SOLVED -- problem 1:
|
// SOLVED -- problem 1:
|
||||||
// it appears as if on a second pass on the element a DONT_FIT case occurs and this confuses things...
|
// it appears as if on a second pass on the element a DONT_FIT case occurs and this confuses things...
|
||||||
// SOLVED -- problem 2:
|
// SOLVED -- problem 2:
|
||||||
|
@ -214,15 +203,15 @@
|
||||||
// to fit and in this case the "extra data" gets confused...
|
// to fit and in this case the "extra data" gets confused...
|
||||||
// maybe remember the extra state before removing it and if it fails, always re-add it
|
// maybe remember the extra state before removing it and if it fails, always re-add it
|
||||||
// maybe add support for "reserving" bytes in the packet
|
// maybe add support for "reserving" bytes in the packet
|
||||||
// SOLVED -- BROKEN File persistence... -- added chunking support in SVO file persistence.
|
// SOLVED -- 28) BROKEN File persistence... -- added chunking support in SVO file persistence.
|
||||||
// SOLVED -- G) why does is the Box entity not drawn in it's bounds
|
// SOLVED -- 29) why does is the Box entity not drawn in it's bounds
|
||||||
// SOLVED -- 0) render performance of models...
|
// SOLVED -- 30) render performance of models...
|
||||||
// SOLVED -- a) make getModel() faster... consider storing the Model* in the actual EntityItem class
|
// SOLVED -- a) make getModel() faster... consider storing the Model* in the actual EntityItem class
|
||||||
// SOLVED -- b) only call simulate when properties change
|
// SOLVED -- b) only call simulate when properties change
|
||||||
// SOLVED -- 1) verify lots of models in single element works
|
// SOLVED -- 31) verify lots of models in single element works
|
||||||
// -- repro case - run editModelsExample.js -- create 10 models in the same octree element
|
// -- repro case - run editModelsExample.js -- create 10 models in the same octree element
|
||||||
// SOLVED -- 6) support sitpoints and referentials....
|
// SOLVED -- 32) support sitpoints and referentials....
|
||||||
// SOLVED -- 7) Referentials -- working as well as master
|
// SOLVED -- 33) Referentials -- working as well as master
|
||||||
// For sitting points and referentials you can kill two birds with one stone.
|
// For sitting points and referentials you can kill two birds with one stone.
|
||||||
// Put this model in world: http://highfidelity-public.s3-us-west-1.amazonaws.com/ozan/theater.fst
|
// Put this model in world: http://highfidelity-public.s3-us-west-1.amazonaws.com/ozan/theater.fst
|
||||||
// Launch sit.js
|
// Launch sit.js
|
||||||
|
@ -230,22 +219,22 @@
|
||||||
// Sit somewhere
|
// Sit somewhere
|
||||||
// Move model with another avatar.
|
// Move model with another avatar.
|
||||||
// Observe first avatar moving.
|
// Observe first avatar moving.
|
||||||
// SOLVED -- 2) verify shadows work
|
// SOLVED -- 34) verify shadows work
|
||||||
// SOLVED -- 9) Handle the ID -> UUID swap in old files to new files - verify old files read correctly
|
// SOLVED -- 35) Handle the ID -> UUID swap in old files to new files - verify old files read correctly
|
||||||
// SOLVED -- 2) Test models -> attachments logic --- TESTED/WORKS
|
// SOLVED -- 36) Test models -> attachments logic --- TESTED/WORKS
|
||||||
// SOLVED -- 1) Import/Export Models - verify it works. /copy/paste??
|
// SOLVED -- 37) Import/Export Models - verify it works. /copy/paste??
|
||||||
// DONE -- 22d) void ModelTree::findModelsInCube(const AACube& cube, QVector<ModelItem*>& foundModels)...
|
// DONE -- 37d) void ModelTree::findModelsInCube(const AACube& cube, QVector<ModelItem*>& foundModels)...
|
||||||
// DONE -- 22e) void ModelTreeElement::getModelsInside(const AACube& box, QVector<ModelItem*>& foundModels)...
|
// DONE -- 37e) void ModelTreeElement::getModelsInside(const AACube& box, QVector<ModelItem*>& foundModels)...
|
||||||
// DONE -- 22f) Application::exportEntities() tested/works
|
// DONE -- 37f) Application::exportEntities() tested/works
|
||||||
// DONE -- 22g) Application::pasteEntities() tested/works
|
// DONE -- 37g) Application::pasteEntities() tested/works
|
||||||
// DONE -- 22c) void ModelTree::sendModels(ModelEditPacketSender* packetSender, float x, float y, float z)....
|
// DONE -- 37c) void ModelTree::sendModels(ModelEditPacketSender* packetSender, float x, float y, float z)....
|
||||||
// bool EntityTree::sendEntitiesOperation(OctreeElement* element, void* extraData) {...
|
// bool EntityTree::sendEntitiesOperation(OctreeElement* element, void* extraData) {...
|
||||||
// RESOLVED -- 22a) void ModelItemProperties::copyFromNewModelItem(const ModelItem& modelItem); // Do we need this? NO!
|
// RESOLVED -- 37a) void ModelItemProperties::copyFromNewModelItem(const ModelItem& modelItem); // Do we need this? NO!
|
||||||
// WORKS AS PRODUCTION -- 22b) Local Entities Overlay - from Local Models Overlay
|
// WORKS AS PRODUCTION -- 37b) Local Entities Overlay - from Local Models Overlay
|
||||||
// Note: there's a bug in production related to the overlay correctly rendering when
|
// Note: there's a bug in production related to the overlay correctly rendering when
|
||||||
// the original (non-translated positions) of the models are out of view. This is a bug
|
// the original (non-translated positions) of the models are out of view. This is a bug
|
||||||
// not introduced byt this PR.
|
// not introduced byt this PR.
|
||||||
// SOLVED -- 8) Make sure EntityItems are deleted...
|
// SOLVED -- 38) Make sure EntityItems are deleted...
|
||||||
// delete all entity items on deletion of the tree?
|
// delete all entity items on deletion of the tree?
|
||||||
// cases:
|
// cases:
|
||||||
// PASSED -- 1) test UI delete entity (on client)
|
// PASSED -- 1) test UI delete entity (on client)
|
||||||
|
@ -257,8 +246,16 @@
|
||||||
// PASSED --- b) shutdown domain server
|
// PASSED --- b) shutdown domain server
|
||||||
// PASSED --- 6) test change domains
|
// PASSED --- 6) test change domains
|
||||||
// SAME AS PRODUCTION - 5) test server shutdown (on client) - models aren't deleted when model server goes away
|
// SAME AS PRODUCTION - 5) test server shutdown (on client) - models aren't deleted when model server goes away
|
||||||
// SOLVED -- 9) EntityTreeRenderer::clearModelsCache() - Model instance cleanup handled in ~RenderableModelEntityItem
|
// SOLVED -- 39) EntityTreeRenderer::clearModelsCache() - Model instance cleanup handled in ~RenderableModelEntityItem
|
||||||
|
// SOLVED -- 40) Lifetime, Age, Created
|
||||||
|
// DONE - * support created timestamp in all entities
|
||||||
|
// DONE - * handle old model files with no created time stamp
|
||||||
|
// DONE - * add age, ageAsText properties for scripting
|
||||||
|
// DONE - * make sure that entities that expire are correctly deleted safely
|
||||||
|
// DONE - * make sure that deleting a mortal but not yet dead entity works
|
||||||
|
// DONE - * make sure that newly "viewed" entities are correctly added to our simulation lists: mortal, changing, moving
|
||||||
|
// SOLVED -- 41) clear all entities when changing domains?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
---------------- properties -----------------
|
---------------- properties -----------------
|
||||||
|
@ -274,6 +271,7 @@ Base properties...
|
||||||
* mass
|
* mass
|
||||||
* glow level
|
* glow level
|
||||||
* lifetime
|
* lifetime
|
||||||
|
* age
|
||||||
|
|
||||||
should these be included for all entities? Light, Models, planes, etc?
|
should these be included for all entities? Light, Models, planes, etc?
|
||||||
* rotational velocity? - wouldn't that be cool to be automatic with no edits
|
* rotational velocity? - wouldn't that be cool to be automatic with no edits
|
||||||
|
|
Loading…
Reference in a new issue