Skip to content

Simulation eines Pfadfinder-Lagers mit Nachtwache & Überfällern

Notifications You must be signed in to change notification settings

vincentmader/lager-simulator-2023

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lager-Simulator 2023

Game Controls

KeyFunction
“Up”Move camera up (same as “W” and “K”).
“Down”Move camera down (same as “S” and “J”).
“Left”Move camera to the left (same as “A” and “H”).
“Right”Move camera to the right (same as “D” and “L”).
”+”Zoom in (or: mouse wheel).
”-”Zoom out (or: mouse wheel).
“G”Toggle display of floor grid.
“B”Toggle display of bounding boxes.
“V”Toggle display of map coordinates.

TODOs

  • [X] 3D-Vektor
  • [ ] Sprites & Animation
  • [X] Zoom
  • [X] IO Class (?)
  • [X] Pan (drag-&-drop und Pfeiltasten)
  • [X] Feuer (Wind ausmachen)
  • [X] Zelt malen
  • [X] Personen anklicken
  • [X] Personen abklicken
  • [X] Debug-Option: Hit-Boxes anzeigen
  • [X] Debug-Option: FPS anzeigen
  • [ ] Texturen: Pixel-Zahl == Tile-Size
  • [ ] Debug-Option: Show 1x1x1 cube
  • [ ] Debug-Option in den Canvas hinein schieben
  • [X] Full-Screen Canvas (kein Scrolling)
  • [ ] Fortlaufende Uhr
  • [ ] Uhr visualisieren
  • [ ] Tag-Nacht Zyklus
  • [ ] Tag-Nacht Zyklus + Filter
  • [X] Diskrete Bewegung
  • [ ] Charakter-Sprites
  • [X] Direction-Enum
  • [X] Himmelsrichtungen in den Ecken anzeigen (bei rauszoomen)
  • [ ] Hike
  • [X] Fog of War
  • [X] Taschenlampen-Kegel
  • [ ] Gedanken machen, was passiert wenn man jemanden anklickt
  • [X] Baeume
  • [ ] Kommentare aufpoppen
  • [ ] Simple Vogel-Animation
  • [X] Charakter-Inventar
  • [ ] Zelt-Kontor
  • [ ] Schoenere Umrandung fuer Spielwelt
  • [ ] git pipeline
  • [ ] Aufnaeher

Sprites

Items

Werkzeug

  • Axt
  • Beil
  • Spaten
  • Schaufel
  • Hammer
  • Vorschlag-Hammer
  • Meterstab
  • Seil

Structures

Jurte 1

  • 12-Eck

Jurte 2

  • 8-Eck

Dixi

Weisszelt 1

Wasch-Stellen

Bierkasten (Berg)

Bierflasche (Berg)

Bierbank

Biertisch

Banner-Mast

Pofferball-Feld

Soundbox

Cajon

Herings-Kiste

Tisch mit Toepfen drauf

Bierbank (geklappt)

Biertisch (geklappt)

3-Schritte-Laufen-Feld (Seil & Ball)

Tisch mit Leberschuss drauf

Flunky-Ball-Feld

Bierpong-Tisch

RageCage-Tisch

Leberschuss XXL

Feuerschale

Holz

Kanister

Geschirrbaum

Lagerbauten-Turm

Lagerpost-Briefkasten

Fancy-Bierbank

Dixi (offen)

Gitarre

Klappstuehle

Bank mit Jacke drauf

Tisch mit Kasten Bier drauf

Autos

Anhaenger

SjR-Bus

Gemeindebus

Kisten

Haengematte

Anhanger mit grossem Tank

Gasflaschen

Gaskocher

Gasbraeter

Grillrost

Grasnaben

Grill

Traktor

Pferd

Baustrahler

Oel-Lampen

Handtuch-Trocken-Gestell

Klimmzugstange

Duschen

