• info@noobygames.de

Category ArchiveAllgemein

LudumDare 41 – Escape the JoJaTo Hack&Slash Room

Wir haben zu dritt (Wr4thon, CodeBastard, Nerzal) am LudumDare 41 Jam teilgenommen. Wir hatten 72 Stunden Zeit um ein Spiel zu entwickeln. Das Thema war „2 incompatible Genres“. Es mussten also 2 eigentlich inkompatible Genres gemischt werden. Wir haben uns entschieden Escape Room mit Hack & Slash zu mischen. Ich würde es natürlich sehr begrüßen, wenn ihr unser Spiel anspielt und bewertet <3

Zum testen empfehle ich, aus performance Gründen, das Spiel runter zu laden.

Herrausgekommen ist ein sehr fröhlich, blutiges Game! 🙂

Das ganze Spiel ist im LiveStream entstanden. Die Videos davon könnt ihr hier nachgucken.

 

Infos zum Spiel:

Controls: W, A, S, D to Move
(Left)Click (very fast, and often) to attack
MouseScroll to Zoom
Escape Button quits the game (warning, it exits directly)

​German Story:

Nach dem Konsum eines magischen Tranks erwachst du in einer Idylischen Welt aus Liebe, Freude, Rätsel und Splatter. Durch den Überlebensinstinkt motiviert und mit der Freude an Hack und Slash belohnt machst du dich daran diese Welt zu verlassen. Töte, Rätsle, Töte und Töte noch ein bisschen mehr um auch das letzte Rätsel zu töten, ehhh lösen.

 

Story:

After consuming a magic potion, you awake in a idilic world made out of love, friendship and splatter.

Motivated through the will to survive and the enjoyment for hack and slash you go on your way to leave this world. Kill. riddle, kill and kill a little more to kill also the last puzzle, I mean , to solve also the last puzzle.

Made by:

Wr4thon CodeBastard Nerzal

 

Wo kann ich für euch voten? -> https://ldjam.com/events/ludum-dare/41/escape-the-jojato-hack-slash-room

Wo kann ich online Spielen? -> https://nerzal.itch.io/escape-the-jojato-hack-slash-

C# User Group Treffen

Hallo zusammen,

zusammen mit ein paar Freunden sind wir gerade im Gründungsstatium für eine C# User Group in Kassel. Das erste Treffen findert am 28.03.2018 in Kassel in Eckberts Pferdehalter am Kirchweg 9 in Kassel statt. Ich würde mich auf zahlreiche Besucher freuen. Nachfolgend kommen genauere Informationen.

Erstes Meetup für eine C# Usergroup. Das treffen richtig sich an alle Interessierten der Programmiersprache C#. Es werden bei diesem und bei zukünftigen Meetups themen behandelt, die direkt oder indirekt mit der Sprache zu tun haben. Eintritt ist natürlich frei.

Themen:
1. Überblick Prism in Xamarin Forms
2. Einführung ASP.NET Core
3. C# und die Blockchain

Die Reihenfolge der Vorträge ist noch nicht festgelegt.

Überblick PRISM in Xamarin.Forms
Es wird ein überblick geboten, was für einen nutzen das PRISM Framework hat, wie es eingebunden wird und wie man es benutzt.

Einführung in ASP.NET Core
ASP.NET Core auf einer Windows Maschine für einen Linuxserver entwickeln, das geht? Wie konfiguriere ich das System? Kann ich einen Entwicklungsstand, sowie einen Produktivstand gleichzeitig laufen lassen? Diese Fragen und noch weitere werden im Vortrag beantwortet.

C# und die Blockchain
Hier wird über mögliche Ansätze geredet, wie man mit C# mit Blockchains arbeiten kann.

 

Link zum Facebook event:

https://www.facebook.com/events/1983368201928364/

promo

Neues Projekt – Dungeon Horror

Im neuen Projekt Dungeon Horror fällst du in eine Höhle. Um dich herum befindet sich nichts außer Finsternis und dem beklemmenden Gefühl, dass du nicht alleine in dieser Höhle bist, denn schon bald höhrst du infernale Geräusche und weißt nicht, ob du deinen Verstand verlierst, oder ob da noch etwas existierst. Du hast nichts außer einer Taschenlampe mit begrenzter Akku kapazität. Dich erwarten knifflige Rätsel, die einem wirren Entwicklerhirn entspringen, der permanente Kampf gegen die absolute Finsternis und deine Angst. Wirst du es jemals wieder zurück ans Tageslicht schaffen?

