ElDewrito/DewRecode

Port over last few things from ElDewrito

Opened this issue · 4 comments

As far as I know there's only the VoIP UI, RCON/WebSockets and HTML5/CEF menus left to port over, and any changes beyond commit ElDewrito/ElDorito@61e497c.

The issue with the VoIP UI is that it used a lot of the same functions as the console/chat UI did (eg to draw boxes and such), and since the VoIP stuff is now in a different module to the console UI we can't simply call those functions.. we could always just copy them into the chat module, but then we'd have duplicated code in the codebase.

Does anyone know if the VoIP UI was actually functional in ED? From looking at the code it didn't really seem to be, but I hadn't really tried it out ingame yet.

Is it even necessary now we have HTML5 menus?

I think mostly everything from ED is ported now, besides the HTML5 stuff. Don't think we want to port that from ED though since it's a sorta hacky overlay, DR should try and build it in natively into the game if possible.

If/when we add HTML5 stuff back into DR, I'd also like to look into creating proper JS bindings for interacting with the game. We should not be abusing RCON for this, because it doesn't let us run multiple instances of the game, it leads to us creating a bunch of extremely low-level/useless commands (a command for checking if the game is loading...seriously?), and it also just isn't flexible in general (there's no way to use it to respond to events unless you do polling, which is just ugly). We can also get rid of the websocket crap then if we do this.

The websockets rcon was build for a realtime event system to communicate with browsers.

We should be sending game events over the websockets so that browsers can pick on and handle them accordingly.

Match Start, Join Lobby, Player Talk, etc, are all kinds of events that can be sent by the game in realtime over websockets to the browser. There's no reason for the browser to ever need to "pull" at a set timeout.

I agree with @ElDewritoDev on this. The current poc testing base does this, all without abusing RCON nor having a bunch of leftover networking socket's that aren't being used.