Milestones

  • 2023-??-??: The isometric projection now works.
  • 2023-??-??: There is now a chess-like (ClashOfClans-like) floor grid.
  • 2023-??-??: Panning & Zooming the camera now works.
  • 2023-??-??: Campfires are part of the game now (and they flicker!).
  • 2023-??-??: Tents are now shown on the map.
    • The sprites were downloaded from Google Images.
  • 2023-??-??: People can now walk.
    • There are two modes: “Normal” + “Patrol”.
  • 2023-??-??: There is now an inventory UI that’s displayed when clicking on a person.
  • 2023-??-??: Movement of people now only works along discrete (cardinal) directions.
    • This is done via an “enum” (in JS, that’s an object).
  • 2023-??-??: Cardinal directions (N/E/S/W) are now shown at the edge of the map.
  • 2023-??-??: People now carry flashlights.
    • They project a cone of light forwards.
  • 2023-??-??: There is now a fog-of-war.
    • This was done by stacking multiple canvases on top of each other (along Z-axis).
  • 2023-??-??: Yurts are part of the game now.
    • They were designed in Blender.
  • 2023-??-??: Banner Poles are part of the game now.
    • They were designed in Blender.
  • 2023-??-??: Dixi toilets are part of the game now.
    • They were designed in Blender.
  • 2023-??-??: “Berg-Bier-Kaesten” are part of the game now.
    • They were designed in Blender.
  • 2023-??-??: “Waschstellen” are part of the game now.
    • They were designed in Blender.
  • 2023-??-??: “Bier-Baenke + Bier-Tische” are part of the game now
    • They were designed in Blender.
  • 2023-05-10: Fullscreen Mode now works without (annoying) scrolling.
    • This was done by setting `overflow: hidden` in the CSS file.

Questions & Answers

What is the goal of the game?

A) Attacker Team:

  • Get to the banner pole & steal the flag.

B) Defender Team:

  • Don’t let the attacker team steal the flag.

When does a Game Over event occur?

A) Attacker Team:

  1. Hard Game Over
    • Someone dies.
  2. Soft Game Over
    • When the scout camp is over.

B) Defender Team:

  1. Hard Game Over
    • Someone dies.
    • A forest fire destroys the camp.
  2. Soft Game Over
    • The attackers team steal the banner.
    • The camp is canceled due to low morale.
    • No beer is left.

What exactly does Game Over mean?

  • Is the game really over?
  • Or is it just the camp that ends?

What kinds of resources are there?

  1. Money
    • Can be gained through Day-Actions (Kekse verkaufen, Zwiebelspiel)
  2. Food
  3. Water
    • Can be gained through Day-Actions (Wasser holen)
  4. Beer
    • Needed for morale of Leiter
  5. Wood
    • Needed for campfires -> Vision
    • No campfire -> Less morale

What kinds of “score thingies” are there?

  1. (Average) Morale
  2. Georgs-Punkte

What scores are displayed at the top of the screen? (Always relevant)

  • Average morale
  • Wood

Day-Actions

  • Take up an entire day for participating Scouts.
  • Thus, these Scouts are excluded from Level-ups (Aufstufungen)
  • In the end, you gain a resource (Water, Money, …)
  • Some Scouts are more skilled in certain Day-Actions. (skill)
  • Wasser holen (Wasser)
  • Kekse vekraufen (Geld)
  • Zwiebelspiel (Geld)
  • Holz holen (Holz)
  • Einkaufen gehen (Essen, Trinken gegen Geld)

What kinds of items are there?

ItemUsageEffects
AxeGather wood.The campfire stops burning.
Guitar/CajonPlay music.Raise morale.
Flashlight/TorchIlluminate environment.E.g.: Detect attackers.
Nutella-BrotEat.Raise morale.
Bier <3Drink.Raise morale.
CoffeeDrink.Fight fatigue.
SoundBoxMake music.Raise morale. / Distract.
WoodMake fire. / Build Lagerbauten.
Multi-Tool
Ball
Rope

What kinds of skills are there?

SkillAufnaeher-Symbol
Run fast.Rabbit (?)
Carry heavy things.Biceps (?)
Sneak.
Make fire.Campfire
Hear quiet noises.Ear (?)
Play the guitar.Guitar
Play the cajon.Cajon
Sing songs.
Shout loudly.
Cook food.Cooking pot (?)
Throw ball accurately/far.
Tie knots.

What kinds of structures are there on the campsite?

Banner

  • The attackers want to steal it.
  • The defenders want to keep it.

Campfire

Stufen-Zelte

  1. Leiter-Jurten
  2. Rover-Zelte
  3. Pfadi-Zelte
  4. Jupfi-Zelte
  5. Woelflings-Zelte

Children can be awakened by leaders (for night watch).

Kuechen-Zelte

  • This is were important resources are stored, e.g.
    • Food (e.g. Nutella-Brote)
    • Water
    • Beer

Aufenthalts-Jurten

Geruest-Zelte

Planungs-/Leiter-Zelte

Dixies

  • They can be used as a hiding sport.
  • They can be locked.
  • If you know that someone is hidden in there, you could station someone in front of it.

Cars

Trees

Bushes

Rocks

How can I earn “Georgs-Punkte”?

Beispiel:

  • Ueberfaeller greifen an.
  • Ueberfaeller werden dank guter Skillzz abgefangen und setzen sich zu den Leitern ans Feuer.
  • Ueberfaeller koennen “ueberzeugt” werden, Georgs-Punkte zu generieren. Voraussetzungen:
    • Genug Bier vorhanden.
    • Soziale Skillzz des ueberzeugenden Leiter sind hoch genug.
    • Ueberfaeller laesst sich ueberzeugen. Je weiter weg er herkommt…
      • desto mehr Punkte sind zu erreichen, aber
      • desto schwieriger ist es auch, ihn zu ueberzeugen.

Ideas

Spiel-Ablauf

Setup Screen

  • Waehle Dein Leitungs-Team.

Aufbau-Lager

Ziel:

  • Ein tolles Lager aufbauen.
    • Je toller, desto mehr Kinder & Leiter kommen auf’s Lager.

Aufgaben:

  • Baue das Leiter-Zelt auf.
  • Baue das Kuechen-Zelt auf.
  • Baue das Geruest-Zelt auf.

Tag 1

Tag 2

Ende des Aufbau-Lagers

Wann ist das Aufbau-Lager vorbei?

Lager

Tages-Aufgaben:

  • Hacke Holz.
  • Hole Wasser.
  • Verdiene Geld durch den Verkauf von Keksen.
  • Erwerbe neue Items durch das Zwiebel-Spiel.
  • Gehe in den Laden und kaufe
    • Lebensmittel
    • Bier
    • Items
  • Spiele Spiele, um die Moral zu erhoehen
    • 3-Schritte-Laufen
    • Pofferball (Powerball?)
  • Verteile Aufnaeher an Kinder (neue Skillz)

Nacht-Aufgaben:

  • Wehre die Ueberfaeller ab.
  • Schau, dass die Moral nicht zu weit sinkt. Sonst gehen die Leiter ins Bett. Wie geht das?
    • Lege Holz nach, dass das Feuer nicht ausgeht.
    • Hole neue Kaesten Bier.
    • Mache Musik & singe Lieder.

Tag 1

Nacht 1

Tag 2

Nacht 2

Ende des Lagers

Wann ist das Lager vorbei?

  • … (vllt. theoretisch Open-End?)

Was wird dann gemacht?

  • Aufstufung der Kinder

Score Screen

Was passiert hier?

  • Berechnung & Darstellung der erreichten Punkte.
  • High-Score-Liste aller Spieler, die je gespielt haben.

Man kann ueber verschiedene Wege seinen Score erhoehen.

  • Spieler 1 koennte z.B. keine Kekse verkaufen, dafuer viele Georgs-Punkte sammeln.
  • Spieler 2 koennte z.B. viele Kekse verkaufen, dafuer keine Georgs-Punkte sammeln.
  • Beide Spiele koennen (je nach Gewichtung) den gleichen Score erreichen.
    • D.h.: Verschiedene Strategien fuehren zur Erhoehung des Scores.
    • Der Replay-Wert wird hierdurch erhoeht, weil versch. Strategien ausprobiert werden koennen.

