GithubHelp home page GithubHelp logo

jbowens / codenames Goto Github PK

View Code? Open in Web Editor NEW
619.0 13.0 208.0 2.04 MB

Play codenames online

Home Page: https://www.horsepaste.com

Go 45.91% CSS 13.64% TypeScript 39.40% Shell 0.25% Dockerfile 0.79%
board-game codenames

codenames's People

Contributors

a-p-o avatar alexander89d avatar alexhans1 avatar alwinw avatar arrezaf avatar asztalosdani avatar caeleel avatar codycahoon avatar danielthepope avatar davidfurlong avatar dependabot[bot] avatar empz avatar evilham avatar fstanis avatar hledley avatar jbowens avatar jsartin513 avatar juan-kang avatar kaczmarj avatar keiohtani avatar liouk avatar martinhanzalek avatar minigolf2000 avatar moinfar avatar orteth01 avatar pzingraff avatar simonste avatar tadaboody avatar tchebb avatar zlorf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codenames's Issues

Translations

How can I translate the interface of the website in Italian and Esperanto?

Shuffle deck (only cards that haven't been used)

This is super great. Very fun. I love it. I'll keep buying coffees - so / I'll just say that once. : )

We just played 4 games and many of the same cards came up every time. Maybe there can be yates shuffle type thing that isn't just rand - and pulls from the array until it's gone / excluding the used cards. Is that how the game works IRL, right?

Add instructions before entering the game

Some of the users may not already know how to play the game. I assume the host would explain the rule to the participants, but it is nice to have additional information. I envision the user flow would be like

  1. A user opens an instructions page with a redirect.
  2. The user clicks "Okay."
  3. Redirect to the original game URL.

Or a popup works too. https://material-ui.com/components/dialogs/

Please move buttons away from grid

I was playing on mobile and accidentally hit the top-right clue while trying to hit "Next turn".

This happened to be my own team and everyone else was furious.

Perhaps there could be a "swipe to unlock" so that the board stays locked unless I'm genuinely trying to tap a card?

Enforce timer not working

Enforce timer stops working after playing few rounds of the game or maybe after taking certain actions.

Increase number of words?

Would it be possible to expand the word list somehow? Been playing too much in quarantine. I noticed you had another word dictionary txt file. That would be a lot of fun. Another option would be to use the Green words if that version has a different set.

Customizable word lists

Feature Request

I noticed that basically the game has a 400 word list baked into it (at least for English!). It'd be great if custom word lists support was made available. It gives a lot more options for gameplay (our friends played several rounds and quickly found words repeating themselves). It'd also give more mechanisms to do things like custom lists, or domain specific words if you were playing with a particular community.

License

I notice there is no license posted for this. I notice you generally use the MIT License, is that the case here? Are we allowed to run our own version of the site? Modify it? Would it be possible to add a license file for clarity?

Thanks!

use long-polling rather than short-polling

Currently the frontend requests the game state every 2 seconds, and the server responds immediately with the current game state. Switching to long-polling where the server holds the connection open until the game state changes will reduce the latency between a change in game state and the user seeing the change. Also, currently horsepaste.com is CPU-bound, a great deal due to just serializing and deserializing of requests and responses. Long-polling will trade more open sockets for less CPU usage, which seems appropriate.

Undo button implementation?

Mis-clicks happen. Some users might abuse this, but that would be on the same level as the spymaster button. There are certainly user-cases where an undo would be welcome

Very nice website, btw.

PWA

Would be awesome to add a web manifest at /manifest.json so I can save this to my homescreen and play on my phone!

More than 2 teams at a time

My friends and I play this every tuesday and friday night. It's super fun but I think that enabling the game to allow for 3 or 4 teams would be a great option. I am interested in working on this but would love to collaborate with some other devs!

Add outlines / visual differentiation + outlines for cards / blue & red -

In low light - many of us found it hard to differentiate blue and red cards as spymasters.

Screen Shot 2020-05-09 at 12 13 15 AM
Maybe just colored outlines would be enough - or something like this.

Also / just a side note... maybe the cards are orange and green - or something less "red/blue" ? (maybe it's just me in the U.S. - but I'm sick of that... haha)

