Giter VIP home page Giter VIP logo

robotinterrogation's People

Contributors

dracil avatar ftwinston avatar iamevn avatar spinnernicholas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

robotinterrogation's Issues

Consider adapted video chat rules

These are available here: https://robots.management

Need to determine all the differences between these and the "main" rules, and then decide on the best approach.

This will presumably be:

  1. Ignore them
  2. Adopt them
  3. Add an option during game setup (if your opponent is in the same room, use the "main" rules, otherwise use the "remote" rules.)

I expect we would end up using the third option.

Sealed files

This advanced rule (which gives the suspect no background, as they instead play themselves) should be an option when starting a game.

Update rules link

Should point to robots.management rather than an outdated dropbox URL

Settings Menu

We need a settings menu that allows players to set things like their name. It should be accessible at any time. I imagine having something like a gear icon the pops up a drop down or a box on top of whatever else is being displayed. I think it could be implemented fairly easily.

Dark mode (Stylish support)

Made my own dark mode. This can be loaded in Stylish. Maybe it can be integrated in the app itself at some point.

https://userstyles.org/styles/226858/darkmode-interrogation-ftwinston-com

@-moz-document url-prefix("https://interrogation.ftwinston.com") {
:root {
    --bg: rgb(34, 33, 41);
    --yellow: rgb(255, 168, 106);
    --white: #bbb;
    --grey: #555;
    --blue: #566cc3;
    --darken: #0004;
}
* {
    font-family: monospace !important;
}
body {
    background: var(--bg);
}
div, span, button, p {
    color:var(--white) !important;
    border-color:var(--white) !important;
}
a {
    color:var(--yellow) !important;
    text-decoration-color:var(--yellow) !important;
    border-color:var(--blue) !important;
}
.MuiButton-outlinedPrimary {
    border-color:var(--yellow) !important;
}
h1, h2, h3, h4, h5, h6, h7 {
    color:var(--yellow) !important;
}
.MuiTouchRipple-child {
    background-color: var(--yellow) !important;
}
.MuiListItem-button:hover {
    background-color: var(--darken) !important;
}
.MuiPaper-root {
    background-color: var(--darken) !important;
}
.MuiPopover-paper {
    background-color: var(--bg) !important;
    border-color: var(--yellow) !important;
    border-width: 1px !important;
    border-style: solid !important;
}
.MuiTypography-colorTextSecondary {
    color: var(--blue) !important;
}
.MuiCard-root .MuiTypography-colorTextSecondary:nth-child(2) {
    color:var(--grey) !important;
}
.MuiFab-primary {
    background-color:var(--blue);
}
.interference__cell--westBorder {
    border-left-color: var(--blue);
}
.interference__cell--southBorder {
    border-bottom-color: var(--blue);
}
.interference__cell--eastBorder {
    border-right-color: var(--blue);
}
.interference__cell--northBorder {
    border-top-color: var(--blue);
}
.interference {
    color:var(--yellow) !important;
}
}

image

image

Perma-penalty

This advanced rule (which adds an additional penalty card) should be an option that can be enabled when starting a game.

Prevent interview recording suspect as human til time has elapsed

This is a change in the retail rules, previously the interviewer could record either result at any time in the interviewer.

This should change so they can only record the suspect as being a robot, until the interview time has elapsed. IMO the Suspect in Human button should be disabled until the timer expires (and we probably need to tweak the CSS to make disabled buttons look more obvious), and the server shouldn't accept a "suspect is human" result until the time has expired.

Suspect shouldn't select their role (inducer)

The flow for selecting an inducer (*robot/human) is a bit wonky now since you only get one to choose from, ideally that would just assign you an inducer and not make you click on the single option you get.

Instant disconnect issue

I'm not sure why this happens for me while on chrome on windows. I've not had this issue using chrome on my phone. As soon as I follow the link for a game or try to host a game in the browser, it disconnects and posts the text:

"You have disconnected from the interview.
Check your internet connection."

Markdown in "content"

If all of the data parsed from json files (e.g. suspect roles etc) could contain markdown, that would be great for the occasional edge case, e.g. flexibility

Add interference tasks

The "mazes" (and corresponding calibration guides and answer keys ... which could be combined) should be added.

These could potentially be randomly generated, but the base game just has one per module; that would suffice.

Need to confirm if we're OK to take the images directly from the print-and-play (iirc the licensing would support this) or if we need to reimplement them.

Move to webRTC

Instead of having the whole game run through the .NET server, it would be much more scalable if it used webRTC to connect clients directly to each other.

This would be much more scalable, but would be a significant architectural change.

Analytics

Would be cool to integrate something like Google analytics and see info about who's using it. With Google analytics, I think you can even add events like packet choice and game outcome.

Spectator Mode

I'd like to have multiple spectators able to see the game state (at the very least, the suspect's role card)

Localization

This needs done for both the app itself and the interview packets.

It may make sense to do these separately (i.e. the app through react-i18next and the packets in separate json files per language).

Indicate the availability of spectator mode

Now that #30 is in, it's not obvious that there is support for spectators.

PositionSelection and InterviewerPositionSelection ought to indicate that the link can be shared to allow a spectator.

Note that the configured max players of 3 means that only one spectator can join: subsequent joiners will be redirected away from the game.

Game Lobbys

I would like to have a game lobby that shows all players and allows them to choose if they want to be the interviewer or suspect in the next interview. This game lobby would replace the existing confirm/swap positions view.

Player Names

Having a game lobby that lists all the players will require each player to have a name. Eventually, it would be nice to allow each player to set their own name but if that is not in place before this, I propose we generate random names in a similar way to how the interview IDs are generated. We can have two lists, first names and last names. One of each can be chosen at random and then the result is checked to make sure it is unique for that specific lobby. If a collision occurs, I think we should only reroll the first name because that will increase the likelihood that two players will share the same last name which I think would create some interesting banter.

Lobby Owner

The player that creates the game will be the initial owner of the lobby. They should be able to pass ownership to another player through the game lobby interface. The owner will have the ability to lock the lobby with a password and set custom settings for the lobby/interview.

Initial Lobby Settings

I propose we start with at least these settings.

  • Password Protect Lobby
  • Max Number of Players
  • Interview Timer
  • Interview Packet Selector (Allows enabling/disabling of specific interview packets)

Grant license to modify and redistribute under free-software terms

The web app works well. Looking here at the source code, I don't see permission granted under a free-software license; is that deliberate?

For a web app it would be great to ensure the project remains free software for everyone, by granting everyone the Affero General Public License; this combines to create the strongest protection for the copyright holders and the users of the code.

Thanks in advance for granting us a free license to this software.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.