Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Ich arbeite jetzt erst seit einer Woche an einem neuen Projekt (das alte Projekt lasse ich natürlich nicht fallen ): SoftPixel Engine Droid geschrieben in Java für Googles Android Smartphone OS.
Die API ist natürlich stark an die SoftPixel Engine für C++ angelehnt, daher kann man hierbei auch von der 'kleinen Schwester' der SPE reden
Ich denke ich werde auch diese Projekt unter der zlib/libpng veröffentlichen, sobald ich die erste Version veröffentliche.
Auch wenn ich erst seit einer Woche daran arbeite, bin ich bis jetzt schon gut voran gekommen, da ich natürlich einiges aus der SPE übernhemen und nur in Java überführen muss.
Die Engine unterstützt OpenGL|ES 1.0 und 1.1. Vielleicht kommt irgend wann auch noch OpenGL|ES 2.0 hinzu, aber fürs Erste, sollten diese beiden Renderer erst mal genügen.
Außerdem sollen die Apps ja nicht nur auf den aller neusten Android Smartphones laufen
Ich hab ne Klasse namens GLES10Renderer die von GLSurfaceView erbt. Zu Beginn hatte ich das meiste in dieser Klasse, aber inzwischen strukturiere ich das auch etwas besser, ähnlich wie in der original SPE mit SceneManager usw.
Außerdem will ich noch eine Klasse GLES11Renderer schreiben, die von GLES10Renderer erbt. Momentan wird in letzerer immer geprüft ob (gl instanceof GL11) ist,
damit auch VertexBufferObjects und MultiTexturing unterstützt werden kann.
Hier mal eine grobe Übersicht über die wichtigsten Klassen, die ich schon implementiert habe:
GLES10Renderer extends GLSurfaceView
BasicObject
|_ Node
| |_ MaterialNode
| |_ Billboard
| |_ Mesh
|_ Camera
|_ Light
matrix4
vector3d
point2d
size2d
MaterialStates
SceneManager
Texture
MeshBuffer (Surface liste in Mesh Klasse)
MeshVertex (Coord, TexCoord[4], Color, Normal)
MeshTriangle (Indices, a, b, c)
MeshTexture (Texture, matrix4, flags)
Zur Medien Verwaltung: Meinst du jetzt wie die Engine die Medien verwaltet oder wie das generell bei Android Apps funktioniert?
Also in der GLES10Renderer Klasse gibt's ne Funktion namens "loadTexture" die nur nen Integer für die ResoruceID nimmt.
Nicht wie in der orginal SPE, bei der ein Dateiname verlangt wird.
nein wie android funktioniert weiss ich mich interessiert nur dein ansatz. spannend wäre ebend in bezug auf texturen, dass man auch dateinamen angeben kann, aus denen er dann eine resource id raussucht. anwendungsfall: du hast eine custom xml und verweist dort auf texturen, das geht nur mit dateinamen und dann ist einfacher zu benutzen.
Interessante Idee, aber zur Zeit noch nicht in meinem Projekt implementiert. Läuft ja erst seit ein paar Wochen.
Ich bin auch noch nicht sicher, ob und vor Allem wie ich das dann als Lib veröffentliche. Im Moment habe ich das Spiel noch im selben Projekt nur in einem anderen package.
Dadruch dürfte es allerdings deutlich einfacher sein, die SPED zu erweitern. Da vermutlich die meisten Android Entwickler eclipse verwenden (ich gehe einfach mal davon aus, weil im Android NDK Plugins für eclipse dabei sind).
Naja mal schauen, aber die Idee ist auf jeden Fall gut. Mal schauen wie ich das einbaue. Aber bevor ich die SPED veröffentliche, will ich mein Spiel erst mal fertig haben, das dient dann auch gleich TechDemo