Enhanced modability
#1
Currently the server has huge advantage of lua modding. However it's quite finicky to get it working without deadlocks and when they happen it's very hard to find the original source of the problem. Any ideas on how to make this better?

Another thing that could be interesting to have is custom blocks. Now the server tries really hard to be vanilla. We could use "invalid" block ids to allow for more modability. Also if this idea is extended to custom entities (e.g. lua-entities) you could practically implement any java based mod (e.g. Thaumcraft?) serverside in lua. You could already do a lot by using mod channels.

Finally i think that it would be fun to have "living worlds". This is idea of blocks interacting in interesting ways (e.g. water erodes stone to dirt and then to sand?). This can be done already (e.g. every tick iterate over fixed amount of blocks per chunk?) but is easy to mess up. I propose having lua simulator(s?) per chunk. Their logic would be defined by lua only. This could also improve the first point: by limiting where the chunk modifications are happening.

Tl;dr:
  • deadlocks in lua (hard?)
  • better support for "non-vanilla" block ids
  • lua simulators

So what do you think?

(edit by xoft: fixed title typo)
Reply
Thanks given by:
#2
Actually, Cuberite doesn't care what blocks are in the world. I can create a plugin that would set all kinds of blocks that don't exist in vanilla. Custom entities is a bit harder to do though.
Reply
Thanks given by:
#3
(03-04-2016, 07:55 PM)NiLSPACE Wrote: Actually, Cuberite doesn't care what blocks are in the world. I can create a plugin that would set all kinds of blocks that don't exist in vanilla. Custom entities is a bit harder to do though.

Ah good to know. About entities: now that i think about it - it's already possible but quite hacky. You need to track EVERYTHING in lua: e.g. you have custom chest (like a bookshelf) you need to have it's position and inventory saved/loaded from lua. I think this could get really slow if not done correctly.
Reply
Thanks given by:




Users browsing this thread: 1 Guest(s)