Was fliesst alles ein in die Punkte-Berechnung?

  • Bonus: Laenge des Lagers (in Tagen)
  • Bonus: Durchschnittliche Moral (Spass-Faktor)
  • Bonus: Zahl der erreichten Georgs-Punkte
  • Bonus: Zahl der verkauften Kekse
  • Bonus: Zahl der abgefangenen Ueberfaeller
  • Bonus: Zahl der Kinder, die aufgestuft werden konnten
  • Malus: Zahl der Kinder, die abgeholt werden mussten
  • Bonus: Menge an Holz, das insgesamt gehackt wurde
  • Bonus: Menge an Holz, das insgesamt aufgelegt wurde
  • Bonus: Menge an Lagerbauten, die gebaut wurden.
  • Bonus: Menge an Items, die erspielt/ertauscht/gekauft wurden.

Notes on Implementation

Coordinate Transformations

Transformation between Cartesian and Isometric Coordinate Systems

Let $x$, $y$, and $z$ label the cartesian coordinates, whereas $x’$, $y’$, and $z’$ label the isometric coordinates.

Let then the transformation from cartesian to isometric coordinates be given by the mapping $$f\begin{pmatrix} x\y\z \end{pmatrix}=\begin{pmatrix} x’\y’\z’ \end{pmatrix}$$ and the inverse transformation from isometric to cartesian coordinates by $$g\begin{pmatrix} x’\y’\z’ \end{pmatrix}=\begin{pmatrix} x\y\z \end{pmatrix}$$

The transformations can be expressed as $$f\begin{pmatrix} x\y\z \end{pmatrix}=\begin{pmatrix} x-y\\frac{1}{2}(x+y)\z \end{pmatrix} \end{align}$$ and $$g\begin{pmatrix} x’\y’\z’ \end{pmatrix}=\begin{pmatrix} y’+\frac{1}{2}x’
y’-\frac{1}{2}x’+z\ z \end{pmatrix}$$

Unsorted Notes

Ueberfaeller:

  • Ziele
    • versuchen, den Banner zu klauen
    • koennen sich verstecken (z.B. im Busch oder Dixi)
  • Varianten
    • SoundBox-Ueberfaeller / Piraten
      • zur Ablenkung
    • Spione / Elvins
      • koennen ins Lager geschmuggelt werden
      • klauen den eigenen Banner
      • werden nicht erkannt von Woes & Jupfis
  • Items
    • Messer
      • damit kann man das Bannerseil durchschneiden (ohne Messer geht auch, dauert halt laenger)

Nachtwache:

  • muessen von Leitern aufgeweckt werden
  • koennen laut schreien: “Ueberfall!” (wenn Ueberfaeller entdeckt wurde)
  • haben einen Vision-Radius
  • koennen tagsueber gelevelt werden: Aufstufung
  • Ziele
    • versuchen, den Banner zu schuetzen
  • Varianten
    • Woelflinge
      • koennen am Wachposten einschlafen
    • Jupfis
    • Pfadis
    • Rover
      • koennen Ueberfaeller umtacklen
    • Leiter
      • saufen am Lagerfeuer
      • brauchen Bier, um wach zu bleiben
      • wenn kein Bier mehr da, gehen sie ins Bett
  • Items
    • Taschen-Lampe / Fackel
      • erhoeht den Vision-Radius (?)

Welt:

  • Tag-Nacht-Rhythmus
  • Lager geht mehrere Tage lang

User-Input:

  • zieht die Patrouillen-Wege der Kinder
  • gibt Befehle
    • dann laueft ein Leiter vom Lagerfeuer los und fuehrt den Befehl aus
    • e.g.:
      • ein Kind braucht ‘ne Cola
      • Leiter laeuft zur Kueche
      • holt die Cola
      • bringt sie dem Kind

Spiel-Setup:

  • die Zelte werden platziert
  • feste Zahl an Teilnehmern / Kindern / Leuten
    • am Anfang (fast) nur Woelflinge

Sprueche-Sammlung:

  • “Wenn ich einen seh’ … Der kriegt’s mit meinem Multitool zu tun!”