Unique words between successive games

Issue

When playing two games back to back using the same game identifier, sometimes the same word appears in the next game (low chance, but possible)

Solution

[Option 1]: When creating a new game, send a list of words to NOT use when generating the next game
[Option 2]: When creating a new game, look at the previous game's (by game identifier) words when generating to ensure unique words between games

Add deployment instructions

@jbowens This is awesome! I've tried playing the last two Friday nights, and the site has been down both times (I'm guessing because of the amount of traffic).

I tried deploying on Heroku and Netlify with no luck. Would you be able to share how you deploy (even if just where you deploy?) and I can attempt to deploy and then document that in the Readme?

Thank you!

Logging recent words as a list

It would be awesome to have the words written down in the UI, as it is public information in the game. That way, if the internet connection of a team member is not reliable or someone is not paying close attention, they might still have the option of reading the word. It could be optional as to not force to change the game experience.

What do you think?

The logs of past games could be very interesting information to analyze by researchers, I would be very interested to do it!

Docker: go: directory /go/src/codenames outside available modules

I keep getting this error while building the docker:

 ---> Running in d04847700397
go: directory /go/src/codenames outside available modules
The command '/bin/sh -c go build /go/src/codenames &&     go build /app/cmd/codenames/main.go &&     cd /app/frontend/ &&     npm install &&     sh build.sh' returned a non-zero code: 1

But if I remove building /go/src/codenames completely it to build (and run!) just fine:

-RUN go build /go/src/codenames && \
-    go build /app/cmd/codenames/main.go && \
+RUN go build /app/cmd/codenames/main.go && \
     cd /app/frontend/ && \
     npm install && \
     sh build.sh

Could you explain why you try to build whats in your GOPATH? isn't just putting it there enough? why put it there at all?

Thank you for your time and your wonderful implementation!

Support for Duet/Deep Undercover Word Sets

I've been using codenames.plus recently, due to their support for the Duet/Deep Undercover wordsets, but I prefer the pared down login system of your version. Have you considered adding more the words from the expansions?

Assassin card (in spymaster view) too neutral of color

The covered assassin card is not a sufficiently distinct color from the uncovered neutral cards. I would suggest making the assassin card a darker gray so it is more obviously distinguishable for the spymaster. This is a particular issue when playing in dark mode.

Website down?

Seems the host is down. Perhaps there is too much traffic due to the stay at home sheltering.

clue giving

clue giving would be nice for remote play, also good for having codemasters in a separate room or something

y u delete clue code

Restrict to 2 spymaster modes per game

Is there a way to restrict and/or make it transparent if a player is trying to view the key by switching to spymaster? - that will prevent any cheating

Vietnamese Support

I love this game. Super exiting to see a team of devs working on this.

I am pretty connected to Vietnamese people and I could help getting this language added (words + UI). if that is something you'd be interested in?

Also, as I am familiar with this stack I would love to spend some time on it more on bug fixing/new features.

Add a timer for each turn

Add a timer to the game so each team gets fixed amount of time for turn. When a team turn ends and the turn switches, timer would reset. The turn would also switch when timer ends.

Spymaster Mode

Hello

We discovered this life-saver-of-a-game during times of COVID-19.
Playing with friends and family has brought much joy and togetherness in times of isolation. However, during these depressing and trying times, where people have low morale and feel crappy about themselves, there is clearly cheating happening with crazy super-power abilities emerging suddenly in the connection of words...Professor X would be so proud.

I kid you not, during one game, a guesser wrote down all the words on a piece of paper, and in an epic Piccasio-esque-venn diagram, showed their deduction process of picking the correct words...HMM CHEAT!

Having a restricted spymaster mode would bring much joy to my life as I am a stickler for rules and try to lead a fair and honest life. I just don't dig the cheating and sudden psychic abilities.

Is there a way of having a spymaster mode:

  • allowing only two people to press spymaster
  • having a password entered
  • something else to STOP the cheating!

It would be the most amazing milestone in my life to find a solution to this...and I am sure other codenamers' lives!
I hope you hear my cry for help and are able to develop a way forward to #STOPTHECHEATING

Otherwise, I will need to find new friends...

Make the game result more noticeable

