Retro-Handballspiel im Browser // suche Tester (auch fürs Steam Deck)


tobias_digital

Nachwuchsspieler
Beiträge
2
Punkte
1
Guten Morgen zusammen,

ich bin Tobias aus der Nähe von Coburg und hab in meiner Freizeit ein Handballspiel gebaut: Hallen-Legenden. Pixel-Look wie früher, 7 gegen 7, kostenlos im Browser, am PC mit Tastatur oder Gamepad und am Handy mit Touch-Steuerung. Keine Anmeldung, keine Installation, keine Werbung.

Was drin ist:
  • Echte Handballregeln: Kreis, 9-m-Freiwurf, 7-Meter, 2 Minuten, passives Spiel, Team-Timeout
  • Kempa, Heber, Finte, Blocksprung – und beim 7-Meter rätst du als Torwart die Ecke
  • 52 Vereine, zwei Ligen mit Auf- und Abstieg, Pokal mit Final Four und ein Europapokal
  • Karriere über beliebig viele Saisons: Transfers, Verträge, Training, Jugendspieler, Finanzen und ein Vorstand, der dich auch rauswerfen kann
  • Jedes Spiel selbst spielen oder simulieren
  • Troppäenschrank, Rekorde, Ehrenhalle – und deine Saison als Pixel-Bild zum Teilen

Bisher testen die Handballer aus meinem Umfeld. Jetzt suche ich Leute mit frischem Blick, gern auch aus anderen Sportarten.

Was mich besonders interessiert:
  1. Was hat euch im ersten Spiel am meisten genervt?
  2. Versteht man das Spiel auch, wenn man selbst kein Handball spielt?
  3. Am Handy: Kommt ihr mit der Touch-Steuerung klar?
Steam Deck: Ich arbeite gerade an einer eigenen Version fürs Steam Deck. Wer eins hat und mittesten möchte, meldet sich gern hier im Thread oder per PN.

Die Vereine haben Fantasienamen, es ist ein reines Fan-Projekt. Im Editor könnt ihr Namen und Trikotfarben aber selbst anpassen.

Und ein Disclaimer gleich vorab, ich hab das nicht allein entwickelt, sondern es mit Hilfe von Codex und Claude entwickelt (komme aber aus dem Softwarebereich). Die Ideen, Wünsche und das Testen kamen von mir und meinen Testern, genau da brauche ich jetzt mehr Leute.

👉 hallenlegenden.de

Kritik ausdrücklich erwünscht. Ich lese alles und antworte auch.

Grüße
Tobias

P.S. Das Spiel ist Open Source: github.com/tobwil/HallenLegenden
gameplay.jpg



career-trophies.jpgcareer-stats.jpgtransfer-scout.jpg
 
Zunächst: Hut ab für diesen Aufwand, das muss man als Einzelperson (?) erst mal so hinbekommen. Ich werde aber leider keine Zeit haben, das übermäßig zu testen.

Falls eine finanzielle Idee dahintersteht, würde ich die Software und die gewonnene Erkenntnis (auch) auf etwas transferieren, bei dem es mehr Interessenten gibt. American Football z.B. in den USA, oder NBA-Basketball (ohne Logo und mit Fantasienamen). Ansonsten natürlich die Texte in Sprachpacks auslagern, damit man das mit wenig Aufwand auf alle gängigen Sprachen in Europa übersetzen kann.
 
Danke dir! Ja, ich mache das tatsächlich allein und bin dabei inzwischen ziemlich tief ins Rabbit Hole abgetaucht 😅
Eine finanzielle Idee steckt nicht dahinter. Handball habe ich bewusst gewählt, weil mir genau so ein Spiel dafür fehlt. Inspirieren lassen habe ich mich aber durchaus von NFL-Managern.

Eine Internationalisierung kann ich mir gut vorstellen, sobald das Spiel mehr getestet wurde und ich genügend Feedback habe. Aktuell wäre es mir etwas zu viel, bei jeder Änderung gleich mehrere Sprachversionen mitpflegen zu müssen.

Die Texte schon jetzt in Sprachpakete auszulagern, ist aber ein richtig guter Hinweis! Das werde ich mal angehen um die spätere Übersetzungen einfacher zu gestalten. Danke für den Anstoß!
 