Taschenlampe

Die Taschenlampe ist dein einziger Freund in der totalen Finsternis. Wie bei vielen Taschenlampen in der realen Welt, kann der „Kegel“ vergrößert und verkleinert werden, dadurch kann man einen großen Nahbereich, oder einen kleinen Bereich in mitlerer Entfernung erleuchten.

 

 

 

Teaser

Das folgende Video zeigt den aktuellen Stand der Grafik und Geräuschkulisse. An der Grafik werde ich mithilfe des PostProcessingStacks noch etwas drehen können, denn meine Kamera kann noch kein Autofokus, und Temporal Antialising funktioniert noch nicht, doch diese Probleme gehe ich als nächstes an. Der PostProcessingStack hat mir auch wie hier bereits berichtet schon gute Dienste geleistet, doch dieses Mal, werde ich das volle Potenzial ausschöpfen um ein realistischeres Erlebnis zu gewährleisten, was sich zumindest laut meiner Theorie sehr positiv auf die erdrückende Stimmung auswirken sollte.

Ebenfalls zeigt das Video, wie mächtig meine Trigger-Action Komponenten sind. Mithilfe einer solchen Komponente, kann ein einzelner Auslöser 1-N Aktionen auslösen, die Zeitversetzt eintreten können. Bisher unterstützt sind Player-Teleportation, Sounds abspielen, Gegenstände/Lebewesen erscheinen lassen, Objekte aktivieren/deaktivieren und noch einige mehr.

 

 

Update:

Euch ist in dem Teaser sicherlich aufgefallen, dass das Bild etwas verschwommen wirkt. Das lag daran, dass meine Kamera keinen AutoFocus hatte. Mit der DepthOfField Komponente des PostProcessingStacks wird das verhalten von Augen immer nur eine Distanz scharf zu stellen nachgeahmt. Standardmäßig kann die Komponente aus mir unerfindlichen Gründen keinen Autofocus. Ich habe also mal eben einen Autofocus entwickelt. Die nächsten 2 Bilder sollten verdeutlichen, wass sich nun verbessert hat.

 

Fokus auf den Bereich um die Kerze

Fokus auf den Bereich um die Kerze

 

Fokus auf das Fass

Fokus auf das Fass

How To: ScriptableObject automatisch erstellen

Wie kann man eigentlich ein ScriptableObject automatisiert erzeugen?

Diese Fragen und weitere werde ich mit kleinen Tutorials hier im Blog beantworten. Ich habe mir für diesen Zweck ein Plugin organisiert, welches Code-Embedding vereinfacht. Nun wenden wir uns aber den ScriptableObject zu.

 

1. Erstellen eines ScriptableObjects

Zuerst benötigen wir ein ScriptableObject. Dazu habe ich beispielhaft ein sehr simples erzeugt. Unser ScriptableObject muss natürlich von ScriptableObject erben. Dazu habe ich noch 2 float Felder für den Schaden und die Geschwindigkeit eingefügt, sowie ein Feld, welches das ParticleSystem hält.

1
2
3
4
5
6
7
8
9
10
// MetaData for all Projectiles in the game
public class ProjectileMetaData : ScriptableObject {
// Damage of the Projectile
public float Damage = 1;</div>
// Speed of the Projectile
public float Speed = 10;

// ParticleSystem of the Projectile
public GameObject ParticleSystem;
}

 

2. Erstellen des EditorScripts

Das folgende Snippet sorgt dafür, dass im UnityEditor ein neuer Tab(„ScriptableObjects“) eingefügt wird. Dort gibt es die unterpunkte „Create“ und „Projectile“. Klickt man nun auf Projectile wird die Methode „CreateMyAsset“ ausgeführt.

Tab

Tab

