Showing posts with label Game. Show all posts
Showing posts with label Game. Show all posts
Pixel Zombie Apocalypse Game

Sunday, April 12, 2015

Pixel Zombie Apocalypse Game

Do you remember my screens of some zombie apocalypse character designs? This is the way the game could look like.


I'm not sure yet if I prefer a survival game where you get hungry and cold or just a nice jump n run game where you can either sneak or burst through. What would you prefer?

Brick Landscape - Guild Wars 2: Mount Maelstrom

Saturday, February 28, 2015

Brick Landscape - Guild Wars 2: Mount Maelstrom

I'm playing Guild Wars 2 since release and I made a brick landscape of one of my favourite locations: Mount Maelstrom!


I captured my work - here you can see it in a time lapse.

Milz Game Ausstellung

Sunday, May 11, 2014

Milz Game Ausstellung

Freitag Abend war die Eröffnungsveranstaltung im Ausstellungsraum Milz zum Thema Games.


Ich war dort und möchte denen die nicht dort waren zeigen was es zu sehen gab!
Die Arbeiten waren hauptsächlich von Studenten der hKDM in Freiburg und sehr beeindruckend. Sie reichten von App-Konzeptionen über Brettspieldesigns bis hin zu Animationen und Game Prototypen.
Ein paar davon möchte ich gerne etwas näher vorstellen:


Auf diesem Bild sieht man die Arbeit eines New Media Studenten der sich damit beschäftigt hat verschiedene Waffen möglichst Detail-genau in Illustrator nachzubauen um sie danach in einer aufwändigen Animation in After Effects wieder zusammenzusetzen. Mit passender Musik hinterlegt sieht das ganze ziemlich cool aus! Diese Arbeit hat mit sehr gut gefallen, da ich den großen Aufwand für so etwas gut einschätzen kann und es mich wirklich gefesselt hat.


Weiterhin konnte man sich den Prototypen von Fallen from Space anschauen und testen. Das Spiel gehört zum Tower Defense Genre und soll später im Multiplayer funktionieren. Mir hat vor allem das Design gefallen und die Art wie man sich im Spiel bewegt hat. Es hat insgesamt eine tolle Atmosphäre und passt im Gesamtbild! Ich hoffe die Gruppe bleibt dran und hat Erfolg damit! Den Prototypen und mehr Infos zum Spiel findet man auf der Facebook-Seite: Fallen from Space


Eine andere Studentin hat sich ausführlich mit dem Thema "Let's play!" auseinander gesetzt und viel recherchiert - wie es funktioniert und was man damit erreichen kann. Das Ganze hat sie in einem Buch zusammengefasst und mit passenden Illustrationen einer anderen Studentin ergänzt!

Darüber hinaus gab es verschiedene Designchecks des Game Lab Freiburg zu sehen, verschiedene Charakterdesigns in 2D und 3D, ein App-Konzept aber auch Brettspiele wurden ausgestellt und gespielt. Hier traf ich sogar auf den Charakter Designer vom Age oft Empires Online Trailer und Konferenz der Tiere!


Wer also nicht da war hat was verpasst :)
GAME LAB Freiburg im Ausstellungsraum "Milz"

Friday, May 2, 2014

GAME LAB Freiburg im Ausstellungsraum "Milz"

Am Wochenende vom 09. bis 11. Mai findet im Ausstellungsraum "Milz" eine Ausstellung rund um das Thema Games statt.


Nicht nur das Game Lab sondern auch andere Künstler zeigen ihre Werke die von Spielkonzepten bis hin zu interaktiven Projekten und sogar fertigen Spielen reichen. Auch für den "nur-mal-durch-Gucker" wird es zum Beispiel Character Designs oder 3D Modelle zum anschauen geben!

Wer also Interesse hat und die jungen örtlichen Game Designer unterstützen möchte kann sich ab dem 09. Mai die große Eröffnungsveranstaltung ab 19:30 Uhr ansehen und/oder am Samstag & Sonntag zwischen 15:00  Uhr und 18:00 Uhr in Freiburg in der Friedrichsstraße 3 vorbei schauen.

Mehr Infos dazu gibt es auf der Facebookseite von "Milz" zu sehen!



Teaser

Friday, February 21, 2014

Teaser

Diesen Teaser habe ich als kleines Intro für meine Abschlusspräsentation erstellt.




WALLPAPERS

Thursday, February 20, 2014

WALLPAPERS

Hallo zusammen! 

Heute möchte ich euch drei Wallpapers zum kostenlosen Download anbieten.


Diese ersten beiden sind speziell von meinem Spiel WRANGLERS, das dritte fand' ich einfach nur sensationell lustig und wollte es mit euch teilen! :D

