Coder Social home page Coder Social logo

pleb-team / pleb Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 98.92 MB

A cooperative project to write a cross mobile platform card game iOS android

License: GNU General Public License v3.0

QMake 4.40% C++ 35.82% QML 59.78%
pleb gplv3 card-game qt qml teamwork cross-platform mobile-game felgo artificial-intelligence

pleb's Introduction

Copyright (c) 2020 Pleb-Team Contact: [email protected] Privacy Policy: See https://github.com/Pleb-Team/pleb/blob/master/PrivacyPolicy.md

A cooperative project to write a fancy cross platform card game with various AI styles.

Table of Contents

  1. Introduction
  2. About
  3. Screenshots
  4. Documentation
  5. Development
  6. Licenses

Introduction

Completely free, Open Source, GPLv3 licensed implementation of the traditional card game "President".

Objectives Become president and be the first to get rid of all cards in your hand! Or be the last to finish and be the pleb. At the start of each game, the pleb has to pass his or her 2 highest cards to the president, who in turn discards 2 arbitrary (usually lowest) cards back to the pleb [not yet implemented].

Rules Upon fresh start, you may freely play 1,2,3 or 4 cards of the same value (e.g. one 8 or triple Queen). Else, play the same amount of cards, but exceed the value on the discard pile. If you can't or don't want to play, you pass. If everyone passes, the last player can restart freshly. "

This new implementation of the popular card came "President" (a.k.a. "Arschloch", "Master", ...) is the outcome of our team hackaton in Stuttgart, 2020, established during the crisis. We aim at demonstrating that despite the lockdown, it is possible to stick together and use the time meaningfully e.g. by studying a new, fun technique of creating games.

Contributors: Joachim, Ben, Sebastian, Sven. Happy playing!

About

Pleb is an implementation of the popular German card game Arschloch and English card game President. See at the documentation for common rules.

It is based on the former Windows version arschloch3d which uses Direct3D.

Screenshots

  • Android:

  • IOS:

Documentation

Development

  1. Changes
  2. ToDo
  3. Architecture
  4. CI Continuous Integration
  5. Dependencies

Changes

ToDo

  • use from Felgo independent multi-player cross platform system. Proposals:

Architecture

Diagram

