Jump to content
Unity Insider Forum

Blogs

Featured Entries

  • Mark

    UltraTerrain Dev Diary #2

    By Mark

    Nachdem die Tests nun immer umfangreicher werden wächst auch die Funktionsvielfalt.

    Im letzten Post habe ich den PageDataHandler erwähnt, dieser ist nun fast vollständig implementiert, dazu musste aber einiges gemacht werden.

    Der PageDataHandler soll wie der Name bereits andeutet in der Lage sein die Daten einer Page zu handhaben/verwalten, darunter fällt wie bereits erwähnt das Laden der Daten.

    Das Laden der Daten basiert auf 2 Schritten:

    1. Wenn noch keine komprimierten (zip) Daten im Objekt vorhanden sind dann wird das dem System zugehörige VirtuelleFileSystem nach den passenden Page Daten gefragt. Das VirtuelleFilesystem ist das VFS aus SaveIt und kann in einer Datei verschiedene Unterdateien speichern und lesen, das ganze ohne jedesmal die gesamte Datei in den Speicher zu laden. Die Daten wurden vorher komprimiert in das VFS abgelegt.

    2. Sind die komprimierten Daten vorhanden werden diese dekomprimiert und in die Datenarrays gelegt die ein PageDataHandler hat. Das sind aktuell nur 2 Arrays, einmal die VoxelValues welche angeben wir einflussreich ein Voxel ist (0.0 bedeutet kein VoxelEinfluss und 1.0 bedeutet vollen Einfluss) und die BlendValues, welche angeben wie die verschiedenen Texturen später miteinander verschmelen werden.

    Der 2. Schritt ist gesondert vom ersten aus folgendem Grund: Der PageDataHandler soll wenn eine Page längere Zeit unverändert bleibt die Daten zwischenspeichern können um Speicherplatz zu sparen um später wenn die Page noch viel länger unangetastet blieb diese Daten in das VFS zu speichern. Dies soll später dafür sorgen dass nur die Voxeldaten in Speicher verbleiben die unbedingt nötig sind um entweder schnelle änderungen zu ermöglichen oder wieder schnell parat zu sein um änderungen vorzunehmen.

    Intern arbeiten die Load und LowerMemorConsumption Methoden mit Asynchronen Operationen die jeder Zeit abgebrochen werden können um zB wärend eine Page grade die Daten komprimiert diese Operation abzubrechen da ich die Daten spontan doch unkomprimiert benötige.

    Das System für diese Asynchronen Operationen basiert auf den Unity Threading Helper.

    Bestimmte Aktionen können allerdings nicht abgebrochen werden und sind damit auch synchron und nicht asynchron, zB das löschen aller Daten bei dem es keinen Zwischenschritt gibt der noch abgebrochen werden könnte.

    Das System zu laden und Speichern der VoxelDaten bedarf aber noch einen weiteren Zwischenschritt um Versionsupdates auf neuere UltraTerrain Versionen zu ermöglichen, aus diesem Grund wird in den Page Daten später noch die Version des Dateiformates (unabhängig vom VFS Format) abgespeichert werden und basierend auf dieser Version werden dann die geeignetesten Speichermethoden gewählt.
    • 0 comments
    • 465 views
 

Eine "kurze" Erläuterung, warum ich doch NGUI oder DF vermieden habe zu kaufen.

