Coder Social home page Coder Social logo

conspiratio / conspiratio.winforms Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 220.32 MB

Ursprünglicher WinForms Spielclient von Conspiratio (Wirtschaftssimulator der Neuzeit)

Home Page: http://www.conspiratio.net

License: GNU General Public License v3.0

C# 100.00%
economy-simulator game-development hacktoberfest medieval-game simulator-game winforms

conspiratio.winforms's Introduction

Conspiratio.Lib

Dies ist der aktuelle Stand der C# .NET Framework 4.6.2 Klassenbibliothek mit der Gameplay Logik von Conspiratio, entnommen aus dem Conspiratio WinForms Client. Die Bibiliothek ist noch nicht vollständig, enthält aber bereits die wichtigsten Klassen und Methoden und kann als Grundbaustein für den Unity Client dienen.

Package

Nuget GitHub release (latest SemVer)

Build

Push - Build and publish Lib
Pull-request - Build Lib
CodeQL

Das Projekt wurde erstellt mit: Visual Studio 2019

Für den manuellen Build einfach die Projektmappe Conspiratio.Lib.sln öffnen und kompilieren.

Systemvoraussetzungen / Abhängigkeiten

  • .NET Framework 4.6.2

Über das Spiel Conspiratio

Das Fanprojekt namens "Conspiratio" ist eine freie Wirtschaftssimulation der Neuzeit, die sich stark am Kultspielt "Die Fugger 2" orientiert.

Zu Beginn erbt der Spieler eine heruntergekommene Produktionsstätte und das bescheidene Ersparte eines Verwandten. Damit kann er sein Geschick als Kaufmann unter Beweis stellen, indem er Waren herstellt und verkauft, wohl durchdachte Investionen tätigt oder sich als gewiefter Exporteur durchsetzt. Der Spieler kann den neu gewonnenen Reichtum und den damit verbundenen Einfluss nutzen um:

  • Noch weitere Produktionsstätten zu erwerben,
  • Titel und Privilegien zu erlangen,
  • Spione und Saboteure auszusenden
  • Angesehene Amtsinhaber zu manipulieren,
  • oder sogar selbst ein mächtiger Amtsträger zu werden.

Doch Vorsicht! Auch manche Konkurrenten werden von niederträchtigen Maßnahmen nicht zurückschrecken ...

Über dieses Repository

Ziel ist ein Rewrite der Oberfläche und eine Portierung sowie Refaktorisierung der Gameplaylogiken und der gesamten Architektur von der aktuellen Windows Forms Version zu einem Unity Spiel, da wir hier viel mehr multimediale und vor allem grafische Möglichkeiten haben und es eine gewisse Plattformunabhängigkeit gibt. Dieser neue Unity Client wird vollständig Open-Source sein, wir möchten andere Menschen möglich einfach in die Mitarbeit und Mitentwicklung einbeziehen und aus dem Hobbyprojekt soll ein Communityprojekt, von Fans für Fans, werden.

Zur Planung und Steuerung der Entwicklung sollen Github Issues dienen.

Mitmachen

Ihr wollt Euch an diesem Projekt beteiligen? Großartig! Tretet einfach mit uns über Discord oder oldschool per E-Mail in Kontakt und wir klären die Details.
Jegliche Hilfe ist willkommen.

Git Workflow

Wichtig: Wir committen und pushen nie direkt in den master Branch!
Der Grund ist einfach mangelnde Transparenz und fehlendes 4-Augen-Prinzip bzw. fehlende Kontrolle durch mind. einen anderen Entwickler.

Für jede Änderung an Conspiratio muss daher immer ein neuer, persönlicher Branch erstellt werden. Der Name des Branches sollte immer mit einem der folgenden Namen beginnen, gefolgt von einem Schrägstrich:

  • improvement (= Verbesserung des Code oder einer Funktion im Spiel, auch Refaktorisierungen)
  • fix (= Korrektur)
  • feature (= neue Funktion des Spiels)

Beispiel: fix/absturz-bei-ueberfall

Es sollten außerdem Umlaute und Sonderzeichen vermieden werden und es können außerdem aufgrund von technischen Restriktionen im Branchnamen Leerzeichen nicht verwendet werden, weshalb wir hier stattdessen Bindestriche verwenden.