Viel Spaß damit!

Der Boxhandschuh

Tuesday, January 21, 2014

Der Boxhandschuh

Der Boxhandschuh ist ein typisches Item was man unbedingt loswerden möchte. 


Denn nach ca. 10 Sekunden wird es herunterfallen und den eigenen Charakter treffen, ihm somit Lebenspunkte entziehen und bewegungsunfähig machen. In dieser Zeit ist er leicht angreifbar. Also sollte man dafür sorgen, den Handschuh an den Gegner durch Nahkampf abzugeben.


Das Item ist zwar ähnlich wie die Mine oder die Bombe programmiert, hat jedoch einen großen Unterschied. 
Man kann es nicht manuell auslösen, es startet direkt beim Aufnehmen ein Countdown. Sobald dieser auf 0 ist, löst das Item aus und man erhält selbst Schaden.

IEnumerator waitBoxhandschuh()
{
    yield return new WaitForSeconds(8); 
    itemManager.boxhandschuhMe=false;
    if(boxhandschuhAusfuehren==true)
    {
        getroffen=true;
        healthPointsEnemy-=Screen.width/3*0.95f/8; 
        networkView.RPC("boxhandschuhRPC", uLink.RPCMode.Others);
        yield return new WaitForSeconds(2);
        getroffen=false;
        networkView.RPC("clearBildEnemy", uLink.RPCMode.Others);
        boxhandschuhAusfuehren=false;   
   }
}

Das Auslösen, Löschen und Aufnehmen des Items läuft wie bei der Mine. Wen das interessiert kann es in diesem Post noch einmal nachlesen. 

Ansonsten wird die Funktion waitBoxhandschuh ausgelöst, sobald boxhandschuhMe true ist. 
Nachdem 8 Sekunden gewartet wurden, wird dem eigenen Charakter Schaden hinzugefügt und die Variable getroffen auf true gesetzt. Dies bewirkt, dass eine Getroffen-Animation ausgeführt wird, 2 Sekunden andauert und danach mit getroffen=false; wieder gestoppt wird.
"Itemspawnsystem"

Saturday, January 18, 2014

"Itemspawnsystem"

Wie kommen die Items eigentlich ins Spiel?


Dazu habe ich mir ein eigenes Spawnsystem einfallen lassen, welches den zuvor Item-Variablen, wie z.B. bombeMe aus den vorherhigen Posts, die Werte wahr oder falsch gibt.
Für dieses System erstellte ich mehrere Punkte / leere GameObjects mit einem großen Trigger in meinem Level, in welchen Items erscheinen können. Dort erscheinen sie jedoch nur, wenn der Spieler sich nicht in diesem Trigger befindet:

// Item 01
if(noCharInItem.charInItem01==false)
{
    if(charScreenManager.enemyIn==false)
    {
         if(spawnPositionBesetzt01==false)
  {   
      if(networkView.isMine)
      {
   networkView.RPC("setRandomTime",
                 uLink.RPCMode.Server); 
   StartCoroutine(waitingForSec01()); 
   spawnPositionBesetzt01=true; 
      }  
  }        
  if(waiting01==false)
  {
      if(networkView.isMine)
      {
   networkView.RPC("setRandomValue",
                 uLink.RPCMode.Server); 
   itemSpawn();
   itemPosition01 = uLink.Network.Instantiate(
                 itemToSpawn,spawnPointItem01.transform.position, 
                 transform.rotation,0); 
   waiting01=true;
             }
  }
    }
}
Erklärung:
Das Spawnsystem läuft nur auf Client 1 aufgrund der Abfrage if(charScreenManager.enemyIn==false), da sonst mehrere Items auf einer Position gespawnt werden würden. 
Nachdem sicher gestellt wurde, dass das Item gespawnt werden kann,wird eine zufällige Zahl auf dem Server erstellt, die festlegt nach wie vielen Sekunden das Item erscheinen wird. 
In der Funktion waitingForSec01(); wird dann gewartet und später die Variable waiting01 auf true gesetzt. Somit kann die nächste Abfrage durchgeführt werden, welche einen zufälligen Wert erstellt, welcher das zufällige Item bestimmt. Nun kann endlich das Item auf itemPosition01 instanziiert werden.


Die Wasserbombe

Friday, January 17, 2014

Die Wasserbombe

Die Wasserbombe ist ein weiteres Item aus meinem Spiel und sie funktioniert folgendermaßen:


