rodrigoholztrattner / packet Goto Github PK
View Code? Open in Web Editor NEWA file manager system for game engines
License: MIT License
A file manager system for game engines
License: MIT License
Make converters handle merging files, this way some packet data can be merged with another one.
By verifying the file data/time this system must be able to detect files that can be automatically merged and others that need manual merge, calling all necessary callbacks.
I must implement some sort of edit mode for resources, the idea that I have in mind is:
I imagine that the best way of updating a resource is swapping it for the new one when the new version is totally ready to be used, this way we can ensure a continuous usage every time.
The title says everything, I must implement a way to generate a resource at runtime using memory info, this is really close to the edit feature.
I must do something If a resource fails to be constructed.
Requesting and releasing an resource instance causes a crash if no update is made between those calls.
Add the necessary functionality to generate a manifesto with all included files and compare this manifesto with another one, returning the differences (files that need to be updated).
Add a way to generate and retrieve an unique ID for each resource created.
Add some sort of continuous integration, maybe with azure pipelines.
To something like PacketTests
instead the generic Tests
name
Missing files and functionality:
Functionality:
Files/Classes:
Until now there is no synchronization that prevent thread races.
By using a manifesto with all the files that needs to be updated, add the functionality to merge files from a determined folder into the current condensed packet filesystem.
Visiting and opening each file takes a huge slice of time, there are better ways to approach this:
1 - Only index what was used/requested
2 - Index all superficial data (paths + filenames) but only index internal data (icon + references) when the file is requested or modified
3 - Asynchronously do this processing (not a good idea, would take a long time anyway)
4 - Use a cache and one of the approaches below, I believe a mix of this and the option 2 would be the best idea
This fix shouldn't imply in any external changes for existing projects so any ongoing development with the updated branch can continue without problems.
When requesting a resource reference, the resource itself must be already loaded, as it can be seen below.
When requesting a reference:
return PacketResourceReferencePtr<ResourceClass>(static_cast<ResourceClass*>(m_ReferenceObject));
Reference constructor:
m_PacketResourceObject->IncrementNumberIndirectReferences();
If the resource is still null or somehow invalid, the reference constructor could cause a crash (or lead into a malformed reference). I need to add support for null resources and some check when creating the reference itself (if the instance isn't ready, create the reference using a null resource).
Until now there is no decent shutdown method for the resource manager, I must implement a shutdown function that will proper wait for all resources that are being loaded and destroy all of them afterwards.
Until now there is no standard extension for imported files, one must be chosen and used instead relying on the default extension for the original file.
All the methods that deal with these files must be updated to handle the custom-extension update.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.