Ist der eigene Branch dann soweit stabil und enthält alle gewünschten Änderungen/Erweiterungen, dann kann mittels Pull Request eine Anfrage auf den Merge in den master Branch erstellt werden. Diese sollte immer einem anderen Entwickler zur Prüfung zugewiesen werden, welche einen kleinen Code Review macht, ggf. Feedback zum Code gibt und nach Ausbesserung den Branch dann auch mergt. Eigene Branches sollten nur in Ausnahmefällen selbst gemergt werden (z.B. zeitliche Dringlichkeit).

Code Guidelines

Als Coding-Richtlinien für C# nutzen wir insbesondere für neuen Code folgende Referenz, da sich diese mittlerweile als Standard durchgesetzt hat:
https://docs.microsoft.com/de-de/dotnet/csharp/programming-guide/inside-a-program/coding-conventions

Bezüglich der Benennung und der Standards wird zusätzlich noch diese Referenz herangezogen:
https://www.dofactory.com/reference/csharp-coding-standards

Dabei ist bitte zu beachten, dass wir hier als Sprache der Kommentare im Code und auch der meisten Bezeichner deutsch verwenden, da die gesamte bestehende Codebase schon deutsch aufgebaut ist. Natürlich muss jetzt nicht jedes Keyword in jeder Methode komplett deutsch sein, z.B. wäre GetUmsatzProSpieler vollkommen legitim (da Get einfach für jeden Entwickler Standard sein sollte), problematisch wäre allerdings etwas wie GetVolumeOfSalesPerPlayer, da wir solche Begriffe sonst nirgendwo finden, weder in der Spieloberfläche noch im bestehenden Code und es daher schnell Verwirrungen geben kann, was nun gemeint ist.

Alter Code kann und sollte gerne nach und nach auf diese Richtlinien umgestellt werden, damit es später kein Durcheinander gibt, das hat aber zunächst mal nicht die höchste Priorität. Sollte man aber älteren Code verändern oder refaktorisieren, dann sollte man sich die Mühe machen, und hier auch die neuen Guidelines anwenden, frei nach dem Pfadfindermotto:
Hinterlasse einen Ort (Code) immer in einem besseren Zustand als du ihn vorgefunden hast.

Dokumentation

Die Dokumentation von umfangreichen Features oder sonstigen interessanten Methoden, Klassen etc. im Code erfolgt im Github Wiki. Das Github Wiki soll ausschließlich der technischen Dokuementation und nicht der Dokumentation für die Spieler dienen, dafür wird es ein eigenes Wiki geben.

Changelog

Vorab: Wir nutzen einiges aus diesem Konzept hier: https://keepachangelog.com/de/1.0.0/

Der Changelog wird in der Datei CHANGELOG.md gepflegt, direkt hier im Root. Wichtig ist, dass jede Änderung hier dokumentiert wird, und zwar immer im Bereich "Unreleased". Das bedeutet im Umkehrschluss, dass jeder Pull Request also auch immer eine Änderungen an der Changelog-Datei enthalten muss, sonst ist er nicht vollständig.

Im Changelog nutzen wir folgende Gruppen zur Unterteilung der Änderungen:

  • Erweiterungen
  • Änderungen
  • Korrekturen
  • Balancing

conspiratio.winforms's People

Contributors

sirtobyb avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

conspiratio.winforms's Issues

Allgemeines Feedback (Balancing, Erweiterungen, Änderungen, Bugs)

Hier habe ich das gesammelte Feedback von DerEinzehnte zusammengetragen, welches nach meinen Korrekturen und Änderungen noch offen ist. Die Quelle sind die folgenden beiden Beiträge im Forum:

Bugs

