rubenwardy's wishlist and worklist

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

rubenwardy's wishlist and worklist

by rubenwardy » Sat Dec 16, 2017 21:48

I'm a full-time student, so, unfortunately, 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 PRs 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
  • 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
  • Callbacks on key change (for get_player_controls changes)
  • Rewrite the main menu to make it easier for games to customise it, and also make it better by default
  • 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
  • Remove tools. Allow nodes and craft items to do anything a tool could

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 by the end of December.
  • 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: 5790
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
 

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

Re: rubenwardy's wishlist and worklist

by Wuzzy » Sat Oct 13, 2018 21:10

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: 319
Joined: Sun Jan 28, 2018 12:54
Location: India
GitHub: ClobberXD
IRC: ANAND ClobberXD
In-game: ANAND ClobberXD [A-Za-z0-9-_]Tomato

Re: rubenwardy's wishlist and worklist

by ANAND » Fri Aug 09, 2019 15:56

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. :)
 


Return to Partly official engine development



Who is online

Users browsing this forum: No registered users and 1 guest