Oualid Fauzi · Bonn

Ich lese mich ein.
Dann beiße ich mich fest.

Ich baue Spiele, 3D-Web-Apps und alles, was mich gerade packt: vom Browser-Kartenspiel für den Spieleabend bis zur Burgverteidigung in der Unreal Engine. Tagsüber bin ich Kaufmann im Einzelhandel bei der Telekom.

  • aktuell Last Arrow · Unreal Engine 5.8
  • projekte 14 Einträge
  • drucker Bambu Lab H2S
  1. [ OK ] Kaffee aufgesetzt.
  2. [ OK ] Neugier geladen.
  3. [ OK ] 14 Projekte eingehängt unter ~/projekte.
  4. [ WARN ] Kobolde vor dem Burgtor gesichtet.
  5. [ OK ] Bogen gespannt.
oualid@duckpi:~$ neofetch Systeminfo

oualid@duckpi

Name
Oualid Fauzi
Ort
Bonn
Beruf
Kaufmann im Einzelhandel @ Telekom
Nebenbei
Spiele, KI, 3D-Druck, Cosplay
Drucker
Bambu Lab H2S
Projekt
Last Arrow (Unreal Engine 5.8)
Stack
C++ · Node.js · Three.js · Socket.IO · Docker
Host
Raspberry Pi „duckpi“
Modus
festgebissen

01 Über mich cat about.md

Ich bin Oualid aus Bonn. Tagsüber berate ich bei der Telekom Kundinnen und Kunden. Abends und am Wochenende baue ich Dinge.

Ein großer Teil davon sind Brett- und Kartenspiele, die ich für Spieleabende mit Freunden programmiert habe: mit eigenem Server, Bots, Wiederverbindung und teilweise 3D-Tisch. Alles läuft in Docker-Containern auf meinem Raspberry Pi. Gerade sitze ich an meinem ersten großen Spiel in der Unreal Engine: Last Arrow.

Mein Muster ist immer dasselbe: Ich stoße auf ein Thema, lese mich schnell ein und beiße mich dann richtig fest, bis etwas Fertiges dabei herauskommt. Das gilt für Code genauso wie für KI, 3D-Druck oder ein Cosplay, das ich selbst finishe.

Mein Mandalorian-Cosplay ist so ein Fall: Die komplette Rüstung habe ich selbst gedruckt und gefinisht. Einzelne Teile, die es so nicht gab, habe ich selbst konstruiert, zum Beispiel das Grav-Charge-Holster. Das gibt es als eigenes Modell auf MakerWorld zum Nachdrucken, und daneben kannst du es dir in 3D ansehen.

Oualid als Mandalorian mit Grogu in der Umhängetasche, Rüstung selbst gedruckt und gefinisht
foto Mandalorian, Rüstung komplett selbst gedruckt und gefinisht

Lade 3D-Modell …

3d Grav-Charge-Holster, mein eigenes Modell · auf MakerWorld · Ziehen zum Drehen, Zoomen mit Mausrad oder zwei Fingern

02 Ausgewähltes Projekt man last-arrow

In Entwicklung

Last Arrow

Verteidige deine Burg im Ego-Shooter.

„Halte die Burg, solange du kannst: Ein Bogen, ein Schatz, unendlich viele Kobolde, und nach jedem Boss wächst deine Festung mit.“

Burgverteidigung aus der Ich-Perspektive. Du stehst mit Bogen und Pfeilen auf deinem Schlosshof und hältst Welle um Welle von Kobolden auf, die deine Schatztruhe plündern wollen. Nach jedem Boss wächst deine Burg. Jeder Run ist endlos, und die Gegner werden immer härter.

  • UE 5.8Unreal Engine 5.8 in C++
  • 165automatische Tests für Spielregeln, Waffen und Systeme
  • Server ↔ ClientServer rechnet, Clients zeigen: saubere Trennung von Logik und Darstellung
  • Offlinekomplett offline: kein Konto, kein Server, kein Internet nötig
