Serious vegetation

Top  Previous  Next

Den eMails und Nachrichten nach die ich bekommen habe, verwenden viele von Ihnen den “Serious Grass” Code aus AUM 50 in ihren Spielen; daher habe ich mich entschieden, den Code neu zu schreiben, wobei ich drei Ziele verfolge:

 

1) Die Pflanzen sollen mit Hilfe einer Farbkarte plaziert werden (wichtig für “echte” Levels);

2) Die Anzahl der Grasmodels muss hoch sein;

3) Die Framerate soll auch auf gewöhnlichen Rechnern hoch genug sein.

 

Wenn Sie schonmal mit einer Engine und einigen Entities experimentiert haben, wissen Sie sicher, dass 2) und 3) nicht gut zueinander passen; dennoch werden Sie feststellen, dass mein Code die Framerate auf einem gewöhnlichen (nicht schnellen!) Rechner konstant zwischen 40 und 60 fps hält, selbst wenn mehr als 400 Grasmodels zu sehen sind!

 

Wie kann das erreicht werden? Mit einigen einfachen Tricks, der wichtigste davon eine Art Multitasking, welches die Rechenlast über 10 Frames verteilt. Diese Methode hat die Framerate verdoppelt, was mehr Models zuläßt. Die gute Nachricht ist, dass Sie selbst auf einem alten Computer die Framerate erhöhen können, indem Sie ein paar Büsche im WED plazieren, mit skill1 und skill2 in derAction my_terrain spielen und schließlich in der Demo F11 drücken, um die Gesamtzahl der Entities einuschätzen.

 

aum58_vegetation1

 

Es wird Sie sicher freuen zu hören, dass der Pflanzencode zwei verschiedene bewegte Grasmodels plasiert, ebenso wie zufällig ausgerichtete und skalierte Bäume auf dem Terrain. Sehen Sie sich das gut kommentierte Skript an, wenn Sie es ändern oder daraus lernen wollen. Vielen Dank an Loopix für die Pflanzenmodels und an Nifty für die Idee.