There are many ui commands in Bitphoria (ui_newpane, ui_closepane, ui_static, ui_link, ...), but why isn't the ui system available for games? The entire ui system is undocumented and only usable for scripts in the ui folder and when typed directly. I tried to use the ui syystem in a game, no success. I tried to use the ui_newpane command in the attack1 function of the player, in the spawn_scene function, no success. I can't even make an ui pane appear even for the host. The ui system would open a lot of possibilities if it was available for games. Also, i would like to see a better way to lay things out, for example put a slider and a button on the same pane in the same line. I would like too if there was a way to create ui elements without a pane (for example just put a few buttons at the bottom of the screen and some text at the top) and a way to modify how the cursor behaves (hidden and moving it rotates camera, shown and only rotates the camera when a given control is pressed and can interact with no-pane ui elements, shown interacts with no-pane ui elements and cannot rotate camera anyways). If a pane is shown, it would behave like it behaves now (won't rotate camera, interacts with ui elements - and something new - won't interact with no-pane ui elements). Ui elements' size could be specified along with their position. An option to color individual ui elements would be cool too. Also true variables would be cool too. Variables could be any parameter or a part of one (an entire vector or one number from it for example). A variable could be server-side (sync across clients, accessible everywhere), client-side (won't sync, local value accessible everywhere, another client's value could be requested through it's player's entity) and entity variable (sync, accessible through the entity it's assigned to). A variable's syntax could be something like %sv%<name_of_variable>% for server-side variables, %cl%<name_of_variable>% for client side ones on client executing the code, %<an_entity_selector>%cl%<name_of_variable>% for accessing a client's variable through it's player's entity and %<an_entity_selector>%<name_of_variable>% for accessing an entity's variable. Entities would have a way to provide default variable values for them. An entity changing type could either reset it's variables to the defaults of the new type or keep the old values. There could also be a way to for example specify an entity's model by a variable (any kind of variable would work, for client side ones, there would be a way to specify whether to use the one at the client rendering the entity or the one at the client who created the entity). A way to manipulate any kind of variable would be very very cool. What i'm really missing too is terrain modification and maybe custom generation. And a way to set where to use whic texture (material maybe?) on the terrain. And the ability to teleport an object anywhere, not just anywhere in the sky above the map. And a way to check if somewhere is terrain and if yes, whic texture/material. More colliders would be cool. Maybe a way to make your collider for a model (so it would work with dynamesh too). And a way to move dynamesh points yourself. I would like too if there was a way to make own keybinds (maybe the undocumented bind command is for this? i don't know) and let players edit it through custom uis. And a way to change the pause menu to my own menu for my games. And a way to specify a "on join menu" that is displayed when the player joins the game instead of the pause menu.
Despite these missing things, Bitphoria is a cool project. If these things were in it, it wouldn't be just cool, but ultimately cool. Also, i would like Mac support very much.
Best regards, GDavid