namespace Editor.ProjectileCreater {

public class MakeScriptableObject {
  [MenuItem("ScriptableObjects/Create/Projectile")]
  public static void CreateMyAsset() {
    // Erzeugt eine Instanz vom Typ "ProjectileMetaData".
    ProjectileMetaData asset = ScriptableObject.CreateInstance<ProjectileMetaData>();
    // Erzeugt ein Asset mit hilfe der gerade erzeugten Instanz.
    // Wichtig: Die gesamte Ordnerstruktur muss im Projekt existieren, sonst gibt es einen Fehler.
    AssetDatabase.CreateAsset(asset, "Assets/Scripts/Projectiles/ScriptableObjects/NewScriptableObject.asset");
    // Schreibt das Asset auf die Festplatte
    AssetDatabase.SaveAssets();
    // Setzt den Fokus
    EditorUtility.FocusProjectWindow();
    // Selektiert das gerade erzeugte Objekt
    Selection.activeObject = asset;
  }
}
}

 

3. Das Ergebnis

Das ScriptableObject wurde als Asset im gewünschten Pfad erzeugt und kann nun benutzt werden. Das ist auch schon die gesamte Magie daran. Das obige Script kann angepasst werden um beliebige ScriptableObjects zu erzeugen. Dafür muss nur der generische Typparameter gegen einen anderen getauscht werden und falls notwendig kann der Pfad angepasst werden.

ProjectView

ProjectView

Screenshot

SantasQuest – PreRelease

Hallo zusammen, wie versprochen habe ich im Zuge der Community Challenge von Project Makers ein kleines Spiel (SantasQuest) im Weihnachtssetting erstellt. Das Spiel möchte ich noch etwas weiter entwickeln, aber aufgrund der Deadline gibt es erst einmal ein PreRelease zum kostenlosen Download.

Das Spiel ist in einer .Zip-Datei gepackt. Diese müsst ihr entpacken, danach empfehle ich einen kurzen Blick auf die readme.txt zu werfen und anschließend könnt ihr das Spiel schon starten. Leider gibt es aktuell außer „Alt+F4“ noch keine Möglichkeit das laufende Spiel zu beenden, sobald ein Level gestartet ist, aber das bekommt ihr sicher hin!

Das spiel könnt ihr hier runterladen: Download(Klick mich!)

Im letzten Beitrag habe ich 2 VideoTutorials versprochen, die müssen allerdings leider noch etwas warten, da ich noch nicht dazu gekommen bin die Videos zu schneiden, aber das Material ist komplett vorhanden. Ich möchte die Tutorials in einem Beitrag dann etwas aufbereiten, damit ihr dem Video leichter folgen könnt.

 

Ich möchte an dieser Stelle noch einmal die Gelegenheit nutzen und Werbung für ProjectMakers machen. Dort könnt ihr im LiveStream zusehen, wie das Spiel im direkten vergleich mit anderen von der Community erstellten Spielen abschneidet. Schaut euch den LiveStream an und voted für mich! 😉 Den Stream findet ihr heute Abend ab 20:00Uhr (23.12.2017) hier.

NavMesh

DeathKnightRising: Jetzt mit Pathfinding

In DeathKnightRising habe ich nun endlich eine Lösung für Pathfinding eingebaut. Nachdem ich viel Zeit in die optische Verbesserung des Spiels gesteckt habe, musste natürlich auch etwas mehr Logig her. Wie bereits in diesem Artikel erwähnt habe ich Pathfinding implementiert. Das bedeutet, dass nun alle Lebewesen im Spiel einen sinnvollen Pfad von ihrer aktuellen Position zu ihrem Ziel suchen. Das beudetet ebenfalls, dass die durch künstliche Intelligenz gesteuerten Gegner nun nicht mehr gegen Wände laufen.

Nachfolgend gehe ich kurz und vereinfacht darauf ein, wie das funktioniert und wie die Ergebnisse aussehen.

 

NavigationMesh

Im nachfolgenden Bild sind große blaue Flächen zu sehen. Diese Flächen sind diejenigen, die begehbar sind. Diese blauen Flächen werden um alle unbeweglichen Objekte herum erzeugt.

Auf diesen Blauen flächen können sich die KI Gegner nun bewegen und somit um hindernisse herum laufen. Die unbeweglichen Objekte schneiden jeweils einen kleinen Rahmen aus diesen blauen Flächen heraus um zu verhindern, dass jemand gegen sie läuft.

