Allgemein

Engine oder Programmiersprache

Die Herausforderungen eines Entwicklers

Wibro-Games ist ein junges Start-up, dass es sich zur Aufgabe gemacht hat, sich flächendeckend auf dem internationalen Markt zu etablieren.

Sowohl für Start-ups, aber natürlich auch für alt-eingesessene Softwareriesen wie beispielsweise Microsoft, Ubisoft, Square-Enix - nur um einige wenige zu nennen - besteht ein immer wachsender Markt. Mit der Quantität der weltweiten Spieler wurden zahlreiche neue Ideen entwickelt und einfließen lassen durch die Umsetzung eines abgerundeten Games.

Die Art und Weise der Spiele könnten so nicht unterschiedlicher sein: Rollen- und Strategiespiele, geschicklichkeitsforderne Jump And Runs, Sport- und Kampfsimulationen oder vielleicht einfach auch nur ein Karten- oder Brettgame, das man unterwegs oder an seinem persönlichen Wohlfühlort mit Freunden im Multiplayer zockt. Diese Liste ist natürlich fortführbar und kann in weitere Kategorien aufgeteilt werden. So gibt es auf mobilen Plattformen, wie Handys oder Tablets Millionen von Apps und Spiele, ebenfalls auch tausende auf Konsolen oder dem eigenen PC. 

Jeder Spielentwickler, insbesondere Start-ups und kleinere Unternehmen, stehen damit vor der Herausforderung: Welche Spielidee- und Art bieten die "zündende Rakete" in der Community, neben Millionen anderen Produkten, seinen Platz zu finden. Wie sind die Wünsche, Vorlieben und Ideen in einer Game-Kategorie umsetzbar, und wie werden individuelle Kernpunkte mit in die Entwicklung aufgenommen? 

Jedem Entwickler, der sich dieser Herausforderung stellen wird, bleiben unterschiedliche Möglichkeiten gegeben. 

Game-Engine

Auf dem Markt gibt es zahlreiche Angebote die Entwicklung eines Spieles durch eine Engine zu steuern. Mit Engine (vom Englischen für den „Antrieb“ oder „Motor“; deutsch Funktionseinheit) wird in der Informationstechnologie ein eigenständiger Teil eines Computerprogramms bezeichnet. Eine Engine ist für komplexe Berechnungen oder Simulationen zuständig. Oft läuft eine Engine selbsttätig im Hintergrund, ohne unmittelbar von einer Steuerung durch den Benutzer abhängig zu sein.

Die Engine ermöglicht es übersichtlicher und mit weniger Zeitaufwand die Spielwelt zu gestalten. Sie gestaltet die digitale Welt der Computersprache, der Maschinensprache die rein aus binärem Code (1,0) besteht, bereits in das visuelle Auge des Entwicklers um. In der Fachsprache könnte man dies "WYSIWYG" nennen - ein Akronym für den Grundgedanken „What You See Is What You Get“ (englisch für „Was du siehst, ist [das], was du bekommst.“). In den meisten aufwendig modellierten Spielen - die zurecht auch ihren weltweiten Erfolg erhielten - stecken jahrelange Arbeit, von verschiedenen Spezialisten in ihrem jeweiligen Tätigkeitsfeld. Zusammengenommen sind dies - bis zur Fertigung des Spieles - Millionen Zeilen von Quellcode. Eine Engine kann so die Erfahrung und Optimierung vergangener Jahre von Anwendungsentwicklern komprimiert und übersichtlich sortiert in einem einzigen Programm vereinigen. 

Diese technische Evolution sind Hilfsmittel, um auch selbst als Entwickler davon zu profitieren. Neben einigen Engines, mit denen nur die Entwickler marktführender Spielentwickler arbeiten, gibt es auch Engines, die Open Source sind, und sich durch Beiträge wie Spenden und oder einem kleinen prozentualen Anteil nach Veröffentlichung des Produktes auf dem Markt finanzieren. Namenhafte Engines wären z.B. Unity, Unreal oder die Cry-Engine - diese eignen sich besonders für umfangreichere Projekte die gerne published werden auf dem PC- und Konsolenmarkt. Kleinere Anwendungen, insbesondere für den Mobilen-Sektor greifen unter anderem auf Engine zurück wie Buildbox oder auch z.B. GameSalad.

Trotz des positiven Nutzens einer Engine, kann diese jedoch auch einen Nachteil aufweisen: Jede Engine wurde unterschiedlich konzipiert und für ihren gedachten Bereich codiert. Wenn gleich Entwickler ebenfalls auch selbst in einer Engine programmieren können und müssen, kann eine auf Engine-basierte Programmierung kleine Grenzen innerhalb der Entwicklung aufweisen. So wie diese ihre Stärken haben, so kann die Stärke ebenfalls die Schwäche auf dem Teilgebiet eines individuellen Games sein, unausgereift oder nicht der Logik des Spiel-Entwicklers entsprechen. So zeigt die Erfahrung, dass die Zeitersparnis und der visuelle Überblick, Funktionen und Bibliotheken des Programmes, hilfreich sind, doch bei funktionstechnischen Meilensteinen des Spieles einen erheblichen Zeitaufwand und unüberwindbare Problemlösung darstellen können. Vergleichbare wäre dies mit einer Backmischung, die das Kochen erleichtert, am Ende jedoch nicht vollständig das Ergebnis liefern kann, als seien alle Zutaten selbst ausgewählt und abgestimmt an dem eigenen Geschmack. Mit eventuellen "ungesunden" Zutaten oder einfach einen Nebengeschmack, der für einen Feinschmecker der Kritikpunkt an der Perfektion wäre, so muss auch ein Entwickler gegebenen Nachteil hinnehmen - sie wird so Teil des Projektes und letztlich abschließenden Produktes. 

Doch sein eigenes Produkt auf best möglichstes Niveau des Spielerlebnisses zu bringen - die irgendwie möglich ist -, darum geht es doch nun einmal. 

Die volle Packung an "Genuss", an echtem "Geschmack", durch das harmonische Zusammenspiel von Know-how, Kreativität, Cleverness, Ablauf und Spielgeschehen. Nur so werden Games "geboren" werden, die sich auf dem weltweiten Markt durchsetzen können, und über die man auch noch nach Jahren spricht und wieder anfängt, erneut zu zocken. 

Programmiersprache

Jeder Spieleentwickler der seinem Eigen die nötige "Perfektion" geben möchte - die von ihm eigens angefertigte virtuelle Welt - wird selbst die Kenntnisse mitbringen müssen, durch Programmierung, Codierung, Scripting und Modellierung seinem Produkt den "letzten Hauch" Individualität mitzugeben und der gedachten Spielidee leben einzuverleiben. Dies kostet natürlich viel Zeit, Ausdauer und auch einen "gesunden Überblick" über vielleicht Millionen-Zeilen von Quellcode. Analytische Vorgehensweisen sind dabei unerlässlich. Wenn gleich auch niemand sein Talent absolut in Perfektion beherrschen kann, sind die Erfahrungen, die man mitbringt und selbst auch noch macht innerhalb seines eigenem Code, unerlässlich.

Um so direkter der Code der ursprünglichen binären Maschinensprache ansässig ist, umso individueller das Gesamtergebnis des Produktes. Bestens geeignet wären z.B. die Programmiersprachen wie C# und C++ - natürlich neben anderen. Diese finden heute immer noch eine Vielzahl von Implementation, wie sie in Apps vorhanden und millionenfach verbreitet sind. Auch die meisten Engines basieren darauf; sie bieten eine kleine Funktionalität innerhalb des eigenen Programmes an, um beispielsweise die Modellierung von Spielwelten oder Charakteren und ihren Bewegungsabläufen vorzunehmen. 

Der charakterisierende Anteil einer Programmiersprache ist vielfältig, signifikant und impliziert z.B. deklarierte Variablen (dazu gehören auch dynamische Funktionsnamen),  dynamische Typisierung, automatische Speicherverwaltung und Steuerungsabläufe durch CPU/GPU, dynamische Klassenzugehörigkeit oder prototypenbasierte Vererbung sowie unmittelbare Ausführung durch Interpretation des Quelltextes ohne getrennte Zyklus- und Übersetzungsphasen. Überbegriffen: Der gesamte Spielablauf sowie die Gestaltung des Spieles, mit ihrer Optimierung und Anpassung an die später auszuführenden Hardware.

Für ein "perfektes Spielerlebnis" mit voller Individualität des Entwicklers, sind Programmiersprachen und ihre Kenntnisse zur Umsetzung damit unerlässlich. 

Unser Team

Wibro-Games ist ein junges Start-up und besteht aus einem überschaubaren Team, dass sich diesen Herausforderungen stellt. Durch eine vielseitige Community, passen wir ebenfalls unsere Ideen und Kenntnisse in Games individuell an und richten unsere Produkte dem gewünschten Zeitgeist. Basierend auf Engines und reinen Programmiersprachen, ist es uns möglich, dual-kategorisch eine Vielzahl an Produkten für den mobilen Markt zur Verfügung zu stellen. Doch auch darüber hinaus bestehen weitere Projekte, die sich besonders auf die Erfahrungen im PC- und Konsolenmarkt stützen und sich in diesem Bereich des Spielemarktes etablieren werden.