Montag, 13. Juli 2015

Die Entwicklungsumgebung

Wir wollen ein Spiel programmieren, doch mit was?
Diese Entscheidung hängt von vielen Faktoren ab. Da ich das ganze als Hobby bzw. in meinem Nebengewerbe angehe, ist für mich der wichtigste Faktor die Zeit, denn an der mangelt es mir. Damit schließe ich schon mal aus, dass ich absolut bei 0 anfangen könnte - eine Spiele-Engine bzw. eine passende Entwicklungsumgebung muss her.
Eine solche Entwicklungsumgebung, die direkt für die Spieleentwicklung erstellt wurde, beinhaltet in der Regel bereits eine Spiele-Engine mit vielen nützlichen Funktionen.
Vorweg - Meine Entscheidung fiel auf GameMaker: Studio, es gibt aber auch einige Alternativen:
Siehe Liste von Spiele-Engines.

Im Folgenden möchte ich ein paar dieser Entwicklungsumgebungen vorstellen, mit ein wenigen Stichworten der jeweiligen Firmen selbst:

Unity

  • Feature-rich and highly flexible editor
  • 22 platforms
  • Uniquely extendible tool
  • Create highly-optimized content
  • Amazing visual fidelity, rendering power and ambience
  • Rapid iteration
  • Retargetable animations
  • Full control of animation weights at runtime
  • Enlighten-powered Real-time Global Illumination
  • Physically-based shading
  • Audio: Real-time mixing and mastering
  • 2D and 3D Physics - Box2D, NVIDIA® PhysX® 3.3
  • Scripting: C#, JavaScript or Boo
  • Version control: Perforce and Plastic SCM

Unreal Engine

  • DirectX 11 & 12 Rendering Features
  • Cascade Visual Effects
  • New Material Pipeline
  • Blueprint Visual Scripting
  • Live Blueprint Debugging
  • Content Browser
  • Persona Animation
  • Matinee Cinematics
  • Terrain & Foliage
  • Post-Process Effects
  • Full Source Code Access
  • Professional Source Control
  • C++ Code View
  • Hot Reload Function
  • Simulate & Immersive Views
  • Instant Game Preview
  • Possess & Eject Features
  • Artificial Intelligence
  • Audio
  • Leading Middleware Integrations


GameMaker: Studio

  • 14+ platforms
  • Asset Workflow: Shaders, Sprites, Sounds, Fonts
  • Scripting: Script Editor, built-in scripting language
  • real-world physics: Box2D
  • Networking
  • multichannel three dimensional positional audio utilising
  • Several compilers
  • Monetize, Analyse, Social media, Game Services 
  • Source Control: SVN, CVS or Git


RPG Maker

  • Enhanced map editor
  • Character/Enemy/Skill/Equipment Database
  • Built-in Character Generator
  • Cof graphics, with 4 tilesets and collapsed character sprites
  • Shadow tool
  • Own scripting: RGSS3, based on Ruby 1.9.2
  • Windows only


Construct 2

  • HTML5 2D games
  • Quick & Easy
  • Flexible Behaviors as pre-packaged functions
  • Instant Preview without compiling
  • Blend modes, effects and particle system
  • Over 70 WebGL-based pixel shader
  • Multiplatform Export
  • Easy Extensibility

Dies ist eine Auswahl die darauf basiert, welche Programme mir am häufigsten begegnet sind, bzw. mir am bekanntesten scheinen. Ich möchte also nicht behaupten diese seien die besten.
Auch die Stichpunkte wurden halbwegs willkürlich gewählt, d.h. wenn ein Punkt bei einer Entwicklungsumgebung fehlt, den eine andere hat, bedeutet dies nicht, dass dieser Umgebung die jeweilige Funktion fehlt.

Welche Entwicklungsumgebung für euch die richtige ist, müsst ihr selbst abwägen. Wie bereits erwähnt fiel meine Entscheidung auf den GameMaker, aus folgenden Gründen:
  1. Ich besitze bereits Lizenzen für die kommerzielle Nutzung für die iOS und Android Module.
  2. Ich habe bereits seit 2008 mit älteren Versionen des GameMakers gearbeitet und habe viel Erfahrung angesammelt, wodurch sich Zeit sparen lässt.
  3. Ich habe bereits andere Projekte damit erstellt, wobei ich vor allem im letzten viel Aufwand in Wiederverwertbarkeit investiert habe und dies somit weiter nutzen kann.