Beim Betätigen der Aktionstaste, wird die Bombe geworfen. Hierbei bewegt sie sich mit einer festgelegten Kraft in Sichtrichtung. Bei einem Zusammenprall mit einem Objekt mit dem Tag "Player" wird sie explodieren und Schaden hinzufügen. Auch das eigene Objekt kann also, wenn man sich unvorteilhaft anstellt, getroffen werden. Somit wirkt sie ähnlich wie der Ferkampf, nur eben schneller. Zudem hat sie eine kürzere Reichweite.


Jedes Item hat einen speziellen Tag, worüber sie auch auseinander gehalten werden. Läuft also ein Spieler durch ein instanziiertes Item mit dem Tag „Bombe“, erhält er die Bombe in Form einer Variable. Danach wird über diesem Spieler das Icon für „Wasserbombe“ erscheinen. Anschließend wird, je nach dem an welcher Stelle das Item aufgenommen wurde, die entsprechende Variable auf false gesetzt, sodass hier wieder ein neues instanziiert werden kann:

if(other.tag=="Bombe")
{  
    objectToDestroy=other.gameObject;
    if(networkView.isMine)
    {
        if(bombeMe==false&&boxhandschuhMe==false&&schnelligkeitMe==false&&mineMe==false&&flagMe==false&&kaefigMe==false)
        {
     if(RPCTest.kaefigAktiv==false)
     {
   canDestroyObject=true;
   networkView.RPC("setcanDestroyObjecttrue", uLink.RPCMode.Others);
     }
     if(canGetNewItem==true)
     {
   audio.PlayOneShot(aufnehmenSound);
   bombeMe=true;
     } 
 } 
 if(canDestroyObject==true)
 {    
  testPosOther=other;   
  testPos();
 }
    }    
}

Weiterhin wird im Skript festgelegt, welches Objekt zerstört wird (objectToDestroy). In der Abfrage if(networkView.isMine) wird noch einmal genau nachgesehen ob man auch wirklich kein Item hat (if(bombeMe==false&&...)) und ob der Käfig im Moment nicht aktiv ist. Nur dann wird das auf dem Boden liegende Item zerstört und die Variable bombeMe wird true.
Das Zerstören des Items passiert in einer ausgelagerten Funktion.

In einem anderen Skript kann nun durch das drücken der Aktionstaste die Bombe ausgelöst werden. In diesem Fall wird ein neues Objekt instanziiert und die Variable bombeMe wieder false:

if(itemManager.bombeMe==true)
{ 
    bombeAusloesbar = uLink.Network.Instantiate(bombeAusloesbarPrefab, 
    new Vector3(transform.position.x-30,transform.position.y+5,
    transform.position.z), transform.rotation, 0);  
    itemManager.bombeMe=false;                    
}

Nun fehlt nur noch die Bewegung der Bombe. 
Durch den auf dem instanziierten Objekt enthaltenen Rigidbody kann ich die Funktion AddForce(); ausführen um die Bombe zu bewegen. 
Sobald die Bombe nun in einen Trigger hinein fliegt, wird sie je nach dem dem eigenen oder dem gegnerischen Spieler Schaden anrichten. Wenn der Trigger kein Spieler war, wird die Bombe einfach zerstört.

void OnTriggerEnter(Collider other)
{
    if(other.tag=="Player")
    { 
        playerGetroffen=other.gameObject;
        if(networkView.isMine)
        {
            if(playerGetroffen==Player)
            {
   RPCTest.getroffen=true; 
   RPCTest.healthPointsEnemy-= Screen.width/3*0.95f/10;
   networkView.RPC("bombeTreffer",uLink.RPCMode.Others);
     }
     else
     {     
  networkView.RPC("stopMovement", uLink.RPCMode.Others); 
  RPCTest.healthPointsEnemyLocal-= Screen.width/3*0.95f/10;     
            }
     Destroy(this.gameObject);
 }
    }
    if(other.tag=="LevelObject"||other.tag=="Boden")
    {
  Destroy(this.gameObject);
    }
}








Items

Tuesday, December 3, 2013

Items

Wie schon in mehreren Posts zuvor erwähnt, wird mein Spiel verschiedene Items beinhalten. Diese möchte ich euch in einem kurzen Überblick gerne vorstellen und in kommenden Posts näher darauf eingehen.


Es handelt sich hierbei nicht um perfekt ausgereifte Items, sondern um meine Ideen von welchen ich manche auch schon umgesetzt habe. Das heißt, dass sich vieles in naher Zukunft noch ändern kann.

Dargestellt werden die zufällig gespawnten Items mit einem Fragezeichen, damit nicht klar ist welches man bekommt.