Balancing-Vorschläge

  • Titel zu Beginn der Runde verleihen (falls logisch möglich)
  • Handelswaren der Stufe 2 (Rind, Fell, Glas,...) haben in der Produktionsstadt oft kaum einen Wert (Rind 11, Glas 12,...) und sollten etwas angehoben werden.
    • Der Verkaufspreis von Tier II Rohstoffen in der eigenen Stadt ist aus unserer Sicht etwas zu niedrig. Man unterliegt hier schon fast einem Export-Zwang
  • Kirchenein- und -austrittskosten variabel gestalten. 10.000 Taler sind anfangs ein Vermögen und später nicht der Rede wert.
  • Bauwerk stiften unterschiedliche Preise
  • Nach Amtsenthebung sollte man nicht wieder auf der untersten Ebene starten müssen
    • Bei einem Amtsverlust wäre es super, wenn man nicht wieder die Leiter von vorne erklimmen muss.
  • Beim Kartenspielen die Mindesttaler für das Herausfordern bei niedrigen Ämtern reduzieren und bei hohen Ämtern erhöhen
  • Mehr Karavanenoptionen - speziell mit mehr Sicherheit/Eskorte, damit man lästigen Räubern entgegenwirken
    • Mehr Möglichkeiten für Karavanen. Die aktuelle Karavanenauswahl beschränkt sich auf 3 Karavanen, wobei die letzte im späteren Spiel immer die billigste UND die sicherste ist. Dadurch fällt die Wahl immer auf diese. Hier wäre es klasse, wenn sich die Karavanen noch etwas weiter unterscheiden. Insbesondere wäre es noch wichtig für mehr Kohle auch mehr Sicherheit anzubieten. Die Räuber können nämlich ziemlich lästig sein...
  • - Mehr Rohstoffrechte vergeben - Vorschlag: Jedes Mal, wenn das erste Mal eine höhere Amtsstufe erklommen wird (z.B. von Ratsherr auf Baumeister) ein neues Rohstoffrecht
    • Mehr Handelszertifikate verleihen wäre der Hammer. Beetle und ich hatten die höchsten Titel, die größten Bauten, mehrere 100.000 Taler an Barvermögen und doch bekamen wir insgesamt nur 4 Handelszertifikate und darunter war nicht einmal einer der Tier III Rohstoffe. Unser Vorschlag wäre daher mehr Handelszertifikate zu verleihen, um dem Spieler mehr Handlungsoptionen und vor allem mehr Spaß zu bescheren. Vielleicht kann ja ein Handelszertifikat für den Erwerb des ersten Räuberlagers/Söldnerburg vergeben? Vielleicht auch eines pro Ämterstufe, die man erklimmt? Wäre eine super Sache!
    • Siehe dazu: #26
  • Die Bauzeiten für Wohnsitze reduzieren (oder eine Option zur Beschleunigung bieten - z.B. Schmiergeld)
  • Das Privilegium Schmiergeld (vom Zöllner) für alle grafschaftlichen militärischen Ämter freischalten
  • Bei der Stadtanzeige werden 3 nachgefragte Rohstoffe angezeigt. Hier wären mehr eine große Hilfe im Spiel. Möglicherweise wäre es sinnvoll diese Anzahl der angezeigten Rohstoffe mit Nachfrage je Stadt zu erhöhen.
  • Zu Beginn eines Spiels lässt kein KI-Spieler mit sich Kartenspielen. Später sagt jeder immer zu. Hier wäre eine kleines nachbalancing klasse.
  • KIs sagen Kartenspielen auch bei 0 beziehung zu. Ich bin mir nicht sicher, aber ich glaube niemand geht mit jemanden, den er/sie hasst, Kartenspielen.
  • - Etwas zu viele militärische Ereignisse am Rundenende. Diese sind klasse, aber aufgrund der Vielzahl werden sie mit der Zeit nicht mehr so lesenswert. Wir haben diese dann einfach nur mehr ohne Lesen durchgeklickt. Gefüllt passiert auch etwas zu viel bei den Räuberlagern und Söldnerburgen, obwohl sie nicht so einen großen Part im Spiel innehaben (sieh dazu auch Conspiratio/Conspiratio.Lib#26)
  • Auch nach mehrmaligem anhäufen von Schulden kommt man nicht in den Schuldturm. Beetle und ich hatten quasi jede Runde ein Verfahren am Hals (mit nur kleinen Schuldbeträgen) und wurden immer wieder freigesprochen. Hier wäre es klasse, wenn Wiederholungstäter schneller eingepuchtet werden :D
  • Rum produziert gefühlt etwas zu wenig bzw. ist etwas zu unlukraktiv.
  • Bitte den Verkauf von unfertigen Wohnsitzen ermöglichen. Wir hatten gerade mehrere Burgen und Schlösser im Bau und da hat der Finanzminister plötzlich die Höchstzahl der Anwesen ZWEIMAL reduziert. Folglich mussten wir Unsummen an Strafen bezahlen und konnten nichts dagegen tun, weil alle Wohnsitze momentan im Umbau und unverkäuflich waren.
  • Der Reichtum der Hauptstädte sollte immer etwas höher als jener von den anderen Städten sein. Bei uns nagte Kingsguard geradezu am Hungertuch :lol:
  • Der Verkaufspreis von Wohnsitzen sollte etwas erhöht werden. Bei uns brachte eine nagelneu errichtete Burg gerade mal 50 % der Baukosten.
  • Bei einfachen Wahlen (Ratsherr,...) sollte ein Baron nicht gegen einen bürger verlieren. Hier könnte das Ansehen etwas mehr ins Gewicht fließen.

Vorschläge für Neuerungen/Änderungen

  • Das Pergament (mit Name, Titel, Taler,...) auch beim der Städteansicht im Handel einblenden
  • Eine Überschrift bei der Gerichtsverhandlung und Wahl einblenden
  • Neues Privilegium: Automatische Renovierung - hier kann der Spieler entscheiden ob und in welchen zeitlichen Abständen seine Wohnhäuser automatisch renoviert werden sollen
  • Bei der Brautwerbung anzeigen, wo die Hochzeit stattfindet
  • Den Mousecursor mit + und - (z.B. bei der Einstellung der Arbeiteranzahl) etwas vergrößern, damit das + und - besser erkennbar ist
  • Vorschlag für Hinterzimmer/Beziehungen pflegen: Zusätzlich zu Bestechen und Kartenspielen auch noch "einen Heben gehen"
  • Beim Export die einzelnen Exporteergebnisse (z.B. 500 Rind nach Kingsguard und 700 Rind nach Icepike) getrennt anzeigen inklusive Erlös/Stück
  • Nachfrage bei Stadtinformationen auf 6 Güter erhöhen - oder generell entfernen und alles nur mehr auf den Lagerstand beziehen
  • Spione zeitlich limitieren mit z.B. 5 Jahre oder Amtsverlust. Diese können sonst nämlich zu permanenten Kosten werden, wenn der ausspionierte sein Amt verliert!
  • +/- Cursor bei Warenein/-verkauf
  • Beim Laden der Spielstände eine Liste der verfügbaren Speicherstände anzeigen (oder letzten Spielstand Fortsetzen-Button)
  • Bauwerk stiften das Fenster nicht direkt nach dem Stiften schließen. Momentan sind mehrfach-Stiftungen frustrierend, da man mehrmals das Fenster öffnen und die Stadt immer neu auswählen muss
  • Der Baupreis der Wohnsitze könnte vom Reichtum der jeweiligen Stadt abhängen.
  • Beim Exportieren kann das Durchschalten der Städte bis zum richtigen Ziel manchmal schon etwas dauern. Hier wäre es richtig klasse, wenn die Reihenfolge der Städe alphabetisch sortiert wäre. Würde das Suchen stark vereinfachen.
  • Fertige aber heruntergekommene Wohnsitze kaufen wäre ein schönes Feature
  • Könnte man die Anzeige der freien Ämter für das kommende Jahr nach Spielern trennen? Das würde einiges erleichtern.
  • Beim Kartenspielen könnte man den Mindesteinsatz auf einen schöneren Betrag runden. Wer kommt schon daher und sagt, er hätte gerne 4273 Taler als Mindesteinsatz? :lol:

Feedback nach Playtesting

Aus meinem eigenen Playtest vom 24.12.21 haben sich folgende Punkte ergeben, die optimiert werden könnten:

  • - Readme: Rechtsklick zum Fenster schließen (auf Fenster) -> sollte präziser formuliert werden
  • - Bei Spielerstellung einen Schriftzug "Spielernamen eingeben" anzeigen
  • - Zentrierter Text bei 2. Spieler (zurück fehlt)
  • #19
  • #18
  • - Bild des Wohnsitzes ist ein klickbarer Button ohne Funktion -> irritiert
  • - Gehstock Ereignis sollte Geld kosten
  • - Nur die möglichen Waren zur Produktion in der Stadtansicht anzeigen bei den Aufträgen
  • - Musik teils nicht passend und nicht mittelalterlich genug (sondern Matrix ähnlich z.B. Song_Standard_Assasins.mp3)
  • - Anzeigefehler Kartenspielen (Taleranzeige verschwindet nach Bestätigung nicht)
    Conspiratio_Anzeigefehler
  • - Kupplerin war sehr teuer?? Bei einem Barvermögen von 12k waren es 10k Kosten -> viel zu viel im Vergleich zum Waisenkind
  • - Auf dem Laptop hatte ich auch das Problem mit der Schriftart bei militärischen Ereignissen, keine Ahnung warum
  • - Finanzielle Ereignisse haben einen zu geringen Wert (oft unter 100 Taler im Jahr 1609)
  • - Nach dem manuellen Speichern im Kontor verschwindet der "Runde beenden" Button im Kontor

Aggressivere KI-Spieler

Die KI sollte aggressiver werden, derzeit ist sie zu harmlos im Vergleich zu Fugger 2.

  • Am besten sollte die Aggressivität für den Spieler auch einstellbar sein, im Sinne eines Schwierigkeitsgrads (niedrig, mittel, hoch).

Aktionen, die häufiger bzw. überhaupt auftreten sollten:

  • KI-Spieler setzen auf die menschlichen Spieler Spione an und verklagen sie, wenn Beweise vorliegen. Wird ein Spieler verurteilt, sollten die Strafen entsprechend empfindlich sein (hohe Geldstrafen, Amtsenthebung, Kerker)
  • KI-Vorgesetze mit schlechter Beziehung zu dem untergebenen menschlichen Spieler sollten zu einer gewissen Chance die Absetzung des menschlichen Spielers beantragen können
  • KI-Spieler mit schlechter Beziehung zu einem menschlichen Spieler sollten Saboteure auf dessen Besitztümer loslassen können
  • KI-Spieler mit schlechter Beziehung zu menschlichen Spielern sollten diese bei anderen Würdenträgern anschwärzen können, vor allem wenn sie Beweise haben

  • Zukünftig, wenn Duelle implementiert sind: KI-Spieler mit schlechter Beziehung zu menschlichen Spielern sollten diese zu einem Duell herausfordern können
  • Zukünftig, wenn Stützpunktangriffe möglich sind: KI-Spieler mit Räuberburgen greifen Zollburgen von menschlichen Spielern bevorzugt an

Evtl. macht es auch Sinn, spezielle KI-Spieler einzuführen, die Gegenspieler zu den menschlichen Spielern darstellen und die sich darauf konzentrieren, den menschlichen Spieler zu vernichten (für die Aktionen spielt die Beziehung zum entsprechenden menschlichen Spieler dann keine Rolle, d.h. der menschliche Spieler kann sich nicht per Bestechung von den Aktionen "freikaufen"). So ähnlich war es glaube ich bei Fugger 2.

Experimentellen Fenstermodus hinzufügen

Als nicht offiziell unterstütztes Feature wäre ein Fenstermodus über einen Startparameter an die Exe-Datei hilfreich. Wunsch kam im DIscord von User rainbowsheep.

Gründe:

  • Mit nur einem Bildschirm möchte man nebenher etwas anderes geöffnet haben, z.B. YouTube Videos, Browser etc.
  • Mit zwei Bildschirmen kann man einfacher entscheiden, auf welchem Monitor das Spiel angezeigt werden soll, ohne immer die Hauptanzeige in den Windows Anzeigeeinstellungen verändern zu müssen (denn das Spiel startet immer auf eben diesem Bildschirrm)

Ich werde mal testen, was die Deaktivierung des Vollbildfensters für Auswirkungen hat und wenn die Skalierung noch halbwegs passt, werde ich das Feature einbauen und dokumentieren und eine dafür eine kleine Beta Version veröffentlichen.

Edit: Zusätzlich könnte es beim Debugging der Skalierungsprobleme bzw. Positionierungsprobleme auf der Söldner Karte helfen. Vllt finde ich ja so meinen Fehler im Algorithmus für die Berechnung der Positionen.

Falsche Schriftart und Formatierung bei Karawanenüberfall

Gemeldet von DerEinzehnte (http://conspiratio.net/forum/viewtopic.php?f=12&t=58#p160):
Die Schriftart bei Karavanenüberfall ist teils nicht richtig eingestellt

Beispiele für den Fehler, Screenshots von DerEinzehnte:
grafik

grafik

So wäre es korrekt (und so sieht es bei mir auch aus):
grafik

Ich kann das Problem nicht nachstellen und bin aktuell ratlos. Ich denke, ich stelle das Thema erst mal hinten an und baue da auf den Unity Client, mit dem die Darstellung technisch sowie komplett anders funktionieren wird.

Feedback nach Playtesting 2022

Aus meinem Playtest vom 24.12.22 haben sich folgende Punkte ergeben, die optimiert werden könnten:

  • - Hot-Seat Begriff sollte erklärt oder umbenannt (Lokales Spiel) werden, da der Begriff mittlerweile nicht mehr sehr verbreitet ist
  • - Die Begrenzung in der Länge vom Spielnamen hinterfragen und evtl. optimieren
  • - Spielererstellung Prompt Vorschlag: "Name Spieler 1"
  • - Icon für Rechtsklick am Ende von Spielerstellung erklären
  • - Zwei Anzeigefehler sind aufgetreten, siehe Screenshots

Cons Fehler Amt niederlegen
Cons Fehler Werkstatt

Darstellungsfehler der Zollburgen/Räuberlager

Gemeldet von DerEinzehnte:
Die Positionen der Zollburgen passen noch nicht ganz mit der Grafik zusammen.

Auflösung: 1920 x 1080

Ich kann das Problem leider mit dieser Auflösung nicht nachstellen.

Beispiele:
RedCastle
Ullentowers
Zattingham

Titelverleihung vorlesen lassen

Text: Wir verfügen hiermit, dass Ihr Euch fort an "Titel" nennen dürft.

Übersicht alle Titel im Wiki: https://github.com/Conspiratio/Conspiratio.Wiki/wiki/2.5-Titel

  • Mit GameTTS Tool die Sounds generieren und nach der Fanfare abspielen lassen.
  • Diese neue Funktion an einen neuen Optionsschalter knüpfen (vielleicht möchte nicht jeder Spieler diese Sprachausgabe hören).
  • Testsound abspielen, wenn man in den Einstellungen die Lautstärke verändert

Wenn das gut funktioniert, könnte man dann auch die Verleihung der Rohstoffrechte vorlesen lassen.

Mehr Rohstoffrechte vergeben

Feedback von DerEinzehnte:

Mehr Rohstoffrechte vergeben - Vorschlag: Jedes Mal, wenn das erste Mal eine höhere Amtsstufe erklommen wird (z.B. von Ratsherr auf Baumeister) ein neues Rohstoffrecht

  • Mehr Handelszertifikate verleihen wäre der Hammer. Beetle und ich hatten die höchsten Titel, die größten Bauten, mehrere 100.000 Taler an Barvermögen und doch bekamen wir insgesamt nur 4 Handelszertifikate und darunter war nicht einmal einer der Tier III Rohstoffe. Unser Vorschlag wäre daher mehr Handelszertifikate zu verleihen, um dem Spieler mehr Handlungsoptionen und vor allem mehr Spaß zu bescheren. Vielleicht kann ja ein Handelszertifikat für den Erwerb des ersten Räuberlagers/Söldnerburg vergeben? Vielleicht auch eines pro Ämterstufe, die man erklimmt? Wäre eine super Sache!

Siehe: #16

Feedback von Muffinz:

Ich möchte gerne auch noch die anderen Güter zum handeln verwenden. Wie kann ich diese Waren freispielen? Danke!

Erpressen-Funktion

Es wäre klasse, wenn die durch Spionage gewonnenen Beweise durch Erpressen genutzt werden können, um die Privilegien des Erpressten nutzen zu können.

Dies ermöglich im Spiel eine deutlich höhere Spieltiefe, die den Fokus und den Nutzen rund um die Spionage erhöht und dem Spieltitel sehr entgegen kommt.

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.