NavMesh

Ein sogenannter NavMesh

 

Weitere Erklärungen, wie das ganze in Unity funktioniert findet ihr  hier.

 

Erste Feldversuche mit Pathfinding

In dem verlikten Video sind die ersten Feldversuche zu sehen. Die Skelettbogenschützen sollten auf den Balkon in dem Haus laufen. Die Bogenschützen haben hier eine vordefinierte Distanz (1 Meter) zum Ziel, bei der Sie anhalten, sobald Sie diese erreicht haben.

 

Endgültige Implementation

Wie das Ergebnis in einem richtigen Level aussieht kann man im zweiten Video sehen.

Dort verfolgen die Bogenschützen den kleinen Todesritter und schießen mit Pfeilen auf ihn, sobald sie in reichweite sind,

Coming Next

Als nächstes wird eine Lebensleiste, welche die aktuellen Lebenspunkte des Spielers anzeigt eingebaut, sowie die Möglichkeit mächte Zauber auf die Gegner zu feuern.

Hackathon Unity

Hackathon: Mühle Fortschritte und Hacktoberfest

Fortschritte beim Hackathon

Neben der Arbeit ist nicht all zu viel Zeit für den Hackathon. Dennoch gibt es einige Fortschritte zu vermelden.

Die Grundlegende Spiellogik ist fertig. Die 3 Phasen des Spiels sind in der Konsole gegen einen Menschen vollständig spielbar. Jetzt geht es hauptsächlich noch darum einen starken KI Gegner zu implementieren, der eine echte Herrausforderung darstellt. Ziel ist hierbei natürlich, dass man gegen diese KI nicht gewinnen kann, sondern bestenfalls ein unentschieden herbeiführt.

 

Unity

Da wir die Spiellogik zu Beginn gänzlich ohne eine GameEngine oder ähnliches entwickelt haben, leben wir nun in dem Luxus, dass wir eine beliebige Engine anbinden können um das Spiel zu visualisieren, da es doch eher unpraktisch ist ein Brettspiel in der Konsole zu spielen.

Unity Macht einem das ganze noch etwas schwierig. Da es keine einfache Möglichkeit gibt seine Assemblies (.dll Dateien) in die Engine einzubinden und ständig zu updaten. Um dieses Problem zu umschiffen, haben wir uns ein mini Tool geschrieben, dass nach einem erfolgreichen Build der Spiellogik, diese Assemblies in das UnityProjekt kopiert, dort wird es von Unity erkannt und automatisch eingebunden.

 

Hackathon Unity

Hackathon Unity

 

Das Unity Projekt umfasst bisher nur das Spielbrett, sowie die Möglichkeit das Brett zu drehen, sodass man das Spielfeld aus jedem Blickwinkel analysieren kann.

Die nächsten Schritte hierbei sind nun Spielsteine einzufügen und die Möglichkeit zu schaffen diese auf dem Brett zu setzen. Das ganze muss dann mit den von uns bereits entwickelten Regeln validiert werden. Es muss nun also eine Brücke zwischen dem Quellcode, den wir bereits haben und der Umsetzung in Unity geschlagen werden.

 

GitHub

Wenn ihr interesse habt, wie das ganze hinter den Kulissen aussieht, könnt ihr euch den Quellcode im GitHub Projekt anschauen, ihn runterladen verändern, erweitert, oder auch dazu beitragen.

Dank der WTFPL Lizenz ist dies alles möglich.

GitHub Projekt:

https://github.com/Nerzal/Mills

 

Hacktoberfest

Das Hacktoberfest läuft noch knapp 10 Tage. Das Event soll dazu beitragen, dass sich mehr Menschen an OpenSource Projekten beteiligen.

hacktoberfest

 

Wenn ihr den letzten Beitrag verpasst habt könnt ihr ihn hier nachlesen.

IT-Talents Hackaton: Mühle

Teilnahme am IT-Talents Hackaton

Für den aktuellen Hackaton entwickle ich ein Mühle Spiel mit einer KI. Ziel ist es den saubersten, Quellcode mit der schönsten GUI und den meisten Zusatzfeatures bereitzustellen.

