Montag, 26. Oktober 2015

GameMaker - Einführung

Wie in meinem letzten Posts erläutert, habe ich mich für GameMaker: Studio als meine Entwicklungsumgebung für die Spieleprogrammierung entschieden.
Nun möchte ich Anfängern und Interessenten einen Einstieg für diese IDE (Integrierte Entwicklungsumgebung) erleichtern, indem ich ein paar Quellen für Informationen und Tipps aufliste und die Grundlagen ein wenig erkläre.

Offizielle GameMaker: Studio Seite

Communities:

Dokumentation:

Ressourcen:

Natürlich gibt es noch unzählige weitere Informationsquellen, aber die beste bleibt schließlich doch Google. ;)

Die verschiedenen Versionen von GameMaker: Studio
und unterstützte Plattformen

Hier sehen wir die verschiedenen Varianten von GameMaker: Studio und den verschiedenen Modulen für zusätzliche Plattformunterstützungen. Diese Tabelle habe ich schlicht von der offiziellen GameMaker Seite übernommen.
[http://www.yoyogames.com/studio, 28.09.2015]
Feature Standard Professional Master Collection
Price Free $149.99 $799.99
Registration Required
√
Made with GameMaker Splash Screen in game
√
Unlimited resources
√
√
√
Texture Management
√
√
Multiple Configurations
√
√
Team Features
√
√
Developer Services Portal (DSP)
√
√
Mobile Testing (Android)
√
√
GameMaker: Player Export
√
√
√
Windows Desktop Module
√
√
√
Windows Desktop Module + YoYo Compiler + Export
√
√
Windows App Module + YoYo Compiler + Export
√
√
Mac OS X Module + Export
√
√
Ubuntu Linux Module + Export
√
√
HTML5 Module + Export
+$199.99
√
Android Module + YoYo Compiler + Export – x86, ARM, MIPS
+$299.99
√
iOS Module + YoYo Compiler + Export
+$299.99
√
Windows Phone 8 Module + YoYo Compiler + Export
+$299.99
√
Tizen Module + Export
+$199.99
√
Xbox® One Module + YoYo Compiler + Export
+$299.99
√
PlayStation® 4 Module + YoYo Compiler + Export
+$299.99
PlayStation® Vita Module + YoYo Compiler + Export
+$299.99
√
PlayStation® 3 Module + YoYo Compiler + Export
+$299.99
√
Includes all current & future modules in version 1.x
√


Grundlagen zur Verwendung von GameMaker: Studio























Hier sehen wir die GUI (grafische Benutzerschnittstelle) der GameMaker IDE. Links zu sehen ist eine Spalte mit allen Ressourcen Typen, die verwendet werden können. Dazu zählen:
  • Sprites (Bilder, die gezeichnet werden können)
  • Sounds (Audio-Dateien für Soundeffekte und Hintergrundmusik)
  • Backgrounds (Grafiken für Hintergründe)
  • Paths (Vordefinierte Bewegungsabläufe)
  • Scripts (Code-Skripte: Entsprechen Methoden / Funktionen)
  • Fonts (Schriftarten)
  • Time Lines (Vordefinierte Zeitabläufe)
  • Objects (Objekte, von denen Instanzen erzeugt werden können)
  • Rooms (Räume / Level / Maps)
  • Included Files (In das Spiel eingebundene Dateien)
  • Extensions (Erweiterungen für verschiedene Plattformen: JAR, DLL, ...)
  • Macros (Konstanten und Codefragmente)
  • Global Game Settings (Einstellungen für alle Plattformen)
Und damit ihr nun mal seht, wie man ein erstes kleines Programm bastelt, habe ich im Folgenden eine kleine Anleitung verfasst, noch bevor ich überhaupt erkläre, wie das ganze so zusammenspielt:

Wie geht es los?
Diese Anleitung wurde ausgehend von GameMaker: Studio in der aktuellen Version geschrieben.

  1. Als allererstes, wenn ein neues Projekt angelegt wurde, wird ein Room benötigt.
    -> Rechtsklick auf den Rooms-Ordner - Create Room.
        (Jetzt könnte das "Spiel" bereits gestartet werden, doch wir bekämen nur ein leeres Fenster.)
  2. Es muss ein Objekt erstellt werden, mit dem etwas geschehen soll.
    -> Rechtsklick auf den Objects-Ordner - Create Object.
    -> Nennen wir es doch obj_hello.
  3. Nun öffnen wir (falls nicht bereits offen) den neu erstellten Raum per Doppelklick auf seinen Namen, springen in den Reiter Objects und klicken rechts in den Raum, um das Objekt obj_hello zu platzieren.
  4. Schließlich legen wir in dem angelegten Objekt (Doppelklick auf obj_hello im Ressourcen-Baum, falls nicht bereits offen) einen neuen Event an:
    -> Add Event - Draw - Draw
  5. Hier ziehen wir nun via Drag'n'Drop von rechts (unter dem Reiter draw) die Kachel mit dem großen A (Draw Text) in die Actions-Liste.
  6. Wir öffnen diesen neu angelegten Draw Text Befehl mit Doppelklick (öffnet sich auch von alleine nach dem Hineinziehen) und schreiben "Hello World" in das Textfeld "text:" und klicken auf OK.
  7. Mit einem Klick auf den grünen Pfeil oben im Menü (Run the game) der IDE, starten wir nun unser "Spiel" und siehe da - ein Hello World Programm ist "geschrieben".

Wie geht es weiter?

Jetzt solltet ihr einen ersten Eindruck davon haben, wie der GameMaker aufgebaut ist und grob funktioniert:
  • Ihr könnt Objekte in einen Editor ziehen und beliebig anordnen.
  • Diese Objekte funktionieren Event-orientiert. Z.B. könnt ihr reagieren auf:
    "Instanz erstellt", "Instanz angeklickt", "Instanz gelöscht", "Instanz1 kollidiert mit Instanz2"...
  • Und in diese Events könnt ihr wiederum Anweisungen hinein ziehen, die der Reihe nach, oder auch nur unter bestimmten Bedingungen, ablaufen. Es ist auch möglich ein "Blatt Papier" hineinzuziehen und alles selbst auszuprogrammieren (ich würde es als erfahrener Programmierer nicht anders machen).
Natürlich gibt es unzählige Möglichkeiten die ich nicht im geringsten angedeutet habe. Wenn ihr Lust auf mehr bekommen habt, könnt ihr euch in den genannten Communities, auf YouTube, oder auch aus anderen Quellen, Tutorials anschauen oder einfach selbst etwas rumexperimentieren.
GameMaker selbst liefert ebenfalls eine kleine Auswahl an Tutorials und Demos direkt mit.

Wichtiger Tipp: Wer noch unerfahren ist, sollte unbedingt mit einem Projekt starten, dass so klein wie möglich ist! Auch der Gedanke, man könne ein komplexes Spiel, wie z.B. ein RPG beginnen, kurz halten und später erweitern, schlägt wahrscheinlich den falschen Weg ein.
Eure Art und Weise zu Programmieren und Dinge umzusetzen wird sich stetig wandeln und verbessern. Ihr werdet irgendwann merken wie ineffizient oder undurchsichtig euer alter Code ist und würdet am liebsten alles neu machen... Außerdem ist es extrem demotivierend, wenn man etwas anfängt, aber nie zu Ende bringt...


In meinem nächsten Post möchte ich ein kleines Spiel samt Quellcode mit euch teilen, mit dem ihr euch alles in Ruhe anschauen und nachvollziehen könnt. Es handelt sich um einen kurz gehaltenen Nachbau eines sehr alten aber auch heute noch gespielten Spiels das jeder kennt. ;)
Der Quellcode ist gut kommentiert (allerdings auf Englisch), aber nicht unbedingt an Anfänger gerichtet. Doch so hat man mal die Gelegenheit zu sehen, wie alles etwas "professioneller" angegangen werden kann.

Montag, 28. September 2015

Spieleentwicklung Ressourcen

Heute habe ich für euch eine Liste an Ressourcen aller Art angelegt, welche für die Spieleentwicklung sehr nützlich sein können. Ich selbst habe nur wenige davon genauer angeschaut, aber das meiste sieht sehr gut aus. Es geht von Grafiken, egal ob Sprites, Hintergründe oder Vektorgrafiken, über Audio-Dateien für Soundeffekte und Hintergrundmusik, bis zu nützlichen Werkzeugen für verschiedenste Anwendungsgebiete.

Wenn ihr diese Links benutzt, verlasst ihr meinen Blog und erreicht Internetseiten anderer, für die ich keinerlei Haftungen oder Garantien übernehme!

> Sprites / Grafiken

> Sound / Musik

> Spiele-Entwicklungs Werkzeuge

   >> Level-Design, User Interfaces, Animationen
  • Spline – Brillianter 2D-Animation-Editor (gut für GameMaker)
  • Goji Editor – Spiel-Editor und integrierte Entwicklungsumgebung
  • Booty5 – HTML5 "Game Maker"
  • Texture Packer - Erstelle leicht Sprites / Atlante
  • Glee2D - Generischer 2D Editor
  • Tiled – 2D Tile-basierter Map-Editor
   >> Grafik- und Modellierungssoftware
  • GIMP - Kostenloser 2D Pixel Art Editor (Kann ich empfehlen!)
  • Blender - Kostenloser 3D Art Editor
  • Inkscape - Kostenloser 2D Vector Art Editor
  • Serif DrawPlus - Kostenter 2D Vector Art Editor
  • Autodesk Maya – Kostenter 3D Art Editor
  • Clara.io - Online 3D Art Editor
  • 123dapp - Kostenlose 3D Art Erstellungswerkzeuge von Autodesk
  • Paint.NET - Kostenlose Bild- und Fotobearbeitung
   >> Code-Editoren und IDEs
       -> Siehe auch meinen Post speziell zu Spieleentwicklungs-IDEs

  • IntelliJ IDEA - Enterprise, Mobile, Web mit Java, Scala, Groovy (Absolute Empfehlung!)
  • Notepad++ - Kostenloser Code-Editor für Windows (unterstützt viele Sprachen)
  • Eclipse - Kostenlose Cross-Plattform Java IDE
  • Visual Studio Express - Kostenlose IDE für Windows (C/C++, C#, HTML5, Visual Basic)
  • Xcode - Kostenlose IDE für Apple Mac OS (Objective-C, C/C++)
  • Netbeans - Kostenlose Cross-Plattform IDE (C/C++, PHP, HTML5, Java und mehr)
  • TextWrangler - Kostenloser Code-Editor für Mac OS (unterstützt viele Sprachen)
  • Aptana Studio - Leistungsstarke Open-Source-Web-Entwicklung IDE
   >> Andere Tools
  • Tridiv – Erstelle 3D-Modelle in CSS3!

> Anderes

Bitte stellt sicher, dass ihr die Lizenzen von irgendwelchen Grafiken und allem anderen, die ihr in einem "Produkt," Marketing-Materialien und Web-Sites nutzen wollt, vorher gründlich lest. Verschiedene Lizenzen gewähren euch verschiedene Nutzungsrechte - stellt sicher, dass ihr euch über alles im Klaren seid. Im Zweifelsfall nehmt Kontakt mit dem entsprechenden Künstler oder Seiten-Inhaber auf, um mehr zu erfahren.


Mit all diesen Mitteln solltet ihr in der Lage sein die tollsten Ergebnisse zu erschaffen. Allerdings ist doch nichts besser, als so viel wie möglich selbst zu machen, oder? ;)

