thirteen-tien-len/README.md

195 lines
4.6 KiB
Markdown

================
Development Environment Setup
-----------------------------
bundle install
cp config/{database.yml.example,database.yml}
rake db:setup
guard
TODO
----
- Continue to Private Chat https://www.honeybadger.io/blog/chat-app-rails-actioncable-turbo/
- 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 <form>.
- 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 `groups`
https://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](http://railsapps.github.io/installing-rails.html).
Getting Started
---------------
Documentation and Support
-------------------------
Issues
-------------
Similar Projects
----------------
Contributing
------------
Credits
-------
This application was generated with the [rails_apps_composer](https://github.com/RailsApps/rails_apps_composer) gem
provided by the [RailsApps Project](http://railsapps.github.io/).
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.)
http://www.thegamesjournal.com/articles/GameSystems2.shtml