rubenwardy's wishlist and worklist

For people working on the C++ code.
Post Reply
User avatar
rubenwardy
Moderator
Posts: 6388
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
Location: United Kingdom
Contact:

rubenwardy's wishlist and worklist

by rubenwardy » Post

I have a full-time job, so I'm limited on time to offer Minetest. This roadmap covers both things I'd like to do when I have time and things I'd like to see done.

Overview

Minetest for me is being able to make your own voxel game without having to write your own game completely from scratch. A domain-specific game engine. I'd like to see features which improve the possibilities of Minetest as a game engine.

I am concerned about quality-assurance and general code quality in Minetest. Due to the lack of automated testing and volunteer testers, small regressions regularly happen.

I'm also concerned about the onboarding of new contributors. We lack effective and accurate documentation, and many are scared away due to code rot and inefficient core developer communication. The engine is also messy and overcomplicated in places.

Specific things to work on

To do
  • A GUI replacement - I'd like to add a new way to create GUIs, which is themable and consistent. See https://github.com/minetest/minetest/issues/6527
  • CLI tool to install and update from ContentDB
  • World-specific settings. Both /set and settings:set() will now set the world config, not the global config
  • Automatic testing to stop regressions on the Lua API
  • Rewrite the main menu to make it easier for games to customise it, and also make it better by default
  • Remove tools. Allow nodes and craft items to do anything a tool could
  • Input improvements
    • Callbacks on key change (for get_player_controls changes)
    • Make all controls rebindable
    • Add rebindable actions for server and client-side scripts. They will be able to register actions with default keys, the user can then rebind. The action will then be triggered and sent when the key is pressed. Android clients will have an on-screen button added
Done
  • Deprecate player attributes, and use the same API as node/item metadata
  • Add damage reasons
  • depends in mod.conf
  • Add a way of downloading mods and games from the menu
To be updated

Code Quality and Ease of Contribution

Minetest has an issue of contribution rot. This is primarily due to how time-consuming reviewing code can be, especially if complex.
  • Aim to have 100 or less open PRs
  • Improved unit testing, as mentioned above.
  • Make sure that PR authors are aware at all times of the status of their PRs, by using labels.

A note on Client-side Scripting

I am very disappointed with CSM in its current form. The client-side scripting that was promised to us would have been a way to increase the possibilities of server mods by allowing them to send the code to the client. The current CSM is aimed at client-provided mods, which is something I do not think should be developed.

Please note that I dislike the term CSM, as it's a side-effect of having client-provided mods. Client-side scripting feels more accurate to me

As a general rule, client-side modding should only be for latency-sensitive use cases. This includes client-side prediction and audiovisual effects.

Please see the Client-scripting plans dev wiki for some thoughts by hmmmm and est31 on what client-side scripting should be.

GUI/HUD
Client-side scripting should allow custom drawing of GUI elements, for example for computer mods, advanced inventories, and things we haven't thought about yet.

Entities
Client-side scripting would also be able to locally control entities and perform client-side prediction on them. This will allow carts without any lag, and other types of entities such as Advanced trains

Any replies related to CSM or client-side scripting should be directed to the relevant discussion thread.

--end--

Show your support for my work with a donation

User avatar
rubenwardy
Moderator
Posts: 6388
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
Location: United Kingdom
Contact:

Re: rubenwardy's wishlist and worklist

by rubenwardy » Post

Added 3 new tasks to "Specific PRs to work on"

User avatar
Wuzzy
Member
Posts: 4128
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy

Re: rubenwardy's wishlist and worklist

by Wuzzy » Post

Rewrite the main menu to make it easier for games to customise it, and also make it better by default
I believe the main menu needs a complete overhaul in general, especially in terms of usability and aesthetics. This needs careful planning and some discussion. Unfortunately, I don't have the time and/or motivation for this atm.
My creations. I gladly accept bitcoins: 17fsUywHxeMHKG41UFfu34F1rAxZcrVoqH

User avatar
ANAND
Member
Posts: 333
Joined: Sun Jan 28, 2018 12:54
GitHub: ClobberXD
IRC: ANAND ClobberXD
In-game: ANAND ClobberXD
Location: India
Contact:

Re: rubenwardy's wishlist and worklist

by ANAND » Post

Add rebindable actions for server and client-side scripts. They will be able to register actions with default keys, the user can then rebind. The action will then be triggered and sent when the key is pressed. Android clients will have an on-screen button added
This is something I too have been wanting to do for a long time (incl. the new button for Android). Thanks for including this in your roadmap. :)
My Mods

cdb_NXKPOcRlgUGdMyf8uLoUQvnMGIfuaHmp

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests