Hallo,
ich möchte hier meine kostenlose Weihnachtsapp "Santa's Workshop" vorstellen.
Aktuell ist eine Android-Version im Google PlayStore verfügbar:
https://play.google.com/store/apps/d...SantasWorkshop
Spielprinzip:
Es handelt sich um ein 3D Arcade-Game, wobei man so viele Pakete wie möglich mit dem Wagen einfangen soll, die von den 3 Rutschen herunterschlittern.
Die Größe und Farbe der Pakete (cubes und spheres) entscheidet über die Höhe der Punkte.
Berührt ein Paket den Boden verliert man "Gesundheit".
Stiefel sollte man meiden, da diese die "Gesundheit" beinträchtigen.
Sterne frischen die Gesundheitsleiste wieder auf und Zuckerstangen liefern in jedem Level Bonuspunkte.
Jeder kann seinen Highscore am Ende der Runde in der App bis zum 26.12.2017 online posten (nur hier wird die Internetverbindung benötigt).
Dannach gewinnt der Erstplatzierte einen echten Preis.
Enwicklung:
Die Anwendung ist einfach gehalten und dient einerseits zu Promotionzwecken für die Manaz GmbH, andererseits als Tech-Demo, um
das 3D Addon-Framework Gorilla3D für Delphi-Firemonkey zu präsentieren.
Die Entwicklung wurde mit Delphi 10.1 und 10.2.1 durchgeführt und ist aktuell unter
Win32, Win64 und Android lauffähig.
Für die Geschenke und Items wurde eine von mir entwickelte Physik-Engine verwendet. Dadurch kommt ein reeller und zufälligen Faktor hinzu,
es mag jedoch so manchen Arcade-Gamer verwirren, wenn ein Paket auf der Wagenkante entlangrutscht ohne in den Wagen zu fallen, oder wenn
ein Paket ein Anderes wegstubst.
Technische Features:
Santa's Workshop verwendet, das von mir entwickelte, Gorilla3D Framework, was eine Erweiterung zur Delphi Firemonkey-Lib darstellt.
Ich habe in der App jedoch nur einen kleinen Teil der bisherigen Framework-Features verwendet, u.a.:
- Q3 Physics Engine (eigene Physik-Engine innerhalb von Gorilla3D)
- Character Skin-Animation (DAE-Dateien)
- OBJ und DAE-Loader unter Android (funktioniert in der Standard-Firemonkey Bibliothek nicht sauber)
- Multitrack AudioManager
- Mesh-AnimationManager
Weitere Key-Features von Gorilla3D:
- Skeleton- und Vertexanimation für 3D Meshes (Key-Animationen)
- Materialien: Bump-Mapping, Vertex-Color, Phong-, Blinn-, Lambert-Materials, Wasser und Reflexion
- Logische Modellverwaltung (unabhängig von FireMonkey im X3D Format), um eine Vielzahl an Meshes zu verwalten und separat zu instanziieren
- Optimierte Meshgenerierung: Die Anzahl der Vertices wird auf die notwendigen Vertices reduziert
- Flexibles Partikelsystem mit Influencer-Klassen
- Shadow-Volumes Rendering
- Skybox-Unterstützung
- Terrain-Rendering: aus HeightMaps und prozeduralen Algorithmen (Diamond-Square, Perlin-Noise, ...)
- Neue Point3D-, Quaternion-, Transformationsmatrix- und VertexKey-Animationen
- Flexibles Dialogsystem zur Laufzeit laden, speichern und editieren
Link:
http://www.manaz.de/de/project/gorilla3D
Probleme bei der Entwicklung:
1) Leider konnte ich das Multipass-Rendering unter Android in der Kürze der Entwicklung nicht zum Laufen bringen, sonst wären Schatten, bessere Materials und Effekte machbar gewesen.
2) Ein Problem stellen tatsächlich bereits Modelle mit durchschnittlicher Polygonanzahl (1500) dar, die zu extrem langen Ladezeiten führen. Auch große Texturen 1024x1024 oder 2048x2048 sind keineswegs ratsam unter Android.
3) Auf älteren Android-Geräten und abgespeckten Geräten (z.b. S5 Mini) läuft der Spiel hakelig oder lädt ewig.
4) Problematisch und schwer zu balancieren war zudem die Swipe-Geschwindigkeit, da sich diese zwischen Windows und mobilen Geräten (Displaygröße abhängig) stark unterscheidet.
5) UV-Texturen bei DAE-Modellen werden leider noch nicht sauber dargestellt.
6) Die Genauigkeit der Physikengine musste reduziert werden, da es zu "real" für ein Arcade-Game war.
Ich wünsche viel Freude beim Testen und freue mich über euer vernichtendes Urteil