Trailer folgt
mini-last-arrow.js Browser-Teaser, nicht das echte Spiel

Klicke oder tippe auf die Kobolde, bevor sie die Truhe erreichen. Nach jedem Boss wächst die Burg.

Spielgefühl

--bogen
Spannen, zielen, Schwachstellen treffen für mehr Schaden.
--burg
Wächst nach jedem Boss: mehr Mauern, mehr Tore, begehbare Türme mit Treppen, größere Ecktürme.
--begehbar
Durch die eigenen Tore laufen, auf die Mauern steigen, von den Türmen schießen.
--schatz
Die Truhe ist Ziel und Konto zugleich. Fällt sie, ist der Run vorbei.

Waffen & Wirtschaft

händler
Waffen am Stand im Burghof kaufen, ausbauen oder wieder verkaufen.
slots
Drei Waffenplätze: der Standardbogen plus zwei gekaufte Waffen.
armbrust
Mit sichtbarer Sehne spannen, Bolzen einlegen.
muskete
Mit dem Ladestock nachladen, Kobolde per Rückstoß zurückschleudern.
geheimwaffe
Ein Sturmgewehr mit Magazin und Hülsen, nur per Geheimcode. Als Gag gedacht.
karten
Nach jeder Runde Verbesserungen wählen, die Werte und Effekte verändern.
goldmine
Minen im Schlosshof bauen. Das Gold geht in neue Waffen und Türme.
türme
Über das Turmkommando Verteidigungstürme bauen und verbessern.

Gegner

Animierte Kobolde in mehreren Typen, darunter Läufer aus verschiedenen Richtungen und schwere Gegner wie der Sturmbock. Bosse schalten den nächsten Burgausbau frei. Treffer wirken: Gegner zucken zurück, stürzen und werden von der Muskete umgeworfen.

Welt

Warme, farbenfrohe Märchenwelt mit Sonne, Wetter, Wald, Bergen und Wiesen. Burghof mit Haus, Marktstand, Fahnen, Fackeln und Torbannern. Burg, Gegner und Effekte entstehen fast alle im Spiel selbst. Für Marktstand, Häuser, Truhe, Goldmine und Bogen kamen KI-generierte 3D-Modelle zum Einsatz, die ich für die Engine aufbereitet habe.

03 Projekte ls -la ~/projekte

Spiele für Freunde, Tools für den Alltag.

