pandorabox-io / in-game

Random code and stuff for in-game things
MIT License
3 stars 0 forks source link

New voting system for contests #195

Open Klaranth opened 3 years ago

Klaranth commented 3 years ago

SwissalpS There has been a bot with linked channels for a while, would make sense to use that for exo-game submissions I was surprised and confused that Ace didn't build onto that Best is probably to have in-game only voting though.

Hedgehog ElSmacko has some code, but the free code to copy also has some errors, it seems like

SwissalpS Lava falls also has voting booth with demo code?

SX My very first NIC test which was voting machine to vote if Lava Falls digiline room should be added to spawn tutorials

It might work but really should not be used for any voting, it is already few years old voting system and built when I was just getting familiar with Lua as programming language.

But code at Lava Falls voting setup is not very different from latest things where parts of code was written by different players. For latest 6r1d provided base system code and designed touch interface using touch designer then I've added digi keyboard configuration interface, automatic start / end timers and NIC support for backing up votes using Firebase. I think some other players also did something but don't remember details.

Lava Falls voting booth code is more hard coded thing, not worth to build on top of that anymore.

Thing originally built by 6r1d was tested multiple times (as contest voting interface, maybe bit over year) and then problems that were found were fixed and functionality added based on what was needed.

I was going to try ElSmacko's voting system but I think I forgot that...

When I was going to check it I think we were still using old spawn as that's what I actually remember, I remember ElSmacko's introducing that just after another voting booth was announced and used. Not sure but it is possible that ElSmacko's might have used information about previous voting system to avoid troubles it had but never confirmed that.

But anyway for sure worth to test and also check how system actually works, even if it is not complete solution it can still provide very useful information. Or possibly work as base for new system if it is very different and somehow better than other similar in game systems.

Hedgehog Should we introduce an intermittent contest : build the best voting systems ....

SX Could do but probably wont be getting a lot of entries that would allow multiple interfaces (game chat, IRC, Discord, possibly web page and in game interfaces) and I think we should aim at system that allows this. Especially as we do already have working parts that are designed to be connected to something else, communication/storage interfaces just are fixed and different for those systems (Nodered, Firebase, Global memory, extrenal K/V store, pandorabox K/V store, Luac memory) Basically we do already have multiple well tested and used systems, problem is that every system has its own advantages and disadvantages and currently those cannot be simply connected together like lego bricks but that's what we should do.

FeXoR First step would be to define an interface.

SX I think for actual implementation and planning github would be correct place for both discussions, tracking process and managing code (for in game lua controllers, nodered and possible other systems)

In-game repository already contains some code for simple lua controller + touch screen + nic combo.

OgelGames commented 3 years ago

Related (almost duplicates): https://github.com/pandorabox-io/in-game/issues/178 https://github.com/pandorabox-io/in-game/issues/126

S-S-X commented 3 years ago

In game touch screen voting that can be connected to Nodered backend (was connected to Firebase): https://github.com/pandorabox-io/in-game/tree/master/voting-luac

I could see current Nodered vote bot as best candidate to build on.

My opinion about steps required to achieve goal:

  1. Separate vote bot chat interface from actual storage backend.
  2. Define well known programming interface for backend.
  3. Connect current Nodered vote bot to backend through new programming interface (can use local secret, generated key is enough).
  4. Connect voting-luac to backend through new programming interface (this needs shared secret stored to private database).
  5. Connect any other new interfaces like NPC or website, shared secret would be needed for every connected thing.