Du bist nicht angemeldet.

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!

Werbeanzeige

1

03.01.2014, 22:46

MassiveUniverseOnline

Hey Leute,

eines eurer Member (Mathias) hat uns einen Kommentar auf unserem Blog da gelassen und meinte wir wollten uns doch mal hier melden. Gesagt getan.


(Link)

1. Was ist MassiveUniverseOnline?

Massive Universe Online ist ein Science-Fiction Massively Multiplayer Online Role-Playing Game mit dem Schwerpunkt auf Wirtschaft, Action und Echtzeitstrategie. Es bietet dem Spieler umfassende Möglichkeiten die unendlichen Weiten des Weltraums zu erforschen.

Die Idee des Spiels wurde im Oktober 2011 geboren als Teekeks und ich sich im Skype unterhielten und auf die Idee gekommen sind, ein eigenes kleines Online-Game zu entwickeln. Doch die Frage nach dem Inhalt des Spiels konnte nicht so einfach beantwortet werden wie gedacht. Nach einiger Zeit verlief sich die Diskussion über den Spielinhalt im Sand und wir haben sich über gute Spiele im Allgemeinen unterhalten. Unter anderem haben wir über die X-Serie aus dem Hause Egosoft geredet und sehr bedauert, dass dieses Spiel leider keinen Online-Modus besitzt. Also warum nicht selber machen? Schnell wurde klar, dass der Umfang eins solchen Projekts doch weitaus größer war, als am Anfang des Gesprächs gedacht, aber trotzdem scheuten wir uns nicht dieses Projekt ins Leben zu rufen und so wurde Massive Universe Online geboren. Auch die beiden anderen Mitglieder der BitSpace Development Group, Martok und Akaikee konnten schnell von der Idee begeistert werden und sind seitdem ein fester Bestandteil der Teams.

Wie bereits angesprochen bietet Massive Universe Online dem Spieler die Wahl zwischen einem der drei Genres: Wirtschaft, Action und Echtzeitstrategie. Der Spieler kann sich ein großes Wirtschaftsimperium aufbauen, in dem er seine eigenen Stationen aufbaut, diese mit Ressourcen versorgt und die Erzeugnisse der Station an andere Spieler verkauft oder als Ressourcen für weitere eigene Stationen nutzt. Die Versorgung der Stationen erfolgt dabei durch seine eigene Flotte, oder die Schiffe anderer Spieler, die ihre Waren verkaufen wollen.
Denjenigen die mehr auf actiongeladene Spiele stehen, bietet Massive Universe Online ein umfangreiches Kampfsystem. Der Spieler kann in riesigen Raumschlachten für seine Rasse kämpfen oder seinen Verbündeten helfen ihre Stationen und Schiffe gegen Piraten und feindliche Rassen zu verteidigen. Mit den gesammelten Trümmern der feindlichen Flotte lässt sich zusätzlich ein lukratives Geschäft aufbauen, mit dem man Umbauten und Verbesserungen am eigenen Schiff finanzieren kann.
Auch für die Strategen bietet Massive Universe Online genügend Inhalte. Als Staffelführer eines kleinen Squads kann man sich bis zum Admiral eines gigantischen Flaggschiffs hocharbeiten. Mit dem Kommando über mehrere hundert Schiffe bestreitet der Spieler epische Schlachten und erkämpft sich noch mehr Ruhm und Ehre. Die Schiffe die dabei einer solchen Schlacht befehligt werden, können entweder von Freunden oder vom Computer gesteuert werden.

2. Game-Setting

Das Universum von Massive Universe Online ist in mehrere Sektoren unterteilt. Diese Sektoren sind mit Sprungtoren untereinander verbunden. Ein Sektor kann maximal mit vier anderen Sektoren verbunden sein. Weiterhin gibt es spezielle Sektoren die nur während eines Quests betreten werden können oder Sprungtore die sich abhängig von einer bestimmten Situation öffnen. Der Anzahl der Sektor sind keine Grenzen gesetzt, da jeder Sektor als separater Server fungiert. Demzufolge kann man ein riesiges Universum schaffen in dem der Spieler immer neue Entdeckungen machen kann.

