Skip to content

GamesCrafters/GamesmanUni

Repository files navigation

GamesCrafters Logo

GitHub Repository Watch Count GitHub Repository Star Count GitHub Repository Fork Count

GitHub Search Hit Count GitHub Repository Language Count Repository Top Language Site W3C Validation Code Size Repository Size

GitHub Commit Activity GitHub Last Commit Time GitHub Repository Contributor Count

GitHub Repository Open Issue Count GitHub Repository Closed Issue Count GitHub Repository Open Pull Request Count GitHub Repository Closed Pull Request Count

Repository Version Site Status Repository License

GamesmanUni is a web implementation of GamesmanClassic in C, developed as part of GamesCrafters research and development group at University of California, Berkeley. Gamesman is a finite, two-person, perfect-information game generator based on Master thesis by Professor Dan Garcia.

Getting Started

  1. Install Git if you have not already, though it should come with most OS.

  2. Install latest current version of Node.

    You can get it from Node JS Official Website, or via Homebrew Formula on MacOS.

    I suggest you use Node Version Manager to easily switch between different Node JS versions for different projects on your system. To install NVM, run the following commands:

    # Download NVM installation script and run it.
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
    
    # Install a specific version (version 18 here) of Node.js.
    nvm install 18
    
    # Activate Node.js from NVM.
    nvm use 18
    
  3. Enable corepack binary.

    corepack enable

    Corepack is the binary included by default with Node JS version 16.10 and later, enabling developers to use different supported package manager versions across multiple projects.

    This allows us to skip the installation of package manager, Yarn in our case.

  4. Clone GamesmanUni repository locally, and navigate into the root directory.

    git clone git@github.com:GamesCrafters/GamesmanUni.git
    cd GamesmanUni
  5. Install external dependencies.

    yarn
  6. Build GamesmanUni for production.

    yarn build

    The site should be available in ./dist once the build is done.

  7. Preview the production built of GamesmanUni locally.

    yarn preview
  8. Launch Development Hot Module Replacement (HMR) server, recommended for development as you won't need to rebuild every time you make a change to a source file. Note that running this step does not replace yarn build since it doesn't update the contents in ./dist. If you are pushing the latest build to the NYC server, you still need to run yarn build after making changes.

    yarn dev
  9. Preview the production built of GamesmanUni served with https locally to test PWA features.

    yarn preview:https

License

AGPL-3.0-or-later

Acknowledgment

I started this project initially under code name uni after I first joined GamesCrafters Undergraduate Research and Development Group under Professor Dan Garcia at University of California, Berkeley. It was inspired by the old front end JQuery project, GamesmanGui, developed in collaboration with the back end team using Universal Web API, GamesCraftersUWAPI, through a weekly agile software development cycle. I would love to thank Prof. Dan for guiding all of us with computational game theory research, Seth and his back end teams for working in tandem with the front end team patiently (especially with my constant nudges! 😅), the newly formed design team for the new and exciting UI/UX updates to come, and last but not least my amazing front end team members for bearing with difficult me throughout this whole engineering, designing and development journey!!!

❣️ Developed with 💙 at University of California, Berkeley. ❣️

🐻 Go Bears! 🐻

🐼 Shein Lin Phyo 🐧