Die meisten davon sind Brett- und Kartenspiele für Spieleabende mit Freunden. Alle laufen im Browser auf Handy, Tablet oder PC, mit Räumen per 4-stelligem Code, Bots für fehlende Mitspieler und Wiederverbindung nach Abbrüchen. Jedes Projekt hat seinen eigenen Docker-Container auf dem Pi.

  • iPhone-Vergleich: zwei Geräte maßstabsgetreu im 3D-Showroom

    iphone-vergleich/ live

    iPhone-Vergleich

    Alle iPhones seit 2007 maßstabsgetreu in 3D

    Bis zu vier Geräte nebeneinander, frei drehbar, mit drückbaren Tasten, Farben und Speichervarianten. Preise wahlweise inflationsbereinigt, dazu eine Vergleichstabelle mit allen Maßen und Daten.

    • Three.js
    • nginx
  • Liar's Dice: 3D-Tisch auf der Pirateninsel mit Bot-Piraten

    liars-dice/

    Liar's Dice

    Würfel-Bluffspiel auf einer 3D-Pirateninsel

    Das Würfelspiel aus Fluch der Karibik in der Ich-Perspektive: Du sitzt am Tisch auf einer Pirateninsel mit Palmen, Lagerfeuer, Schiffen am Horizont und einem Papagei. Mit Charakter-Editor für die eigene Piratenfigur und einer Aufdeck-Animation, bei der jeder Würfel einzeln mitgezählt wird.

    • Three.js
    • Socket.IO
    • Node.js
  • Monopoly Entenhausen in der 3D-Ansicht

    monopoly/

    Monopoly

    Monopoly in Entenhausen, mit 3D-Ansicht

    Vollständiges Regelwerk mit Auktionen, Bauen, Hypotheken und Knast. Die Straßen spielen auf Entenhausen an: Geldspeicher, Bruchbude, Panzerknacker-Knast. Getestet unter anderem mit 40 automatischen Bot-Partien und Invarianten-Checks.

    • Three.js
    • Socket.IO
    • Tests
  • Uno No Mercy auf dem 3D-Tisch

    uno-no-mercy/

    Uno No Mercy

    Alle 168 Karten, 3D-Tisch mit fliegenden Karten

    Uno in der gnadenlosen Variante: Ziehkarten stapeln, Wild +10, Farbroulette. Wahlweise auf einem 3D-Holztisch mit freier Kamera oder in 2D.

    • Three.js
    • Socket.IO
  • Munchkin: Spielfeld mit Handkarten und Ausrüstung

    munchkin/

    Munchkin

    355 Karten, Kampf-Mathematik, 17 Testdateien

    Das Kartenspiel mit Grundspiel und zwei Erweiterungen. Der Server verwaltet Stapel, Phasen, Kämpfe, Stufen und Ausrüstung. Die Kartendaten habe ich aus den eigenen Spieldateien aufbereitet.

    • Socket.IO
    • Tests
  • Poker-Tisch mit Bots, Pot und Setz-Buttons

    poker/

    Poker

    No-Limit Texas Hold'em für 2 bis 8 Spieler

    Komplette Setzrunden-Logik mit serverseitiger Prüfung, Side Pots bei mehreren All-ins und Elimination-Modus, in dem Ausgeschiedene als Zuschauer weiterschauen.

    • Socket.IO
    • Node.js
  • Wizard: Vorhersage-Phase mit Trumpf

    wizard/

    Wizard

    Stichspiel mit Vorhersagen und Trumpf

    60 Karten, Rundenzahl je nach Spielerzahl, automatische Trumpf-Ermittlung und Punkteabrechnung.

    • Socket.IO
  • Der Widerstand: Abstimmung über ein Team

    widerstand/

    Der Widerstand

    Geheime Rollen, Abstimmungen, Missionen

    The Resistance für 5 bis 10 Spieler. Rollen werden privat aufs eigene Gerät verteilt, Spione erkennen sich beim Start gegenseitig.

    • Socket.IO
  • Tempel des Schreckens: Schatzkammern der Spieler

    tempel-des-schreckens/

    Tempel des Schreckens

    Abenteurer gegen Wächterinnen, 3 bis 10 Spieler

    Geheime Teams, Schatzkammern und Feuerfallen, verteilt nach den Tabellen aus dem offiziellen Regelwerk.

    • Socket.IO
  • Bluff: runder Tisch mit verdeckt gelegter Karte

    bluff/

    Bluff

    Lügen, das Kartenspiel, am runden Tisch

    Karten verdeckt legen, ehrlich oder gelogen, und im richtigen Moment „Bluff!“ rufen. Mit einstellbarem Deck und automatischer 4er-Ablage.

    • Socket.IO
  • Spielehub: Startseite mit allen Spielen

    spielehub/

    Spielehub

    Eine Startseite für alle Spiele-Server

    Bündelt alle Spiele unter einer Adresse. nginx leitet jeden Pfad an den passenden Container weiter, inklusive WebSocket-Upgrade für die Live-Verbindungen.

    • nginx
    • Docker
  • Monitoring-Shop: Wochenmonitoring mit Zielen und Fortschrittsbalken, hier mit Beispieldaten

    monitoring-shop/ Beispieldaten

    Monitoring-Shop

    Absatz-Monitoring fürs Team, mit Echtzeit-Chat

    Jede Person trägt ihre Absätze pro Produkt ein, am Desktop im Wochen-Grid, mobil mit großem Plus-Minus-Regler. Admins sehen alles zentral. Dazu Team-Chat und Direktnachrichten in Echtzeit.

    • React
    • TypeScript
    • Tailwind
    • SQLite
  • grav-charge-holster.3mf

    Grav-Charge-Holster

    Mandalorian-Holster, selbst konstruiert, auf MakerWorld

    Das Grav-Charge-Holster aus meinem Mandalorian-Cosplay als druckbares Modell. Zum Ansehen und Nachdrucken auf MakerWorld.

    • 3D-Druck
    • Bambu Lab H2S
    • Cosplay
    • Three.js
  • der-eiserne-thron/ drwx------

    Der Eiserne Thron

    Brettspiel-Umsetzung für private Runden

    Ein privates Projekt für den eigenen Spieleabend.

04 Interessen & Fähigkeiten ls ~/interessen/

Woran ich mich festbeiße

  • ~/spieleentwicklung/

    Spieleentwicklung

    Vom Browser-Kartenspiel bis zum Ego-Shooter in Unreal Engine 5. Regeln sauber abbilden und dann testen, bis sie halten.

  • ~/ki/

    KI

    KI als Werkzeug zum Bauen, Lernen und Ausprobieren: Code, 3D-Modelle, Ideen. Und die Frage, was als Nächstes möglich wird.

  • ~/3d-druck/

    3D-Druck

    Vom digitalen Modell zum echten Teil: konstruieren, drucken, nachbearbeiten, finishen. Aktuell auf einem Bambu Lab H2S. Eigene Modelle veröffentliche ich auf MakerWorld.

  • ~/cosplay/

    Cosplay

    Kostüme und Props, bei denen das Finish den Unterschied macht. Zuletzt: eine komplett selbst gedruckte Mandalorian-Rüstung, mit selbst konstruiertem Grav-Charge-Holster.

  • ~/tinkering/

    Tinkering

    Basteln, ausprobieren, Dinge zusammenstecken, die eigentlich nicht zusammengehören. Der Raspberry Pi läuft rund um die Uhr.

  • ~/brettspiele/

    Brettspiele

    Spieleabende mit Freunden und die Lust, die Lieblingsspiele digital nachzubauen.

  • $ technik

    Technik

    • C++ · Unreal Engine 5
    • JavaScript · Node.js · Three.js
    • React · TypeScript
    • Docker · nginx · Caddy · Raspberry Pi
  • $ kompetenzen

    Kompetenzen

    • Analytisches Denken
    • Problemorientiertes Denken
    • Führungskompetenz
    • Kommunikation
  • $ sprachen

    Sprachen

    • Deutsch Muttersprache
    • Englisch fortgeschritten

05 Lebenslauf git log --graph

Stationen

Lebenslauf als PDF

  1. laufende5a71c0 · feature/nebenbei

    Spiele, 3D-Web-Apps und Last Arrow

    Privat · Raspberry Pi

  2. Jan 2022 – heutea3f9c21 · HEAD → main

    Kaufmann im Einzelhandel

    Telekom · Bonn

    • Kundenberatung und Verkauf von Telekommunikationsprodukten
    • Kundenservice und Lösung von Kundenanliegen
    • Inventur, Bestandsführung und Überwachung der Umsatzziele
    • Schulungen zu den neuesten Telekommunikationstechnologien
  3. Aug 2021 – Nov 20227be12d0

    Mitglied der Auszubildendenvertretung

    Telekom · Bonn

    • Team-Events und Teambuilding organisiert
    • Feedbackgespräche mit Auszubildenden geführt
    • Personalgespräche, Gremiensitzungen, Optimierung von Ausbildungsprozessen
  4. Sep 2019 – Jan 20224c8e1f5

    Ausbildung: Kaufmann im Einzelhandel

    Telekom · Bonn

    • Warenpräsentation, Bestandsführung und Kassenabrechnung
    • Kundenbetreuung und -bindung durch individuelle Beratung
  5. 2017 – 201919d0a77

    Studium Applied Economics

    Rheinische Friedrich-Wilhelms-Universität · Bonn

  6. 2013 – 20170f3b2e9

    Abitur

    Tannenbusch-Gymnasium · Bonn

06 Kontakt cat kontakt.json

Lass uns reden.