Files
integration/Docs/TODO-List.md

2.5 KiB

  • UE Wingman rename functions.

  • ue Wingman 'structprop' doesn't work for UWingXXXRef types, or for Widget slots. It needs to be implemented on top of getdetails.

  • In the console, do not allow multi-line lua expressions unless it's something that reasonably should be multi-line, like a function definition or an if-statement.

  • Keyboard Event Handling

  • Menus

  • Skeletal Mesh Tangible

  • Implement Interactive Temporary Variables

  • A better text console

  • Get rid of 3x3 Gridpanel stuff

  • Object-Oriented Lua Support

Secret / semi-secret variables

Secret functions

Unicode support for the console

Blockchain integration

GUI that looks for verbs

More sophisticated passage of time

GUI that runs in realtime

Little game demos:

The monopoly game (Errands where you pass thru land owned by others with voronoi diagram)

The Spectra game

Heroes of Rock,Paper,Scissors

Come up with a plan for 'redirect'.

probes should never modify the state of the world. Currently, there is no protection to guarantee this, except for something in lpxclient where it does a snapshot and rollback before and after the probe. We should come up with a more comprehensive mechanism.

Questionable Design Choices

When we delete a tangible, we currently leave the LUA_TT_TANGIBLE flag on the table, and we leave the metatable in place with the tangible ID in it. Is this the right thing to do? Should we turn it into a truly blank normal table?

Hard Problems without Solutions

Using Multi-Core CPUs: We want to do difference transmission in parallel (one thread per connected client). This may be possible because each synchronous model is a separate lua interpreter. However, the master world model is shared. It may be possible to access it in a read-only manner in multiple threads.

Nonsortable Keys: what to do about table keys that are other tables, closures, or coroutines?

Collision Detection: In the old engine, people could walk through walls. I don't know if that is okay in 2020. But the separation of world-model and graphics engine makes this hard.

Dealing with Infinite Loops: if the script goes into an infinite loop, there's no easy way to deal with that. The lua interpreter does have hooks where you theoretically could count cycles.

Module-Level Locals: module-level locals are useful to store constants. However, when they're used as variables, they create pseudoglobal state that gets reset every time you edit a source file, and which is unfindable by the difference transmitter.