PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Über das Projekt



ChaosAngel
12.01.2003, 11:38
Also, wir versuchen eine Engine zu entwickeln die hauptsächlich auf Grafik ausgelegt ist, aber auch mit NetzwerkSupport, Sound, Input und anderem Kram ausgerüstet werden kann. Die Engine wird vorläufig nur für Windows entworfen, wird aber leicht portierbar sein.

Aufbau:
Die Engine wird nicht in eine DLL/Lib/Exe ausgelagert sondern ist nur als Sourcecode erhältlich und muss im Projekt compiliert werden. Das dies nicht schön ist wissen wir selber, wer bessere Vorschläge hat soll sich bitte melden. Es sollen aber Exceptions und templates im Interface unterstützt werden, deshalb fallen Sachen wie DLL's weg.
Die Engine soll zur Compilezeit so frei wie möglich gestaltet werden können !
Der Aufbau ist also vollkommen modularisiert.
Es kann (mit Hilfe von Policies) festgelegt werden welche Api's unterstützt werden, ob Sound, Netzwerk, etc... in die Engine eingebunden wird und so weiter ...
(Infos über Policies sucht euch selber oder fragt mich: Ansonsten kann ich nur das Buch "Modern C++ Design" empfehlen, allerdings nur aus Amerika auf Englisch erhältlich (www.Amazon.com))
Sämtliche Unstimmigkeiten zwischen den Modulen werden zur Copilezeit bemerkt, dies führt zu weniger Fehlern zur Laufzeit :D
Wir werden hauptsächlich die Grafikprogrammierung übernehmen, da dies unser beider (DerSensemann und Ich) Spezialgebiet ist. Es können sich gerne noch Leute anmelden die in diesem, oder auch den anderen Gebieten Erfahrungen haben. (bitte bitte bitte diesmal nur Leute mit wirklicher Programmiererfahrung).
Wie man sicherlich schon merken konnte wird das ganze ausschliesslich in C++ geschrieben. Die Grafikschnittstelle wird auf OpenGL und D3D optimiert sein, ist aber durch jede andere Api (SoftwareRenderer etc...) erweiterbar.
Dem Client ist es jederzeit möglich eigene Module zur Compilezeit einzubinden/ vorhandene zu ersetzen.

Management:
Wir benutzen den IntelCompiler als PlugIn für die VC.Net IDE.
Das SourceOffSite-System zum Austausch und zur Koordinierung des Quelltextes. (ähnlich CVS, nur komfortabel) Multiple Checkouts sind deaktiviert.
Jedes Stück der Engine was das CodeDesign betrifft wird vorher geplant und entworfen. Erst wenn alle Fehler beseitigt sind wird es als Doc verfasst und hier im Forum extra gekennzeichnet. Erst dann darf die Umsetzung nach C++ erfolgen.
Dies gilt nicht für interna's, Algorhythmen und nicht Interface bedingte Systeme. Da diese meist austauschbar sind sollen sie so frei wie möglich programmierbar sein.

Abhängigkeiten:
Folgende libs werden verwendet:

DevIL
Loki

Genesis
13.04.2003, 08:13
Leute wenn ihr das schafft :)
Gibtz nicht ne Firma "FireFly Studios" ?
Hat doch Stronghold gemacht oder?

ChaosAngel
14.04.2003, 13:09
hmmm, mit der ham wir wirklich nichts zu tun ...
Und das Projekt hier führen wir in DIESER Form schon garnicht mehr ...
Man hört trotzdem hoffentlich mehr von uns ... bald ...

DerSensemann
08.06.2003, 11:55
Zur Abwechslung gibts mal nen gaanz einfachen Shot aus nem Testprogramm, welches die PerPixel Lighting Shader testen soll.

Hier sind noch keine Loader für externe Grafikdaten (Texturen, Modelle, Leveldaten etc..) implementiert, die Shader lassen sich aber selbstverständlich auf jede Geometrie anwenden ;)

bald kommt mehr ;)

ChaosAngel
10.06.2003, 18:48
Man muss dazu sagen das das ein absolutes Low-Poly Modell ist. Es besteht aus ganz wenigen Dreiecken... Das Licht wird über Shader für jeden Pixel einzeln berechnet. Nicht wie bei vielen Beispielen aus dem Internet die sich PerPixelLightning nennen und dies dann trotzdem nur per Vertex tun. Deshalb ist es momentan auch nur für 1 (maximal 2) Lichter und beliebig vielen Objekten möglich. Zumindest mit unserer momentanen Hardware (Radeon 9700 (Pro)) die leider nur den Shaderstandard 2.0 unterstützt. Jeder der uns also sponsorn will und uns eine bessere Grrafikkarte kaufen will soll dies doch gerne tun. Wir arbeiten weiter an hervorragenden Techdemos. Und ich hoffe ich werde genügend Zeit dazu finden während ich beim Bund bin :(
So, nun aber noch schnell für meine mündliche Prüfung morgen lernen.
Bye

DerSensemann
10.06.2003, 18:53
Der Boden aus 2 Dreiecken ;)

Enchanter
29.06.2004, 16:14
Ich dachte eigentlich ich hätte schon eimal gefragt.
Gibt es auch irgendwo Sourcen zu diesem Projekt?

Hansinator
29.06.2004, 18:46
Das ist wirklich ein sehr interessantes projekt, sourcen wären toll ;-)

natürlich sind die midgard sourcen viel toller *enchanter in anderes forum schieb ;-)*

DerSensemann
30.06.2004, 15:07
Najo, von mir aus... Hier die mittlerweile 1 Jahr alten Sources des Proggies, das das obige Bild gerendert hat :) Peinlich so alter Code ^^

Enchanter
30.06.2004, 15:38
Wenn du so reagierst will ich aber mal zuerst Fragen,
ob das Projekt in ähnlicher weise fortgeführt wird.
Oder auch warum habt ihrs eingestellt?

DerSensemann
30.06.2004, 15:50
Es wird fortgeführt, nur nicht mehr ganz mit den gleichen Leuten. Und die haben auch noch ein Wort mitzureden, wenn ich den Code hier posten soll...

Es gab damals nur einfach viel zu wenig Interesse hier für die Engine, weit weniger als noch für PodBall (mein 1. von den 2 Projekten hier ^^). Und da hat man sich irgendwann ein eigenes Forum eingerichtet und BuHa vielleicht vergessen. ChaosAngel, der ja lange hier MOD war ist auch schon seit längerem inactive wg. Bund.. und so kam es eben ^^

ABER: Da ohnehin mittlerweile ein SDK zur Engine drin ist, könnte ich ma die andren fragen was sie zum Thema Veröffentlichen sagen ;) Immo hock ich hier aber mit Grippe -> schaun ma ma

ChaosAngel
04.07.2004, 16:33
Hi ho, meld mich hier grad ausm Urlaub ...
Sorry das ich so inaktiv bin gerade ...
Der Sense führt das Projekt ganz wunderbar fort !!!

Ich hab noch 2 Wochen Urlaub bevor ich wieder Online komme.
Hier beim Bund programmiert es sich halt schlecht wenn ständig nervende Leute um einen rumhocken ... :(

Ob der Source veröffentlicht werden kann is von mir aus kein Problem, aber soviel wie Sense neugeschrieben hat ist von mir glaube ich keine Zeile mehr drin !!!

Enchanter
22.03.2006, 21:07
Hatte bisher nie Visual Studio jetzt kann ich das klar kriegen,
in den nächsten Tagen will ich mir das unbedingt mal anschauen.
Bitte erzählt mal was es neues gibt. Hatt sich was getan?

DerSensemann
23.03.2006, 05:28
Interessant, wir stehn ja noch immer unter aktive Projekte hier ^^

Nach nun über drei Jahren kann man wohl sagen, dass wir weniger auf ein fertiges Produkt fixiert sind und die Engine (mittlerweile seit gut 9 Monaten "Onion Engine") mehr als Test Platform für allerhand tolle Features missbrauchen :)
Ne im Ernst, wir sind nur 3 aktive Coder (lange Zeit waren es sogar nur 2), die zwar relativ viel Zeit in die Engine investieren, aber nebenher noch studieren (und was man als Student noch so macht eben 8)). Unser Ziel ist es nicht eine 0815 Engine zu schreiben, wie es da draußen schon tausende gibt, sondern mit neuen Technologien zu experimentieren um dann irgendwann was richtiges vorzeigen zu können.
Bei den Features die wir in unsere Engine einbauen wollen sind drei Entwickler eigentlich deutlich zu wenig, nur bis optisch nichts überwältigendes vorzuzeigen ist, ist die Suche nach weiteren fähigen Leuten überaus schwierig...

Um mal einen gaaaanz groben Überblick über die wichtigsten Features und den allgemeinen Status zu schaffen (Ausschnitt einer unserer Wiki Seiten):
===== Engine features =====
* Support for MS Windows and Linux (x86 and x64 architectures).
* Powerful debugging functionality
** Logging system [done]
*** Capable of writing simple text or tables to console and XML files. The latter ones are visualized through XSL to allow filtering of log files by message type (debug, notice, warning, error, exception) or source with only two mouse clicks.
** Memory manager with memory leak detection, allocate/deallocate mismatch detection and full log output with file, line and stack trace where the error occoured [done]
*** Extensible through its policy based design
** Exceptions with (almost) full and platform independent stack trace (not using any special libs) [done]
* Multithreading support [currently extended]
** Instead of statically writing code for a fixed number of threads the system is able to scale smoothly to any number of worker threads (equal to the number of virtual CPU cores available).
** Dynamically distributes work load to the available worker threads respecting dependencies between these tasks.
** Centralised thread managing to minimize the risk of a deadlock (of corse we can not detect if a single job hangs in an infinite loop).
** Supports inter-thread exceptions to shut the system down without deadlocking.
* Virtual file system [done]
** Currently supports the OS‘s native file system and ZIP files.
*** May be extended to support other file systems as well.
** Can mount multiple sources to the same virtual directory and handles file ambiguity.
*** This is handy to allow the mod to override standard resources or patch files without actually overwriting anything.
* Resource system [currently extended]
** Loads important resources directly
** Manages multiple slave threads to load big resources asynchronous.
** High priority FS access may pause low priority requests (prevents delays when loading one huge file while the system requires another small one)
* Nice math lib [done]
* Plug-in system [done]
* Extensible scene graph

===== Scripting language =====
* currently developed.
* The language itself will be similar to C++/Java/C# to fit our needs.
** Managed pointers to prevent scripts from leaking memory (X* x = new X(); x = null; // <- automatic delete).
** Also support for stack objects like in C++ (X x; ).
** Passing managed pointers to C++ and receiving of unmanaged pointers drom C++.
* Calling of C++ objects from scripts just like script objects.
* Outsourced buildsystem/lexer/parser/compiler that precompile sources to platform independent byte code packages.
* Integrated linker/vm that load scripts on demand (respecting dependencies).
* No further official information about this avaiable, yet.

===== Unit Test Framework =====
* Mostly independent unit test framework to find bugs in our systems :rolleyes: [done]
** A full load of helper macros to ease writing of new test units.
** Full debug output.

===== Importer tool =====
* Texture importer that supports all important formats. [done]
* Collada mesh importer. [still much work to do]

===== Renderers =====
* D3D9 and OGL2.0 renderers.
* Currently in a non-presentable state as we focus our work on other things :)

===== Audio =====
* still open

===== Input =====
* DirectInput8 and X11 Input plug-ins are working.

===== Network =====
* still open but included in the design.

===== Miscellaneous =====
* We are using SCons (Python based, platform independent, best build system out there).
* Our CMS for about a year right now is Subversion.
* We have our own server hosting svn, an own forum and a (currently private) Wiki.


Sollte da wem das Wasser im Munde zusammen laufen bei dem Gedanken ein solches Vorhaben zu unterstützen, der soll sich melden :) Wobei das hier höchstwahrscheinlich der falsche Ort für die Suche neuer Mitglieder ist...

lizer
23.03.2006, 06:31
Habt ihr denn irgendwo 'ne Homepage? Screenshots? :)

DerSensemann
23.03.2006, 07:57
kurz: nein; lang: vielleicht in ein paar Wochen oder Monaten, wer weiß ^^ Das ist nunmal das Problem, niemand will an einer Engine arbeiten, von der so rein optisch noch nicht viel zu sehen ist. Obwohl es dort so viele verschiedene und interessante Teilthemen gibt (-> Liste oben).. Ohne mehr Coder => so schnell keine prolligen Screenshots.. ohne Screenshots => keine neuen (und fähigen) Coder :/
Vielleicht sind wir auch zu "perfektionistisch", bei uns gibts keine halben Sachen oder unsaubere Implementierungen, die nicht spätestens 3-4 Wochen später ersetzt werden. Andererseits.. groß unzufrieden sind wir nicht damit, dass noch immer kein Game steht ;) Wie gesagt, Hauptziel ist nicht das Fertigstellen irgendeines Produkts sondern das Produkt selbst 8) Um es mal positiv auszudrücken..

Enchanter
30.03.2006, 22:47
Ist nicht mein Code,
lässt sich nicht mit meinem Sprachgefühl vereinbaren,
übersteigt meine Grafik-Fähigkeiten.

Ich bin raus.
Entschuldigt mein einmischen in dieses Forum.