Müsste ich hingegen komplett bei Null beginnen, würde meine Wahl wahrscheinlich auf Unity3D fallen. Dieses Programm kam für mich früher nicht in Frage, weil es sehr teuer war. Das Bezahlungsmodell hat sich aber verändert: Man bezahlt jetzt erst ab einem gewissen Betrag, den man durch Unity als Einkommen erzielt hat.
Auch kann ich Unity und GameMaker beide für Anfänger empfehlen, da sich im Internet unzählige Tutorials und Lernmaterial finden lässt.
In meinen folgenden Posts werde ich demnach gezielt auf GameMaker abhängige Aspekte und Umsetzungen eingehen, die bei anderen Entwicklungsumgebungen ganz anders angegangen würden. Trotzdem werde ich mich auf das Vorgehen allgemein konzentrieren, so dass es auch ohne Nutzung des GameMakers ein lehrreicher und informativer Blog wird.

Wer sich noch immer nicht entscheiden kann, dem empfehle ich einfach ein paar der genannten (oder anderen) Programme zu testen und ein oder zwei Anfänger Tutorials durchzuarbeiten, um sich einen angemessenen Eindruck zu verschaffen.

The development environment

We wish to program a game, but with what?
This decision will depend on many factors. As I approach this as a hobby or my side business the most important factor is the time I have. By that I rule out that I could start with absolutely nothing - a game engine or an appropriate development environment must be found.
Such a development environment that was created for the games development, already usually involves a game engine with many useful features.
Anticipation - My decision was GameMaker: Studio, but there are some alternatives:
See list of game engines.

Below I would like to present a few of these development environments, with a few keywords of the respective companies themselves:

Unity

  • Feature-rich and highly flexible editor
  • 22 platforms
  • Uniquely extendible tool
  • Create highly-optimized content
  • Amazing visual fidelity, rendering power and ambience
  • Rapid iteration
  • Retargetable animations
  • Full control of animation weights at runtime
  • Enlighten-powered Real-time Global Illumination
  • Physically-based shading
  • Audio: Real-time mixing and mastering
  • 2D and 3D Physics - Box2D, NVIDIA® PhysX® 3.3
  • Scripting: C#, JavaScript or Boo
  • Version control: Perforce and Plastic SCM

Unreal Engine

  • DirectX 11 & 12 Rendering Features
  • Cascade Visual Effects
  • New Material Pipeline
  • Blueprint Visual Scripting
  • Live Blueprint Debugging
  • Content Browser
  • Persona Animation
  • Matinee Cinematics
  • Terrain & Foliage
  • Post-Process Effects
  • Full Source Code Access
  • Professional Source Control
  • C++ Code View
  • Hot Reload Function
  • Simulate & Immersive Views
  • Instant Game Preview
  • Possess & Eject Features
  • Artificial Intelligence
  • Audio
  • Leading Middleware Integrations


GameMaker: Studio

  • 14+ platforms
  • Asset Workflow: Shaders, Sprites, Sounds, Fonts
  • Scripting: Script Editor, built-in scripting language
  • real-world physics: Box2D
  • Networking
  • multichannel three dimensional positional audio utilising
  • Several compilers
  • Monetize, Analyse, Social media, Game Services
  • Source Control: SVN, CVS or Git


RPG Maker

  • Enhanced map editor
  • Character/Enemy/Skill/Equipment Database
  • Built-in Character Generator
  • Cof graphics, with 4 tilesets and collapsed character sprites
  • Shadow tool
  • Own scripting: RGSS3, based on Ruby 1.9.2
  • Windows only


Construct 2

  • HTML5 2D games
  • Quick & Easy
  • Flexible Behaviors as pre-packaged functions
  • Instant Preview without compiling
  • Blend modes, effects and particle system
  • Over 70 WebGL-based pixel shader
  • Multiplatform Export
  • Easy Extensibility

This is a selection which is based on what programs I have encountered most often, or seem to me the best known. So I would not say these are the best.
The key points were selected randomly halfway, ie when an item is missing from a development environment, this does not mean that this environment is missing the function.
Which development environment for you is the right one, you have to choose for yourself. As already mentioned my decision fell on GameMaker, for the following reasons:
  1. I already have licenses for the commercial use of the iOS and Android modules.
  2. I have been working since 2008 with older versions of Game Maker and have accumulated a lot of experience, which could save time.
  3. I have already created other projects with it, in which I have invested much effort in reusability, especially in the last project.
If I had to start completely from scratch, however, my choice would probably fall on Unity3D. This program came to me earlier out of the question because it was very expensive. But the payment model has changed: You pay only after a certain amount that you have achieved through Unity as income.
Also I can recommend both, Unity and GameMaker, for beginners as it is easy to find countless tutorials and learning material on the Internet.
In my next posts I will therefore respond specifically to GameMaker dependent aspects and reactions which would be handled very differently in other development environments. Nevertheless, I am going to focus on the general approach, making it a more instructive and informative blog also without the use of GameMaker.
 
Those who still can not decide, I recommend just to try a few of these (or other) programs and work through one or two beginner tutorials to get a reasonable impression.