Dinge, die man gelernt hat - Acknex/LotterShock GitHub Wiki
Meta:
Wieder mal viel zu groß gedacht. Auf der einen Seite sind total coole Features drin wie 4 Waffen, Lotter-Kugel-Modus, etc. aber das Spiel als solches funktioniert nach dem WE noch gar nicht. Weder Spielerführung noch Logik. Vermutlich hätten wir 3 statt 8 Räume bauen sollen (diese dafür dann einzigartiger, damit man sich gut zurechtfindet) und direkt von Anfang an sehr darauf bedacht sein, dass die Logik (Türen, Keycards, etc) functioniert bevor man andere coole Features einbaut.
Zu lange Funktionsnamen:
// Ist zu lang und kann nicht von einem WMB-Level assigned werden:
action environ_engine_terminal();
Winkelberechnungen:
mit ang() und anschließender Differenzberechnung baut man sich diverse "deadlocks ein". daher am besten ang_diff() verwenden. Der aus ang_diff resultierende Winkel ist noch nicht normalisiert, benötigt dann also ein ang().
Entities spawnen:
Der plötzliche Spawn mehrerer Entities kann zu einmaligem Ruckeln führen, da erst von Platte geladen muss. Mit preload_mode und ent_preload arbeiten, oder dafür sorgen, dass im ersten Frame einmal alles sichtbar ist.
Decals platzieren:
Für den c_trace zur Positionsermittlung muss SCAN_TEXTURE gesetzt sein.
WED kann kein texture sharing:
Der WED lädt für JEDES model die textur einzeln in den speicher, auch wenn diese als extern und/oder als shared markiert ist. Wenn man viele modelle mit einer großen Atlas map hat geht der WED dann irgendwann einfach nicht mehr.
Erstellen von Panels:
hud_weapon_icon[WEAPON_SWORD-1] = pan_create("bmap = label_sword.png;",2);
Das kapieren weder Publisher noch Resourcer. Hier muss ein pragma_bind dazu.
#define PRAGMA_BIND "label_sword.png"
Skydomes (und andere Layer Entities):
Layer Entities werden mit dem Laden eines neuen Levels nicht ordentlich entfernt. Die bleiben im neuen Level bestehen, allerdings wird deren Textur sehr wohl entfernt - und somit irgendeine falsche Textur verwendet. Lösung: Vor dem Laden eines neuen Levels explizit per ptr_remove() alle Layer Entities killen.