rubenwardy's wishlist and worklist

For people working on the C++ code.
User avatar
rubenwardy
Moderator
 
Posts: 5494
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 lack of automated testing and volunteer testers, small regressions regularly happen.

I'm also concerned about the onboarding of new contributors. We lack affective 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

  • World-specific settings. Both /set and settings:set() will now set the world config, not the global config
  • Investigate merging the settings API with the meta one (difficult due to inconsistent return types - settings return null rather than empty string)
  • 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 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 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 usecases. 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: 5494
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
 

User avatar
Wuzzy
Member
 
Posts: 3231
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 take any bitcoins you have lying around: 17fsUywHxeMHKG41UFfu34F1rAxZcrVoqH
 


Return to Partly official engine development



Who is online

Users browsing this forum: No registered users and 2 guests