Seite 2 von 2

Re: [Projekt] Hard Thug Life Oberland

Verfasst: 03.10.2024, 18:05
von antisteo
Krishty hat geschrieben: 03.10.2024, 11:04TTS mit so wenig Berechnung/Speicher, dass es auf einen Raspberry Pi in Echtzeit läuft. Das sah mir nur wie eine dünne Schicht über eSpeak-NG aus … bis jemand auf Reddit dieses Beispiel postete: https://www.sndup.net/gzjv/
Ich benutze im Prinzip das pytorch-TTS und brauche so ziemlich alle 3 Arten von TTS-Modellen:
  • Text to Speech mit irgendeinem Sprecher
  • Text to Speech mit vorgegebenem Stimmmuster
  • Speech Mapping
Danke für den Tipp. Ich schau mal, ob wenn ich das Thorsten-Modell noch mal rauskicke. Das hatte zwar irre hohe Qualität, aber hat wohl meinem Grafik-RAM den Rest gegeben.

Re: [Projekt] Hard Thug Life Oberland

Verfasst: 04.10.2024, 16:37
von antisteo
Die Kinder haben jetzt die Supergolli-Basis im Spiel gebaut mit einem Laserstrahl, der alle verbrennen soll, die dort durchlaufen
Supergolli Basis mit Laserstrahl 2024-10-04 at 16-26-19 Supergolli Basis.png
Aufzüge gehen mit dem Missionen-System übrigens auch:
Aufzug 2024-10-04 at 17-09-52 Hard Thug Life.png
Changelog:
  • Hauptmenü sortiert
  • Drehen mit Tastatur (Q, E)
  • Fix TTS mit eingesprochenen Audios
  • ModelManager für das dynamische Nachladen von Modellen
  • UI Improvements (z.B. kann man Orte-Testen direkt aus der Liste anwählen)
  • Übersichtlicheres Missions-Schritte-Menüs
  • Gegenstände und Portale können durch das Abschließen von Missionen erst auftauchen (-> ermöglicht den Fahrstuhl!)

Re: [Projekt] Hard Thug Life Oberland

Verfasst: 04.10.2024, 19:15
von antisteo
So, die Normalen werden jetzt auch festlegbar. Dabei kann man jedem Punkt entweder eine Normale geben (dann ist er gerichtet) oder (0,0,0), dann wird er wie eine Kugel mit Normalen in jede Richtung behandelt
Normalen 2024-10-04 at 19-13-29 Hard Thug Life.png

Re: [Projekt] Hard Thug Life Oberland

Verfasst: 05.10.2024, 07:53
von woodsmoke
Sehr beeindruckend, obwohl (oder gerade weil) ich von der Technik kaum was verstehe. Auf jeden Fall sieht das Bett super bequem aus. ^_^

Re: [Projekt] Hard Thug Life Oberland

Verfasst: 05.10.2024, 21:36
von antisteo
Gibt wieder neues Videomaterial. Diesmal ist das Navi fertig geworden, schaut's euch einfach an:


Changelog für Freitag und Samstag:
  • Normalen pro Vertex
  • Model-Editor: Knubbels löschen
  • Model-Editor: Knubbels umfärben
  • Missionen: Navigiere zu Raum, Navigiere zu Gegenstand, Navigiere zu Avatar (inkl. roter Pfeile zum Navigieren)
  • Raum-Editor: Avatare in Räumen platzieren
  • Avatare werden jetzt in der Welt wieder dargestellt (mit deren Welt-Position; früher war ein Prototyp mit Zufallspositionen)
Das Spiel läuft flüssig auf allen getesteten Handys und auch auf dem Raspberry Pi


Re: [Projekt] Hard Thug Life Oberland

Verfasst: 06.10.2024, 21:14
von antisteo
Screenshot 2024-10-06 at 20-58-10 Hard Thug Life.png
Changelog für Sonntag:
  • Bugfixes bei Portalen
  • Multiplayer-Modus eingeführt: Man sieht jetzt, wo die anderen Spieler herumlaufen
Der Multiplayer-Modus hat ein paar Schmankerl, von denen ich gerne erzählen möchte:

Das ganze basiert auf Websockets. Da die Spiele-Engine selbst auf PHP basierte, musste ich dazu zu einer anderen Technologie greifen: MemCP

MemCP ist eine MySQL-protokollkompatible in-Memory-Datenbank mit einem eigenen Modulsystem und genau das habe ich benutzt, um direkt in der Datenbank einen Websocket-Server zu öffnen und ein Publish-Subscribe-Pattern zu implementieren. Der Code ist ganz simpel:

