mirror of
https://github.com/luanti-org/luanti.git
synced 2025-10-13 16:45:20 +02:00
Update roadmap (#16468)
This commit is contained in:
@@ -16,35 +16,46 @@ These are the current medium-term goals for Luanti development, in no
|
|||||||
particular order.
|
particular order.
|
||||||
|
|
||||||
These goals were created from the top points in a
|
These goals were created from the top points in a
|
||||||
[roadmap brainstorm](https://github.com/luanti-org/luanti/issues/10461).
|
[roadmap brainstorm](https://github.com/luanti-org/luanti/issues/16162).
|
||||||
This should be reviewed approximately yearly, or when goals are achieved.
|
This is reviewed approximately every two years.
|
||||||
|
|
||||||
Pull requests that address one of these goals will be labeled as "Roadmap".
|
Pull requests that address one of these goals will be labeled as "Roadmap".
|
||||||
PRs that are not on the roadmap will be closed unless they receive a concept
|
PRs that are not on the roadmap will be closed unless they receive a concept
|
||||||
approval within a month, issues can be used for preapproval.
|
approval within a month. Issues can be used for preapproval.
|
||||||
Bug fixes are exempt for this, and are always accepted and prioritized.
|
Bug fixes are exempt from this, and are always accepted and prioritized.
|
||||||
See [CONTRIBUTING.md](../.github/CONTRIBUTING.md) for more info.
|
See [CONTRIBUTING.md](../.github/CONTRIBUTING.md) for more info.
|
||||||
|
|
||||||
### 2.1 Rendering/Graphics improvements
|
### 2.1 SSCSM
|
||||||
|
|
||||||
The priority is fixing the issues, performance, and general correctness.
|
Server-sent client-side modding (SSCSM) is a long requested feature (both by
|
||||||
Once that is done, fancier features can be worked on, such as water shaders,
|
modders and core devs) where, as the name suggests, the server sends modding
|
||||||
shadows, and improved lighting.
|
scripts to the client for it to execute in a sandbox. This allows mods to run
|
||||||
|
code on the client, similar to how web pages can run javascript code in web
|
||||||
|
browsers.
|
||||||
|
|
||||||
Examples include
|
Due to the avoided network latency, the engine can provide APIs in this new
|
||||||
[transparency sorting](https://github.com/luanti-org/luanti/issues/95),
|
scripting environment for things that need to happen in a synchronous fashion,
|
||||||
[particle performance](https://github.com/luanti-org/luanti/issues/1414),
|
allowing mods to overwrite various things that are currently hard-coded in the
|
||||||
[general view distance](https://github.com/luanti-org/luanti/issues/7222).
|
client.
|
||||||
|
For some APIs, it also just makes more sense to have them exist on the client,
|
||||||
|
and not tunnel every call through the server, only leading to technical debt
|
||||||
|
once SSCSM arrives.
|
||||||
|
Lastly, parts of the computation of mods can be moved to the client, improving
|
||||||
|
server performance.
|
||||||
|
|
||||||
This includes work on maintaining
|
Instead of focusing on short-term solutions that will inevitably lead to more
|
||||||
[our Irrlicht fork](https://github.com/luanti-org/luanti/tree/master/irr), and switching to
|
technical debt to deal with, SSCSM paves the way for a cleaner architecture
|
||||||
alternative libraries to replace Irrlicht functionality as needed
|
designed to stay.
|
||||||
|
|
||||||
### 2.2 Internal code refactoring
|
### 2.2 Input Handling
|
||||||
|
|
||||||
To ensure sustainable development, Luanti's code needs to be
|
Luanti keys are currently limited to a small subset, not allowing game developers
|
||||||
[refactored and improved](https://github.com/luanti-org/luanti/pulls?q=is%3Aopen+sort%3Aupdated-desc+label%3A%22Code+quality%22).
|
to map the majority of the keys a device usually offers. This limits the possibilities
|
||||||
This will remove code rot and allow for more efficient development.
|
of game creators, forcing them to either implement a workaround or, worse, forget
|
||||||
|
about it.
|
||||||
|
|
||||||
|
Using a gamepad also represents a known issue in Luanti, as some devices might not
|
||||||
|
work at all or result in an uncomfortable user experience.
|
||||||
|
|
||||||
### 2.3 UI Improvements
|
### 2.3 UI Improvements
|
||||||
|
|
||||||
@@ -55,15 +66,6 @@ be a replacement for HUDs, allowing for a unified API.
|
|||||||
A [new mainmenu](https://github.com/luanti-org/luanti/issues/6733) is needed to
|
A [new mainmenu](https://github.com/luanti-org/luanti/issues/6733) is needed to
|
||||||
improve user experience. First impressions matter, and the current main menu
|
improve user experience. First impressions matter, and the current main menu
|
||||||
doesn't do a very good job at selling Luanti or explaining what it is.
|
doesn't do a very good job at selling Luanti or explaining what it is.
|
||||||
A new main menu should promote games to users, allowing Minetest Game to no
|
|
||||||
longer be bundled by default.
|
|
||||||
|
|
||||||
The UI code is undergoing rapid changes, so it is especially important to make
|
The UI code is undergoing rapid changes, so it is especially important to make
|
||||||
an issue for any large changes before spending lots of time.
|
an issue for any large changes before spending lots of time.
|
||||||
|
|
||||||
### 2.4 Object and entity improvements
|
|
||||||
|
|
||||||
There are still a significant number of issues with objects.
|
|
||||||
Collisions,
|
|
||||||
[performance](https://github.com/luanti-org/luanti/issues/6453),
|
|
||||||
API convenience, and discrepancies between players and entities.
|
|
||||||
|
Reference in New Issue
Block a user