Der Spieler kann sich zu Beginn des Spiels eine von vier Rassen aussuchen, mit der er zukünftig spielen wird. Die einzelnen Rassen haben verschiedene positive und negative Boni auf die unterschiedlichen Werte des Spiels. Neben den vier Hauptrassen, die der Spieler wählen kann gibt es noch Piraten, die ausschließlich computergesteuert werden.

Umfassendere Infos stehen in einem entsprechenden Game-Concept zur Verfügung, das wir denjenigen zur Verfügung stellen werden, die uns bei dem Projekt helfen wollen.

3. Programmiersprache und Software

Programmiert wird bei uns mit FPC (also mehr oder weniger Delphi). Weiterhin kommt OpenGL zum Einsatz. Als Entwicklungsumgebung kommt Lazarus zum Einsatz. Models haben wir bisher mit Blender erstellt. Texturen wurden entweder mit Photoshop (sofern Lizenz vorhanden) oder GIMP bearbeitet. Zur Versionsverwaltung nutzen wir GIT, welches auf unserem Webspace gehostet ist. Als Webfrontend für GIT nutzen wir Gitlab, als Ticketsystem Flyspray.

4. Projektplan

Die letzten 2 Jahre haben wir damit zugebracht uns eine solide Basis für weitere Arbeiten zu schaffen. Sprich wir haben eine eigenen OpenGL-Engine und einen entsprechenden Editor dafür entwickelt. Die läuft soweit ganz stabil, sodass wir uns jetzt an dem eigentlichen Spielinhalt arbeiten können. Nachfolgend eine grobe Liste wie es weiter geht:
- Arbeiten am Client starten (Hauptmenü, Engine einbinden, erste Menüs für Spielinhalte)
- Grundlegenden Server imlementieren sodass der Client sich anmelden kann
- Client und Server weiter ausbauen das man mit den ersten Schiffen fliegen kann
- Stationen im Client und Server implementieren
Ich denke mit diesen 4 Punkten sind wir bis Ende 2014 beschäftigt (sofern es bei der jetzigen Ewntwickleranzahl bleibt).

5. Unterstützung

Zur Zeit sind nur Programmierer im Team. Wir können zwar auch die ein oder anderen einfachen Modele oder Texturen erstellen, aber sobald das etwas komplexer wird, wird es schwer für uns. Außerdem haben wir auch nicht wirklich die Zeit das auch noch zu übernehmen. Wir suchen also noch kreative Leute für Concept-Art, Modele sowie Texturen (und evtl. noch jmd der die Werbetrommel schlägt)!

6. Weiterführende Links

Das hier geschriebene ist natürlich nur ein grober Überblick. Die ganzen beiden letzten Jahre hier noch einmal nieder zu schreiben wäre auch zu viel. Wenn wir euer Intresse geweckt haben, dann könnt ihr gern auf unserem Blog vorbei schauen: http://muo-game.de/ Hier findet ihr auch einige Bilder und Videos zu den aktuellen Geschehnissen. Solltet ihr trotzdem noch Fragen haben, dann könnt ihr natürlich auch direkt hier, oder per Mail anschreiben: info@muo-game.de

Ich hoffe ich konnte ein wenig euer Intresse wecken und freue mich auf einige euerer Kommentare.

MfG Bergmann89

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

03.01.2014, 23:27

Wirkt auf den ersten flüchtigen Blick ansprechend. Aber die Wolken in der Sneak-Peak bewegen sich deutlich zu schnell. Die rasen da mit geschätzt 1000 Kilometer pro Sekunde über die Erde, da könnt Ihr sicher noch was dran drehen :)
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

03.01.2014, 23:45

Hey,

das Video war im Zeitraffer und auch nur n erster Test. Schöne atmosphärische Effekte sind auch noch geplant. Darunter vlt. auch dynamische Wolken und nicht nur ne einfache Textur ;)

MfG Bergmann

4

05.01.2014, 20:13

Heute mal ein paar Infos zur Lichtberechnung in unserer Engine: Zum Blog

Neben all den neuen Technologien, die in modernen Games und Game Engines genutzt werden, hat ein Konzept aus der guten alten Zeit überlebt: Materialien und Light-Shading.
Doch die heutige Hardware ist zu sehr viel besseren Techniken in der Lage. Wir haben eine Technik entwickelt (bzw. erweitert) die auf den physischen Grundlagen der Lichtberechnung basiert. Diese Technik kommt jetzt in unserer bitSpaceEngine zum Einsatz.

Stand der Technik
Obwohl es einige Verbesserungen in der Vergangenheit gab (speziell bei Light Attenuation und atmosphärischen Effekten), hat sich das zugrundeliegende Konzept nie geändert: Eine Lichtquelle strahlt drei Arten von Licht ab und das Material reagiert entsprechend auf diese 3 Lichtarten.
  • Ambient: ungerichtetes Licht, das immer vorhanden ist
  • Diffuse: gerichtetes Licht, das vom Winkel abhängt mit der es auf eine Oberfläche trifft
  • Specular: Licht das Highlights erzeugt, wenn es in das Auge des Betrachters reflektiert wird
  • Emissive: Licht das vom Objekt selbst abgegeben wird

Jede Lichtquelle ist durch vier Farbwerte (RGBA) definiert und jedes Material besitzt entsprechend vier Farbfaktoren (RGBA) und einen zusätzlichen Wert die shininess welcher die Größe der Highlights angibt, die vom Specular Licht erzeugt werden. Dieses System hat einen sehr großen Vorteil gegenüber allen Anderen: mit ihm kann man die meisten reellen Licht Szenarien abbilden und es ist sehr einfach auf der Hardware zu implementieren, welches ein großer Vorteil in den Anfängen der 3D-Computergrafik war, als die Lichtberechnung eines Fragments noch der rechenintensivste Teil der gesamten Render-Pipeline war.
Wie auch immer, es ist sehr schwer für jemanden eine Szene zu beleuchten, da man für eine Lichtquelle und ein Objekt 8 (bzw. 17 da Farben RGBA sind) verschiedene Parameter einstellen muss. Umso schwerer ist es die gesamte Szene korrekt zu beleuchten und alle Materialen naturgetreu darzustellen. Das setzt viel Erfahrung voraus. So viel Erfahrung das es für einen guten Entwickler oder ein gutes Tool unabdingbar geworden ist, eine komplette Materialiensammlung von den bekanntesten Materialien zu erstellen.
Außerdem ist es für einen untrainierten Entwickler (wie den Autor dieses Posts) sehr schwer die geeigneten Parameter für ein gegebenes reelles Objekt zu finden.

Auf Physik basiertes Shading
Das auf Physik basierende Shading nutzt die stark angewachsene Power aktueller GPUs, bzw. deren leistungsstarke Fragment- und Pixel-Shader sowie die schnellen Fließkomma-Operationen. Die grundlegende Idee dahinter ist, anstatt die Lichtquellen und Materialien mit ihren vier Farben und den Faktoren zu beschreiben, definiert man die physikalischen Eigenschaften des Objekts. Den Rest erledigt die brachiale Rechenleistung der GPU, die die finale Farbe des Fragments aus den gegebenen Werten errechnet.
Neben uns, ist uns noch eine andere namenhafte Softwareschmiede bekannt, die dieses Verfahren nutzt: Crytek mit ihrem XBone Release Titel “Ryse – Son of Rome”. Crytek hat ebenfalls einen guten Artikel auf Making Games über das Verfahren veröffentlicht. Der geht zwar nicht allzu sehr ins Detail (irgendwo muss eine Firma ja auch konkurrenzfähig bleiben) aber er gibt einen guten Überblick über die abgewendeten Techniken und hat den Autor dieses Beitrags darin bestätigt, dass seine Idee {Ja, ich hatte diese Idee schon sehr lange, aber war der Meinung “Wenn es gut ist, warum zur Hölle nutzt das keiner?!”} wirklich funktionieren könnte. Der Artikel auf Making Games geht hauptsächlich auf die Generierung der Cubemap ein, deshalb wollen wir uns in diesem Artikel etwas mehr mit unserer Implementierung auseinander setzen.

Grundlegendes Konzept
Wenn man Lichtberechnungen beschreiben will, ist es eine gute Idee bei der Quelle des Lichts zu beginnen. In unserem Fall ist das die reelle Lichtquelle (z.B. eine Glühbirne). Dabei blenden wir zunächst alle Möglichkeiten die mit dem normalen Lichtmodel möglich wären, aber kaum Anwendung finden aus. Es gibt einfach keine Lichter mit rotem Ambient Licht, grünen Diffuse Licht und blauen Specular Licht.
Das einfachste Beispiel dafür, wie wir eine Lichtquelle modellieren, ist eine farbige Glühbirne.

(Link)


Wie ihr wissen solltet, gibt eine Glühbirne Licht ab, indem sie einen dünnen Wolfram Faden zum glühen bringt. Bei farbigen Glühbirnen wird das entstehende (annähernd weiße) Licht durch die Färbung der Glühbirne gefiltert. In unserem Model haben wir diese beiden Arten von Licht getrennt:
  • primäres Licht, ist das Licht welches vom Wolfram Faden erzeugt wird. Im Normalfall ist das sehr hell (annähernd RGB(1, 1, 1)) und ist der Teil des Lichts welches in Reflektionen sichtbar wird
  • sekundäres Licht, ist das Licht welches von der Farbe der Glühbirne bestimmt wird. Es ist nicht ganz so hell wie das primäre Licht und hat unter Umständen auch eine komplett andere Farbe. Im Normalfall ist das das Licht welches vom beleuchteten Objekt reflektiert wird.

Es gibt kein Ambient Licht für jede Lichtquelle, es ist einfach ein Teil der Szene (bzw. des globalen Lichts), welches an der selben Stelle wie das globale Shadow Mapping konfiguriert ist. Die Definition der Materialien hat sich weitaus mehr verändert, als die der Lichtquellen. Nachfolgend sind die Attribute aufgelistet, die ein Material jetzt definiert: die Farbe, die Emissive Farbe, die Normalen, die Rauheit und der Brechungsindex. Die Farbe und die Emissive Farbe sind, wie schon vom alten Model bekannt, ein mapbarer Fragmentwert, welche normalerweise aus einer Textur gelesen werden oder für das ganze Objekt festgelegt werden. Das selbe gilt für Normalmaps, welche für BumpMapping genutzt werden. Das erste zusätzliche Attribut wird Rauheit genannt, dass – wie der Name schon sagt – eine Einheit dafür ist, wie rau die Oberfläche eines Objekts ist. Es reicht von perfekt polierten (0,0) bis hin zu komplett rauen Oberflächen (1,0).

(Link)


Licht, das von einer perfekt glatten Oberfläche reflektiert wird, hat keinen diffusen Anteil, sodass das Material aus jeder anderen Richtung schwarz wirken würde und nur ein Highlight vom primären Licht reflektieren würde, wenn es aus dem richtigen Winkel betrachtet wird. Im Gegensatz dazu würde ein komplett raues Material keine Highlights und die selbe Helligkeit von allen Seiten haben (wenn das betrachtete Objekt eine flache Ebene ist). Weiterhin gibt es noch eine Art von Materialien: Die meisten steinartigen Materialien, wie z.B. Marmor können sehr glatt poliert sein und haben trotzdem einen diffusen Lichtanteil, wenn man aus einem anderen Winkel auf das Objekt sieht. Der Grund dafür ist Licht, welches unter der Oberfläche reflektiert wird, ähnlich wie bei Subsurface Scattering. Dieser Effekt wird bei uns durch den Brechungsindex gesteuert. Der Brechungsindex gibt an, wie viel Licht vom Objekt aufgenommen wird, eh es reflektiert wird.

Die Engine
In unserer Deferred Rendering Engine speichern wir zunächst all diese Werte in einem Textur-Buffer ab, um sie dann im Licht-Render-Pass zum finalen Licht zusammen zu rechnen. Eine spezielle Eigenschaft der Engine ist, das die Normal-Map zusätzlich einen Kanal für die Rauheit besitzt, so können verschiedene Lichteffekte für ein und das selbe Mesh erzeugt werden. Im finalen Licht-Render-Pass wird das globale (bzw. das Ambient Licht) mit dem Diffuse und Specular Licht kombiniert, welches aus der der Position der Lichtquelle und des Blickpunktes des Betrachters berechnet wird. Außerdem wird das Emission Licht mit einbezogen, wenn dieses aktiviert ist. Die Berechnungen arbeiten dabei mit den Parametern, die im Bild oben beschrieben wurden.

(Link)


Das Ergebnis
Mit diesem neuen Model, können wir sehr einfach alle Effekte modellieren, die es bei reellen Materialien und reellen Lichtquellen gibt. Natürlich unterliegt dieses Model auch einigen Einschränkungen, aber für die Effekte die nicht von dem Model unterstützt werden, kann jederzeit ein spezieller Shader implementiert werden, der diese Funktionalität nachreicht.

(Link)

(Link)


Es nicht der schnellste Weg sich eine eigene Engine von Grund auf selbst zu bauen, aber wie ihr sehen könnt ergeben sich dadurch Möglichkeiten und Freiheiten die man bei einer fertigen Engine nicht hätte. Mit diesem Model haben wir jetzt ein System, das uns ein schnelles und einfaches Modellieren von beleuchteten Szenen ermöglicht und zusätzlich noch kompatibel zu unserem Toolset ist. Außerdem sieht es jetzt realistischer aus als vorher – speziell die Reflektionen von metallischen Gegenständen fallen beim auf Physik basierten Shading direkt ins Auge.

Wir wünschen einen guten Start ins Jahr 2014,
euer BitSpace-Team

5

06.01.2014, 14:04

Hey, sieht wirklich interessant aus und ihr scheint auch schon recht weit mit der Engine zu sein, ist wirklich beeindruckend :thumbsup:

Also ist im Prinzip das Rendering abgeschlossen, soll es auch irgendwann Partikel und Post Processing Effekte geben und gibt es die Möglichkeit das wir selbst ein bisschen mit der Engine rumspielen könnten :?: :)


Gruß Mathias

6

06.01.2014, 17:34

Hey,

PartikelEngine ist geplant. Die implementieren wir dann wenn wir den Inhalt vom Spiel soweit haben. Vlt nehmen wir auch eine fertige, mal sehen...
TechDemo ist geplant, ich hoffe das wir das dieses WE hin bekommen.

MfG Bergmann.

7

11.01.2014, 16:44

Hey Leute,

wie schon in diversen Foren angekündigt , wollen wir euch heute die Früchte unserer Arbeit präsentieren und releasen die TechDemo für unserer Deferred Engine. Mehr gibts heut nicht zu sagen, außer viel Spaß beim testen :)

zum Blog
DeferredEngine TechDemo Win32
DeferredEngine TechDemo Win64
DeferredEngine TechDemo Linux32
DeferredEngine TechDemo Linux64

MfG Bergmann.

8

02.03.2014, 19:47

Sommer; Sonne; Sonnenschein
… zumindest in Massive Universe Online. Die letzten beiden Wochen haben wir uns mit einem weiteren Feature unserer Engine beschäftigt und zwar mit LensFlare und LightScattering Effekten. In folgendem Video können die Effekte bewundert werden.

(Link)


Mit diesen beiden Effekten ist die Grundfunktionalität der Engine erst einmal abgeschlossen. In den nächsten Tagen werden wir uns noch einmal mit der Optimierung der Engine befassen, da bei der Demo ersichtlich wurde, das da noch einiges getan werden muss. Danach geht es dann endlich an die Implementierung der eigentlichen Spiel-Inhalte. Da der Grundstein dafür auch schon größtensteils mit der Engine gelegt wurde, rechnen wir da relativ schnell mit vorzeigbaren Resultaten.

Man darf gespannt bleiben,
euer BitSpace-Team

zum Video
zum Blogpost

Obstsalat

Frischling

Beiträge: 8

Beruf: Student

  • Private Nachricht senden

9

02.03.2014, 20:17

Definitiv ein Projekt, was man im Auge behalten sollte. Gute Arbeit :)

10

05.10.2014, 23:06

Hey Leute,

fast hätten wir es vergessen: Massive Universe Online wird 3 Jahre alt!

Schon wieder ein Jahr mehr, so schnell vergeht die Zeit und für Außenstehende sieht es immer noch so aus als ob nix passieren würde. Wenn man sich einmal an den Anfang zurück erinnert, wo geplant war nach 2 Jahren eine vorzeigbare Beta zu haben, dann könnte man auch fast glauben das wir nicht viel geschafft haben, aber im Gegenteil. Es sind viele kleinere Projekte entstanden die wir im Hinblick auf Massive Universe Online umgesetzt haben. Zum einen ist eine komplette Deferred Engine zum rendern atemberaubender Space-Szenen entstanden. Einen Teil dieser Engine haben wir sogar zur freien Verfügung gestellt um Neulingen den Einstieg in die OpenGL Entwicklung zu erleichtern. Unser Framework umfasst aber nicht nur die Engine selbst, sondern auch sonst alles was wir irgendwann einmal für die Entwicklung von Massive Universe Online benötigen könnten. Zusätzlich zur Framework gibt es einen umfassenden Editor zur internen Verwaltung von Materialien, Texturen, Modellen, und und und. Wir haben einen weiteren Editor bzw. Generator für BumpMaps geschrieben mit dem wir unsere Modele noch detaillierter gestalten können. Dieser Generator kann ebenfalls von allen kostenlos genutzt werden. Zu guter Letzt gibt es einen PreCompiler für glslCode dessen Quelltext – genauso wie viele der anderen keinen Projekte – kostenlos zum Download bereit steht. Ihr seht also dass wir nicht untätig sind und kontinuierlich am Projekt weiterarbeiten. Natürlich geht es nicht so schnell voran wie man sich das wünschen würde, aber da das Ganze immer noch – Betonung liegt auf noch ;) – ein Hobby-Projekt ist, bleibt das neben der normalen Arbeit eben manchmal auf der Strecke liegen.

Soviel zum letzten Jahr und zum aktuellen Stand. Was bringt die Zukunft? Ich hab lange überlegt, ob ich etwas dazu schreiben soll, aber am Ende wird es doch wieder anders. Wie oft haben wir schon gesagt das wir uns jetzt um den Game Content kümmern? Wie oft ist etwas anderes, wichtigeres dazwischen gekommen? Deshalb sag ich heute mal nur so viel: it’s done when it’s done. Einen kleinen Ausblick in die Zukunft will ich aber trotzdem geben. Wir haben in letzter Zeit gehäuft darüber nach gedacht das Projekt zu forcieren und evtl. mit Hilfe von Kickstarter oder einem Sponsor ein Gewerbe damit aufzubauen. Bis jetzt ist nichts entschieden. Wir werden sehen was die Zukunft bringt…

Euer bitSpace-Team.

zum Blog-Post

Werbeanzeige