Hilfreichste Quelle:
http://www.drmop.com

Game development resources

Today I have created for you a list of resources of all kinds, which may be very useful for game development. I myself have only a few of them looked at in more detail, but most looks very good. There are graphics from sprites, backgrounds or illustrations over audio files for sound effects and background music, up to useful tools for various applications.

 If you use these links, you leave my blog and reach web pages of others, for I assume no liability or guarantee!

> Sprites / Graphics

> Sound / Music

> Game Development Tools

   >> Level design, user interfaces, animations
  • Spline – Brilliant 2D animation editor (Good for GameMaker)
  • Goji Editor – Game editor and integrated development environment
  • Booty5 – HTML5 game maker
  • Texture Packer - Create sprite sheets / atlases easily
  • Glee2D - Generic 2D editor
  • Tiled – 2D tile based map editor
   >> Graphics and modeling software
   >> Code editors and IDEs
       -> Also se my post about game development IDEs

  • IntelliJ IDEA - Enterprise, mobile, web with Java, Scala, Groovy (Absolute recommendation!)
  • Notepad++ - Free code editor for Windows (supports a range of languages)
  • Eclipse - Free cross platform Java IDE
  • Visual Studio Express - Free IDE for Windows (C/C++, C#, HTML5, Visual Basic)
  • Xcode - Free IDE for Apple Mac OS (Objective-C, C/C++)
  • Netbeans - Free cross platform IDE (C/C++, PHP, HTML5, Java and more)
  • TextWrangler - Free code editor for Mac OS (supports a range of languages)
  • Aptana Studio - Powerful open source web development IDE
   >> Other tools
  • Tridiv – Create 3D models in CSS3!

> Other

Make sure that you read the license of any and all artwork that you use in any of your products, marketing materials and web sites. Different licenses grant you different usage rights, make sure that you are clear on them. If in doubt contact the artwork provider to find out.


With all these resources, you should be able to create the greatest results. However, nothing is better than making stuff oneself as much as possible, right? ;)

Most useful source:
http://www.drmop.com

Dienstag, 8. September 2015

Eine Community aufbauen

Wenn man ein Spiel programmiert hat, gehört es heut zu Tage zu den schwierigsten Aufgaben dieses schließlich unter Leute zu bringen. Je früher man sich darüber Gedanken macht, um so besser die Erfolgquoten. Doch bevor man viel Geld opfert und Aufwand begeht sollte man für seine "Werbung" zunächst ein paar andere Kanäle ausschöpfen - Soziale Netze!

Da ich diesen Blog begleitend zur Entwicklung von Dimension Rider pflege, ist es angebracht entsprechende Vertreter-Seiten auf Facebook und Co. ebenso frühzeitig anzulegen. Theoretisch kann man nie zu früh damit beginnen, außer man wünscht bestimmte strategische Werbe-Effekte.

Wir beginnen also damit entsprechende Seiten oder auch Accounts auf den bekanntesten Plattformen zu erstellen:


http://badtoxic.de/dimension-rider

Homepage:
  • Voraussetzung:
      - Ein Webspace oder Homepage-Hoster-Dienst muss vorhanden sein.
      - Gegebenenfalls muss man über entsprechende Programmierkenntnisse verfügen.
  • Anleitung:
      - Da dies bei jedem Hoster anders ist, gehe ich hierrauf nicht genauer ein.
  • Ergebnis: http://badtoxic.de/dimension-rider
  • Kommentare:
    Es gibt viele kostenlose und kostenpflichtige Hoster mit jeweils großen Unterschieden. Es hängt also stark davon ab, was man wünscht. Soll der Server etwas bestimmten können? PHP? Ist eine MySQL Datenbank erwünscht? Wieviel Speicher, Traffic, Bandbreite,...
    Ich habe mich für https://www.netcup.de entschieden. Ich möchte keine Fremdwerbung und will meine Seiten aus kommerziellen Zwecken nutzen dürfen. Außerdem schreibe ich meine Seiten selbst mit HTML, CSS, PHP und Javascript (AngularJS). Man hat also auch die Wahl alles selbst zu machen oder fertige Pakete zu nutzen.
    Ein Gegenbeispiel (nicht kommerziell nutzbar und nicht werbefrei, wenn man es kostenlos möchte) wäre z.B. http://de.jimdo.com - lässt sich leicht und schnell ohne weitere Kenntnisse zusammenklicken.
    Auch hier kann ich eine Seite von mir vorzeigen: http://badtoxic.jimdo.com

