Du bist nicht angemeldet.

Werbeanzeige

MasterQ32

Frischling

  • »MasterQ32« ist der Autor dieses Themas

Beiträge: 15

Wohnort: Stuttgart

Beruf: Student, Selbstständiger Softwareentwickler

  • Private Nachricht senden

1

11.01.2014, 16:38

[Projekt] OpenWorld.Engine

Hallo!

Ich habe die letzten zwei Wochen damit verbracht, eine Game-Engine zu programmieren. Das Resultat:

OpenWorld.Engine

Die Engine wurde in C# mit OpenTK entwickelt und soll für mich persönlich ein Ersatz zu XNA darstellen.
Daher orientiert sich die API der Engine auch stark am XNA Framework 4.0.

Wer bin "ich" eigentlich?
Felix Queißner, 20 Jahre jung. Studiert Softwaretechnik an der Universität Stuttgart und verdient nebenher
als selbstständiger Software-Entwickler einen Teil seinen Lebensunterhalts.
Hat mittlerweile einiges an Erfahrung gesammelt, was Programmierung und Software-Design angeht.
Programmiert hauptsächlich in C#, beherrscht aber auch diverse andere Sprachen (C++, Lua, Java, ...).
Findet CleanCode super und versucht, möglichst ordentlichen Code zu produzieren.
Hat leider noch nie irgendwas Fertiges veröffentlicht, versucht aber jetzt sein Glück mit dieser Engine.

Was kann die Engine?
  • Vereinfachtes Handling von OpenGL3.3 durch Modelle, Texturen, Shader und verschiedene Buffer-Objekte
  • PostProcessing Pipelines
  • AssetManager (Model-Import mit Assimp.Net)
  • GUI mit wenigen Controls, aber einigen Events (orientiert sich an System.Windows.Forms)
  • Theoretische Multiplatform-Fähigkeit für Linux und Mac
  • Source-Code vollständig mit Dokumentationskommentaren versehen und erfüllt alle Microsoft-Code-Analyse-Regeln
  • Demo-Anwendungen

Kann man sich das anschauen?
Wer sich die Engine (in einem aktuell gehaltenen Repo) anschauen möchte, kann sich das Projekt gerne auf GitHub forken:
https://github.com/MasterQ32/OpenWorld.Engine

Was die Engine leistet:

Custom shader (Night Sky Rendering und Athomspheric Scattering):

(Link)


Post-Processing:

(Link)


GUI-System:

(Link)


Was bringt die Zukunft?
  • Sound (3D und Musik)
  • Szenen-Management mit einfachen Komponenten-basierten Entitäten (ähnlich Unity3D)
  • Verbesserter Asset Manager
  • Demos
  • Dokumentation nicht nur in Doku-Kommentaren
  • Was hier noch so an Wünschen anfällt, die sinnvoll in die Engine passen.

Warum machst du dir eigentlich den Aufwand?
Unzufriedenheit mit anderen Engines. Es gibt nicht viele gute kostenlose (und mir bekannte) Game-Engines, die modern sind, aber auch dem Coder die Freiheit bieten, die er (in dem Fall vorallem ich) möchte.
Außerdem war mir XNA irgendwann zu blöd, weil man ständig irgendwelche doofe Workarounds machen musste, um zum Ziel zu kommen. Zudem hab ich so ein schönes Projekt, an dem man immer irgendwas machen kann.

Kann ich mitmachen?
Ja, gerne! Ich möchte aber die Code-Qualität der Engine auf einem hohen Niveau halten, ihr solltet also Erfahrung mit C#, VisualStudio und OpenGL haben und ein Gefühl für ordentlichen Code (KISS, DRY, ...) mitbringen.

Warum heißt es eigentlich OpenWorld.Engine und nicht OpenWorld?
Nun, der Grund hierfür ist einfach: Ich habe die Engine mit dem Hintergrund eines Spiels entwickelt, welches ich vorher mit XNA begonnen habe. Das Spiel selbst wird OpenWorld heißen
und eine Art GarrysMod mit Fokus auf Spielen und nicht Erschaffen sein.

Gibts noch irgendwas?
Probiert die Engine doch mal aus! Übt Kritik und Lob, aber übertreibt es nicht.
Und wenn ihr wollt, baut doch mal ein Spiel damit!
Ich hoffe ihr habt eure Freude an der Engine.

Grüße
Felix

birdfreeyahoo

Alter Hase

Beiträge: 764

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

2

11.01.2014, 16:56

HI, ich würde mir die Engine gerne mal anschauen, doch leider öffnet die Solution nicht und einzelne Projekte verlieren dadurch die Abhängigkeit und damit sind sie nicht mehr kompilierbar.

EDIT: Habe das 2013 übersehen ;)

MasterQ32

Frischling

  • »MasterQ32« ist der Autor dieses Themas

Beiträge: 15

Wohnort: Stuttgart

Beruf: Student, Selbstständiger Softwareentwickler

  • Private Nachricht senden

3

11.01.2014, 17:01

Welche Version hast du denn verwendet? Ich hab auch noch die 2010 installiert, könnte also die Solution auch downgraden (hab jetzt schon die zweite Anfrage deswegen).

birdfreeyahoo

Alter Hase

Beiträge: 764

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

4

11.01.2014, 17:05

Liegt wahrscheinlich an mir, das ging mir auch mit anderen 2013er Solutions so, jetzt hol ichs mir aber mal.

MasterQ32

Frischling

  • »MasterQ32« ist der Autor dieses Themas

Beiträge: 15

Wohnort: Stuttgart

Beruf: Student, Selbstständiger Softwareentwickler

  • Private Nachricht senden

5

11.01.2014, 17:15

Okay. Freu mich über dein Feedback!

Thoran

Alter Hase

Beiträge: 516

Wohnort: Stuttgart

Beruf: Senior Software Engineer

  • Private Nachricht senden

6

11.01.2014, 22:33

Hallo MasterQ32 und willkommen im Forum. Ich wünsche Dir viel Erfolg mit Deiner Engine. Ich hab selber auch schon ein paar Jahre mit einer eigenen Engine verbracht und schwanke gerade, das zu Gunsten einer frei erhältlichen, kommerziellen Engine zu kippen. Irgendwann kann man als 1-Mann-Team halt nicht mehr mit "professionellen" Engines mithalten. Und wenn du dann neben der Engineentwicklung immer noch Zeit hast, schau doch mal beim Stuttgarter Spieleentwicklerstammtisch vorbei, der hier im Forum dann auch immer angekündigt wird. Wir freuen uns immer wieder über neue Gesichter.
Mein Entwicklertagebuch
Aktuelles Projekt: Universum Espionage
Eingestellt:Spieleengine SilverCore
Organisator "Spieleentwickler Stammtisch Stuttgart"

MasterQ32

Frischling

  • »MasterQ32« ist der Autor dieses Themas

Beiträge: 15

Wohnort: Stuttgart

Beruf: Student, Selbstständiger Softwareentwickler

  • Private Nachricht senden

7

11.01.2014, 22:49

Ich hab selber auch schon ein paar Jahre mit einer eigenen Engine verbracht und schwanke gerade, das zu Gunsten einer frei erhältlichen, kommerziellen Engine zu kippen. Irgendwann kann man als 1-Mann-Team halt nicht mehr mit "professionellen" Engines mithalten.


Dessen bin ich mir bewusst, aber ich habe mir das auch überlegt. Unity3D fällt flach, da es scheiße ist, damit ein Spiel zu programmieren, welches komplett im Code definiert und beinahe aus 100% Mods besteht (Assets, Scripting, Level, ...).
XNA ist tot, lang lebe MonoGame. Oder auch nicht, die API ist genauso beschränkt wie die von XNA, aber man braucht immer noch XNA wegen den Assets. Zu kompliziert.
NeoAxis hatte mir zu wenig Dokumentation. Wie erstelle ich ein Fenster, das blank ist und nur den BackBuffer cleared?
Rayne ist noch in der Alpha (Macht hinne, Sid und Nils ;) ).

Zum Thema Stammtisch: Ich werd das mal beobachten und mich melden.

Im Moment versuche ich, das Gui Rendering zu überarbeiten (Limit des Draw-Bereichs auf lokale Koordinaten mit glViewport). Damit können Controls nur noch dahin zeichnen, wo sie zeichnen sollen.

Grüße
Felix

MasterQ32

Frischling

  • »MasterQ32« ist der Autor dieses Themas

Beiträge: 15

Wohnort: Stuttgart

Beruf: Student, Selbstständiger Softwareentwickler

  • Private Nachricht senden

8

13.01.2014, 02:53

So, mal ein kleines Update:

Es gibt ein paar neue Controls für das Gui: ListBox, VScrollBar und Form. Das Gui hat außerdem ein paar Verbesserungen für das Rendering abbekommen, GuiRenderer werden durch glViewport eingeschränkt.
Zudem habe ich angefangen, ein Szenenmanagement zu implementieren.

Außerdem hat sich birdfreeyahoo gefreiwilligt, an der Engine mitzuarbeiten. Danke!

Grüße und gute Nacht
Felix

MasterQ32

Frischling

  • »MasterQ32« ist der Autor dieses Themas

Beiträge: 15

Wohnort: Stuttgart

Beruf: Student, Selbstständiger Softwareentwickler

  • Private Nachricht senden

9

17.01.2014, 14:38

So, pushen wir den Post doch mal mit einem Update:

Sound ist in Entwicklung, Einfaches Szenenmanagement mit einem Stub-Rendering ist implementiert. Man kann Objekte mit Lua scripten. Der AssetManager wurde komplett überarbeitet und kann nun aus verschiedensten Quellen Assets laden (Dateisystem, Zip-Dateien, Webserver, ...). Die GUI hat mittlerweile einen guten Satz an Controls bekommen, aber es fehlen immer noch einige. Zudem gibt es jetzt schon mal den Beginn einer Dokumentation und verschiedene, einfach gehaltene Demos.
Als nächstes steht ein Deferred Renderer und die Integration einer Physik-Engine (geplant ist Jitter) an.

Grüße
Felix

birdfreeyahoo

Alter Hase

Beiträge: 764

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

10

18.01.2014, 01:29

Soeben ist die Sound-Engine erfolgreich angelaufen. Momentan unterstützt sie nur WAVE PCM unkomprimiert, wir werden aber in nächster Zeit noch Oggvorbis support einbauen.
Effektfilter sind ebenfalls vorgesehen.

mfg

Werbeanzeige