Das ist halt Standard bei mehrsprachiger Softwareentwicklung. Man lagert alle Fixtexte aus, in Konfigurationsdateien (das können auch generierte Sourcen sein) oder Key-Value-Stores, und referenziert diese nur per Schlüssel. Also einfach numerierte Keys wie "F123", die dann über eine Funktion ausgetauscht werden. Die Funktion bekommt dann die Einfügewerte (wo benötigt) und den Key und gibt den fertigen String zurück. Beachten muss man, dass die Reihenfolge der Werte sich je nach Sprache ändern kann, z.B. bei Sprachen die von rechts nach links schreiben.

Ich bin mir recht sicher, dass man das nicht selbst programmieren muss, da wird es seit längerem irgendwelche Libraries für geben.

Das meint Google Gemini dazu:
Für die mehrsprachige Textverwaltung (Internationalisierung oder kurz i18n) in Frontend-Anwendungen gibt es je nach Framework und Projektgröße verschiedene etablierte Bibliotheken. [1, 2]
Das sind die führenden Bibliotheken für moderne Web-Frontends, aufgeteilt nach Ökosystem:

Framework-Agnostisch & Universell​

  • i18next
    • Der Industriestandard: Sie ist eine der mächtigsten und am weitesten verbreiteten i18n-Bibliotheken im JavaScript-Ökosystem.
    • Features: Unterstützt Lazy Loading von Sprachdateien, Pluralisierung, Formatierung (Datum/Währung) und besitzt ein riesiges Ökosystem an Plugins.
    • Verbindungen: Es gibt spezialisierte Wrapper für fast alle Frameworks (z. B. react-i18next, vue-i18next). [1, 2, 3, 4, 5]
  • FormatJS / MessageFormat
    • Fokus auf Standards: Basiert stark auf dem standardisierten ICU-Message-Format. Ideal für komplexe grammatikalische Strukturen und datums- sowie währungsbasierte Internationalisierung.
    • Komponenten: Bekannt durch Integrationen wie react-intl. [1, 2, 3, 4, 5]

React & Next.js​

  • LinguiJS
    • Performance-Tipp: Ein extrem leichtgewichtiges Framework, das Übersetzungen zur Compile-Time optimiert.
    • Features: Bietet eine hervorragende CLI-Unterstützung, um Texte automatisch aus dem Code zu extrahieren, unterstützt native JSX-Elemente im Text und bietet nativen Support für TypeScript und Next.js App Router (RSC). [6]
  • next-intl
    • Spezialisiert auf Next.js: Der aktuelle Favorit für moderne Next.js-Anwendungen (App Router), da es tief mit Server Components, Routing und statischer Generierung (SSG/ISR) verzahnt ist. [2]

Vue.js & Nuxt​

  • Vue I18n
    • Der Standard für Vue: Die offizielle und native Lösung für das Vue-Ökosystem. Sie fügt sich nahtlos in die Composition API ein und unterstützt Hot-Reloading von Übersetzungen im Entwicklungsmodus. [2, 4]

Angular​

  • @angular/localize
    • Built-in: Das offizielle Tool von Angular. Es übersetzt die Anwendung direkt beim Build-Prozess (Build-Time Localization), was die Frontend-Performance optimiert, da zur Laufzeit kaum i18n-Overhead entsteht. [4]
  • Transloco / ngx-translate
    • Dynamische Alternative: Wenn Übersetzungen zur Laufzeit dynamisch geladen oder zur Laufzeit per API gewechselt werden müssen. [1, 2, 7]

1791206306920.png​

Wichtiger Architektur-Tipp für Frontends​

Bei wachsender Anzahl an Sprachen sollten Sie die Übersetzungsdateien (meist JSON) nicht fest in das Haupt-Bundle der App kompilieren. Nutzen Sie stattdessen Lazy Loading (dynamische Imports), damit Nutzer nur die Sprachdatei herunterladen, die sie auch wirklich eingestellt haben. [5, 6, 7]

[1] https://strapi.io
[2] https://github.com
[3] https://lernen.react-js.dev
[4] https://phrase.com
[5] https://lokalise.com
[6] https://lingui.dev
[7] https://blog.cronn.de
 
Zuletzt bearbeitet:
Oben