Hallo Spieleprogrammierer,
ich möchte hier die Spieleengine "PeakEngine" vorstellen. Die Projektseite:
http://peakengine.sf.net. PeakEngine ist eine Entitybasierte GameEngine die sich besonders für Multiplayerspiele eignet da dass Component-Entity System der Engine auf Netzwerkspiele ausgerichtet ist. Um eins klar zu stellen: Hier wird eine vollständige Spieleengine entwickelt und nicht eine Grafikengine oder eine Physikengine -> Mit der Engine lässt sich ein Spiel ohne irgendwelche anderen Bibliotheken programmieren. Die Engine wird über Lua-Skripte und INI-Files gesteuert. Es ist allerdings geplant die INI-Files durch XML-Dateien zu ersetzen. Ich habe hier eine Liste mit den Features der Engine zusammengestellt ( Die Liste soll auch die Funktionsweise der Engine erklären):
Entity:
- Entities (dt. Objekte) stellen den Kern der Engine dar.
- Interface zwischen Grafk,Sound und Physik
- Sprich: Ein Entity hat eine Grafik/Sound und eine Physik Komponente
- In der Praxis sieht das so aus: Wenn sich die Physik Komponente um 10 Einheiten nach rechts verschiebt muss sich die Grafikkomponente auch um 10 Einheiten nach rechts verschieben.
- Die Engine sendet von alleine an alle Clients die Positionen der Entities und kümmert sich darum , dass die Physik richtig funktioniert
- mit sogenannten "EntityVariablen" können noch zusätliche Informationen über das Netzwerk verteilt werden -> Die Engine wird den Wert der EntityVariable auf allen Clients verfügbar machen. Der User muss also nur einstellen , dass z.B. die EntityVariable "hp"=Lebenspunkte erstellt wird und das Spiel kann von jedem PC aus auf den Wert der Variable zugreifen.
Map:
- Szenenmanagement findet über Maps statt
- Eine Map definiert statische Objekte und Einstiegspunkte für dynmaische Objekte wie die Spielfigur
- Terrains wurden schon implementiert und getestet
- Eine Map wird derzeit über eine INI-Files definiert, das soll ich aber änderen , da ein Map-Editor mit Map-Format entstehen soll
Render:
- Die Engine benützt entweder Irrlicht ODER Horde3D
=> Platformunabhängig ( Mac OS X, Linux und natürlich Windows)
- Durch die Grafikengines werden DirectX 9(2x),DirectX 8(1x) und OpenGL(2x) unterstüzt
- Die meisten Features der Engine wurden bereits zugänglich gemacht, aber die TODO-Liste im Grafik-Bereich ist noch lange
Physik:
- Für Physikberechunungen greift die Engine auf Open Dynamics Engine(ODE) zurück.
- ODE ist äusserst perfomant , aber wir ziehen es in Betracht auch noch Bullet in das Projekt mit einzubeziehen.
- Bodies und Geoms sind natürlich implementiert
- Ansatz von Joints wurden auch übernohmen , aber noch nicht getestet
Netzwerk:
- Enet wird hier verwendet
- Broadcasting ist implementiert
- Netzwerkspiele sind möglich und die Engine ist 100% Netzwerkfähig.
- ( Wir haben die Netzwerkfähigkeit schon in vielen unsrer Testspiele getestet)
Ich hoffe euch gefällt das Konzept der Engine. Wir stellen keine zu grossen Herausforderungen an neue Mitglieder. Sie sollten nur C++ meisterhaft beherrschen und von Spieleprogrammierung ein bischen Ahnung haben. Wenn ihr interessiert seid dann kontaktiert mich in ICQ:
482-063-577
Ich werde dann dem jeweiligen Anwerber weiter erklären wie die Engine funktioniert. Man sollte allerdings SVN haben und es bedienen können.
Mit Freundlichen Grüssen,
Christian R. alias Spy
EDIT: Ich erwähnte im 2. Punkt bereits die TODO-Liste sei noch lange hier ist sieauf Englisch)
TODO:
========== Milestone 1 ============ (0.0.1)
========== Milestone 2 ============ (0.0.2)
- Menus
- Simple test game
- Proper levels
- Sound
- Better graphics?
- LODSceneNode (LOD, Animations, loaded from file)
- Documentation
- Particle system emitters/affectors
- GLSL support
- Optimize Game
- Character physics
- Map format
- Cutscene support (pre rendered / realtime rendered?)
- Online playing (server publishing?)
- Networking security (Currently the engine can be crashed remotely?)
- Scripted HUD?
- Reworked entity variables
- XML
- Lights, Shadows
- Loading screen + resource management
========== Milestone 3 ============ (0.1.0)
- RTT
- 3D-GUI
- Editor
- First Person Shooter test
- Racing game test!
- Saving/Restoring
- File transfer
- Chat system
- Automatic update?
- Encryption
- Compression
- ClipMapping?
- Unicode?
- Dedicated server?
More:
- Server relocation?
Optional:
- ID generator (to prevent overflows)
BUGS:
- Engine crashes when broken ini files are used
- List boxes only react on double clicks?
(Milestone 1 wurde bereits erreicht)