(still early version of drawing, and editable

CI

Dependencies

Licenses

  • Pleb Licensed under GPLv3: License Copyright (c) 2020 Pleb-Team
  • 3rd party software:
  • Graphics:
    • Background image: "Secessione della plebe sul Monte Sacro" engraved by B. Barloccini, 1849. Downloaded from Wikipedia as public domain.
  • Sound/Music:

pleb's People

Contributors

ben-0711 avatar electricherd avatar tschuldigung avatar

Stargazers

 avatar

Watchers

 avatar  avatar

pleb's Issues

Prepare GUI for first publish

  • Label unstable features as unstable (Multiplayer)
  • Add a screen of contributors
  • Update Felgo Multiplayer Key
    --> didn't work, watermark reappears. Conclusion:Stays empty, we won't use it anyway
  • Check why the "Singe Player" Button looks so crappy ("P")
  • Replace sound?

Karten tauschen zu Beginn einer neuen Runde

Todo
Neue Variablen / Zugriff benötigt

  • Anzahl der (noch) zu tauschenden Karten je Spieler

Funktionalität

  • Pleb begins new game
  • Anklicken der Karten und dann Übergabe an den Tauschpartner
  • Checken ob erlaubte Karten angeklickt sind (Pleb muss ja die 2 höchsten selektieren)
  • Hints aktualisieren
  • KI einbinden, die die Karten auswählt

Später

  • o.g. neue Zustände wieder in Sync... Multiplayer einbinden: finishedUserIDs

Kurzanleitung

Bei fast jeder App gibt es mittlerweile eine Kurzanleitung beim ersten öffnen

  • Ziel des Spiels
  • Was muss/kann ich tun
  • Wie kann ich Einstellungen tätigen
  • Besondere Tricks oder sowas

Ringing sound remove

Sound is played AFAIK based on Uno rules when one player has only 2 cards remaining? To be checked

Quality measures III

  • Testen im Simulator für verschiedene iOS Geräte
  • .json umstellen auf Publish
  • Apple notification Dings klären
  • Max rausnehmen
  • Benny und Sven (und Sebastian) noch testen lassen
  • Checken was man sonst noch machen muss
  • Spiel umbenennen A*hole

Deployment

  • Screenshots für App Store erstellen

Guidelines / Review criteria / Most common sources for rejection
https://developer.apple.com/app-store/resources/

Quit game bug

When pressing the "Home" button during the game, and quickly pressing the confirmation button "Quit game" twice, the game goes to an undefined state: MenuScene and GameScene both become semi transparent. Upon new game, no cards appear. The game is stuck.

Remove the Felgo WaterMark

Ich kann beim besten Willen nicht nachvollziehen, wo der her kommt

@electricherd , @maxkes , @Ben-0711 seht ihr den Watermark auch?

Ich sehe ihn ÜBERALL , in JEDER Kombination von

  • Release oder Debug
  • Starten mit Debugger oder Starten ohne Debugger
  • Mit neuem LIcensekey oder altem
  • Mit stage = test oder stage = publish (in config.json)

Die einzige Ausnahme: Build für Desktop Debug-Mode und dann Run mit Debugger. Da ist das Watermark weg.

Any ideas?

Multiplayer stability

search for endturn() calls, sometimes these are quick and dirty, thus different multiplayer pcs might run into different states. This explains why sometimes we have to wait for ages for a connected multiplayer to play - he might be stuck in some dirty if-branch. See e.g. turnStarted()

Minimum correction:After endturn(), the function shall be exited.

Get Version Code automatically from Git

Version number kann / sollte fix bleiben, denn davon abh müsste man jedesmal einen neuen Felgo key erzeugen.

Der App Store guckt „nur“ auf Version Code zum veröffentlichen.

Update nicht möglich

Update nicht möglich. Ich hab beide .apks probiert, et hat den Update-Prozess angefangen und dann abgebrochen. App deinstallieren und neu installieren hat dann funktioniert.
2020-04-09 19 11 25

Fix license problems

  • LicenseKey setzen vergleich mit den anderen Templates: OneCard template Sud, Empty3DProject oder FlappyBird scheinen viel neuer.
  • Verifizieren ob es auch mit der Konstante aus der .pro Datei klappt
  • Felgo neuen LicenseKey erzeugen: https://felgo.com/doc/felgo-publishing/#felgo-license
    If you use a project license key and increase the PRODUCT_VERSION_CODE for an update, you also need to generate a new license key for the updated version and update your App::licenseKey of your app or GameWindowItem::licenseKey of your game. You can also see the current PRODUCT_IDENTIFIER and PRODUCT_VERSION_CODE while running a development build: It is displayed as a white overlay text on the bottom of the screen.
  • setOrganizationDomain() und setApplicationVersion() in main.cpp nötig? Anschließend. per Default aus der Binary gelesen. Debug-Ausgabe einbauen und im iPhone checken!
  • (rejected, nicht nachvollziehbar und anscheinend egal) QtCreator Warnung des falschen Provisionierungs Profils
  • (rejected, umständlich) Felgo Ressources file nutzen

Low Prio

  • Xcode connect to Phone error, der NUR IN QTCREATOR erscheint?

Refactor for usage of legacy logic

Neue Variablen / Zugriff benötigt
(ok) Ausgang des letzten Spiels
(ok) Zustand KartenTauschen <-> Zustand normales Spielen
(ok) Ausgang des letzten Spiels aus CGameState vs. aktuelle Implementierung?

Collect relevant licences and show them in the game

Licences of ALL comonents we are using must be made available / shown to the users - meaning potential developers as well as of course players or the compiled and deployed game. This means we have to

  • Reconsider the license for Pleb itself. I personally prefer GPLv3 s.t. Pleb has a copyleft (is and stay free), whereas MIT is less restrictive and means that others are allowed to even sell our SW without distributing the source.

https://www.freecodecamp.org/news/how-open-source-licenses-work-and-how-to-add-them-to-your-projects-34310c3cf94/
https://www.gnu.org/licenses/license-list

  • Collect all relevant licences:

  • Felgo,

  • Qt,

  • Background Image,

  • Sound,

  • Card Images?

  • Make the licences available

  • Create a new folder (e.g. docs/licences) and put them all in there as single .txt file each

  • Make sure it is linked from the readme (Sven already started)

  • Create a button within the game that shows all licenses as one huge text file
    "For interactive programs, it is usually a good idea to make the program display a brief notice about copyright and copying permission when it starts up. See the end of the GNU GPL for more information about this." (https://www.gnu.org/licenses/gpl-howto.en.html)

  • Add the GPLv3 cool logos to

  • Our Game Splash screen

  • the README.md

  • https://www.gnu.org/graphics/license-logos.html

Reason: See below excerpt from the LGPL License (D:\Felgo\Licenses\FelgoLicense.txt)
"You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, You must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License."

Error in Game control: Clearing the deck

Bug: When a player plays an Ace, then he will be allowed to restart "from fresh" at his next turn.
If he, for whatever reason, passes, then the next players allowed to restart from fresh. This currently does not work.

The deck must be cleaned, i.e. reset to empty, when it's the players turn who played the last move.

Fix game starts with black screen

Ursache: Tippfehler in Main.qml, die ersten 3 AppStarts gelangt man zu window.state = "induction" statt "introduction" :-(

Qt zeigt sowas natürlich nicht an, wäre ja zu schön, wenn bei einer State Machine ein Fehler erscheint, sowie man einen NICHT DEFINIERTEN state auswählt.

Noch gucken was ich damals bei der ursprünglichen Implementierung falsch gemacht hatte und aus Fehlern lernen

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.