stefanmielke / libdragon-extensions Goto Github PK
View Code? Open in Web Editor NEWList of structs and functions to help on Libdragon development.
License: MIT License
List of structs and functions to help on Libdragon development.
License: MIT License
Perhaps this should be a structure with a function callback for rendering, render behavior at the edges (whether or not it should render out of bounds tiles as empty or as a set tile), position, etc. . Then we could have a structure (maybe called LayerManager) that contains an array of layer objects and is responsible for rendering them in order, disabling given layers, etc.
We want to have better support for sprite animation. The current code we have in place is not really good for having multiple sprites in place.
Ideally we should have single and multiple spritesheet support, so that the same entity can have a single spritesheet with everything, or one spritesheets per animation it has.
A simple but decent animation system is anim8 for Love2d.
Currently a single texture load is performed for every tile variant that needs to be drawn in Tiled. This system could be improved using S, T coordinates by loading a batch of tiles into TMEM, then drawing each tile as a part of that load, and repeating this process until the entire tilemap is covered.
We should have a simple particle system that users can add on their ROMs.
The system should allow simple actions, like moving and re-sizing, and also have rendering associated with them (we'll probably need to have a 2d and a 3d version of this).
We want to have a way to manage different languages on a ROM.
Each language configuration should have:
Functions needed should include:
We should add a pipeline to generate a lib that can be used directly by the users, the same way libdragon is linked to a user's ROM but not compiled during the process.
When Libdragon transitions to rdpq, CI4 formatted textures can be used. In combination with many palettes, this could offer the advantage of twice as many texels loaded into TMEM at once compared to RGBA16, while retaining a lot of the color depth.
We want to have font rendering using the RDPQ.
It should have the same set of functions that exists on the current Libdragon font rendering today.
When we decide to support mirroring, we'll need to rework the current tile format to encode this information. In addition, the way Tiled treats mirrored tiles requires some bit manipulation to extract.
Enabling mirroring will also require selective disabling of copy mode per tile, so this will need to be integrated into the renderer.
I've been looking over position and position_int and I think it would be less confusing for users if position_int was in the same header as the floating point version. I'm probably going to be adding a size_int type, and I think it should follow the same pattern.
Let me know what you think
We need to be able to detect overflows and edge conditions in our animated_sprite_tick function. Currently the timer will eventually overflow and cause a floating point exception after a couple minutes.
We want to create an input system that has support for:
One good example of what is need is the UE4/5 input system.
We need a easy way to create a scene graph, where entities with custom logic can be added and handled by the scene automatically (so you only need to implement the logic on the entity itself, not everything else).
An example of such system is the Actors on UE4/5.
The main functions it should have are:
After the base implementation, we should implement some basic entities that other implementations could use as a base, with examples being "2d Sprite" and "2d Character".
We should look into actual use-cases to make sure those are supported by the lib.
I'd like to add better support for Tiled features like objects and multiple layers in the future. This should allow users more flexibility in adding custom objects to levels without being confined to the tile system. Also, I think that we should consider parsing JSON Tiled formats instead of XML, since Tiled appears to be moving away from XML and most of the newer and planned features are coming to JSON instead.
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.