Code: Alles auswählen

(eval (parse_sql "hardlife" "CREATE TABLE IF NOT EXISTS avatar(ID int, x double, y double, z double, r double, location int, UNIQUE KEY PRIMARY(ID))"))
(eval (parse_sql "hardlife" "CREATE TABLE IF NOT EXISTS avatarListen(ID int, container int, UNIQUE KEY PRIMARY(ID, container))"))
(eval (parse_sql "hardlife" "CREATE TABLE IF NOT EXISTS avatarDirty(ID int, other int, UNIQUE KEY PRIMARY(ID, other))"))
(set update_location_prepared (parse_sql "hardlife" "INSERT INTO avatar(ID, x, y, z, r, location) VALUES (@avatar, @x, @y, @z, @r, @l) ON DUPLICATE KEY UPDATE x = @x, y = @y, z = @z, r = @r, location = @l"))
(set update_dirtylist_prepared (parse_sql "hardlife" "INSERT IGNORE INTO avatarDirty(ID, other) SELECT ID, @avatar FROM avatarListen WHERE ID != @avatar AND container = @l"))
(set clear_listen_prepared (parse_sql "hardlife" "DELETE FROM avatarListen WHERE ID = @avatar"))
(set insert_listen_prepared (parse_sql "hardlife" "INSERT IGNORE INTO avatarListen(ID, container) VALUES (@avatar, @l2)"))
(set get_listen_prepared (parse_sql "hardlife" "SELECT avatar.ID, avatar.x, avatar.y, avatar.z, avatar.r, avatar.location AS l FROM avatarDirty, avatar WHERE avatar.ID = avatarDirty.other AND avatarDirty.ID = @avatar"))
(set clear_dirty_prepared (parse_sql "hardlife" "DELETE FROM avatarDirty WHERE ID = @avatar"))
Es werden also alle Avatar-Positionen in avatar gespeichert, sowie eine Liste aller Räume, die man auf dem Bildschirm sieht in avatarListen. Reportet jetzt ein Spieler seine Position, bekommt er im Gegenzug die veränderten Positionen aller anderen Spieler, die zwischendurch in avatarDirty gesammelt wurden.

Die SQL-Queries werden als prepared Statements vorbereitet und somit fertig auscompilt. Beim entsprechenden Event müssen sie nur noch aufgerufen werden. Kein Address-Space-Wechsel wie sonst bei TCP/Socket-basierten Datenbankanbindungen.

Long Story Short: Wenn ihr euch auf hardlife.io einloggt, könnt ihr eventuell ein paar andere Spieler ebenfalls beobachten.

Re: [Projekt] Hard Thug Life Oberland

Verfasst: 08.10.2024, 23:36
von antisteo
Jetzt mal ein Experiment, wo ich die Landschaft als Splats (also selber Pointcloud-Shader, nur mit Alpha-Kanal) verwende:
Splatting 2024-10-08 at 23-35-17 Hard Thug Life.png

Re: [Projekt] Hard Thug Life Oberland

Verfasst: 11.10.2024, 00:42
von antisteo
Bober 2024-10-11 at 00-41-26 Hard Thug Life.png
Hier sieht man einen KI-Generierten Bober, den ich mit OpenAIs Point-E aus einem Bild erzeugt habe

Re: [Projekt] Hard Thug Life Oberland

Verfasst: 12.10.2024, 21:58
von antisteo
Changelog für diesen Samstag:
  • Man kann jetzt Missionen erstellen, für die man Geld bezahlen muss (Die Währung heißt "Moneten")
  • Während Missionen kann man Geld ausgeschüttet bekommen (z.B. die Taschengeld-Mission)
  • Bugfixes bei der Avatar-Platzierung während des Raumwechsels
  • Clipping optimiert, sodass man nicht sich selbst sieht, wohl aber den kompletten Raum um sich herum ohne dass dieser abgeschnitten wird
  • Geiler "Mission Erfolgreich" Sound a la GTA
Außerdem hab' ich mich schon mal zu den Quaternionen belesen, sollte relativ einfach werden, die Charaktere zu animieren. Ich hab ja damals schon das GLIDE-Format für gwX implementiert, das ging auch einfach von der Hand.

Re: [Projekt] Hard Thug Life Oberland

Verfasst: 20.10.2024, 14:41
von antisteo
Dieses Wochenende ist relativ wenig geworden:
  • Hübschere Raumecken und Bodenübergänge
  • Leiter und Falltür, damit man auch in andere Räume in der dritten Dimension kann
  • Bugfixes beim Multiplayer-Positions-Streaming