Wenn man nun durch dieses Fragezeichen hindurch läuft gibt es verschiedene Möglichkeiten:




  • Bombe
    Beim das Betätigen der Aktionstaste, wird die Bombe geworfen. Hierbei wird sie in einem festgelegten Tempo in Sichtrichtung geworfen und bei einem Aufprall explodieren. Somit wirkt sie ähnlich wie der Ferkampf nur eben schneller. Zudem hat sie eine kürzere Reichweite.

  • Mine
    Beim aktivieren wird sie an die aktuelle Position des "minenlegenden" Charakters gesetzt und erst explodieren wenn der Gegner darüber läuft. Sie soll sehr schlecht erkennbar dargestellt sein, sodass man sie bei vorsichtigem pirschen erkennen kann und in Eile übersieht.
    So kann man dem Gegner den Weg auf der Treppe versperren um es selbst einfacher zu haben an das nächste Item zu kommen.

  • Boxhandschuh
    Der Boxhandschuh ist ein typisches Item was man unbedingt loswerden möchte. Denn nach ca. 10 Sekunden wird es herunterfallen und den eigenen Charakter treffen, ihm somit Lebenspunkte entziehen und bewegungsunfähig machen. In dieser Zeit ist er leicht angreifbar. Also sollte man dafür sorgen, den Handschuh an den Gegner durch Nahkampf abzugeben.

  • Käfig
    Der Käfig funktioniert ähnlich wie der Boxhandschuh. Hat man ihn, so wird er nach ca. 10 Sekunden aktiviert. Unter diesen Umständen kann man weder Items einsammeln noch Fern- oder Nahkampf ausüben. Somit heißt es: abhauen!

  • Geschwindigkeitsboost
    Man kann seine Bewegungsgeschwindigkeit durch das Drücken der Aktionstaste erhöhen. 

  • Flagge
    Sobald man die Flagge erhält bekommt der Gegner eine Warnung sodass jeder darüber bescheid weiß. Die Flagge fügt dem Gegner erheblichen Schaden zu und man erhält selbst ein paar Lebenspunkte, sobald sie an einen bestimmten Punkt gebracht wird. Vorher kann der Gegner versuchen die Flagge durch Nahkampf abzunehmen und in seinen eigenen Punkt zu bringen.
    Desweiteren verlangsamt die Flagge jedoch die Geschwindigkeit des Charakters.

Alle Items sind durch Nahkampf austauschbar, was das ganze etwas komplexer macht.

Falls jemand von euch weitere Ideen oder Verbesserungsvorschläge hat, dürft ihr diese natürlich gerne mitteilen! Ich freue mich immer über Feedback :)

Sunday, October 13, 2013

Meine Abschlussarbeit

Ich bin seit Oktober im 7. Semester an der Hochschule für Kunst, Design und Populäre Musik und arbeite nun an meiner Abschlussarbeit.Mein Ziel ist es im Februar ein funktionierendes 2D Multiplayer Fighting Game mit Capture The Flag Elementen programmiert und gestaltet zu haben, sodass sich an meiner Prüfung die Prüfer gegenseitig kloppen können!


Der Gedanke, ein Multiplayer-Game umzusetzen hatte ich schon im 4. Semester, da wir hier einen winzigen Einblick in eine Multiplayer-Demo im Unity3D Kurs hatten. Hier durfte sich jeder in das Netzwerk einklinken um Würfel hin und her zu schieben, was auch die anderen auf ihren Bildschirmen sehen konnten. 
Für mich war das eine sehr spannende Sache und ich hatte viele Ideen die ich gerne umsetzen wollte. Trotzdem hatte ich den Gedanken fürs erste verworfen, da andere Kurse und Projekte im Vordergrund standen. 

Als ich dann gegen Ende des 6. Semesters überlegte was ich denn als Abschlussthema behandeln könnte, fiel mir die Wahl nicht schwer. 
Fest stand für mich:

  1. es muss sich bewegen (ich habe mich schon des öfteren mit Video-Schnitt und Animationen beschäftigt und fand es gut)
  2. es muss unbedingt 2 dimensional sein (ich liebe 2D Charaktere)
  3. es muss vor allem Spaß machen und lustig sein (das ist einfach meine Art und es wird schließlich mein Spiel)
  4. ich will programmieren (hier empfinde ich mindestens genauso viel Spaß wie beim Erstellen von 2D Elementen)
  5. toll wäre es, wenn ich mit Unity3D arbeiten könnte (aus Unity3D bestanden meine letzten beiden Semester und ich kannte mich hier schon sehr gut aus)
  6. es muss etwas dabei sein was ich noch nicht kannte (um mich selbst herauszufordern)
  7. es muss innovativ sein

Zusammengesetzt ergibt sich dann mein eigenes 2D Multiplayer Fighting Game mit Capture The Flag Elementen!