GithubHelp home page GithubHelp logo

yiliansource / codenames Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 1.0 313 KB

An online word-guessing game, written with TypeScript as an ExpressJS application using Socket.IO websockets.

Home Page: https://codenames.yiliansource.dev

License: MIT License

HTML 2.79% JavaScript 4.93% TypeScript 92.20% SCSS 0.07%
expressjs game typescript websockets

codenames's People

Contributors

yiliansource avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

philipchench

codenames's Issues

Extend i18n functionality

At the moment it's pretty ugly to use HTML-formatted i18n strings in the client code, because React doesn't implicity render inline HTML.

<p dangerouslySetInnerHTML={{ __html: i18n.format(LangKey.MyLanguageKey) }}></p>

The goal would be to return a HTML element directly, so no additional work has to be done when calling the translation.

<p>{i18n.format(LangKey.MyLanguageKey)}</p>

Obviously this would mean that translated strings are nested in a <span> element, but this does not really matter, since styling is done exclusively via Tailwind and not custom selectors.

Proper website design

Design & Layout should be updated to reflect proper web usage, including a navbar and a footer.

UI/UX Improvements

Items are extrapolated from the playtesting session on 19/12/2020.

  • The solution colours should be visible on the cards, for the game masters. This takes away the need to constantly look back between the colours and the cards.
  • Don't clear the hint history after the round ends, only after a new one starts.
  • Players on the same team should also get a "not-allowed" cursor while waiting for their game master to pick a card.
  • To better indicate card hovering, cards should be scaled up a bit.
  • Game masters should be displayed at the very top of the team views.
  • Instead of "Wait while the game master is choosing a hint.", one could directly use the player's name instead of "game master". For additional candy, one could even add the game master icon (the little wizard hat) next to the name when rendering it. When displaying multiple names, they should be joined together by commas and an "or". Note that this is linked to #2.

Improve UI/UX

  • Don't scale up the card once it's consumed.
  • Show the solutions to everyone once the game is over.
  • Investigate issues with smaller screens.
  • Remove strict hint filter.

Make the game-ending message more appealing

Task

Make the "Team X has won the game!" message more visually appealing.

Proposal

Make it a popup instead of a small message at the bottom of the screen. If the assassin is picked, a bullet impact hole could be rendered to the screen.

Add more words, avoid repetition

Currently, the German/English versions of the game only have around ~150 words. Double the amount would reduce the amount of times the same words are received.

Additionally, like in the original game, it should not be possible for a board to have the same words twice in a row. This can be implemented by excluding the current words when generating new ones.

Responsiveness

Currently the website is not responsive at all. Since the gameplay just consists of tapping and text input, it could just aswell work on mobile devices, if the elements are correctly made responsive via media queries and smart flexbox usage.

Chatting functionality

Description

Sometimes words require discussion between game masters, for example if a proposed hint is allowed or not. For this, and more, purposes a chat function could be implemented.

This chat could additionally the game status messages, like if a user revealed a card.

Specifications

  • The chat window is visible at all times. This way users can even play the game without relying on voice chat.
  • Server and client messages are to be made distinguishable.
  • Game Master messages are ONLY to be relayed between them, not to other players.

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.