Code Monkey home page Code Monkey logo

pali's Introduction

๐Ÿƒ Pali - 3D Multiplayer Godot Card Game

Pali is a 3D multiplayer Godot trade card game (TCG).

Gif Example

This repository holds everything needed to export and run a personal dedicated server for the game, and game clients. The code can be used as a base for your own card game.

Rules for the game

  • Goal of the game is to build a hand of 5 cards that exceeds the points of your opponents 5 cards in their hand.
  • The game has 25 cards total and starts by dealing 5 cards randomly to each player.
  • It is turn based, every turn, you can either:
    1. Place a card from your hand onto the table
    2. or switch a card from the table with one in your hand.
  • When there are no more cards in the deck, the game is over and points are tallied to determine the winner.
  • There is no time limit

Point counting

card example - aerospace engineer

  • Every card has a point value near the top to represent their base points
  • Every card also has a "category", in this example it is "Engineer" for the Aerospace Engineer card. For every other card in your hand that is also an engineer, you get another +2 points added to your hand.
  • Some cards may optionally have some "tags". In this example, the Aerospace engineer card has 2 tags, "Nature" and "White Coat". For every other card in your hand that has any of the same tags, you get an additonal +1 point added to your hand per tag.
  • Finally, cards have a special relationship with 1 or 2 other cards in the game that are in different categories. For this example, the Aerospace Engineer gets a +6 point boost if you also have the "Psychologist" card in your hand.

Points are automatically calculated and shown in the bottom right/left sides of the screen.

Controls

There are minimal controls:

  • Left mouse clicking - click to select card in hand, then click empty space on table to place card, or, click another card on table to show a popup to confirm a switch
  • Z - to zoom into the table and get a better top-down view to read the cards on the table

How to export dedicated server

The game is not peer-to-peer, but relies on a dedicated server, every server can handle only 2 peer connections, once 2 peers are connected - the game begins.

If you have a server IP address, place it in Global.gd as the SERVER_ADDRESS, then export the dedicated server and client using the presets already available.

Credits

  • The 3D assets are from @KayLousberg from their "furniture bits" itch.io page
  • UI font is Noto Sans, available from Google Fonts
  • Card flip sounds are from freesound.org
  • Card images were generted using A.I, from the tool Layer
  • Everything else was created from scratch by Jason Rametta in Blender or other softwares

pali's People

Contributors

brylie avatar rametta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

pali's Issues

How to test this game locally/start the server?

While checking out this project, I've been a bit confused about how to run it locally for testing/development. I couldn't find any instructions in the README or project code for running/testing this project.

I was able to start two instances of the game via the Debug menu ("run two instances"). In each instance, I enter a player name and then click connect. The game stays at a "connecting" state. I also changed the hard-coded IP address to "localhost" to see if that would allow the players to see each other.

What is the most straightforward way to run this project locally for demonstration and development purposes?

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.