[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Herzlich Willkommen zu meinen ersten Blogeintrag überhaupt. Als erstes möchte ich mich für mein Deutsch entschuldigen. Ich bin hier in Deutschland zwar groß geworden, jedoch bei den Leuten, die einen Migrationshintergrund haben und selbst kaum die deutsche Sprache beherrschten. Das hatte natürlich ein wenig Einfluss auf mich. Jedoch bemühe ich mich verständlich zu gestalten. Zum Glück habe ich fast keine Rechtschreibfehler, aber grammatikalischen Fehler werdet ihr viele finden ^^. Auch begrüße ich sehr herzlich, wenn ihr euch ein Fehler auffällt irgendwie zu benachrichtigen, da ich dadurch lernen kann.[/size][/font][/color]

[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Ich habe schon mich oft gefragt, ob ich irgend ein System wie NGUI oder DF benutzen muss und kaufen müsste. Ich habe schließlich gemerkt. Ich brauche das gar nicht. Wie ich meine GUIs nun zusammen stelle zeige ich euch.[/size][/font][/color]


[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=5][b]Wie ich meinen GUI selbst zusammen stelle[/b][/size][/font][/color]

[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Ich habe neulich meinen System was GUIs angeht verändert. Ich programmiere fast die GUIs nicht mehr sondern stelle sie zusammen. Na klar ohne Scripts kommt man nicht drum rum, aber diesmal habe ich etwas entdeckt, was mir gefällt.[/size][/font][/color]

[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Bei meinem neuen Spiel lerne ich erste mal neue Seiten was GUIs angeht.[/size][/font][/color]

[b]1. GUI Elemente[/b]

[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Ein Beispiel dafür wie sich ein "Levelbox" entwickelt habe.[/size][/font][/color]
[img]http://puu.sh/8w5hI.jpg[/img]

[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Hier sieht die Entwicklung eines "Levelboxes" von Links nach Rechts als Level_Done und Level_Locked.[/size][/font][/color]
[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]In diesem Beispiel verwende ich dafür die Assets von JNA Mobile[/size][/font][/color]
[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Quelle: [/size][/font][/color][url="https://www.assetstore.unity3d.com/#/content/7987"]https://www.assetsto.../#/content/7987[/url]
[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Ebenfalls verwende ich ein Textmesh für die Texte (logisch ) mit anderem Schriftart als Arial.[/size][/font][/color]

[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Die Komponenten[/size][/font][/color]
[img]http://puu.sh/8w4BW.png[/img]
[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Wie ihr sieht bestehen die Objekte aus Sprites. Man sieht auch, dass ein [b]BoxCollider2D [/b]eingefügt wurde. Damit kann ich mit [b]OnMouseDown() [/b]events abfangen. Das Schöne daran ist, dass es auch für [b]Touchsysteme [/b]funktioniert. Somit hätte ich schon ein Button für Levelauswahl fertig. [/size][/font][/color][color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Alles wurde dann als Prefab gespeichert. [/size][/font][/color][color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Ebenfalls habe ich ein Script eingefügt. [/size][/font][/color]

[font=tahoma, helvetica, arial, sans-serif][color=#666666][size=3]Der Script ist geschrieben in C# hilft mir die Texte zu verändern. Es gibt noch einen Script der mir verhelft, die Objekte zu spawnen angepasst an den Levelanzahl. Kommen gleich dazu.[/size][/color][/font]

[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Ein bissel Code:[/size][/font][/color]

[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3][CODE]
public class LevelboxBase : MonoBehaviour {
public TextMesh levelname;
public TextMesh levelnumber;

public void ChangeProperties(string lvlname, string lvlnumber) {
levelname.text = lvlname;
levelnumber.text = lvlnumber;
}

}

public class LevelboxDone : LevelboxBase {
public GameObject star;

public void SetDone(bool leveldone) {
if(star) {
star.SetActive(leveldone);
}
}

void OnMouseDown() {
Application.LoadLevel("lvl" + levelnumber.text);
}
}
[/CODE][/size][/font][/color]

[font=tahoma, helvetica, arial, sans-serif][color=#666666][size=3]Es ist nicht perfekt gelöst jedoch funktioniert es . [b]LevelboxBase [/b]hat die Standardeigenschaften für ein Levelbox. Diese wird erweitert mit einem neuen Script [b]LevelBoxDone[/b]. In anderen Worten: Er wurde speziell für [b]LevelBoxDone-Prefabs[/b] gemacht, da dort ein Stern dazu kommt. mit [b]SetDone(bool leveldone) [/b]kann ich später den Stern nämlich anzeigen oder auch ausblenden. Die Sterne stehen dafür, ob man diesen Level geschafft hat oder noch zu machen hat. Bei meinem Spiel wäre das eigentlich nicht nötig, da man eigentlich immer schaffen muss um den nächsten Level freizuschalten. [/size][/color][/font][color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Beim [b]Levelbox_Locked[/b] benutze ich einfach den [b]LevelboxBase[/b]. Da bauche ich kein Stern .[/size][/font][/color]



[b]2. GUI Elemente anzeigen.[/b]

[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]So jetzt kommen wir zu einem Teil, was auch wichtig ist .[/size][/font][/color]
[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Ich habe um die GUI Elemente anzuzeigen ein Script geschrieben. Damit lass ich diese Elemente spawnen.[/size][/font][/color][color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3] Ich werde nicht alles frei wild posten, sondern, versuche mit ein bissel Code einfache Gedankenanstoße zu abzugeben. [/size][/font][/color]

[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Hierbei habe ich einen GameObject genommen und ihn ein Script verpasst. Die Prefabs habe ich ja bereits erledigt.[/size][/font][/color]
[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]So sieht es nun aus.[/size][/font][/color]
[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3][img]http://puu.sh/8w6qe.png[/img][/size][/font][/color]

[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Und genau diesen LavalMainMenu erkläre ich gerade. Dort ist einfach folgendes enthalten.[/size][/font][/color]
[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3][img]http://puu.sh/8w6qG.png[/img][/size][/font][/color]

[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Hier merke ich gerade, dass ich start offset gar nicht benutze . Nur so nebenbei. Wichtig ist einfach nur die ersten 3 (nach Debugging On). [/size][/font][/color][list]
[*][color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Levels Count: Dort haben wir stehen wie viele Levels überhaupt wir habe[/size][/font][/color]
[*][color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Level Open GO und Level Closed Go: Hie tun wir einfach die jeweiligen Prefabs rein.[/size][/font][/color]
[/list]
Der Rest sind einfache Berechnungen zum Zentrieren und Größeneinstellungen. Man kann etwas vorgeben oder es wird automatisch berechnet ( Je nach angaben. Eingabe x > Eingabe y dann berechne automatisch oder nehme Eingabe X als Wert)

Ein bissel Code?

[CODE]
void InitializeGuiElements() {
levelsCount = Mathf.Clamp(levelsCount, 1,99999);
spawnedLevelbox = new GameObject[levelsCount];
spawnLevelboxCounter = 0;
for(int i = 0; i < levelsCount; i++) {
int levelno = (i+1);
Debug.Log(levelno);

if(IsLevelDone(levelno)) {

instantiateLevelbox(2, "Level", levelno.ToString());

} else if( IsLevelOpen(levelno) ) {

instantiateLevelbox(1, "Level", levelno.ToString());

} else {

instantiateLevelbox(0, "Level", levelno.ToString());
}
} // position update
UpdatePosGuiElements();
}
[/CODE]

Dieser Teil erstellt die ganzen GUI Elements. Es wird gecheckt, ob man diesen Levelteil schon abgeschlossen hat, noch zu machen hat oder gar nicht freigeschaltet hat. Je nach dem wird ausgewählt welcher GUI Element gespawnt wird.
UPdatePosGUIElements(): Damit positioniere ich sie noch einmal. Ich habe es extra getrennt gemacht, da ich eine Funktion habe die sich OnPropertiesChange() Event habe. Damit kann ich dann später im Inspector etwas herumspielen und gucken ob es so gut aussieht.

So der Teil hier spawnt sozusagen die richtigen Prefabs
[CODE]
/// <summary>
/// Instantiates the levelbox.
/// </summary>
/// <param name="boxtype">Boxtype 0 = closed, 1 = open, 2 = done</param>
void instantiateLevelbox(int boxtype, string name, string number) {

GameObject levelPrefab;
if(boxtype > 0) {
levelPrefab = levelOpenGO;
} else {
levelPrefab = levelClosedGO;
}

GameObject levelGO = (GameObject)Instantiate(levelPrefab, Vector3.zero, Quaternion.identity);
levelGO.name = (1+spawnLevelboxCounter).ToString();
spawnedLevelbox[spawnLevelboxCounter] = levelGO;
spawnLevelboxCounter++;

levelGO.transform.parent = transform;

if(boxtype > 0) {
LevelboxDone levelproperties = levelGO.GetComponent<LevelboxDone>();
levelproperties.ChangeProperties(name, number);
levelproperties.SetDone(boxtype == 2);
} else {
LevelboxBase levelproperties = levelGO.GetComponent<LevelboxBase>();
levelproperties.ChangeProperties(name, number);
}
}
[/CODE]
Hier lasse die richtigen Prefabs spwnen und packe es in eine liste rein. Damit kann ich später etwas anfangen, aber fürs Debuggen reicht das erst mal ^^. Das ganze sieht dann so aus.

[b]VIDEO Demonstration[/b]: [url="http://puu.sh/8w8pH.mp4"]http://puu.sh/8w8pH.mp4[/url]

Und ein Bild :[img]http://puu.sh/8w8pP.jpg[/img]

[b]Fazit:[/b]
Natürlich ist das hier nicht mit NGUI vergleichbar, aber warum gleich soviel Geld ausgeben, wenn man das selbst machen kann. Gut keine Animationen zur Zeit da. Keine Progression Bar. Aber diese Dinge kann man langsam und langsam dazu machen. Irgendwann hat man seine Scripte zusammen, wo man fast eigentlich immer wieder die selben Sachen verwendet. Vorhin habe ich zum Beispiel Buttons erstellt. Als Prefab gespeichert. Nun ziehe ich es raus und ändere nur den Text. Dazu kommt noch ein Script.

Ein EventSender mach ich noch aber muss nicht sein. Hauptsache ein Event wie OnMouseClick() ist dabei .

Ich hoffe dieser Blogeintrag hat euch Spaß gemacht zu lesen

EDIT: Nachtrag wie das nun mit GameOver Dialog aussieht (außerdem habe ich doch die Farben verändert.) Knapp 10-20 Minuten arbeit (hab nach fonts gesucht ).

[img]http://puu.sh/8wgbn.jpg[/img]

[img]http://puu.sh/8wglV.png[/img]
Achtet hier auf die Prefabs. Kann man imme wieder Verwenden. Buttonprefab ist in DialogboxGameover auch enthalten. Der einzige Nachteil ist, dass ich "5 of 10" in einem Text habe. Ich wollte es jetzt getrennt machen, da ja vielleicht dazu kommt dass da 5 of 100 steht. Dann müsste man ja "5 of" mit verschieben. Als einzelne Objekte wäre das schwerer. Aber man hat ja viel Platz. könnte ja alles etwas verschieben

MaZy

MaZy

 

Der Anfang von DarkWorld

Dark Word ist ein ein MMo FPS was momentan noch auf der Variante Dedicatet ist über einen MasterServer der auf einem Linux Server gehostet wird.
Das ganze ist schon mit der MySQL Datenbank Verbunden ohne Gültigedaten kann man sich nicht einloggen.

Momentan kann man sich Online Anmelden für das Spiel. Aber ohne den Clienten kommt man nicht weit.

Sicherlich sind wir noch am Anfang momentan sind wir ein 2 Personen Team Danny und ich beide sind Programmierer.
Das Spiel selber wird in C# Programmiert.

Unser Status :

+Register für den Account (Eintrag in die Datenbank)
+Login im Clienten
+Server Starten ( Noch im Clienten aber bald nur noch Only Server)
+Neuladen der Serverliste
+Server Join
+Spieler können sich gegenseitig sehen (Leider konnte ich dies nicht Filmen da Danny Offline war.)

Video : http://darkworld.biz/Video/DerAnfang/index.html

Bitte beachtet das es alles noch im Rohbau ist und es bei uns nach und nach weitergeht.

DW-Soul

DW-Soul

 

Mr.Clowns Spielchen [TAG 9]

Hallo,

hier mal eine Demo von dem, was ich beschreiben werde.
Könnt euch ja bis dahin Fragen überlegen. Muss noch Screenshots und Skizzen machen, da man sonst nichts blickt.

Ach ja: W, A, S, D wie immer R = trinken Q = essen SHIFT + W, A, S, D = rennen Die Buttons und so müsst ihr mit der Maus anklicken ... dann könnt ihr Türen öffnen und so ein Scheiß.

INTRO
Ich habe lange (während der Arbeit) über das Spiel nachgedacht. Ich kann mich irgendwie nicht auf das Spielprinzip festlegen. Welchen Teil genau, verrate ich euch später. Auch war mir nicht ganz klar, wie das Spiel an sich aussehen sollte, deswegen habe ich einfach mal mit einer Demo angefangen. Ich habe schon ein paar Feedbacks erhalten und werde diese im Anschluss mal "abarbeiten" ... jetzt wird es Zeit euch zu belustigen.

ANSICHT
Ihr habt bestimmt diese Sidescrolleransicht bemerkt. Diese ist nur für den Test des Chars gut gewesen, damit man das Anlegen/Zerstören der Rüstung genau beobachten konnte. Meine eigentlich Idee ist, die Ansicht von schräg oben zu machen. So wie hier:
Wenn ich es richtig erkenne, ist das hier aber ISO und keine PERSPECTIVE. Das ist etwas, womit ich mich noch rumplage, da es doch sehr starke Unterschiede sind. Hier ein Vergleich:
Links haben wir die Iso und rechts die perspektivische Ansicht. Macht schon einen Unterschied. Vom Funfaktor und Comiclook würde ich zu Iso tendieren. Aber wenn man in dem 3D-Raum gezielt schießen und werfen will, so eignet sich für die Abschätzung der Entfernung etc. eher die perspektivische Ansicht.
Auch ist der Winkel unklar. Ich will eigentlich, wie in dem Beispielbild (Sims?), dass man den Charakter immer von allen Seiten sehen kann. Die Kamera dreht sich also nicht mit. Das ist dann halt nur dumm, wenn der Charakter nicht in der Mitte des Bildschirms positioniert wird (wie z.B. bei DeadSpace). Bei DeadSpace war der Charakter ja entweder links oder rechts von der Bildschirmmitte. Dies hat oft dazu geführt, dass man Gegner auf einer bestimmten Seite nicht gut sehen konnte. Dann gibt es wiederum andere Spiele, wo man sich hinter einer Wand verstecken kann und die Ansicht drehen, sodass man die Gegner sieht und sie auch abknallen kann, obwohl keine Sichtlinie vom Charakter zum Gegner existiert (glaub war Dark Shadow?).
Aber wayne, die Kamera kann man am Ende eh schnell einstellen. Aber ich will keine Optionen lassen, sodass ich beide Varianten implementieren muss.

GUI
Wie einige gesehen haben, habe ich das HUD aktuell über dem Player positioniert. Ich hielt es Anfangs für eine gute Idee, bin mir aber nicht mehr so sicher. Der Vorteil ist der, dass man im Multiplayer auf diese Weise auch den Zustand der anderen sehen kann (dies kommt aber erst, wenn man Okularimplantate und Analysesoftware gekauft hat), ohne viel am Code zu ändern.
Die wichtigsten und zurzeit einzigen Attribute will ich euch mal kurz vorstellen:


Wir haben hier Gesundheit, Hunger und Durst. Das ganze hat den Self-Illum Shader, damit man auch ohne Licht die Attribute sehen kann (dies gilt auch für die Tasten/Eingabefelder) etc.. Die Gesundheit wird sich immer selbst regenerieren und die Attribute Hunger und Durst begünstigen den Regenerationsvorgang. Sie sind also optional, deswegen stehen sie auch unter der Gesundheit. Die Balken im Vordergrund deuten den Zustand an. Gelb bedeutet, dass dieser Balken gerade aktiv ist, sich also entweder erhöht oder senkt. Blaue Balken sind die noch verfügbaren. Momentan ist das nicht implementiert, sodass das HUD einfach nur mitschwebt. Allgemein sollte der Spieler mehrere "interessante" Attribute haben, also Attribute, die nicht in jedem Scheißgame dauernd vorkommen wie "Stärke" oder "Mana" und so. Ich denke da eher an "Konzentration"/"Aufmerksamkeit". Ihr so: "Aufmerksamkeit und Konzentration? Du F@g! Was soll denn der Scheiß? Willst du jemanden mit diesem Non-Mainstream Müll langweilen?! LOLOLOLOL!!!!1111oneoneone"
Yep, genau das habe ich vor. Es ist ein Survival, wo das Survival wichtig ist und nicht das "Durch-die-Zombiereihen-Durchpflügen" (am Ende wird es aber höchstwahrscheinlich genau das ).
Ihr habt bestimmt gesehen, dass wenn man sich Objekten nähert, diese ein paar Buttons zeigen und somit die möglichen Aktionen, oder? Die Aufmerksamkeit soll dazu dienen, dass der Spieler alle Aktionen schon auf größere Entfernung erkennen kann. Wenn eure Aufmerksamkeit also hoch ist, könnt ihr mehr und weiter entfernte Aktionen sehen.
Stellt euch vor: Euer Charakter kommt in einen Raum und ihr wisst nicht, ob und wo ihr euch vor den Gegnern verstecken könnt. Euer Charakter hat aber eine hohe Aufmerksamkeit und lässt einige Aktionen bereits erscheinen, sodass ihr nicht jeden Schrank ablaufen müsst. Einer mit einer geringen Aufmerksamkeit wird alles durchprobieren müssen. Das ist doch wohl ein klarer Vorteil, der mal nichts mit Stärke zu tun hat. Auch ist es kein Vorteil, der overpowered ist, denn obwohl man mehr Aktionen im Voraus erkennen kann, so heißt das nicht, dass der Spieler die beste Lösung wählt. Hier noch ein Bild der Buttons für die Aktionen:
Die Aktionen zeigen immer den aktuellen Stand an. Als Funktion für die Aktion habe ich eine abstrakte Klasse geschrieben, die eine virtuelle "doAction()" Methode hat. Auf diese Art und Weise kann ich für verschiedene Objekte unterschiedliche Aktionen erstellen und dennoch über ein und die selbe Funktion ansprechen. In meinem Code steht also nur:
  if (Input.GetMouseButtonDown(0)) { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition); if (Physics.Raycast(ray, out hit, 5.0f, 1 << LayerMask.NameToLayer("Button"))) { if(hit.collider.transform.tag.Equals("button")) { hit.collider.transform.GetComponent<AbstractAction>().doAction(); } } } Die Layermask nutze ich, damit mir keine anderen Objekte dazwischenkommen. Das Problem hatte ich Anfangs, als der Charakter genau vor dem Button stand. Der Charakter hat ja auch einen Collider und Rigidbody, dadurch konnte ich nicht auf den Button klicken, da der Event davor schon abgearbeitet worden war. Wie ihr sehen könnt, benutze ich einfach nur die abstrakte Klasse für das "doAction()" ... darunter kann sich jede beliebige Klasse verbergen. Egal, solche Dinge werde ich euch später mit Klassendiagrammen erklären.
Die Buttons jedenfalls haben zwei Parameter (isActive, isChanging) ... dadurch kann man vor Abschluss einer Aktion einfach die Aktion umkehren/toggeln. Deswegen kann man die Tür auch mittendrin wieder verschließen. Stellt euch vor: Ihr lauft vor den Zombies weg und einer will die Tür schließen, aber da kommt noch ein Spieler ... und ihr öffnet kurz vor Schluss doch noch die Tür, um den ankommenden Charakter zu retten ... uuuuuuund sterbt alle. Aber lustig ist es schon.
Für diese ganzen Inputs und so habe ich Scripte geschrieben, die eben Targets enthalten (als Array). Dadurch kann man mehrere Türen öffnen und so weiter. Und wenn ich dann die Kommandoterminals einbaue, werden diese die anderen Scripte als Parameter haben ... dadurch kann man im Spiel also alle Eingabefelder von einer Konsole bedienen ... aber dafür wird der Charakter auch hohe Updates brauchen und auch hohe Skills in Technik und so. Ich habe noch weitere coole Symbole dafür erstellt, aber noch nicht exportiert.

CHARAKTER
Der Charaktercontroller ist der Default-Controller von Unity (glaub ThirdPersonXXX). Deswegen passen ein paar Parameter und Animationen nicht ganz zusammen etc.. Für die Animationen habe ich in Blender auf die übliche Art und Weise mit Keys die Bewegungen gemacht. Als Referenz galt mir das hier. Hier ein Screenshot von dem Vorgang:


Aber irgendwie sieht es einfach nur eigenartig aus. Naja, sei's drum. Jedenfalls habe ich ein paar Animationen erstellt und diese dann in Unity importiert. Das erste Problem war die Geschichte mit JUMP. Der Charaktercontroller hat den JUMP einfach so ausgeführt und nichts hat zu der Animation gepasst. Bei der Animation (in der Demo nicht mehr drin) geht der Charakter in die Hocke und springt dann ab. Er sollte also erst dann die Force bekommen. Da habe ich bei dem Animation-Import den Unterpunkt "Events" gefunden:


Hier kann man nämlich der Animation Events verpassen, die geschossen werden. Man wählt einen Zeitpunkt und drückt auf das Plussymbol(?). Dann kann man einen Namen für das Event eingeben. Der Clou ist jetzt, dass dieser Event-Name als Funktion in dem Script vorkommen muss, welches diese Animation benutzt. Bei mir hat der Player das Script und den Animator. Also muss in dem Script eine Funktion mit dem Namen des Events sein. So sieht es aus:

Und im Code des "ThirdPersonXXX"-Scripts steht dann das hier: public function Jump() { //verticalSpeed = CalculateJumpVerticalSpeed (jumpHeight); Debug.Log("Gejumped"); } Diese Funktion wird aufgerufen, wenn die Animation JUMP bei dem gewählten Frame ist. Ist echt nützlich. So kann man immer sagen, ob der Charakter etwas erfolgreich benutzt hat oder nicht.
Wie ihr vielleicht bemerkt habt, habe ich die Root-Motion abgeschaltet, weil ich die Bewegung komplett vom Script steuern wollte. Ob das gut oder schlecht ist? Ich habe zu wenig Erfahrung mit Unity, um das sagen zu können (eigentlich habe ich mit Unity noch gar nichts gemacht, außer dem erfolgreichsten Spiel ever - "The Pyramid" ). Wenn ich es richtig verstanden habe, dann werden bei aktiver Root-Motion die Bewegungen des Pivot meines Blender-Mesh auch in Unity übertragen. Das heißt, wenn die Animation darin besteht, dass der Charakter einen Meter voranschreitet, so wird er tatsächlich auch in Unity einen Meter voranschreiten, ohne dass ich ihn bewegen muss. Die Frage ist hier: Kann man damit eine KI gezielt gut steuern? Ich habe da so meine Zweifel. Aber es sieht besser aus ... hm. Zwei Implementierungen? Keine Ahnung.
Hier ist ein Screenshot von meinem Animator für den Char:


Wie ihr seht, habe ich mit Avatar Mask und Blending gearbeitet. Leider habe ich das Tutorial nicht fertig geschaut und einfach auf gut Glück geprogged. Aber es scheint halbwegs zu klappen. Man kann während dem Gehen auch Trinken und Essen. Top, oder? Dazu musste ich nur eine Avatar Mask nutzen, die die Körperbereiche maskiert, auf die die Animation angewandt werden soll. Die Gewichtung wird per Script dann auf 1.0 gesetzt. Hier mal ein Bild der Avatar Mask:


Der Charakter selbst hat mehrere Collider, was mit noch Kopfschmerzen bereitet, da einige Sachen getriggert werden, von Dingen, die nicht triggern sollten.


RÜSTUNG
Bei der Rüstung habe ich alle Rüstungsteile als eigene Objekte mit eigenen Tags. Das Tagsystem muss ich mal überarbeiten. Jedenfalls nutze ich beim Charakter ein Dictionary, wo als Key der Tag steht und als Value dann die Bone. Das bedeutet, wenn der Charakter getriggert wird von einem Objekt mit dem Tag "AC" (ArmourChest), dann weiß das Dictionary automatisch, wohin das Objekt gepflanzt wird.
Da die Rüstungsteile alle einzeln sind und separate Scripts haben, kann also auch ein Spieler mit seiner Rüstung einen anderen Spieler verteidigen ... er muss sich nur passend hinstellen. Das ist doch top, oder? Außerdem kann man einen Player trotzdem tödlich verwunden, wenn man die richtigen Stellen trifft. Das ist etwas, was mich bei den meisten Spielen total nervt, dass wenn man eine Rüstung aufsetzt, es nur einen symbolischen Charakter hat. In Wahrheit wird irgendwo ein Rüstungswert auf z.B. 100 gesetzt, der den Schaden mindert ... obwohl man einen Headshot nach dem anderen kassiert. Jedes der Rüstungsteile soll auch Funktionen anbieten. Z.B. werden Handschuhe dem Spieler die Möglichkeit geben heiße oder ätzende Objekte anzufassen ... und da wird der Schaden dann an die Handschuhe weitergeleitet. BÄM! Stellt euch nur all die nützliche Ausrüstung vor, die man damit machen kann: Okkularimplantate Geräuschverstärker Hackinghandschuhe Brainupdates und noch vieles mehr COMMENTS Miese Animationen
Yoar, ich bin kein Animator, kein Grafiker und kein Designer ... das waren jetzt auch nur Platzhalter. Bin schon dabei neue zu machen und diesmal nach diesem Tutorial. Alles wo QuesterDesura gesagt hat
Es gab keinen Tutorialtext am Anfang, weil es kein Ziel hatte. Es geht nur darum so grob das Konzept zu zeigen, wie es werden könnte. Vor allem ging es mir um das Aufsammeln und Adden der Rüstungsteile. Ich weiß auch nicht, ob man für WASD ein Tutorial machen muss. Aber vielleicht liegt es daran, dass ich schon 1000 Spiele überdauert habe . Für mich ist es eher anstrengend Tutorials spielen zu müssen, wo einem minutenlang erklärt wird, wie man schnell laufen kann und kriechen (ist meist SHIFT+WASD und STRG oder C). Für das Tutorial habe ich mir was anderes gedacht.
er Spieler spielt und stirbt ... wenn er stirbt, wird die Todesart und Ursache in einem "Tagebuch" vermerkt. Du bekommst also neue Infos, wenn du die Dinge erlebst. Z.B. auch wenn du neue Items aufsammelst, bekommst du neue Fähigkeiten und so. Das mit den Tastendrücken habe ich nicht verstanden. Ist da nichts passiert oder war es verbugged? Vom Design her scheint es einigen zu gefallen und mir gefällt es, weil ich nur 2 Farben brauche, um diese Icons zu machen. Kistendeckel dreht sich
Ja, das alte Leid mit dem Links-/Rechtshändigen Koordinatensystem. Blender = links und Unity = rechts ... oder umgekehrt. Egal ... das war nur provisorisch ... ich weiß, dass es noch buggy ist.

Mr. Clown

Mr. Clown

 

Textur-Versuche

Erste [b]gescheite [/b]Versuche von Texturen.
Es wird langsam besser.

AO Map nur den von Lowpolyobjekten gebaket, Textur drauufgeklatscht, eingefärbt und paar Rostflecken per Brush hinzugefügt.

[img]http://s14.directupload.net/images/140220/deck9yes.png[/img]

overdev

overdev

 

#1

Der mittlere Teil der Map hat nun fertige Meshes.
Texturen folgen. Simple Farben, nur eine Farbe pro Objekt. Comic-Look.

[url="http://forum.unity-community.de/topic/6807-der-stuhl-sieht-in-unity-anders-als-in-blender-aus/page__fromsearch__1"]http://forum.unity-c...__fromsearch__1[/url]

[quote][color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Dann hast du den 1% erwischt wo ein Recalculate aus welchen Grund auch immer nicht klappt. Mache also das was ich bereits sagte.[/size][/font][/color]

[color=#666666][font=tahoma, helvetica, arial, sans-serif][size=3]Aktiviere also "Backface Culling". Dann siehst du auch in Blender welche Faces nicht korrekt sind. Wähle dann die Faces aus die nicht korrekt angezeigt werden und wähle links im Menü unter "Normals: " "Flip Direction" aus. Oder drücke "W" und wähle dann aus dem Menü "Flip Normals" aus. Oder einfach "W" und dann "F" drücken, für den schnellsten Workflow. [/size][/font][/color][/quote]


Dank [url="http://forum.unity-community.de/user/2972-sid-burn/"]Sid Burn[/url] weiß ich nun, dass ich nur die Faces von den hässlichen Meshes flippen muss.

Napelazam

Napelazam

 

Rede von Ellen Page

In diesem Blog geht es diesmal nicht um Unity 3D, Games oder dem virtuellen Leben.

Es geht um die, meiner Meinung nach, großartigen Rede von Ellen Page auf der Human Rights Campaign Konferenz.



Sie spricht frei von ihrem Herzen. Ãœber Gleichberechtigung und Mobbing.


[b]Die Rede in Videoform: [media]http://www.youtube.com/watch?v=6XJkZf7KhjA[/media][/b]


[b]Die Rede als englischer Text: [url="http://www.hrc.org/files/assets/resources/Ellen-Page-Remarks.pdf"]http://www.hrc.org/f...age-Remarks.pdf[/url][/b]


[b]Die übersetze Version von Tobias Jennerjahn:[/b]


Hallo! Wow. Vielen Dank.

Danke Chad für diese lieben Worte und die noch viel bessere Arbeit die du und die HRCF jeden Tag leisten – besonders im Blick auf die lesbischen, schwulen und bisexuellen jungen Menschen hier und überall in Amerika.

Es ist eine große Ehre bei der Eröffnung der TIME TO THRIVE Konferenz dabei zu sein. Gleichzeitig ist es aber auch ein wenig seltsam. Ich stehe hier in diesem Raum wegen einer Organisation deren Arbeit ich tief verehre. Und ich bin umgeben von Leuten die es sich zur Aufgabe gemacht haben das Leben anderer Menschen zu verbessern. Einige von euch unterrichten junge Leute wie mich. Einige von euch helfen jungen Menschen sich selbst zu finden. Einige von euch hören zu. Einige von euch ergreifen Maßnahmen und einige von euch sind selbst noch jung, was es noch viel komischer für jemanden wie mich macht vor euch zu sprechen.

Es ist seltsam, weil ich als Schauspielerin zumindest in irgendeiner Weise eine Industrie repräsentiere, die vernichtende Standards auf uns alle anwendet. Nicht nur auf junge Menschen, sondern auf alle. Schönheitsstandards, Standards für ein gutes Leben, für Erfolg. Standards die mich, so sehr ich es hasse, beeinflusst haben. Du bekommst Ideen in deinen Kopf gepflanzt, Gedanken die du nie vorher hattest, die dir sagen wie du dich zu verhalten hast, wie du dich anziehen musst und überhaupt wer du sein musst. Ich habe versucht dagegenzuhalten, authentisch zu sein und meinem Herz zu folgen, nur ist das manchmal sehr schwer.

Aber darum bin ich hier. In diesem Raum können alle von euch, alle von uns zusammen so viel mehr erreichen als eine Person alleine. Und ich hoffe das dieser Gedanke euch genauso stärkt wie er mich stärkt. Ich hoffe dass die Workshops die ihr in den nächsten Tagen besuchen werdet euch stärker machen. Denn ich kann mir vorstellen dass es Tage gibt an denen ihr länger und härter gearbeitet habt als euer Chef weiß oder würdigt, nur um einem Kind zu helfen von dem ihr wisst dass es es schaffen kann. Tage an denen ihr euch alleingelassen fühlt. Untergraben oder hoffnunglos.

Ich weiß dass in diesem Raum Leute sind, die jeden Tag zur Schule gehen und völlig ohne Grund wie Dreck behandelt werden. Oder wenn du nach Hause gehst und denkst du kannst deinen Eltern nicht die ganze Wahrheit über dich erzählen. Jenseits davon ob du dich für die eine oder die andere Seite entscheidest sorgst du dich um deine Zukunft. Um dein Studium oder die Arbeit, oder sogar um deine eigene Sicherheit. Zu versuchen ein inneres Bild von dir selbst zu finden, herauszufinden was zur Hölle mit die los ist kann dich jeden Tag ein Stückchen umbringen. Es ist giftig, schmerzhaft und wirklich unfair.

Manchmal sind es die kleinen, unbedeutenden Dinge die dich runterziehen. Ich versuche Klatsch und Tratsch nicht ernst zu nehmen, aber neulich habe ich einen Artikel gesehen der mich mit Jogginghose auf dem Weg zum Fitnessstudio gezeigt hat. Der Autor hat gefragt, „Warum besteht [diese] zierliche Schönheit darauf sich wie ein Mann zu kleiden?“

*Pause*

Weil ich gerne bequem bin. Es gibt unzählige Stereotypen über Männlich- und Weiblichkeit, die definieren wie wir uns verhalten, anziehen und sprechen sollen. Sie helfen niemandem.
Jeder der diesen sogenannten „Normen“ trotzt ist gut genug um ihn zu kritisieren und prüfenden Blicken zu unterziehen. Mitglieder der LGBT wissen das nur zu gut.

Und trotzdem sind wir mutig. Der Fußballheld, Michael Sam. Die Schauspielerin, Laverne Cox.
Die Musiker Tegan und Sara Quinn. Jede Familie die ihre Tochter oder ihren Sohn nach ihrem come out unterstützen. Und der Mut ist auch in diesem Raum. Jeder von euch hat ihn.

Es inspiriert mich in diesem Raum zu sein, weil jeder einzelne von euch aus dem selben Grund hier ist. Ihr seid hier, weil ihr den simplen Fakt dass diese Welt ein ganzes Stück besser wäre, wenn wir uns nur ein bisschen bemühen weniger schrecklich zu unseren Mitmenschen zu sein, als Kernmotivation angenommen habt. Wenn wir uns nur 5 Minuten nehmen würden, um die Schönheit der anderen zu begreifen, anstatt uns wegen unserer Unterschiede anzugreifen. Das ist nicht schwer. Es ist ein einfacherer und besserer Weg zum Leben. Und letztlich rettet es Leben.

Auf der anderen Seite ist es doch nicht so einfach. Es kann das schwerste auf der Welt sein, weil man zuerst sich selbst lieben und akzeptieren muss, um andere Menschen zu lieben. Ich weiß, dass viele von euch Schwierigkeiten damit hatten. Ich setze auf eure Stärke und eure Unterstützung und das habe ich schon vorher, auf Arten die ihr euch nicht denken könnt.

Ich bin heute hier, weil ich selbst homosexuell bin. Und vielleicht... weil ich etwas verändern kann. Anderen zu helfen eine einfacherer und hoffnungsvollere Zeit zu haben. Ungeachtet dessen fühle ich mich persönlich dazu verpflichtet und verantwortlich.

Ich mache es auch für mich, weil ich es leid bin mich zu verstecken und zu lügen. Ich habe Jahre lang gelitten, weil ich mich vor einem coming out gefürchtet habe. Mein Geist hat gelitten, meine psychische Verfassung hat gelitten und meine Beziehungen haben gelitten. Und ich stehe hier heute, zusammen mit euch, auf der anderen Seite des Schmerzes. Ich bin noch jung, aber ich habe gelernt, dass die Liebe, ihre Schönheit, ihre Freude und sogar ihr Schmerz das größte Geschenk ist, das man als Mensch schenken und bekommen kann. Und wir verdienen es Liebe in vollen Zügen und gleichberechtigt zu erfahren. Ohne Scham und ohne Kompromisse.

Es gibt zu viele Kinder da draußen, die unter Mobbing, Ablehnung oder einfach schlechter Behandlung leiden müssen, weil sie sind wer sie sind. Zu viele Schulabbrecher. Zu viel Misshandlung. Zu viele Obdachlose. Zu viele Selbstmorde. Ihr könnt das ändern, und ihr ändert es auch.

Aber das musstest ihr mir nie sagen. Darum ist auch ein klein wenig seltsam. Das Einzige was ich wirklich sagen kann ist, das was ich die letzten 5 Minuten vorbereitet habe. Vielen Dank. Danke für die Inspiration. Danke dafür, dass ihr mir Hoffnung gegeben habt, und bitte verändert weiterhin die Welt für Menschen wie mich.

Fröhlichen Valentinstag. Ich liebe euch.

overdev

overdev

 

Erstes Zimmer

Hallo willkommen zu meinem kleinen Blogeintrag.
Ich bin kein großer Schreiber, aber ich bemühe mich.

Es geht um das Projekt "Project Cyberpunk", welches ich mit einem Programmierer zusammen schon länger angefangen habe. Game Design Document steht schon länger.
Ein "alter Freund" von uns, ein Concept Artist, hat uns ein paar Bilder gezeichnet für die erste Szene.
Danke an [url="https://www.facebook.com/pages/Maddendds-art/344387255642435?fref=ts"]Maddendd[/url] dafür!

Nun, um was geht es in "Project Cyberpunk" ?
Project Cyberpunk spielt im Jahre 2195. Es gibt weiter entwickelte Roboter, elektromechanischen Implantate usw.
Die frei begehbare Stadt Eden City ist in Ringen aufgeteilt. Im äußerte Ring befinden sich die Slums und in der Mitte wohnen die Reichen.

Man selbst spielt Jacob einen 28 jährigen Mann.

Es ist ein Open World 3rd Person RPG/Shooter, wir wissen es ist viel Aufwand. Es ist immernoch ein Hobbyprojekt.
Was unser Spiel besonders macht sind Dialoge die viel Einfluss auf die komplexe Story nehmen und das Waffenupgradesystem.

Ich weiß es nicht gerade nicht sehr gut formuliert, aber wir wollen auch nicht zuviel verraten

Btw wir nehmen unsere Animationen per MoCap (Kinect) auf.


Aber nun zum Thema!

Wie gesagt habe ich von maddendd ein paar Concept Arts bekommen. Nach denen habe ich das erste Zimmer modelliert.
Es soll eine kleine Unterkunft für die Minenarbeiter sein. Es soll eng und eher simpel wirken.


[img]http://s14.directupload.net/images/140120/lmeuj98o.png[/img]





[img]http://image-upload.de/image/ojKDY5/68e3247eaa.png[/img]





[img]http://s1.directupload.net/images/140120/nz9mxwgi.png[/img]





Also habe ich den Raum modelliert (3250 Quads). Das Texturieren fällt mir immernoch schwer.



[img]http://www.upload-pictures.de/bild.php/47791,raum20jan14ansicht16TWUQ.png[/img]




[img]http://www.upload-pictures.de/bild.php/47792,raum20jan14ansicht2TPVLB.png[/img]



[img]http://www.upload-pictures.de/bild.php/47793,raum20jan14ansicht3UUBDN.png[/img]


Habe bei dem geringen Platz schon Probleme mit meinem 3D Programm bekommen wegen der Kamera, wenn der Raum sichtbar ist. In Unity allerdings nicht.

Ich hoffe ich kann bald mehr davon zeigen.

overdev

overdev

 

Mr.Clowns Spielchen [TAG 8]

INTRO
Tag 8 ... kein Witz, das ist die Zahl der Tage, die ich bis jetzt mit meiner Spielidee verbracht habe. Momentan laufen leider auch noch tausend andere Projekte und ich muss meine Masterthesis bald anmelden ... und habe erfahren, dass mein aktueller Arbeitgeber ~2600 Stellen abbaut und ich mich jetzt schon woanders nach Arbeit umsehen darf. Tja ... jetzt heißt es "Durchbruch und reich werden". Aber dali.

Wir haben uns bereits grob mit den Eigenschaften der Figur, ihrer Aktionen und dem Spielprinzip auseinandergesetzt. Diesmal will ich euch ein wenig mit der Umwelt nerven und einigen Behaviours, die ich bereits implementiert habe.

UMWELT
Meine frühere Idee war es eine komplett per Zufallsgenerator erstellte Welt zu benutzen ... der Ablauf wäre ungefähr so: Spieler wählt seine Spielfigur Spieler startet Welt Welt wird per Zufallsgenerator erstellt Welt wird erstellt und startet seinen Ablauf
Damit ist gemeint, dass es am Anfang alles normal ist und im Verlauf des Spiels mehr und neue Gegner kommen und mehr Ereignisse eintreten. Spieler schafft den Level und kommt wieder in das Hauptmenü
Dabei erhält er natürlich XP und Münzen, die er in neue Fähigkeiten und/oder Ausrüstung investieren kann. Bei den Fähigkeiten bin ich mir aber nicht sicher wie ich sie erweitern lassen will. In Oblivion musste man ja bestimmte Fähigkeiten oft nutzen und dadurch wurden sie verbessert. Das wäre ja bei einem Survival ja auch irgendwie einleuchtend es so zu machen. Denn dadurch würde sich ein ganz spezieller Char entwickeln. Das hört sich schon mal nicht schlecht an, aber einen so komplexen Generator zu programmieren ist einfach too much des Guten. Außerdem hat mich der Gedanke gestört, dass man einen Level immer am Stück schaffen muss.

Da kam mir ein Kumpel in den Sinn ... der hat gesagt: "Yo, erstell doch gleich einfach komplette Räume und Gebäude in Unity und lass dann einen einfachen Generator sie in der Umgebung platzieren und die Türeingänge miteinander verbinden."

Das war eine ganz nette Idee, mit der ich immer noch im Kopf spiele.

Eine weitere Alternative ist mir dann auch noch gekommen. Nämlich könnte man ja eigentlich die ganze Stadt modellieren (so wie in XCOM Apocalypse). Diese könnte man in separate Teile aufteilen und diese mit Verbindungsstücken verbinden. Es wären sozusagen mehrere Levels, die durch z.B. Verkehrsmittel betreten werden können. Der beste Vergleich ist wohl Dead Space. Da kann man ja zwischen den Bereichen auch per Zug rumfahren. Es würde dann also ungefähr so aussehen:
Die Stadtteile dienen auch bestimmten Zwecken. Wir haben ja bestimmt, dass es so etwas wie Strom geben soll. In unserer Stadt wäre es z.B. so: Wenn die Kraftwerke defekt sind oder abgeschaltet, so gibt es nirgendwo einen Strom. Ohne Strom kann aber die Wasseraufbereitungsanlage kein sauberes Wasser produzieren. Somit läuft der Spieler beim Trinken immer Gefahr sich mit etwas anzustecken ... dafür ist dann das Krankenhaus da etc.. Jeder Stadtteil wird auf die Fähigkeiten des Spielers ausgelegt sein etc.. Hier im Bild ist es nur symbolisch dargestellt, da wir die Fähigkeiten des Spielers nocht nicht vollständig erfasst haben. Denkbar wäre aber Folgendes: Der Spieler möchte sein Armgelenkgerät (PipBoy) upgraden Dazu geht er zu den öffentlichen Stellen in ein Wissenschaftslabor Dort erkundigt er sich auf einem Terminal, was er dazu alles braucht (Strom muss da sein) Er holt alle Teile aus dem Industriegebiet und so weiter Diese legt er in den Fabrikator Der Fabrikator erstellt einen Chip Der Spieler setzt den Chip bei sich ein Je nach Skills (Wissenschaft/Intelligenz) werden die Werte des Chips entsprechend höher oder niedriger ausfallen. Es handelt sich hier also um Crafting aufbauend auf Spielerskills. Hier noch eine kleine Anmerkung: Ich hätte die oberen Punkte auch folgendermaßen auflisten können: Der Spieler möchte sein Armgelenkgerät (PipBoy) upgraden und geht zu den öffentlichen Stellen in ein Wissenschaftslabor Dort erkundigt er sich auf einem Terminal, was er dazu alles braucht (Strom muss da sein) und holt alle Teile aus dem Industriegebiet und so weiter Diese legt er in den Fabrikator wodurch ein Chip erstellt wird Der Spieler setzt den Chip bei sich ein Hier sind mehrere Anforderungen in einem Satz drin. Das sollte man bei einer guten Anforderungsanalyse ums Verrecken vermeiden. Jede Anforderung muss für sich selbst allein stehen, valide, konsistent und widerspruchsfrei sein.

Egal, weiter geht's. Natürlich könnte man nun diese Stadtteile per Zufallsgenerator erstellen lassen, was wohl richtig geil wäre. Ihr seht in dem Bild die Verbindungsstücke. Diese dienen einem einfachen Zweck: Der Überraschung.

Wenn ihr von einem Gebiet in ein anderes wollt, könnt ihr zu Fuß gehen (dadurch werdet ihr definitiv durch ein Verbindungsstück gehen müssen) oder per Fahrzeug (Zug) euch transportieren lassen. Wenn ihr euch transportieren lasst, kommt ihr sofort am Ziel an. Natürlich gibt es eine gewisse Wahrscheinlichkeit, dass der Zug einen Defekt erleidet, sodass ihr ihn reparieren oder zu Fuß marschieren müsst. Dabei landet ihr immer mitten im Verbindungsstück ... das ist ein Stück Level, wo einfach nur Landschaft ist.

Diese Stellen sollten auch dazu dienen mehr Spannung und bestimmte Ereignisse einzuführen. Ähnlich wie in Fallout 1 & 2, wo man hin und wieder beim Wandern durch die Karte an speziellen Orten aufgehalten wurde. Das soll teilweise dazu dienen, dass man neue NPCs aufsammeln kann.

Die Stadt und das Spiel an sich wären hier anders als bei einem einzigen Level. Der Spieler kann in der Stadt an bestimmten Savepoints speichern und das Spiel jederzeit wieder fortsetzen. Die Stadt wird sich dabei immer weiter entwickeln, bis der Spieler das Spiel schafft oder stirbt. Da es ein Survival ist und somit die Todesarten interessant sind, habe ich mir überlegt die Lebensgeschichte jedes Chars in einer Log festzuhalten. Da wird also immer mitprotokolliert wo, wann, was und wie der Spieler benutzt hat. Das Ganze wird dann in Sketchen (Grafiken) dargestellt. Auch die Todesart ... ist doch funny, oder?

NPC
In einer so großen Umgebung gegen immer schwerer werdende Gegner alleine zu spielen ist ja sau lame und nervt. Da wäre es doch besser eher Richtung Prototype zu gehen und eine teilweise lebendige Welt zu erschaffen. Ich stelle es mir so vor, dass es mehrere NPCs in den Gebieten geben wird. Manche sind bewaffnet, andere nicht etc. und man kann sie beeinflussen. Der Spieler erhält einen Strategietouch an dieser Stelle. So kann man z.B. Waypoints setzen und auch komplette Räume markieren ... dann sagt der Spieler z.B.: Verteidigt markierten Raum.

Je nach KI und Einfluss (Charisma etc.) werden die NPCs diesen Befehl befolgen oder nicht ... dann muss der Spieler aber auch dafür sorgen, dass die NPCs mit allem Nötigen versorgt werden ... Wasser, Nahrung ...

Der Spieler könnte dann eventuell einige der NPCs sich folgen lassen (hier kommen nun mehr taktische Elemente rein). Diese folgen dem Spieler und agieren selbständig. Das heißt ... wenn sie sich einer zu großen Gefahr ausgesetzt fühlen und der Nutzen das Risiko nicht wert ist, dann seilen sie sich einfach vom Spieler ab ... das ist aber nicht weiter tragisch ... es sollten immer genug NPCs auf den Straßen unterwegs sein, sodass der Spieler nie wirklich allein den Gegnerhorden ausgesetzt ist.

Bei den NPCs plane ich auch feste KIs ... also spezielle Typen von KIs. Die Einzelgänger, die Gruppen etc ... und eventuell nach Aggressivität einteilen, sodass manche eher in Kämpfe ziehen als andere.

OUTRO
Momentan arbeite ich teilweise an den Behaviours und an meinem Feuerausbreitungssystem ... und an den Texturen, damit ich mal einen halbwegs gescheiten Demo-Level aufstellen kann.
Hier ist der Link zu dem Behaviour-Demo: BEHAVIOUR

Steuerung:
LEERTASTE = nächster LEVEL
SHIFT + LEERTASTE = vorheriger LEVEL (klappt nicht immer)
MAUSRAD = Power setzen
SHIFT + MAUSRAD = Power feinjustieren
STRG + MAUSRAD = ZOOM
LINKSKLICK = etwas platzieren
RECHTSKLICK = etwas entfernen
F gedrückt halten + LINKSKLICK = geladenes Objekt platzieren
SHIFT + F gedrückt halten + LINKSKLICK = neutrales Objekt platzieren

Mr. Clown

Mr. Clown

 

CodeLineCounter

Wie viele Zeilen Code man inzwischen in sein Projekt gesteckt hat, dürfte für den ein oder anderen vielleicht ganz interessant sein.
Wer in C# und Visual Studio programmiert wird die ein oder andere Zeile Code kennen, die für ihn die mühselige Arbeit des zählens abnimmt, aber leider mangelt es da dann doch an Einstellungsmöglichkeiten.
Und wer in JavaScript/UnityScript programmiert, der hats noch schwieriger

Deswegen hab ich mich heute 10-20min hingesetzt und folgendes Programm für euch geschrieben:

[attachment=1658:Unbenannt.png]
Das Layout ist denkbar einfach. Eine kleine Box, in der später Text erscheint, ein Button für die Optionen und einer zum loslegen

[attachment=1659:Unbenannt1.png]
Auch die Optionen sind sehr kurz gehalten. Hier kann man einstellen, welche Dateien man zählen will (.cs oder .js oder beides) und ob man Leerzeilen und reine Kommentarzeilen ausschließen will oder nicht

[attachment=1660:Unbenannt2.png]
Bevor es losgehen kann, müsst ihr einen Ordner auswählen. Beachtet, dass dieser UND alle Unterordner nach Dateien mit den angegebenen Endungen durchsucht werden

[attachment=1661:Unbenannt3.png]
Und jetzt geht es endlich ans eingemachte. Zuerst werden alle Dateien gesucht, die die angegebenen Endungen haben und dann wird gezählt. Ihr könnt euch die Zahlen sowohl für jede Datei einzeln als auch zusammengezählt anschauen

Und hier der Download-Link: https://dl.dropboxusercontent.com/u/48347689/CodeLinesCounter.exe

Ich hoffe, euch gefällt dieses kleine Stück Software,
Silveryard

Silveryard

Silveryard

 

Update Dunkle Jahre #1

In meinem Traum, meinen Traum zu verwirklichen habe ich euch hier im Forum nun schon ein Teil meiner Geschichte gezeigt und ein Teil meiner Idee. Hiermit möchte ich das Update #1 bekannt geben für mein Spiel "Dunkle Jahre" ! Folgende EInstellungen und Fortschritte sind mittlerweile passiert:[list=1]
[*]Hauptmenü würde hinzugefügt
[*]Buttons verlinken zum Bereich Hilfe , zum 1 Level und der Beenden Knopf funktioniert
[*]Als Spieler wird zurzeit noch die FirstPerson benutzt
[*]Level1 ist in Arbeit und spielt auf dem Gefängnisgelände
[*]Gegenstände können nun aufgesammelt werden wenn die Mission es verlangt.
[*]Die Lebensanzeige wurde integriert.
[*]Ein Friedhof der toten Häftlinge ist auf dem Gefängnisgelände zu finden.
[/list]
Zurzeit kann ich leider noch kein Video liefern daher ich der Meinung bin das es dazu noch nicht weit genug entwickelt ist, Ich werde aber etwa zu Update 8 das erste Video zeigen.

MentisMora

MentisMora

 

Mr.Clowns Spielchen [TAG 7]

INTRO


Hier ist noch kurz der Offtopicshiet mit dem Fahrzeug. Ich konnte die Fehlerquelle soweit reduzieren, dass ich sicher sagen kann, dass es an den folgenden zwei Zeilen liegt: tFR.localEulerAngles = new Vector3(tFR.localEulerAngles.x, cFR.steerAngle - tFR.localEulerAngles.z, tFR.localEulerAngles.z); tFL.localEulerAngles = new Vector3(tFL.localEulerAngles.x, cFL.steerAngle - tFL.localEulerAngles.z, tFL.localEulerAngles.z); Wenn ich diese auskommentiere, funktioniert die normale Rotation in Fahrtrichtung perfekt. Sobald aber das Steering reinkommt, passt etwas nicht und ich weiß nicht was.

Egal b@ck2DäGäim.

Ich habe die Umgebung soweit, dass es halbwegs okay aussieht und würde nun gerne einzelne Scripte ausprobieren sowie das Inventarsystem überlegen. Das alles ist bei mir noch Prototyping um zu sehen, ob sich die Dinge so realisieren lassen können, wie ich es mir vorstelle. Aus dem Prototyp werde ich dann gleich mal die Anforderungen aufstellen. Was vielleicht nicht ganz viel Sinn macht, aber aus Erfahrung kann ich sagen, dass wenn man etwas kurz coded und sieht, dass es so nicht gehen wird, dass man sich dann überlegt, ob die Anforderung überhaupt realistisch ist.

Momentan könnte man die Anforderungen ganz simpel herleiten, wir haben ja nicht viel gemacht: Spieler erhält Spielfigur Spielfigur bleibt solange erhalten, bis sie stirbt, danach wird eine neue erstellt Spielfigur hat folgende Attribute: Stärke, Reflexe, Ausdauer, Konzentration, ... (die Attribute beschreiben, was sie tun und wie sie es tun) Spielfigur hat folgende Aktionen: Gehen, Leerlauf, Springen, ... (die Aktionen beschreiben, sowie die Vor-und Nachbedingungen ... am besten Zustandsautomat) Spielfigur kann Ausrüstung zugewiesen werden: Helm, Rucksack, ... (beschreiben, was die Ausrüstung macht sowie die Vor- und Nachbedingungen ... z.B. Rucksack bei Stärke 4 kann nur 25kg aufnehmen) (durch das Gewicht beim Rucksack erhalten wir eine implizite Anforderung, nämlich: es gibt sammelbare Gegenstände und diese haben ein Attribut "Gewicht") ... /*Gerade mit 1&1 telefoniert ... die haben mir die Internetspeed halbiert. Der ruft gleich wieder an und sagt woran das liegt. Kann man da dann einfach kündigen, ohne Frist? Ich meine ... so von einer Woche auf die andere die Speed halbieren ... schon extrem. Ich kann nicht mal normal surfen. Langsam geht mir das alles tierisch auf den Sack. */

Ich habe hier paar Animationen aufgeschrieben, die ich für notwendig halte. Ihr werdet merken, dass ich die Zwischenanimationen extra angegeben habe: z.B. hinsetzen und hinlegen. Das ist dafür da, dass man eben erst hinsetzen animiert und dann die "Sitzen"-Animation loopen kann. Dadurch kann man das "Hinsetzen" unterschiedlich varieren (z.B. hohe Stühle, niedrige Stühle), während die Sitzanimation selbst (die auf dem Stuhl) bei beiden Stühlen ja gleich ist. Boom!


Außerdem hat diese Aufteilung den Sinn, dass man auch bei Aktionen unterbrochen werden kann. Z.B.: Ein Char will sich in den Wagen setzen. Aber dann kommt ein Zombie und packt ihn von Hinten. Zerrt ihn aus dem Wagen und spielt mit ihm Karten. Ist doch cool? Ich bin ein Fan davon, dass man Aktionen anderer Spieler unterbrechen kann, gegen ihren Willen. Das bringt Fun rein.

Dazu habe ich natürlich einen billigen Zustandsautomaten erstellt. Ich hatte mal einen besseren, aber der ist wohl flöten gegangen. Die Übergänge sind nicht wiklich optimal, aber ich war zu faul es neu auszurichten ... werde VP dafür wieder einsetzen müssen.


Also das mit den Animationen habe ich mir halt so gedacht, ob das eine gute Idee ist? Keine Ahnung. Wie ihr in dem Bild auch sehen könnt, habe ich auch die Möglichkeit geduckt zu laufen etc.. Jetzt die Frage an euch AnimationPros ... soll ich Unter- und Oberkörper getrennt animieren und dann zusammenknallen? Dann brauche ich ja nicht für geduckt und stehend je separate Animationen zu machen. Und wo sollte ich das am besten animieren ... in Unity oder in Blender?

Ich habe momentan nur eine ganz billige sexy Geh-Animation ... aber reicht nicht für einen größeren Test. Ich frage mich momentan auch, ob ich Treppensteigen extra animieren sollte (je eine Stufe, sodass man auch beim Treppensteigen unterbrochen werden kann) oder einfach die Figur eine Schräge hochlaufen lassen?

Beim Springen und so habe ich mir was ganz Cooles überlegt. Ich werde keine Jumpanimation machen, sondern Rennen ... und dann eine Force auf die Figur wirken lassen. Es wird eine Animation geben, wie der Char mit den Armen rudert ... aber sonst wird der Körper nur von der Force getragen.

Der Vorteil ist der, dass wenn die Spielfigur den Boden berührt oder eine bestimmte Geschwindigkeit überschreitet, ersetze ich die steuerbare Spielfigur durch einen Dummy, der einfach nur Rigged ist ... und die Force sorgt dafür, dass der Char realistisch stürzt. Wenn die Figur den Boden jedoch berührt und die Force noch im normalen Bereich ist, so wird sie einfach in die RennenAnimation überfährt und es geht weiter.

Auf diese Weise kann die Figur nämlich auch, wenn sie zu schnell ist, gegen eine Wand knallen und rückwärts abprallen und fallen. Aber wie gesagt, das wird sich alles erst noch zeigen. Ich will erst das Drecksauto richtig zum Fahren bringen und dann mache ich die Animaitonen für den Char ... dann kann das Testen beginnen. Ich werde euch dann einen Demo-Level uploaden und ihr könnt rummeckern so viel ihr wollt ... aber ihr werdet bei mir auf taube Ohren stoßen ... jaja.

EDIT:
Ihr habt bei dem Zustandsautomaten bestimmt bemerkt, dass ich nicht einfach von einem Zustand in den Idle-Zustand wechseln kann. Das hat den Sinn, dass man eben erst stehenbleiben muss, damit man etwas benutzen kann. Ich finde das in (vor allem) FPSs total behindert und unrealistisch, dass man wie wild auf einen Schalter zurennen kann und aus dem Rennen heraus einen Schalter betötigen ... da war es ja in Dead Space besser ... das schafft Atmosphäre und das will man doch erreichen, oder? Eine gute Atmosphäre schaffen und eine gute Geschichte erzählen, eine ... bei der man am Ende nicht weiß, ob man der Gute oder der Böse ist. Hammergeil!

Klar, dieses Projekt ist nur auf Fun ausgelegt ... auch so für Parties etc.. Bin mir noch nicht ganz sicher, ob es nur lokal Coop sein sollte mit Splitscreen oder gemeinsamem Screen ... oder komplett multiplayerfähig. Ich vermute bei Splitscreen wird die Genauigkeit der Aktionen wesentlich besser sein, sodass man wirklich jemanden rechtzeitig unterbrechen kann. Ich tendiere zu lokal Coop ... aber vielleicht auch Beides reinmachen? Ich bin nicht so der Netzwerkguru.

Gerade einen Anruf von 1&1 erhalten ... die versuchen die Speed zu heben ... ich zahle DSL16.000 ... erhalte aber DSL2.000 ... Hammer, oder? Die meinten, ich soll versuchen einen Preisnachlass zu erreichen. Der Witz ist: ich wohne neben der Uni und im Firmengelände ... hier sind fast überall Standleitungen ... nur unser dummes Haus kriegt es nicht auf die Reihe eine anständige Leitung zu verlegen. Die Typen von Telekom finden unser Haus nicht mal in ihrem System. Was für Deppen ... dabei steht hier ein VDSL-Kasten nur 100m von meinem Haus. Behinderte ... alles Behinderte.

Mr. Clown

Mr. Clown

 

Das Zeitalter der Super-Monster

[font=Helvetica, Arial,]
[size=4]Ein kleines Rätsel:[/size][/font]
[font=Helvetica, Arial,]
[size=4]Welcher Begriff ist hier gesucht?[/size][/font]
[font=Helvetica, Arial,]
[size=4]Sie sind groß.[/size][/font][font=Helvetica, Arial,]
[size=4]Sie sind stärker als Menschen und Tiere.[/size][/font][font=Helvetica, Arial,]
[size=4]Sie sind härter als Menschen und Tiere.[/size][/font][font=Helvetica, Arial,]
[size=4]Sie sind gefährlicher als Tiere.[/size][/font][font=Helvetica, Arial,]
[size=4]Sie sind schnell.[/size][/font][font=Helvetica, Arial,]
[size=4]Sie können laut schreien.[/size][/font][font=Helvetica, Arial,]
[size=4]Sie sind hässlich.[/size][/font][font=Helvetica, Arial,]
[size=4]Sie fressen sehr viel.[/size][/font][font=Helvetica, Arial,]
[size=4]Sie haben keine Gefühle.[/size][/font][font=Helvetica, Arial,]
[size=4]Sie sind dumm.[/size][/font][font=Helvetica, Arial,]
[size=4]Wenn sie uns jagen, haben wir Todesangst, denn [/size][/font][font=Helvetica, Arial,]
[size=4]wenn sie uns kriegen werden wir auch meistens getötet.[/size][/font]
[font=Helvetica, Arial,]
[size=4]Die meisten sind wahrscheinlich darauf gekommen: Es handelt sich hier um Monster.[/size][/font][font=Helvetica, Arial,]
[size=4]Das war zu einfach, oder?[/size][/font][font=Helvetica, Arial,]
[size=4]Okay, dann denken wir uns mal einen neuen Begriff aus[/size][/font][font=Helvetica, Arial,]
[size=4]und fügen ein paar weitere schreckliche Eigenschaften hinzu. [/size][/font][font=Helvetica, Arial,]
[size=4]Mal sehen wer jetzt alles drauf kommt:[/size][/font]
[font=Helvetica, Arial,]
[size=4]Sie sind sehr zahlreich.[/size][/font][font=Helvetica, Arial,]
[size=4]Sie sind käuflich.[/size][/font][font=Helvetica, Arial,]
[size=4]Sie scheißen ununterbrochen.[/size][/font][font=Helvetica, Arial,]
[size=4]Sie haben keinen eigenen Willen.[/size][/font][font=Helvetica, Arial,]
[size=4]Sie sind überall auf der Welt.[/size][/font][font=Helvetica, Arial,]
[size=4]Sie leben bei den Menschen.[/size][/font]
[font=Helvetica, Arial,]
[size=4]... noch nicht drauf gekommen? Okay dann hier noch die letzten Details:[/size][/font]
[font=Helvetica, Arial,]
[size=4]Wir können uns in sie verwandeln.[/size][/font][font=Helvetica, Arial,]
[size=4]Wir können uns auch wieder zurückverwandeln.[/size][/font][font=Helvetica, Arial,]
[size=4]
[size=4]Wir dürfen ihren Bereich nicht betreten, sonst werden wir meistens von ihnen getötet.[/size][/size][size=4]
[size=4]Wir dürfen ihren Bereich nur betreten, wenn wir uns in sie verwandelt haben.[/size][/size][size=4]
[size=4]Wenn wir uns in sie verwandelt haben, rauben sie uns ständig Energie.[/size][/size][/font][font=Helvetica, Arial,]
[size=4]Wir beschränken unseren Lebensraum, um ihnen Platz zu schaffen.[/size][/font][font=Helvetica, Arial,]
[size=4]Wir beschränken die Natur, um ihnen Platz zu schaffen.[/size][/font][font=Helvetica, Arial,]
[size=4]Wir bauen ihnen einen Lebensraum.[/size][/font][font=Helvetica, Arial,]
[size=4]Wir haben alle Städte so umgebaut, dass sie dort optimal leben können.[/size][/font][font=Helvetica, Arial,]
[size=4]Wir stellen Gesetze auf, um sie zu schützen.[/size][/font][font=Helvetica, Arial,]
[size=4]Wir haben sie gerufen. Und jetzt werden wir sie nicht mehr los.[/size][/font]
[font=Helvetica, Arial,]
[size=4]Zu allerletzt aber noch ein paar positive Eigenschaften,[/size][/font][font=Helvetica, Arial,]
[size=4]dann sollte es aber bei jedem Klick machen:[/size][/font]
[font=Helvetica, Arial,]
[size=4]Wir gehen einen Pakt mit ihnen ein: Dafür, dass wir sie ständig mit[/size][/font][font=Helvetica, Arial,]
[size=4]Energie versorgen, werden wir von ihnen rasend schnell transportiert.[/size][/font][font=Helvetica, Arial,]
[size=4]Jeder möchte sich eins kaufen. Oder zwei oder drei.[/size][/font][font=Helvetica, Arial,]
[size=4]Wer eins besitzt, steht in der Gesellschaft besser da.[/size][/font][font=Helvetica, Arial,]
[size=4]Durch sie werden wir produktiver.[/size][/font]
[font=Helvetica, Arial,]
[size=4]Mein Kumpel, ein Zwerg aus Mittelerde, sagte mir:[/size][/font][font=Helvetica, Arial,]
[size=4]"Mensch, eure Monster sind ja noch viel schlimmer als unsere.[/size][/font][font=Helvetica, Arial,]
[size=4]Sowas kann man ja garnicht mehr als Monster bezeichnen.[/size][/font][font=Helvetica, Arial,]
[size=4]Man müsste es Super-Monster nennen!"[/size][/font][font=Helvetica, Arial,]
[size=4]Ich sagte ihm daraufhin: "Wir nennen es einfach PKW".[/size][/font]

AbeinG

AbeinG

 

Unknown Idea Nr. 2

Es gibt dieses Prinzip schon, aber ich würde das gerne auch für Unity sehen, außerdem mangelt es bei vielen wirklich an Benutzerfreundlichkeit und Aufmachung


DevArena

Es ist schön, wenn jemand programmieren kann.
Es ist schön, wenn man eine "KI" programmieren kann, die als Gegner dem Spieler das Leben schwer macht.
Aber richtig cool wäre es doch, ein Programm zu schreiben, es gegen Programme von anderen antreten zu lassen und mal wieder so richtig zu zeigen wer den größeren ***** hat

Schöne Disziplinen lassen sich ja zu Hauf finden:
Capture the Flag
Den Ausgang eines Labyrinths finden
Gegner bei einer Versteigerung schlagen
Dinge Sammeln und einen Turm bauen(und den anderen dabei behindern)

Damit das alles funktioniert müssen ein paar Dinge geregelt und die Rahmenbedingungen gesetzt werden:

Als Entwickler lädt man sich ein Asset runter, das schon alle wichtigen Scripte/Objekte/Szenen usw enthält. Beispiele sind: Networkingscript; Szenen, die die einzelnen Disziplinen beinhalten; Die simpelsten Basiswerte, die die Disziplinen fair halten.

Der letzte Punkt ist besonders wichtig. Ein übermächtiger Kampf von "KIs" ist langweilig, vor allem geht er dann so schnell, dass man gar nichts sieht.
Beispiel: Capture the Flag
Wenn man davon ausgeht, dass man dem anderen die Flagge klaut, indem man durch ihn durchläuft, ist die wichtigste Grenze die Geschwindigkeit. "So schnell darfst du sein und nicht schneller"


Jetzt die berechtigte Frage: Wenn mann das Asset bekommt, kann man es doch einfach bearbeiten und die Grenzen aushebeln. So kann ich doch eine übermächtige "KI" schreiben oder dem Gegener immer ein Instant-Loose aufs Auge drücken oder?

Nein, da hab ich was dagegen
Lösungsidee: Bevor ein Battle losgeht, werden die "KIs" auf ihre Richtigkeit überprüft. Und zwar jeweils vom anderen! So modifiziert keiner sein Script, weil er sonst dem Gegner helfen würde.
Es wird eine Testszene geladen und dem jeweils anderen Spieler werden automatisch bestimmte Befehle übermittelt und es wird geschaut, ob alles so verläuft, wie erwartet. Wenn etwas nicht stimmt, wird das Battle sofort beendet.



Ich weis, das ist kein Spiel für die große Masse, aber ich kann mir vorstellen, dass der ein oder andere bestimmt Lust hat, sich mit anderen zu messen.
Bin wie immer gespannt auf eure Meinung

Silveryard

Silveryard

 

Unknown Idea Nr. 1

Tach zusammen.

Zuerst will ich die Frage beantworten: Warum "Unknown Idea"
Ganz einfach: Ich hab immer mal wieder Ideen für Spiele, aber ich weis einfach nicht, ob sie was bringen. Ich selbst kann nicht so einschätzen, wie gut ein Konzept ankommen könnte, weil ich da einen etwas seltsamen Geschmack hab

Ich weis, es ist immer fragwürdig, seine Ideen einfach so preis zu geben, aber ich vertrau euch da mal ein wenig

Heutige Idee:

"Arena of Insanity"

Ziel des Spiels: 15 Runden überleben
Schwierigkeit: Nicht draufgehen.


Eine Runde ist wie folgt aufgebaut:

10 Spieler werden zufällig in ein Team gesetzt (Matchmaking).
In den nächsten 60min müssen in einer Arena gegen Gegnerwellen kämpfen (dachte an 3rd Person Shooter mit großen Bossen -viel Leben- bzw VIELEN kleinen Gegnern)
Alleine ist man da ziemlich aufgeschmissen, deshalb muss man zusammen arbeiten, wenn man das Ende noch erleben will.

Das Dumme: Am Ende darf nur einer die Arena lebend verlassen -> sich gegenseitig töten

Belohnungen für den Gewinner:
1. Der Counter wird un 1 hoch gesetzt
2. Basierend auf dem Counter (wie oft man schon überlebt hat) bekommt man bessere Ausrüstung, damit man in der nächsten Runde von größerem Nutzen ist

Stribt man:
1. Counter auf 0
2. Ausrüstung weg




Inspiriert haben mich:
Saw
Tribute von Panem
Gamer (der Film)
DayZ

Ich bin gespannt auf eure Meinungen

Silveryard

Silveryard

 

Mr.Clowns Spielchen [TAG 6]

INTRO
Was geht, ihr Penner? Ich wurde neulich inspiriert ... deswegen schreibe ich mal wieder. Habt ihr auf einen weiteren minderwertigen Blogeintrag von einem Durchgeknallten gewartet? Egal ... für den Fall, dass es noch niemandem ganz klar ist ... wir sind immer noch in der Phase, in der wir unsere Vision aufstellen. Das heißt, wir haben noch 0% Requirements Engineering gemacht. Das kommt dann, wenn unsere Idee so lala steht. STAND
Ich habe zur Verdeutlichung einiger Elemente ein paar Bilder gemalt. Außerdem habe ich noch das Fluchtfahrzeug modelliert. Ich muss noch unbedingt herausfinden, wie man technische Details hinzufügt. STROM

In diesem Spiel soll die Umgebung ein aktiver Teilnehmer sein. So habe ich mir gedacht, dass man auch Stromkreisläufe hinzufügt (das gibt es doch nirgends, oder?). Der Strom wird genutzt, um technische Geräte betreiben zu können. Z.B.: eine Konsole, mit deren Hilfe man Verteidigungssystem aktivieren kann oder einfach nur automatische Türen ein-/ausschalten kann. Hier wird wohl die Schwierigkeit darin liegen die Kabel zu legen. Vielleicht ein physikalisches Seil? Das eine Ende ist an der Steckdose und das andere am Spieler. Oder einfach gerade Balken, die sich unschön überkreuzen können ... natürlich dann ohne Collider, damit die Wegfindung weiterhin gut funktioniert. Die Stromanzeige ist hier zwar oben dargestellt, soll aber im Spiel nur durch aufrufen des Menüs und durch die Umgebung dargestellt werden. Das bedeutet, ihr wisst wie der Stromfluss ist, indem ihr einfach die Laternen beobachtet oder andere technische Geräte, die einfach dann ausfallen ... HUD

Hier könnt ihr erkennen, dass ich mir das HUD ähnlich vorstelle wie in DeadSpace. Es wird im Spielfeld dargestellt und zeigt Informationen über die Spielfigur etc. an. Das HUD wird durch ein Gerät am Handgelenk gesteuert (ähnlich dem PipBoy aus Fallout). Der Spieler kann das Gerät dabei immer erweitern, sodass neue Funktionen und neue Infos dargestellt werden. Weiterhin erkennt ihr die Aktionsblase, die ähnlich wie in Sims, den Status der Spieleraktion kommentiert. Wenn man also eine Tür aufmachen will, diese aber abgeschlossen ist, so wird in der Aktionsblase ein rotes X oder ein Schloss angezeigt. Dadurch soll die Kommunikation mit anderen Spielern erleichtert werden, da sie dann sofort wissen, was Sache ist ... man muss also nicht so viel chatten. SYMBOLE & AKTIONEN

Jetzt kommt der witzige Teil. In diesem Bild könnt ihr erkennen, dass eine geschlossene Tür mit einem entsprechenden Symbol markiert worden ist. Das zeigt an, dass diese Tür abgeschlossen ist. Wenn der Strom fehlt, so wird ein roter Blitz oder Ähnliches angezeigt. Hier stellt sich die Frage: Was wird dargestellt, wenn mehrere Stati (Mehrzahl von Status, ihr dummen Wichser - aber nicht 4 real ... Status ist der Plural, liest sich aber blöd) aktiv sind? Das ist eine wichtige Frage. Darauf habe ich zwei Antworten: Das wichtigste Symbol überlagert andere
Z.B.: Wenn eine Tür elektrisch gesteuert wird und der Strom aus ist, dann ist es egal ob die Tür abgeschlossen ist oder nicht ... in beiden Fällen kriegt man sie nicht auf. Das Problem hier ist, dass man dann eine priorisierte Hirarchie(?) an Stati erstellen muss. Diese müssen absolut widerspruchsfrei und leicht erweiterbar sein. Beides ist nach kurzem überlegen kaum machbar. Die Symbole wechseln sich in einem bestimmten Intervall
So wird am Anfang gezeigt, dass der Strom fehlt ... dann kommt ein "Fade In" in das zweite Symbol, das anzeigt, dass die Tür geschlossen ist. So kann man mehrere Symbole darstellen. Das Problem hier ist, dass man die Abhängigkeiten nicht erkennt. Es wird z.B. angezeigt, dass der Strom aus ist ... kurz darauf kommt das Symbol, dass die Tür abgesperrt ist. Jemand, der das erste Symbol (Strom aus) nicht gesehen hat, wird eventuell versuchen mit Dietrichen die Tür zu öffnen, obwohl es einfach nicht geht. Weiterhin besteht in diesem System die Gefahr, dass sich so viele Symbole stapeln, dass ein Durchlauf aller Symbole ewig dauert. Symbole verkleinern und gleichzeitig darstellen
Hierdurch könnte man einfach mehrere Symbole einfach verkleinern und nebeneinander in eine Art 3x3 Matrix darstellen. Hier ist der Nachteil, dass die Symbole eventuell sehr klein werden und somit kaum sichtbar. Weiterhin besteht der Nachteil darin, dass verschiedene Türen unterschiedlich viele Symbole haben und damit das Ganze einfach durcheinander und ohne System wirkt. Auf einer Tür sind dann 9 kleine Symbole, auf einer anderen 3 mittelgroße etc. etc. Extrasymbol
Hier ist die Idee, dass man ein Extrasymbol einführt, welches anzeigt, dass mehrere Stati aktiv sind. Wenn der Player mit seinem "PipBoy" (dem Gerät am Handgelenk) hingeht und den "PipBoy" aktiviert, so werden ihm dann im HUD die Stati angezeigt. Meiner Meinung nach die bessere Lösung ... mit dem Nachteil, dass man aus der Ferne nie sieht, was für Stati genau aktiv sind.
Das alles basiert natürlich darauf, dass es mehrere Stati für Objekte gibt. Wenn es am Ende auf nur einen oder zwei Stati hinausläuft, so ist das natürlich dann ganz anders managebar. Dann könnte man Türen, die keinen Strom haben einfach rötlich markieren und den zweiten Status als Symbol auf die Tür packen. Hier seht ihr schon, was es immer für Probleme gibt, an die man normalerweise nie gedacht hat. Es gibt noch weitere Probleme, aber die lassen wir erst einmal außen vor. (Z.B. was passiert, wenn eine elektrisch gesteuerte Tür offen ist und dann der Strom ausgeht?) Ein weiterer wichtiger Teil in diesem Bild ist die Aktionsgeschichte. Ich habe mir die Aktionen in diesem Spiel folgendermaßen vorgestellt: Normale Aktionen
Das sind Aktionen, die keine besonderen Eingaben erfordern. Es reicht aus einfach die Benutzen-Taste zu drücken. Skilled Aktionen
Diese sind in dem Bild dargestellt. Wenn man eine Aktion anstrebt, die "unnormal" ist, so wird der Spieler mit eine Art Quickevents bombardiert. Wenn er diese erfolgreich nimmt, dann wird die Aktion als erfolgreich eingestuft.
Was genau ist der Sinn dahinter?
Wie ihr wisst, soll der Schwerpunkt auf Überleben liegen. Das bedeutet, man muss dem Spieler das Überleben irgendwie schwer machen und es anpassen können und genau hier kommen die Quickevents ins Spiel. Viele meiner Freund hassen Quickevents (ich auch), aber ich finde es bringt Frische und Fun in das Spiel. Und vor allem Spannung, weil man nie weis, ob die Aktion gut geht. Das soll z.B. für folgende Situationen gelten: Türen öffnen/abschließen. Ihr rennt irgendwo an eine Tür und schließt sie ab. Dabei kommen die Quickevents. Ihr gebt sie ein und das möglichst schnell: A, B, B, A, X, X, A, Y [in 3.4s]. So ... jetzt kommt ein anderer Spieler und will die Tür aufschließen ... er bekommt nun das selbe Muster: A, B, B, A, X, X, A, Y ... und hat die Wahl: Mehr korrekte Eingaben oder schneller sein. Das wird dann durch eine Formel ausgewertet. Das bedeutet dann, dass man die Eingaben des Vorgängers einfach besser machen muss, um seine Aktion rückgängig zu machen.
Jetzt kommt der Superfun:
Die Spielfigur hat ja Attribute. Diese werden mit bestimmen, ob und wie schwer diese Quickevents sind. Wenn man Konzentration auf max. hat, so sieht die Eingabesequenz eventuell so aus: A, X, X ... fertig.
Die Frage hier ist, wie man die Eingabesequenz und die Bewertung aufstellt, sodass auch Leute mit unterschiedlicher Konzentration zusammenwirken können. Beispiel:

Player A [Konzentration = MAX] bekommt Eingabesequent: A, X, X [0.8s]
Player B [Konzentration = 3] ... welche Sequenz bekommt er nun? Die muss ja nach Definition länger sein ... aber dann braucht er ja auch mehr Zeit ... wie verrechnet man das nun? Sei die Eingabesequenz die folgende: A, B, B, A, X, X, A, Y [4.3s] und er hat alles richtig eingegeben.

Wir haben also nun:
A, X, X [0.8s] VS. A, B, B, A, X, X, A, Y [4.3s] ... wie bewerten wir das? Dazu kommen wir dann später, wenn es um die Implementierung geht bzw. wenn wir das RE dazu aufstellen und die Bedingungen machen etc.. Z.B. haben wir Konzentration die Werte zwischen 1 und 6 ... somit kann die Eingabesequenz zwischen 1 und 6 Buchstaben haben. Die maximale Zeit orientiert sich dann pro Buchstabe ... z.B. 0.5s pro Buchstabe. Daraus folgt:
A, X, X [0.8s] theoretisch wären 1.5s erlaubt. Diese Zeit kann nun als Richtwert gelten. Das heißt, wenn jemand die Eingabefolge A, B, B, A, X, X, A, Y innerhalb 1.5s halbrichtig hat oder mehr als 3 Buchstaben innerhalb 0.8s richtig hat ... dann ist die Aktion erfolgreich. Wir orientieren uns hier also einfach an den Bestleistungen der beiden Player ... entweder an den erfolgreich eingegebenen Buchstaben oder an der Zeit (in Relation zu der maximal erlaubten Zeit). Wie ihr auch seht, ist einer der Spieler rötlich eingefärbt. Ich habe mich gefragt, ob man aggressive Spieler eventuell markieren sollte. Aggressiv heißt, dass er die Aktion "Schubsen" etc. oft nutzt. Also andere Spieler behindert. Bin mir da aber unsicher. FLUCHTFAHRZEUG

Hier könnt ihr den momentanen Stand meines ersten Fluchtfahrzeugs sehen. Es kann ebenfalls modularisiert werden. Je nach dem, was die Spieler gerade brauchen. Der Innenraum ist an die Maße meines ArchitectureSets angepasst ... dadurch kann man den Wagen im Inneren so Ausstatten wie ein Zimmer. (Das erfordert noch Tests). Den werde ich wahrscheinlich auch verkaufen oder ich mache so ein Pack ... zusammen mit der Figur, die ich habe ... leider ist die Animation noch etwas ... "behindert" ... ich brauche ein paar gute Ideen, wie man "Benutzen" animiert, sodass es auf fast alles angewandt werden kann. Ps, schaut euch nie "Movie 43" an ... der größte Fuck ever. Das Fahrzeug liegt in zwei Versionen vor. Es gibt eine offene, also wo man in das Innere sehen kann und eine geschlossene, die man für einfache Rennspiele oder Ähnliches nutzen kann. Wie ihr auch gemerkt habt, habe ich keine Decken etc.. Das ist eines der Dinge, die mir gerade Kopfschmerzen bereiten. Es ist folgendermaßen: Nur 2D
Die Figur kann sich zwar hoch und runter bewegen, aber sie kann nicht klettern etc.. Das Problem hier ist dann aber: Was ist, wenn ich durch eine Explosion hochgeschleudert werden und dann von oben in ein Gebäude falle? Das ist ja sau dumm. Eine Möglichkeit wäre dann natürlich über diese offenen oberen Flächen eine ColliderPlane zu legen und somit zu sagen: Von Oben ist kein Reinkommen. Das würde auch sicherstellen, dass man von Unten nicht aus dem Haus springen kann. Full 3D
Hier besteht mein Lösungsansatz, dass die Welt ganz normal 3D aufgebaut wird ... auch mehrere Räume übereinander inklusive Dach. Hier ist das Problem der Darstellung. In einem FPS sieht man ja vom Player aus in die Umgebung ... aber wenn es ISO ist ... und die Figur ganz unten steht, was dann? Stellen wir uns vor, die Figur geht in ein Hochhaus, dann wird sie ja durch die drüberliegenden Objekte verdeckt. Nun war meine Idee, dass ich einfach eine Layersicht mache, sodass alles, was über dem Spieler ist ... ausgeblendet wird. Dumm nur ... wenn der Player ganz oben ist, dann wird der Rechner alles rendern ... könnte Leistungseinbrüche geben.

Weiterhin ist hier das Problem, dass man einfach nicht weiß, ob das Ausblenden gut ist. Nehmen wir mal an, alle Spieler sind ganz oben und haben Fun. Du bist ganz unten und kannst somit die anderen Spieler nicht sehen ... das ist doch blöd.

Alternativ habe ich noch eine folgende Lösungsidee: Es wird nur das ausgeblendet, was genau zwischen Spieler und Kamera liegt. Wenn der Spieler also hinter einer Wand steht, so werden nur die Wandelemente ausgeblendet, die den Spieler verdecken. Wäre auch nicht so schwer zu machen, einfach Raycast von Kamera zum Spieler. Vor allem, wenn Kamera und Spieler immer statisch zu einander sind.

Bei der Ausblendungsgeschichte gibt es aber das dumme Problem, dass eventuell auch Objekte ausgeblendet werden, die eigentlich benutzbar sind. Stellt euch vor, ihr steht hinter einer Konsole und wollt daraufklicken ... aber nanu? ... die Konsole wurde ausgeblendet, weil ihr dahinter steht ... somit ist ein Anklicken nicht mehr möglich. Wie ihr seht, gibt es noch einiges zum Nachdenken. Vor allem muss die Welt sicher stehen. Ich tendiere momentan zu der ersten Lösung (2D oder die Full 3D Lösung mit dem vollständigen Ausblenden von Ebenen). Wollt ihr entscheiden? EDIT:
Das Fluchtfahrzeug.

Mr. Clown

Mr. Clown

 

Job offer

Moin Moin,

wir suchen eine/n 3D-Artist/Entwickler mit Kenntnissen im Bereich 3D-Design/Entwicklung und Kenntnissen in Untiy für eine Festeinstellung. Wünschenswert wären auch Kenntnisse im Umgang mit der Adobe Creative Suite.

Wir sind ein kleines Unternehmen in Hamburg mit spannenden Projekten im Bereich Augmented Reality. Wir suchen eine junge, felexible, aufgeschlossene, wissbegierige und kreative Person, die motiviert ist, sich unserem Team anzuschliessen und uns dabei helfen will, schnell Marktführer auf diesem Gebiet zu werden.

Bei Interesse schreibt mich einfach an.

Nils

nb1982

nb1982

 

Mr.Clowns Spielchen [TAG 5]

INTRO
Demnächst kommt eine Demo mit spielbarer Figur und noch ein Zusammenfassung. Bis dahin noch kurz dieser Einschub. UMGEBUNG
Ich habe eine Demo von meinem Beispiellevel erstellt, damit ihr ungefähr euch vorstellen könnt, wie ich mir die Grafik vorstelle. Ist nur eine kleine Demo, aber ich glaub es ist okay. MrClown's Spielchen DEMO. Dummerweise habe ich ja die Free-Version von Unity, sodass ich keine Convex(Concave?)-Collider erstellen kann. Deswegen werde ich den Part mit "in Schränken verstecken" etc. erst einmal außen vor lassen. Worüber ich mir noch unschlüssig bin ist die Sache mit der zerstörbaren Umgebung. Für die Realisierung habe ich mir eigentlich was ganz nettes ausgedacht. Ich habe eine kurze Formel geschrieben, mit der ich die Ausbreitung von Kräften auf Objekte errechnen kann. Alle Objekte, die eine bestimmten Grenze unterschreiten werden zu Rigidbodies und verhalten sich dementsprechend. Aber das ist noch nicht sicher, ob ich das so lasse, denn immerhin führen solche Zerstörungen zu unvorhergesehenen Konstellationen im Level, die zu Verhaltensfehlern führen. So wäre z.B. ein Ziel nicht mehr erreichbar, weil das Ziel unter Schutt vergraben liegt etc.. CHARAKTER
Wir haben ja schon ein paar Dinge über die Figur erfahren. Ich bin gerade dabei die Figur zu riggen ganz nach diesem Tutorial. Dann werde ich die definierten Animationen und einige der Attribute realisieren.
ZIELE
Ich habe weiter über die Ziele des Spiels nachgedacht und habe ein paar neue Ideen dies bezüglich. Mal sehen, ob es euch gefällt. Ich will ja, dass man bis zur Ankunft des Rettungsteams überleben muss. Wie wäre es, wenn: Es mehrere Rettungsteams gibt
Jedes davon kommt auf eine eigene Art und wird auch unterschiedlich gut sein. Z.B. kommt schon nach den ersten 10 Minuten das erste Rettungsteam, das Nicaraguanische Spezialteam. Die Soldaten sind verdammt schlecht und die Wahrscheinlichkeit vom Rettungsteam gekillt zu werden ist höher, als von einem Zombie getötet zu werden.
Dann wartet man einfach weiter und dann kommt das US-Rettungsteam, das "aufräumt". Je nach dem, wie der Zufall entscheidet, werden sie die Überlebenden versuchen zu retten oder zu killen.
Es wird ja auch Computer etc. im Level geben und somit ist mir noch was Lustiges eingefallen: Wenn man von der EU gerettet werden will, muss man am Computer ein Formular ausfüllen, während um einen herum die Hölle losbricht. Nach Abschicken des Formulars muss das EU-Parlament abstimmen etc.. Und in einer der Ecken kann man dann verfolgen, wie die Entscheidung ausgefallen ist. Man auch eine eigene Fluchtmöglichkeit aufbauen kann. Dazu müssen die Spieler z.B. die Straßen freiräumen und ein Fahrzeug bauen. Wenn es fertig ist, steigen alle ein und das Fahrzeug fährt langsam zum Ausgang. Stellt euch vor, wie alle versuchen das Fahrzeug zu bauen und gleichzeitig die Zombies davon fernhalten müssen. Dann steigen alle ein ... aber nanu? ... es passen nicht alle rein.  Auf der Fahrt zum Ausgang fallen Meteoriten vom Himmel, überall entstehen Brände und das Fahrzeug wird beschädigt. Die Straßen werden auch von Felsbrockenfragmenten verschüttet. Hier ein Beispielbild:

Wie gesagt, mache ich mal bei Gelegenheit das Rig fertig und erstelle die Basisanimationen, dann kann man mal schauen, wie es wirkt. Habe aber am Mittwoch eine Prüfung und werde wohl noch etwas mehr dafür lernen müssen. 

Mr. Clown

Mr. Clown

 

Mr.Clowns Spielchen [TAG 4]

INTRO
Bald folgt eine kleine Zusammenfassung dessen, was momentan klar zu sein scheint. Dann sehen wir, ob wir aus unserem fiktionalen Prosatext handfeste Anforderungen herauspicken können. Sobald das steht, kann man mit einem billigen Prototypen mal antesten. UMGEBUNG
Damit wir mit unserer Figur irgendetwas Vernünftiges machen können, müssen wir erst einmal uns eine Umgebung Überlegen. Da werde ich meine ursprüngliche Idee wieder herauskramen. An der FH haben wir einen Level nur in einer Ebene gebastelt. Das heißt: Man konnte nicht höher oder tiefer gehen. Deswegen wurde auch die Fähigkeit "Klettern" gekickt. Diesmal werde ich es mit mehreren Ebenen machen. Diese werden jedoch immer separat gewählt. Das bedeutet, dass wenn man einen Aufzug von Ebene 1 nach Ebene 2 nimmt, dann spielt man nur noch in Ebene 2. Man kann natürlich wieder zurück. Anders verhält es sich jedoch mit Effekten. Diese werden auch Über Ebenen hinweg aktiv sein. Hier ist ein kleines Beispiel von einem möglichen Aufbau:
Eine Überlegung von mir war es auch mal so etwas wie Schächte mit ins Spiel zu nehmen. Dadurch könnte man auch Abseits von Aufzügen und/oder Treppen in andere Ebenen gelangen. Das würde für Überraschungen sorgen.

Die Interaktionsmöglichkeiten für die Umgebung wären in etwa: Sitzen
Auf Boden, Stuhl etc. Dadurch soll die Regenerationsgeschwindigkeit von unserer AusdauerDyn erhöht werden. Oder einfach nur für's Chatten. Rüberhüpfen
Dadurch könnte man über mittelhohe Hindernisse hüpfen. Also Hindernisse, die maximal halb so hoch sind wie die höhsten Objekte (Wände). Öffnen/Benutzen
Schubladen und Schränke etc. So kann man Dinge finden und andere ablegen. Wer aufmerksam liest merkt, dass das alles Fähigkeiten/Aktionen sind, die dem Charakter hinzugefügt werden müssen. Bis auf Öffnen ... trotzdem muss das explizit erwähnt werden, damit keine Missverständnisse entstehen und jemand Benutzen und Öffnen für zwei unterschiedliche Aktionen hält. Aber das kommt alles noch in unsere Anforderungen. In den Bildern wird zwar suggeriert, dass man nur einzelne Zimmer aufeinander stapelt, gemeint ist aber jede Form von Objekten. Wir können Stockwerke mit mehreren Zimmern auf einander stapeln oder eben nur einzelne Zimmer. Auch könnte man ganze Städte stapeln.
Z.B.: Level 0 = Kanalisation Level 1 = Stadt Ich schau mal, ob mir noch was Gescheites einfällt. Eventuell mache ich noch ein paar Bilder.

Mr. Clown

Mr. Clown

 

Mr.Clowns Spielchen [TAG 3B]

INTRO
Hallo Morons! Ich habe nun ein paar Objekte in Unity zusammengesetzt um euch ungefähr zu zeigen, wie ich mir das Spiel vorstelle. Aber erst müssen wir noch den Charakter zusammenfassen. CHARAKTER
Ich habe mal eine kleine Tabelle erstellt, die die momentanen Eigenschaften der Figur darstellt. Die Tabelle werde ich dann einfach mal erweitern etc.

  DARSTELLUNG
CHARAKTER ATTRIBUTE
Eins der Probleme, die ich oft treffe ist die Frage, wie man denn die Attribute im Spiel darstellen sollte. Ihr kennt es . In Dead Space z.B. wurde der Lebensbalken direkt an den Anzug des Charakters getackert. So konnte man immer sehen, wie seine HP ist, ohne den Blick vom Geschehen abzuwenden. Ein Gegenbeispiel ist Burnout für XBOX 360. Dort ist die Nitroanzeige links unten im Eck. Man kann sich vorstellen wie behindert es ist, bei einem Rennspiel den Blick von der Strecke nehmen zu müssen, nur um zu sehen, ob genug Nitro da ist.
Hier ein Vergleich:

Dead Space

Burnout
Hier ist die Sache klar.
BillyTheStoupid: <<Aber MrClown, wenn man die Infos alle in die Mitte macht, dann kann man ja das Auto nicht mehr sehen.>>
Was der kleine Billy nicht überlegt ist folgendes: Man hätte die Nitroanzeige sehr wohl auf das Auto packen können. Z.B. als eine Art Lichtbalken an der Heckstange(?). Würde auch besser aussehen. Ehrlich gesagt hasse ich solche HUDs. Ist ja auch bei vielen MMORPGs so. Deswegen will ich was anderes machen. Hier ist ein kleines Beispiel, wie ich mir das HUD in meinem Spiel vorstelle:

Ob das Layour so bleibt, weiß ich nicht. Es fehlen eh noch einige Dinge. Vor allem die Interaktion mit der Umgebung wird sich wohl noch als schwer erweisen. Soll man jede dumme Bewegung andeuten? Ich hasse das bei z.B. Modern Warfare 3 (ich hasse das gesamte Spiel) wenn da dauernd A eingeblendet wird, wenn man über etwas hüpfen kann. Hier noch ein kleines Beispiel:

Mr. Clown

Mr. Clown

 

Mr.Clowns Spielchen [TAG 3A]

INTRO
Ich habe mir die alten Einträge durchgelesen und finde, ich habe genau das nicht gemacht, was ich euch zeigen wollte. Meine "Ideen" sind ja teilweise aus dem Himmel gefallen, ich habe keine Tools eingesetzt und habe auch nichts begründet. Dauernd habe ich die Begriffe geändert etc.. Liegt teilweise aber daran, dass man bei einer Ausarbeitung das Große Ganze bereits kennt ... in diesem Fall baut es bei mir aber von Eintrag zu Eintrag auf und kann somit übelst schwanken. DESWEGEN
SPIELFIGUR
Ihr werdet euch bestimmt fragen, wie ich auf diese Attribute gekommen bin. Ich bin dumm und habe die alten Attribute aus unserem FH-Projekt übernommen ... ohne euch Bescheid zu geben.  Macht nichts. Die Attribute leiten sich komplett aus den Aktionen ab und ebenfalls aus Eigenschaften, die notwendig sind, um mit der Umwelt zu interagieren. Die Spielfigur wird Dinge sammeln/tragen können. Deswegen braucht man eine natürliche Begrenzung, damit man nicht alles mitnehmen kann, was es gibt. Da bietet sich die Stärke an. Diese kann sagen, wie viel man an Gewicht tragen kann.

Wie kann man die Stärke nun in Werten ausdrücken? Wir wissen, dass unsere Spielfigur folgende Dinge bei sich tragen kann: Rucksack, 2 Seitentaschen, Gürtel und Armtasche. Das sind 5 Behälter. Nun könnte man sagen, dass die Stärke sich zwischen 1 und 5 bewegt. Dabei gibt die Stärke dann vor, wie viel Behältnisse man tragen kann. Wenn man also ein Adonis ist (so wie ich), dann hat man Stärke 5 und kann somit alle Behälter tragen.

Man könnte auch an das Gesamtgewicht gehen. Die Behälter wiegen also nichts und stellen ein bestimmtes Gewicht zur Verfügung. Z.B.: Rucksack.MaxGewicht = 20kg. Wenn man alle MaxGewichte addiert kommt man z.B. auf 60kg. Man kann davon ausgehen, dass jeder Mensch ein Mindestgewicht von 15kg tragen kann. Also bleiben nur noch 45kg übrig. Diese können wir nun an die Stärke binden. Z.B. Stärke = 5 <=> 60kg. Stärke = 1 <=> 15kg. Stärke 2, 3, 4 <=> 25, 35, 45kg
Es ist natürlich ganz cool, wenn man viele Dinge tragen kann ... aber es ist unrealistisch, dass man voll beladen immer auf 100% Leistung ist. Deswegen kommt ein weiteres Attribut hinzu, um die Stärke zu ficken. Das nennen wir Ausdauer. Die Ausdauer wird bestimmen, wie lange wir 100% Leistung erbringen können. Wenn wir voll beladen sind, wird die Ausdauer schneller verbraucht.

Ich habe das nicht in das Schaubild eingezeichnet, aber da müsste unter abgeleitete Attribute noch AusdauerDyn rein. Diese wird im Spiel angezeigt und basiert auf dem Basisattribut Ausdauer. Z.B.: Ausdauer = 6 <=> AusdauerDyn = 300 Sekunden. Das bedeutet, dass ich bei einer Ausdauer von 6 300 Sekunden lang ganz normal spielen kann. Ab 300 Sekunden kommt man in den "Erschöpft"-Modus. Aktionen wie Springen/Klettern erfordern ebenfalls AusdauerDyn, z.B. ein Sprung kostet 20 Sekunden AusdauerDyn.

Die AusdauerDyn wird natürlich immer regeneriert, wenn man sich langsam bewegt oder ganz ausruht. Wie schnell das geschieht, könnte man direkt an Ausdauer festmachen. Aber hier kommen die Attribute Durst und Hunger hinzu. Diese beeinflussen die Aufladerate von AusdauerDyn. Man ... das ist echt dumm zu erklären ... ich mal schnell ein Bild.

Die AusdauerDyn reduziert natürlich auch Durst und Hunger. In allen Filmen etc. haben wir gesehen, dass Reflexe äußerst wichtig sind. Das gibt es leider kaum in Spielen und wenn ja, dann stimmt da was für gewöhnlich nicht. Deswegen machen wir das hier auch rein und probieren es mal aus. Die Reflexe werden die Verzögerung zwischen den Aktionen bestimmen. Es wird einen Mindestwert geben ... z.B. 0,1 Sekunde. Das bedeutet, dass zwischen 2 Aktionen immer eine Verzögerung von 0,1 Sekunden stattfindet. Wenn man höhere Reflexe hat, dann sinkt das Delay. Z.B.: Reflexe = 6 <=> 0.05 Sekunden Delay. Die Bewegungen sind hier noch nicht im Mittelpunkt, aber wird mit eins der wichtigeren Dinge sein. Wenn wir uns nicht dumm anstellen, dann modellieren wir die Bewegungen etc. so, dass man sie jederzeit modular erweitern kann. Unity-Style eben. Hier habe ich mit Hilfe von Freemind eine kleine Mindmap gemacht. Das werden ich dann einfach immer weiter ausbauen.

Mr. Clown

Mr. Clown

 

Mr.Clowns Spielchen [TAG 3]

INTRO
Ich habe gerade scheiß Kopfschmerzen und schauen mir noch das hier nebenbei an: Video
Aber ich versuche ein wenig zu machen. Da ich noch an dem scheiß Level arbeite, kann ich euch keine gute Visualisierung meiner Idee liefern ... noch nicht. CHARAKTER
Deswegen beschäftigen wir uns mit dem Charakter und seinen dämlichen Attributen etc.. Klaro wird der Charakter noch weitere Fähigkeiten und Attribute erhalten, aber diese sind die ersten, die mir eingefallen sind und die wir ausarbeiten müssen, bevor wir uns noch mehr Arbeit auferlegen. Warum? Weil man als Einzelner nicht sofort riesige Bereiche abgecken kann ... es fährt zu zu viel Arbeit und verläuft am Ende im Sand. Ich habe mit meinem kaputten TabletPen versucht ein paar Visualizations zu machen. Ich erläutere dann die behinderten Dinge auf dem Bild.
INVENTAR
Das Inventar wird auf den folgenden Items der Spielfigur basieren: Taschen an den Hosen (2x) für die mittelgroßen Items Tasche am Oberarm für die kleinen Items Rucksack für große Items Gürtel für ganz kleine Items Aus dieser Auflistung können wir schon mal folgende implizite Anforderungen erkennen: Es gibt Items. Diese Items liegen in unterschiedlichen Größen vor. Die Größe bestimmt den Abladeort.
  Was ist der Sinn davon?
Ganz einfach. Wir wollen ein Survivalspiel machen, also muss der Char ein paar Dinge mitnehmen können, die ihm beim Überleben helfen. Da ist es dann auch wichtig zu wissen, welche Items denn wichtig sind und welche nicht. So wird der Spieler immer entscheiden müssen zwischen: Rucksack nehmen, dadurch Gewicht erhöhen und somit langsamer werden und die Ausdauer senken Ohne Rucksack Gewicht sparen, aber keine eventuell wichtigen Dinge mitnehmen können Genau wie im echten Leben eben. Wenn ihr 20 Sekunden Zeit habt Dinge aus eurer Wohnung zu nehmen und abzuhauen, was würdet ihr nehmen? Ganz nach diesem Motto soll auch unser Inventar aufgebaut werden. ATTRIBUTE
Wie ihr seht, habe ich ein paar Attribute reingetan. Diese sind Basicattribute, das heißt, sie sind immer da. Es ähnelt dem Prinzip der starken und der schwachen Entität aus den Datenbanken.
  Was heißt das nun wieder?
Easy. Schau euch folgende Attribute in der Liste an und sagt mir, was man davon streichen kann: Geburtsdatum Alter Name Geschlecht Klarer Fall, Alter: Alter. Das Alter ist ein schwaches Attribut, man kann es aus anderen Attributen herleiten, in diesem Fall: Geburtsdatum. Ergo kann ich Alter kicken.
Ich beschreibe noch kurz die dämlichen Attribute, die ich gewählt habe. Moral
Wie bereits zuvor erläutert wird dieses Attribut die Aktionen des Spielers bewerten. Wenn man eine gutmütige Figur hat, aber schlechte Taten macht, dann wirkt sich das negativ auf die Figur aus. (Panik, Selbstzweifel etc. ... habe das aber noch nicht notiert) Ausdauer
Bestimmt, wie lange man Rennen kann, bei aktuellem Gewicht und aktuellen Effekten. Bestimmt auch die Widerstandsfähigkeit gegenüber Schlägen/Giften etc. Stärke
Bestimmt welche Objekte wir bewegen können und welche nicht. Spielt auch bei Interaktionen zwischen den Spielfiguren eine wichtige Rolle. Intelligenz
Anders als bei vielen anderen Spielen wird IQ hier am Anfang des Spieles erstellt und einmalig ermittelt. Man wird dann z.B. in Kategorien eingeteilt: clever, dumm etc.. Jedes Schloss(?) hat dann ebenfalls eine Kategorie. Diese muss man mindestens erfüllen können, wenn man es öffnen will. Reflexe
Damit wird der Delay zwischen den Aktionen der Spielfigur gesteuert. Autorität
Damit wird die Wahrscheinlichkeit ermittelt, mit der ein NPC den Anweisungen des Spielers folgt.
Hier sind noch ein paar weitere Attribute, die in dem Spiel vorkommen sollten. Hunger
Wenn der Hunger zu stark wird, verweigert die Spielfigur eventuell den Gehorsam und eilt zu der nächsten Nahrungsquelle. Als Anleitung für Nahrungsmittelversorgung wollte ich mich an dem hier richten: Link Durst
Ähnlich dem Hunger, tritt aber schneller ein. Batterieanzeige
Die Batterie wird hauptsächlich (vorerst) für die Taschenlampe eingesetzt. Batteriestärke beeinflusst Lichtkegel, Helligkeit und Reichweite der Taschenlampe. Im Snapshot seht ihr, wie ich mir die GUI ungefähr vorstelle. Mich stört dieses normale GUI-Zeug, wo alles statisch an den Rändern angezeigt wird. Besser ist es doch, wenn die Info da angezeigt wird, wo sie hingehört, right? MOVE

Wie ihr seht, habe ich momentan nur 3 Zustände. Idle, Walk und Use. Man kann von jedem Zustand in Idle rein.
  Wieso hast du keinen Zustandswechsel zwischen Use und Walk?
Tja ... anfangs habe ich mich auch gefragt, wie ich das machen sollte. Aber da bei meinem Spiel der Schwerpunkt auf Überleben liegt, muss das Überleben nun auch schwieriger gestaltet werden. Das erreichen wir, indem wir die Aktionen selbst verlangsamen, dadurch wird das Attribut Reflexe erst überhaupt sinnvoll. Im echten Leben ist es ja auch so, dass man immer erst in den Ruhemodus kommen muss, bevor man was anderes machen kann. Oder kann jemand den Kühlschrank im Lauf auffüllen? Bye neee. Ihr Penner.

Mr. Clown

Mr. Clown

 

SKYRIM

SKYRIM Das erste Mal, als ich es installiert hatte und loslegte, war ich voller Zuversicht. Immerhin hatte mir so einiges an OblivionIV gefallen und so dachte ich mir: "Hey! Was kann man da noch falsch machen?" Einige werden sich wundern, da ich kaum fluche etc. aber in diesem Spiel gibt es eigentlich keinen Grund dazu. Als jemand mir steckte, dass das Spiel auf Konsolen ausgelegt war, kamen mir die ersten Zweifel. Aber da war es schon zu spät, ich hielt das Game in meinen Händen.
Ich muss aber zugeben, dass das Spiel anfangs ganz gut wirkte. Das lag aber wohl eher daran, dass die Probleme sich erst im Laufe des Spiels (also beim Sammeln von Dingen etc.) erkennbar machten. Die Grafik ist okay ... nichts Besonderes, aber okay. 
Was mich total genervt hat war die Tatsache, dass man nur so wenig an Zeug mitnehmen konnte, da das maximale Tragegewicht schnell erreicht worden ist. Ausdauer konnte und wollte ich nicht skillen, da ich Magier war. Aber okay, halb so wild ... dumm nur, dass man auch nicht rennen konnte, wenn man überladen war. Wenn ich mich recht entsinne war es in OblivionIV nicht so ... da konnte man immer noch rennen, aber die Ausdauer ging schneller zur Neige. Es ist sowieso ein Witz, wie das realisiert worden ist. Z.B.: Mein Tragegewicht beträgt 6000/280 ... ich bin also total überladen. Ich kann dadurch nicht rennen, aber komischerweise kann ich weiterhin springen und schwimmen. Logik? Wayne, das war mir dann eh egal. Was mich mehr gestört hat war die Tatsache, dass man beim Abbau von Erz etc. nur 2~3 Erze bekam und dann die Ader leer war ... also bitte. Die Ader ist so groß wie mein Haus und ich bekomme trotzdem nur 2 Erze da raus?! Kommen wir zu dem wichtigen Zeug: INVENTARSYSTEM
Omg ... omg ... meiner Meinung nach hat sich die gesamte GUI in Skyrim zurückentwickelt. Wenn man die Details und Informationsgehalt vergleicht, so merkt man, dass Skyrim irgendwie unfertig erscheint. Hier ein Beispiel:

Skyrim

OblivionIV Man merkt sofort den Unterschied. Witzig ist auch, dass wenn man etwas herstellen will etc., so muss man bei Skyrim auf das Objekt draufklicken und dann noch einmal bestätigen. Ich hatte 200 Felle, die ich zu 200 Leder verarbeitet habe ... 200 Doppelklicks ... 
Wieso hat man nicht einfach eine Abfrage gemacht wie: "Wie viele wollen sie herstellen?" Ist das so schwer? Haben die Entwickler je selbst das Spiel gespielt? Denen muss das doch aufgefallen sein ... Behindis. Schlimm ist es auch, wenn man Dinge ablegen will (im Schrank oder so). Ich hatte fast tausend Items. Die Entwickler haben so ein tolle Funktion eingebaut, die heißt "Alles nehmen". Und diese Taste liegt genau neben der Taste für "Ablegen". Okay ... so kam es wie es kommen musste, ich legte also mein tausend Sachen ab (~1000 Klicks, weil die Trottel keine "Alles ablegen"-Funktion eingebaut haben ... außerdem muss man ab 6 Items (gestapelt) das Ablegen bestätigen ... wobei unter 6 tatsächlich 6 mal geklickt werden muss). Kurz vor dem Finish habe ich mich in der Taste vertan und er hat alles wieder aufgenommen.


Auch das Leveln hat mir keinen, aber so gar keinen, Spaß gemacht. Obwohl das eines der Dinge ist, dass man nutzt, um Spieler beim Spielen zu halten. Schaut euch mal das hier an ...

Sieht gut aus? Ja, ist ja auch NICHT Skyrim. In Skyrim hat man nur ein paar bunte Striche. Also man merkt schon übelst, dass die Steuerung nicht wirklich für Tastatur und Maus ausgelegt ist. Scheiß Konsolen ...  ... machen alle Spiele kaputt und züchten eine neue Generation von Idioten heran ... die nicht wissen, was ein Strategiespiel ist. Warum sollte man also Skyrim spielen?

Ach ja. Was mich auch tierisch stört ist diese lahme Kampagne. Ich werde hier mal nicht spoilern und euch nur so viel erzählen: Ihr müsst die Oberpfeife Alduin töten, einen dummen Drachen. Ihr reißt in die Totenwelt, wo die ganzen Pseudohelden wie Thor und so leben (ich glaub Hitler dort gesehen zu haben) und dann holt ihr euch drei dieser "Helden" und mit denen tötet ihr dann den Drachen.
Oops, das ist ja das Ende von dem Spiel ... SPOILER ALARM.
Die Endsequenz war ... nicht vorhanden. Man killt den Drachen und dann geht das Spiel ganz normal weiter, als hätte es nie etwas gegeben. Kein Scheiß. Keine Sequenz, keine Credits, nichts. Ich hatte schon gedacht, es sei ein Bug oder sowas. Aber nein ... kein Bug. Die anderen Nebenquests sind auch nicht so das Wahre. Ich hasse Quests vom Typ: Sammle 10 XYZ ... töte XYZ ... tja ... das war's eigentlich. Viel Abwechslung gibt es in dem Spiel nicht. Oft sind die Quests auch so gestaltet, dass man quer durch die Karte reisen muss. Wenn ihr also eine Quest ganz rechts unten nehmt, so könnt ihr euch sicher sein, dass das Ziel ganz links oben sein wird. Die KI ist die Bezeichnung nicht wert, aber diesen Verfall beobachte ich schon seit Jahren. Kein Spiel hat eine KI. Nur noch schwache Scripts, die man in 5 Minuten durchschaut hat. Immer das selbe. Jedenfalls blockieren eure NPCs euch, so dass ihr nicht vor Feinden fliehen könnt etc. Manchmal laufen die auch im Kreis oder nehmen Wege, die nicht nachvollziehbar sind.
Hier ein Beispiel:

Rot = mein Weg, Grün = NPC Route. Und so ist es immer ... wenn ein Kampf beginnt, merke ich, dass der NPC nicht da ist, sondern irgendwo am Arsch der Welt rumpimpert. Hier sei noch kurz erwähnt, dass wenn man im Wasser steht, können die Nahkämpfer einen nicht mehr angreifen. So habe ich 2 Mammuts und einen Riesen mit einem Bogen gekillt. Einfach im Wasser gestanden, auf so einem Felsen. Es hat auch noch andere lustige Bugs. Bei einem Freund von mir fliegt das Pferd manchmal einfach weg. Bei mir war die Kapuze der Diebesgilde transparent und ist dann komplett verschwunden (auch aus dem Inventar). Etc. etc. Aber sonst ist das Spiel okay. Wäre OblivionIV nicht so verbugged, hätte ich mir Skyrim nie gekauft. Egal ... vergesst nicht den Nude-Patch drauf zu machen, falls ihr mal zocken wollt.

Mr. Clown

Mr. Clown

 

Mr.Clowns Spielchen [TAG 2A]

INTRO
Ich habe im letzten Eintrag ein paar Dinge vergessen zu erwähnen und mir scheint es so, als seien die Beiträge zu lange ... deswegen würde ich gerne wissen, ob ihr mehr kürzere (sinnvollere) Einträge wollt. Außerdem ist mir beim Lesen aufgefallen, dass es wohl sehr "umschweifend" (ich würde sagen: geistig behindert) formuliert ist. Schwer zu erkennen, worum es eigentlich geht. Deswegen... SPIELIDEE
Ein Survival-Spiel, bei dem der Schwerpunkt auf Überleben ausgelegt ist. Dabei ereignen sich auf der Karte diverse destruktive Ereignisse, die dem Spieler zusetzen. Die Welt kann manipuliert werden. Der Spieler kann mit vielen der Dinge interagieren (auch anderen Spielern). Die Hauptunterschiede zu anderen Survival-Spielen sind: Die Figur kann niemanden töten Die Figur muss kein bestimmtes Ziel erfüllen, sondern bis zu seiner Rettung überleben Ungewöhnliche Attribute des Spielers werden aufgenommen (Moral, Reflexe etc.) Zufällige spielerbezogene Ereignisse finden statt (Stolpern, Panik etc.) [FRAGE] Was ist so dumm an MMORPGS oder anderen Spielen, in denen man Klassen und/oder Skills selbst wählen kann?
[ANTWORT] Die meisten Spieler nehmen die selben Klassen und/oder skillen ihre Figuren auf identische Art. Der Spielspass und die Diversität gehen dabei flöten. Wie oft hat man schon andere Spieler getroffen, die wirklich alle nach dem selben Schema F vorgehen.
[LÖSUNG] Verwerfung des bisherigen Levelsystems. Mein Wunsch ist es, dass der Spieler durch seine Figur gefördert wird und sich an IHRE Attribute anpasst und nicht umgekehrt. Das bedeutet konkret: Der Spieler erhält eine zufällig generierte Figur zu Spielbeginn.
Wenn die Figur ein Fettsack ist, so muss der Spieler sich eben daran anpassen und seine Strategie ändern. Es wird Ungerechtigkeit geben. Mir gehen die "balanced" Charaktere tierisch auf die Nerven. Niemals kann ein Mönch einen Ninja killen. Das will ich ebenfalls realisieren. Die Figuren sollen alle so unterschiedlich sein wie es nur geht. Dadurch wird auch Teamplay und Fun gefördert. Die Figur levelt automatisch und zwar durch Spielerreaktionen. Hat der Spieler eine hohe Reaktionsfähigkeit (multiple erfolgreiche Aktionen in kürzester Zeit t), so wird die neue Zeit t dem Reflex-Attribut der Figur hinzuaddiert. Wenn die Figur stirbt, so ist sie für immer weg. No Saves, no Continues.  Was genau hast du dir bei Punkt 4 gedacht?
Ganz einfach. Bei Spielen wie Bomberman ist es ja nicht weiter tragisch, wenn die Figur stirbt etc.. Das Selbe gilt auch für Worms. Außerdem werden dadurch die Achievements sinniger ... stellt euch vor, ihr habt 100 Spiele mit ein und derselben Figur geschafft. Das ist eine Errungenschaft (nicht wie bei manchen Spielen, wo man sich nur eine runterholen muss, um die Errungenschaft zu erhalten). Außerdem hat dies einen weiteren sehr interessanten Vorteil. Ich will ja, dass die Figuren auch miteinander interagieren können. Man kann ihnen helfen oder ihnen schaden. Wäre doch interessant zu sehen, was ein Spieler macht, wenn er die Wahl hat zwischen: Fremden Spieler schubsen und den Zombies überlassen, dadurch kann man selbst etwas Zeit gewinnen Fremden Spieler aufheben und mit ihm in das nächstbeste Haus stürmen und verbarrekadieren Dadurch würden die Spieler zu Teamplay gezwungen und es wird lustig, wenn die Freunde einen im Stich lassen und sich einen Ast ablachen. O Man! Ich habe schon nach zehn Sekunden verloren, was soll ich nun tun?!
Kein Problem, kleiner Billy. Wenn ein Spieler zu Beginn eines Spieler bereits stirbt, so kann er eben für die Zombies weiterspielen, aber indirekt. Er kann der KI hinweise geben, wo sie sich versammeln sollten oder wo sie angreifen sollten. Ebenfalls kann der tote Spieler z.B. den Aufschlag eines Meteoriten bestimmen oder den Ursprung eines Brandes. Man sieht, je mehr zu Beginn sterben, umso schwieriger wird es für die restlichen Spieler. Klar, jetzt könnten welche mit Absicht sterben und ihre Freunde durch Fehlleitung der KI pushen. Aber das kann man durch Reduzierung der Eingriffsmöglichkeiten beheben. Was heißt das? Das heißt, dass der tote Spieler nur alle 1.5 Minuten eine Entscheidung fällen kann. OUTRO
Ich bin gerade dabei ein Beispiellevel aufzubauen mit Hilfe der Bauelemente, die ich im AssetStore verkaufen wollte. So wird sich erweisen, ob es tauglich ist ... die sind schon seit zwei Monaten auf PENDING.  EDIT:
Ich habe nun zwei Bilder hinzugefügt. Das gelbliche Licht soll einen Sonnenuntergang darstellen, ihr Wichser. Die Tür und die Schubladen etc. sind alle frei rotierbar. Da werden dann Items abgelegt oder die Figur versteckt sich im Schrank etc.

Mr. Clown

Mr. Clown

×