Die Kriterien sind:

  • Ein Klassisches Mühle-Spielfeld, auf dem der Spieler Züge durchführen kann
  • Darstellung mit GUI(2D/3D) oder auf der Konsole
  • Eine KI, die gegen den Spieler antritt

Bewertung:

  • Funktionalität
  • Code-Qualität
  • Code-Lesbarkeit
  • Dokumentation
  • Zusätzliche Features

 

 

Code Qualität

Code Qualität in einem Spiel zu gewährleisten ist nicht immer einfach. Man entwickelt einfach so drauf los und will schnell viele Ergebnisse sehen. Dies gelingt auch meist, allerdings zu leiden der Qualität. Daher habe ich mich dazu entschieden die kritischen Komponenten des Spiels mit UnitTests zu versehen. Dies gewährleistet vorallem die korrekte Einhaltung der Spielregeln.

 

 

Die erste UI

Während die grundlegenden Spielregeln und die KI entwickelt wird, genügt eine rudimentäre UI. In unserem Fall ist das vorerst einmal die Konsole.

Diese bietet die Möglichkeit einer Visualisierung des Spielbretts, sowie die Möglichkeit einer Benutzerinteraktion, ohne viel Zeit in hübsche 2D/3D Grafiken stecken zu müssen.

 

 

Aktueller Stand

Aktuell sind die meisten grundlegenden Spielregeln implementiert. Das heißt, der Spieler kann Steine setzen, diese Bewegen, und auch „Springen“.

Die Ausgabe erfolgt, wie bereits erwähnt noch über eine Konsole. Es fehlt aktuell noch die Mustererkennung, welche Mühlen abschließend erkennt, um die Spielregeln gänzlich abzudecken.

 

Nächste Schritte

Als nächstes muss die KI entwickelt werden. Diese KI soll so stark wie nur möglich sein, indem wir nicht nur den nächsten Schritt der KI berechnen, sondern mögliche weitere Schritte des Spielers ebenfalls miteinberechnen.

Sobald die KI fertig gestellt ist, werden wir mit Hilfe von Unity3D noch eine GUI bauen. Dort wird es ein 3D Spielbrett, Spielsteine und Steuerelemente geben.

 

Das Spiel wird natürlich auf der Website bereitgestellt, sobald es fertig ist.

 

GitHub

Das Projekt liegt mit einer WTFPL Lizenz auf Github. Die What the F*ck You Want To Public License, erlaubt es euch mit dem Quellcode zu machen, was auch immer ihr wollt. Ihr könnt also auch Mit dem Quellcode rumspielen. Forks erstellen und dazu beitragen, oder Teile des Quellcodes in eigenen Projekten integrieren.

Github ist ein Portal, welches auf das Quellcode Versionierungstool Git aufsetzt. Darüber ist es einfach Quellcode zu teilen und gemeinsam daran zu arbeiten. Viele OpenSource Projekte liegen auf Github. Dort kann man auch an der Neuentwicklung von C# und .NET mitwirken.

Das Github projekt findet ihr hier.

Unterstützung:

Mein Kollege Wr4thon hat sich sofort dazu bereit erklärt bei der Entwicklung zu helfen.

News: Unity Essentials Asset Gift

Da schaut man mal ganz unschuldig in seine E-Mails und stellt fest, dass Unity beschlossen hat Asset Pakete, im Wert von $160-$188, zu verschenken.

Dieses Geschenk habe ich natürlich gern angenommen. Doch dann musste ich feststellen, dass die Entscheidung sehr schwierig war. Da es sich bei den Paketen ausschließlich um AAA-Assets handelt musste ich eine Weile lang abwägen.

[DeathKnightRising] Bekloppte Pfeile ..

News:

Es ist wieder so weit, es gibt Neuigkeiten.

Die Bogenschützen können sich nun verteigigen, indem sie Pfeile verschießen, doch dabei können allerlei Probleme entstehen.
Eines der Probleme ist in dem Nachfolgenden Video festgehalten, welches den Beginn der weiteren Dokumentationsreihe des Fortschritts darstellt.
Jedes Feature wird ein kleines Video bekommen.

%d Bloggern gefällt das: