Return to “Scripting & Modding”

Post

Josh, a question!

#1
Currently, we are awaiting Limit Theory 1.0 with all the patience of a toddler who can SEE their birthday presents!

So I am wondering how the game currently separates input and action and rendering at a code level.

Do you have a object/script/interface that passes information through to the game to simulate the display?
Or are things a little less flexible, with the commands from a user directly modifying the game?

This might not be the best way to ask, but it's so I can get an idea of how much work it will be to hack the user input away from the world simulation, so that we (the community) can start abusing your wonderful creation with the insertion of Multiplayer! Much like the world did to Just Cause 2.
°˖◝(ಠ‸ಠ)◜˖°
WebGL Spaceships and Trails
<Cuisinart8> apparently without the demon driving him around Silver has the intelligence of a botched lobotomy patient ~ Mar 04 2020
console.log(`What's all ${this} ${Date.now()}`);
Post

Re: Josh, a question!

#3
Silverware wrote:Currently, we are awaiting Limit Theory 1.0 with all the patience of a toddler who can SEE their birthday presents!

So I am wondering how the game currently separates input and action and rendering at a code level.

Do you have a object/script/interface that passes information through to the game to simulate the display?
Or are things a little less flexible, with the commands from a user directly modifying the game?

This might not be the best way to ask, but it's so I can get an idea of how much work it will be to hack the user input away from the world simulation, so that we (the community) can start abusing your wonderful creation with the insertion of Multiplayer! Much like the world did to Just Cause 2.
Not sure exactly what's being asked, but scripting in LT is about as flexible as it can get. (Some degree of) multiplayer mod should be feasible if and when I get the networking functions integrated into LTSL. It sounds like you're asking if input is directly injected into the game to change state? If so, then no. Any kind of mouse / keyboard / gamepad code that you see will be in script, the game engine is not concerned with that. The game engine provides support for creating objects with certain configurations of data, allowing access to that data, and providing an interface to a rendering engine capable of using that data to put things on screen.

If you're asking does user input currently directly modify game state (through LTSL) rather than having client / server separation? Then yes. To fix this someone will need to implement an LTSL-based LT "server-only" that holds only the game state, and sends/receives requests from clients to modify that state. This will mean changing the LTSL to look less like "if the thrust-forward key is down, send a message to the currently-piloting object to activate all backward-facing thrusters" to "send a message to the server requesting that all backward-facing thrusters on my currently-piloting object be activated." The server then modifies the state based on that request (and, if security is a concern, verifies that the request is valid). The server will also need to broadcast game state changes to all clients, so that everyone has a local game state that is kept in sync.

In theory it's not too hard. In practice it's extremely difficult to get it working really well. In terms of LT, it should be a "reasonable but not overwhelming" challenge to build a 'good-enough' multiplayer. If you want to build perfect multiplayer that includes state prediction, backtracking / interpolation, anti-cheat measures, good compensation for high latencies, support for loads of clients in the same verse, etc...best wishes :ghost:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Josh, a question!

#6
Talvieno wrote:
Silverware wrote:Awesome, perfect response!

Post release then I will require sockets in the LT engine. :D :squirrel:
Already in. :squirrel:

Well then... I wish I had known to back this, so I could get into the beta level specific to build Multiplayer for us all. :D
GUISE!
Multiplayer is plausible and possible and we are going to build the shit out of it!
°˖◝(ಠ‸ಠ)◜˖°
WebGL Spaceships and Trails
<Cuisinart8> apparently without the demon driving him around Silver has the intelligence of a botched lobotomy patient ~ Mar 04 2020
console.log(`What's all ${this} ${Date.now()}`);
Post

Re: Josh, a question!

#7
Silverware wrote:
Talvieno wrote:
Silverware wrote:Awesome, perfect response!

Post release then I will require sockets in the LT engine. :D :squirrel:
Already in. :squirrel:

Well then... I wish I had known to back this, so I could get into the beta level specific to build Multiplayer for us all. :D
GUISE!
Multiplayer is plausible and possible and we are going to build the shit out of it!
Who let you out of the Off topic section :?:

Also yes building the shit out of it is exactly what we will do :squirrel:
Post

Re: Josh, a question!

#9
Grumblesaur wrote:
JoshParnell wrote: If you want to build perfect multiplayer that includes state prediction, backtracking / interpolation, anti-cheat measures, good compensation for high latencies, support for loads of clients in the same verse, etc...best wishes :ghost:
I should hope anti-cheat be unnecessary for a community server.
You should, I will take the pragmatic approach and make sure it is not required, but making sure the player doesnt get given anything (data) they can abuse. :V
°˖◝(ಠ‸ಠ)◜˖°
WebGL Spaceships and Trails
<Cuisinart8> apparently without the demon driving him around Silver has the intelligence of a botched lobotomy patient ~ Mar 04 2020
console.log(`What's all ${this} ${Date.now()}`);
Post

Re: Josh, a question!

#11
Grumblesaur wrote:
Silverware wrote: You should, I will take the pragmatic approach and make sure it is not required, but making sure the player doesnt get given anything (data) they can abuse. :V
Nothing thrashes wishful thinking like a healthy dose of reality, I guess.
And nothing makes one hate another more than people cheating, when you are trying to play fair.
Plus, why not do it right from the get go?
°˖◝(ಠ‸ಠ)◜˖°
WebGL Spaceships and Trails
<Cuisinart8> apparently without the demon driving him around Silver has the intelligence of a botched lobotomy patient ~ Mar 04 2020
console.log(`What's all ${this} ${Date.now()}`);
Post

Re: Josh, a question!

#12
Silverware wrote:
Grumblesaur wrote:
Silverware wrote: You should, I will take the pragmatic approach and make sure it is not required, but making sure the player doesnt get given anything (data) they can abuse. :V
Nothing thrashes wishful thinking like a healthy dose of reality, I guess.
And nothing makes one hate another more than people cheating, when you are trying to play fair.
Plus, why not do it right from the get go?
I think it'd be neat to do an experiment, but describing what it would entail here might spoil the results.
Shameless Self-Promotion 0/ magenta 0/ Forum Rules & Game FAQ
Post

Re: Josh, a question!

#13
Grumblesaur wrote:I think it'd be neat to do an experiment, but describing what it would entail here might spoil the results.
Indeed it would, although allowing the client to make gameplay decisions would go against my personal belief of "do it right first time" but any mod I do write would be opensource, so you could still run that experiment :D
°˖◝(ಠ‸ಠ)◜˖°
WebGL Spaceships and Trails
<Cuisinart8> apparently without the demon driving him around Silver has the intelligence of a botched lobotomy patient ~ Mar 04 2020
console.log(`What's all ${this} ${Date.now()}`);

Online Now

Users browsing this forum: No registered users and 1 guest

cron