4.5 KiB
My Tendy Zone
Development Environment Setup
bundle install
cp config/{database.yml.example,database.yml}
rake db:setup
guard
TODO
-
Implement video chat https://github.com/domchristie/webrtc-hotwire-rails
-
Abandon previous video chat solution
-
change from google ice server ./frontend/components/video_util.js:6
-
Add video chat https://medium.com/@nicolas.e.schneider/videochat-in-under-30-a-rails-react-tutorial-534930c6cd96
-
Refactor seat.jsx buttons in to a
. -
1st 2nd 3rd place messages. End game message.
-
Tables to contain the games
-
flexbox layout: http://codepen.io/anon/pen/ojJOjq
-
bot players
-
flexbox layout: http://codepen.io/anon/pen/ojJOjq (started)
-
graphics
-
Remove PlayToBeat model and table.
-
Implement run including face cards (done?)
-
TODO: SoftToken unique for User
-
TODO: If actions are taken while not logged in, and then user logs in, should those actions be applied to that account? Maybe prompt the user to signup or login to save their earnings / progress.
-
BUG TODO: First player / lowest card holder should not be able to pass first play
-
Bug: Players should not be able to pass outside of their turn. Validate play: play.player == game.current_player
-
Replace publicly displayed emails with usernames
-
Review attributions and license compliance
-
TODO: Refactor guardfiles down to one file using
groupshttps://github.com/guard/guard/wiki/Guardfile-examples -
TODO: Move game logic out of game model / controller to module in /lib/game_logic.rb e.g. https://github.com/adamof/rails-poker/tree/master/poker
Proposed Schema
Table has_many Seats User has_many Games players from seats.users has_one :current_game
Game Lifecycle
Start Player Turns First place finish Second place finish Third place finish Start new game with existing players
- Provide button for player to leave before new game starts
- If less than max players, button to vote to "wait for more players"
Feature Ideas
- Invite friends to current table
- Address link to current table
- Show winner of previous game
- User stats
- Table stats
- In game currencies
- Tournaments
Bot players
Essential:
- Play valid hands
- Pass
Nice to have:
- Skill level setting
- AI based on skill level
ReactJS front-end
Implement card graphics https://openclipart.org/detail/171444/white-oxygen-playing-card-faces http://www.vecteezy.com/vector-art/65607-gambling-cards http://opengameart.org/content/playing-cards-1
ActionCable for realtime / websockets
Animation with pixijs http://www.pixijs.com/ (or VelocityJS ? https://github.com/julianshapiro/velocity)
Metrics https://www.skylight.io/ and/or NewRelic
Rename Game column from control_player_id to
current_player_id ?
active_player_id ?
Mobile app with Intel XDK ? https://software.intel.com/en-us/intel-xdk/documentation
Remove console.log debuggings
End Goals
-
Implement front-end in React
-
Play from IRC / xmpp / AIM
Ruby on Rails
This application requires:
- Ruby 2.1.5
- Rails 4.1.8
Learn more about Installing Rails.
Getting Started
Documentation and Support
Issues
Similar Projects
Contributing
Credits
This application was generated with the rails_apps_composer gem provided by the RailsApps Project.
Rails Composer is open source and supported by subscribers. Please join RailsApps to support development of Rails Composer.
License
Attributions
Felt subtle pattern
Source: http://subtlepatterns.com/felt/ Author: http://atle.co/
Extra suits
R. Wayne Schmittberger, in his classic game design primer New Rules for Classic Games (1992), describes how you can make your own six-suited deck. Obtain two standard decks with the same backs. Set one aside, and take the Hearts and Diamonds from the second. Draw an arrow through each Heart with a permanent black marker to make a suit of Valentines, and draw an 'X' through each Diamond to make a Kites suit. Shuffle these two new suits together with the deck you set aside, and presto! a six-suited Schmittberger deck! (Of course, you can remove either Kites or Valentines to create a five-suited deck like the Stardeck.)