https://www.facebook.com/dimensionrider

Facebook:
  • Voraussetzung: - Ein Facebook Account muss vorhanden und eingeloggt sein.
  • Anleitung:
      - Oben rechts auf den kleinen Pfeil klicken um das Menü zu öffnen.
      - Auf "Seite erstellen" klicken.
      - Jetzt kann eine "Über"-Kategoerie ausgewählt werden (Marke oder Produkt).
      - Und dann die eigentliche Kategorie (Videospiel).
      - Sowie den gewünschten Namen (Dimension Rider).
      - Nun haben wir die Möglichkeit eine Beschreibung und Homepage hinzuzufügen,
        sowie eine Adresse auf Facebook zu belegen (Ein neues Spiel... gerade in der Entstehung,
         http://badtoxic.de/dimension-rider, dimensionrider)
    .
      - Jetzt kann ein Profilbild hochgeladen werden.
      - Danach hat man die Möglichkeit die Seite zu seinen eigenen Favoriten hinzuzufügen.
      - Zuletzt kann eine Zielgruppe festgelegt werden.
  • Ergebnis:
      - https://www.facebook.com/dimensionrider


https://plus.google.com/b/107450686479562033869/dashboard/overview#107450686479562033869/about

Google+:
  •  Voraussetzung: - Ein Google+ Account muss vorhanden und eingeloggt sein.
  •  Anleitung:
      - Auf der Google+-Seite https://plus.google.com oben links auf "Übersicht".
      - Dort auf "Seiten".
      - Neue Seite anlegen per "Google+ Seite erstellen"-Button.
      - Kategorie auswählen (Marke: Produkt).
      - Formular ausfüllen (Dimension Rider, http://badtoxic.de/dimension-rider, Produkt oder Marke).
      - "Seite erstellen" anklicken.
      - Jetzt kann alles mögliche eingestellt werden... fertig!
  • Ergebnis:
      - Dimension Rider auf Google+
      - Siehe auch Fizhy auf Google+


https://twitter.com/DRiderGame

Twitter:
  • Voraussetzung: - Ein Twitter Account muss vorhanden und eingeloggt sein.
  • Anleitung:
      - Auf https://twitter.com Daten für eine Registrierung eingeben (Dimension Rider, dimensionrider@badtoxic.de, Passwort). (Die angegeben E-Mail-Adresse habe ich ebenfalls bei oben genanntem Hoster angelegt.)
      -  Danach werden die Daten bestätigt und ein Nutzername angegeben (DRiderGame).
         Leider war hier "Dimension Rider" bereits vergeben. :(
      - Jetzt könnte man eine Telefonnummer angeben (Überspringen).
      - Danach kann man seine Interessen angeben,
      - Leuten folgen
      - ein Profilfoto auswählen
      - und sich Kontakte vorschlagen lassen.
      - Schließlich sollte man noch seine E-Mail-Adresse bestätigen,
        indem man den entsprechenden Link in der soeben erhaltenen E-Mail anklickt.
  • Ergebnis:
      - https://twitter.com/DRiderGame


So, das sollten erstmal die wichtigsten Anlaufstellen für potenzielle Community-Mitglieder sein.
Diese zu erstellen ist eine Sache, sie aber regelmäßig zu pflegen und mit Menschen zu füllen, ist eine andere.
Ich werde es für das Erste dabei belassen. Der erste Post in diesen Communities wird ein Verweis auf diesen Blog bzw. direkt diesen Artikel werden.

Setting up a Community

If you have programmed a game, nowadays it's one the most difficult tasks to make this finally public. The earlier one is working on it, the better the success rate. But before you sacrifice a lot of money and effort for its "advertising" one should initially use a few other channels - Social networks!

Because I care about this blog to accompany the development of dimension Rider, it is appropriate to create corresponding representative pages on Facebook and other networks on an early stage. Theoretically, you can never start too early, unless you want certain strategic advertising effects.

So we begin to create sites or accounts on the most popular platforms:


http://badtoxic.de/dimension-rider

Homepage:
  • Prerequisite:
  • -  A web space or homepage hosters service must be present.
    - If necessary, you have to have the appropriate programming skills.
  • Instructions:
  • - Since this is different for each hoster, I will not go into detail.
  • Result: http://badtoxic.de/dimension-rider
  • Comments:
  • There are many free and paid web hosts, each associated with major differences. So it strongly depends on what you want. Should the server can do something specific? PHP? Is a MySQL database required? How much memory, traffic, bandwidth, ...
    I opted for https://www.netcup.de.
    I want no third-party advertising and will be allowed to use my pages for commercial purposes. I also write my own pages with HTML, CSS, PHP and Javascript (AngularJS). So you have the choice to do it all yourself or use pre-built packages.
    A counter-example (not commercially viable and not ad-free, if you want it for free) would be eg
    http://de.jimdo.com - can easily and quickly be clicked together without any further knowledge.
    Again, I can show a side by me: http://badtoxic.jimdo.com


https://www.facebook.com/dimensionrider

Facebook:
  •  Prerequisite:
    - A Facebook Account must exist and be logged in.
  •  Instructions: (Translated from german version of Facebook)
    - The top right -> click on the small arrow to open the menu.
    - Click the "page" button.
    - Now you can select one "main"-categoery (brand or product).
    - And then the actual category (video game).
    - And the desired name (Dimension Rider).
    - Now we have the opportunity to add a description, website
      and an address on Facebook (A new game ... just about to begin,
      
    http://badtoxic.de/dimension-rider, dimensionrider).
    - Now a profile picture can be uploaded.
    - Then there is the possibility to add that page to your own favorites.
    - Recently, a target group can be set.
  • Result:
    - https://www.facebook.com/dimensionrider


https://plus.google.com/b/107450686479562033869/dashboard/overview#107450686479562033869/about

Google+:
  • Prerequisite: - A Google+ account must exist and be logged in.
  • Instructions: (Translated from german version of Google+)
    - On the Google+ page https://plus.google.com at the top left click "Overview".
    - There click "pages".
    - Creating a new page via "Google+ create page" button.
    - Select a category (brand: product).
    - Fill in the form (Dimension Rider, http://badtoxic.de/dimension-rider, product or brand).
    - Click "Create Page".
    - Now can anything be adjusted ... ready!
  • Ergebnis:
    - Dimension Rider on Google+
    - See also Fizhy on Google+


https://twitter.com/DRiderGame
Twitter:
  • Prerequisite: - A twitter account must exist and be logged in.
  • Instructions: (Translated from german version of Twitter)
      - Enter needed data for registration on https://twitter.com (Dimension Rider,
         dimensionrider@badtoxic.de, 
    password).
        (The e-mail address I've applied was also created at the hoster mentioned above.)
      - The data is then confirmed and a username specified (DRiderGame).
        Unfortunately "Dimension Rider" was already taken. :(
      - Now you can provide a phone number (skip).
      - After that you can specify your interests,
      - follow people
      - select a profile picture
      - and get contacts suggestions.
      - Finally, you should confirm the email address,
        by clicking the link in the confirmation email just received.
  • Result:
    - https://twitter.com/DRiderGame


So, these should be the main contact points for potential community members.
Creating these is one thing, but it regularly to maintain and fill with people is another.
I'll leave it for a start like that. The first post in these communities will be a reference to this blog or directly to this article.

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.