Currently, the winner is displayed small on the top right. It is difficult to see the game result especially for other players. Adding either a popup or an animation will help to indicate the end of the game.

Intermittent board resets on www.horsepaste.com

Me and my friends have loved this. We've played over 30 games over the last 3 months.

About 3 or 4 times in those 30 games the board has completely reset. Haven't found a cause yet, but wanted to see if you were aware of this, or have any idea why it might be happening.

Preserve active games for longer

Presently incomplete games are removed from memory after 72 hours and from disk after 24 hours: 7661089

The effect is that we only guarantee your uncompleted game will be around for 24, but if you're lucky and we don't redeploy it'll be around longer.

It'd nice to extend this to allow asynchronous game play over an extended period of time. We have an 'updated_at' field on games now, and that could be used to preserve games for longer. We probably would need to rework the kv keyspace, because right now games' keys are prefixed with their created at time to allow for efficient deletes of expired games.

Outdated certificate on horsepaste.com

Hello, really enjoying your implementation of codenams.
Sadly our internal network configuration rejects it now, as the certificate warnings show up.
Hopefully it's something you can look into.

Thanks

Custom Words?

Hi Jackson, thanks for the wonderful app. It's very clean. Have you thought about adding a custom word list feature? This would help teachers like me immensely as we can use your app to review vocabulary with students.

Words sometimes appear several times in consecutive games

Currently, the game takes random words from the word pool for each game. Once used, the word should be removed from the list so further games do not contain it. I suggest coupling a set (sets for multilingual support) of words to a game ID from which the game selects its words. On new game generation, the Game should pop the selected words from the set, and the server should ensure that the set contains at least 25 words for the game to take (reload the words from default word set).

Some additional comments.

Memory issues: Since each game ID has it's own set of words and as far as I can see, you don't have any permanent storage (I guess this is by design), the sets need to be kept in the working memory. I believe you already have a separate word set for each game state so this should not be an issue.

User perception of the reducing word set: This implementation should ensure that the user plays at least 16 games before encountering a word again (assuming a single user/group uses the id).

Pause / resume timer

Allow pausing and resuming the turn timer. The interface could be as simple as clicking the timer, but maybe that's not discoverable enough.

Prevent from cheating with switching to Spymaster

Here are two ideas to prevent people from cheating:

  • Block switching to Spymaster after the game has started. You could have a screen before seeing the game that asks you which role you want to take and it blocks it for the rest of the game.
  • Make it visible to other players when someone switches to Spymaster (for example, a thing that counts the number of active Spymaster screens and flashes if it changes during the game).

Thanks again for this app. We've had some really fun time playing.
Keep up the good work.

Etymology of name?

Hi @jbowens, thanks very much for a great app. I'm dying to know, though: what is the etymology of "horse paste"?

Needs a colorblind mode

The current styles are not sufficient for a colorblind spymaster to tell the difference between colors. I used these styles successfully with a friend:

.cell {
  width: 130px;
  height: 90px;
  box-sizing: border-box;
}
.codemaster .red.hidden-word,
.red.revealed {
  outline: 2px dashed #d13030;
  border: 1px solid white;
}
.codemaster .blue.hidden-word {
  outline: 2px solid #4183cc;
  border: 1px solid white;
}
.blue.revealed {
  outline: 2px solid #4183cc;
  border: 1px solid white;
}
.revealed .word {
  text-decoration: underline;
}

screenshot of proposed styles

I don't have time right now to submit a PR for this but hopefully this is a useful starting point. Remaining work:

  • add a toggle to enable/disable this mode
  • add a legend describing the styles
  • add labels to the score too

Codenames Pictures

Support for Codenames Pictures (perhaps as a separate language?) would be totally awesome. Are there any thoughts along these lines?
I'm willing to contribute a bunch of Codenames Pictures-like drawings of mine. I can also have a go at coding, but I'm not very experienced with Go, so any pointers on how to go about this would be awesome.

Have a colorblind option

Your site is great thank you! One of my friends is colorblind and it would be great if the colors could change to have more of a difference for color blind people.

Thanks!

Multiple Languages

Would be great to add multi-language support to the game. Would volunteer to add german version of word list.

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.