You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
2.6 KiB

# Aufbauspiel jaja
[[_TOC_]]
## Ackermatch gegen die Natur?
KI Gegner ist erstmal zu aufwändig, ein wenig Ackern muss man aber immer!
Fantasy Welt oder Realistisch?
## Isometrie in RayLib
[Projection Orthogonal -> Isometric](https://clintbellanger.net/articles/isometric_math/)
[TargetFPS vs. VSYNC](https://www.reddit.com/r/raylib/comments/m286x2/why_you_shouldnt_use_settargetfps_with_raylib/)
[Effizientes Rendering einer isometrischen Blockmap](https://benediktsvogler.com/downloads/Effizientes%20Rendering%20einer%20isometrischen%20Blockwelt.pdf)
[Sprite sortierung nach Nähe zur Kamera](https://gamedev.stackexchange.com/questions/8151/how-do-i-sort-isometric-sprites-into-the-correct-order)
## TODO
+ LinkedList erweitern
+ Sprites Animationen etc improven
+ Die Inputs sollten den Kamera Zoom beachten, aktuell geht noch alles kaputt wenn man den zoom umstellt
+ Funktion, um die ganzen Sprites nach ihrer y-Koordinaten sortiert zu drawen
+ Drawable Container machen, die sortiert werden können, dort kommen alle Tiles und Sprites rein, damit sie dann sortiert werden können
+ Maps in eigenen Dateien speichern
+ Parser für Map-Dateien
+ MapEditor
* Rendering Reihenfolge: layer 0, Sprites auf layer 0, layer 1, Sprites auf layer 1; Theoretisch müssen die einzelnen Layer Reihenweise gedrawed werden mit den Sprites zwischendrin
+ IsometricMap struct erstellen, das den IsometricMap(+Layer) Array speichert ?
+ Beim rendern müssen die map tiles und die sprites nach ihrer depth (d = x + y + ~0.05*z) sortiert werden, dafür sollten wir ein bucket sorting system implementieren. Buckets sollten erstmal nur tiles und sprites unterstützen.
+ Wir können auch die Sprites in der Liste nach d sortieren, dann geht das gut mit "nur in der Kamera sichtbare Sprites rendern". d ist nicht optimal, vielleicht auch einfach über die ganze Liste gehen und nur die sprites mit $ x y \subset camBounds $ in das Bucket sorting system einfügen. Buckets können auch mit MergeSort oder so sortiert werden
[Vererbung in C, drawable superStruct?](https://de.wikibooks.org/wiki/C%2B%2B-Programmierung:_Vererbung)
+ Mit der Map geht das schon recht einfach, weil wir wissen welche tiles in der Kamera sind. d
+ TODO: Das rendern der IsometricMap wird bei größeren Maps sehr ineffizient;
+ Add offset x and y to each tile to be calculated ONCE, not every frame
+ Alle gehardcodeten screen bounds (450 225 800 400) durch GetScreenWidth() GetScreenHeight() ersetzen
+ Kameraposition abhängiges drawen auch für Sprites implementieren
### WiP
+ Dokumentation aufholen
### Done
+ Movement speed der Sprites an delta time orientieren