[Unity] Die Silvester-Inseln: Es lebe das Schwarzpulver

Übersicht Kommentare Worklogs


 

PhillipK

Link zu diesem BeitragDo, Jan 17, 2013 23:56
Alter oô

Wenn du das so umsetzt.. und die grafik stimmt Very Happy Kann das richtig was werden Wink
Was wirdn das, GTA: Liberty Silvester Story ? Very Happy

Kurz und knapp: Verzettel dich nicht. Wäre schön, wenn du grundlegende sachen bauen könntest und vieles vom spielkrams aussen vor lässt! Solange das grundkonzept stimmt, kann man immernoch erweitern. Und wir können früher was antesten Smile
(Was intressieren mich npc die ich alle anlabern kann, wenn ich sie doch viel lieber hoch jage? Ein paar sind okay, aber alle.. oder zumindest erstmal nur Grunddialoge ohne ton Razz... Oder ein editor, um die welt zu ändern - ey, sprengstoff her!)

Klingt auf jedenfall witzig.
Eine bitte: Keine realisitische Grafik. Es muss keine full hd grasstextur hin, wenn ein paar lieblich harmonierende Grüntöne es auch tun.. und bei so ner abgefahrenen spielidee darf man doch nicht mit COD4 grafik auffahren Razz Aber naja, ich bin gespannt auf die umsetzung *kleiner pyromane ist*

Spark Fountain

Betreff: Ich geb mir Mühe ;)

Link zu diesem BeitragFr, Jan 18, 2013 00:53
Danke schonmal für die ermunternden Worte Smile. Natürlich habe ich mir schon Gedanken gemacht, welche Sachen erstmal wichtig sind und was bisher nur theoretisch geplant ist. Wieviel ich bis wann umgesetzt kriege, ist auch abhängig davon, wieviel Zeit ich in den nächsten Monaten habe, und wie lange ich brauche um die Funktionalitäten zu implementieren (bisher läuft das zum Glück recht flott).

Eins kann ich schonmal verraten: Sobald an dem Editor noch ein paar Feinheiten verbessert bzw. ergänzt sind, mache ich mich erstmal an die Mehrspieler-Funktionalität. Es wird einen Ort geben, der den Namen "Pyranha-Arena" trägt (wobei Pyranha ein fiktionaler Name einer Firma ist, die Feuerwerkskörper herstellt. Die bekommen später auch noch nen eigenes Logo etc. Wink). Diese Arena sieht von außen aus wie ein kubischer Kanonenschlag, und man kann drinnen einen der beschriebenen Spielmodi wählen (Deathmatch, Lichtshow oder "Aufräumen").

Selbst bis das einigermaßen laufen wird, können möglicherweise noch 2-3 Monate vergehen, aber ich geb mein bestes. Sobald es was Testbares gibt, werde ich die entsprechende Pre-Alpha-Version zum Download anbieten. Ich werde sowieso auf die Meinung von Testspielern angewiesen sein, wie gut das Multiplayer-Verhalten ist bzw. ob es "fair" ist etc.

Erst wenn das einigermaßen gereift ist, mache ich mich an die Modellierung von Häusern, Fahrzeugen und sonstigen Objekten, erst dann wird die ganze Musik komponiert und die Story implementiert... Es ist also noch ne Menge Arbeit zu erledigen, aber sobald das Spiel erstmal für mehrere Spieler funktionsfähig ist, hat man sicherlich schonmal seinen Spaß daran (auch wenns später mal noch viel umfangreicher werden soll^^).


Viele Grüße
Gewinner der MiniBCC's #11, #13 und #28
 

Lador

Link zu diesem BeitragDo, Jan 24, 2013 16:45
Klingt echt ambitioniert. ^^
Ich hoffe wirklich, dass du die Zeit und die Motivation hast, das durchzuziehen, oder zumindest irgendwann mal eine einigermaßen spielbare Version zu veröffentlichen.

MFG Lador
Mein aktuelles Projekt:
2D-Rollenspiel "Iliran"
Screenshot | Worklog
Fortschritt: ca. 70%

Xeres

Moderator

Link zu diesem BeitragDo, Jan 24, 2013 20:18
Schön, dass dir klar ist, dass du viel vor hast.
Als allererstes solltest du eine Versionsverwaltung bemühen (git natürlich), falls du das noch nicht getan hast, um durch größere (oder kleinere) Änderungen nicht mit einem Funktionslosen dummy da zu sitzen und alle Lust zu verlieren. Denn zumindest ich bleibe länger bei einem Projekt, wenn ich den Erfolg sehe (git log) und etwas funktionierendes vorweisen kann.
Soviel der gut gemeinten Ratschläge, ich bin dann mal gespannt, wie es ausgeht.

Viel Spaß & viel Erfolg!
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Spark Fountain

Betreff: Versionsverwaltung

Link zu diesem BeitragFr, Jan 25, 2013 12:27
Danke erstmal für die positiven Kommentare!
@Lador: Ich werde in den nächsten drei Wochen erstmal mit der Präsentation eines Softwareprojekts sowie Klausurlernen beschäftigt sein, aber dann ist das Semester rum und ich hab viel Zeit, um weiter am Projekt zu arbeiten. Deshalb halte ich Ende März als Datum für eine erste spielbare Multiplayer-Version für realistisch. Allerdings lege ich da vor allem Wert auf ein gut funktionierendes Gameplay und darauf, dass das Spiel stabil läuft. Deshalb werden die Texturen vermutlich erstmal provisorisch sein, was das Spielerlebnis aber hoffentlich nicht trüben wird Smile.

@Xeres: Ich benutze jetzt keine Software wie Git oder SVN, aber ich lege regelmäßig Backups an von bestimmten Änderungen, die ich vorgenommen habe. Natürlich mit entsprechenden Kommentaren, damit ich weiß, was da eigentlich genau drin steht^^. Es ist von Vorteil, dass ich allein an dem Spiel entwickle, denn dadurch kenne ich meinen Code zu 100%; und da ich mindestens jeden zweiten Tag ein bisschen daran arbeite, vergesse ich auch nicht so schnell, was ich wo implementiert habe. Die Funktionalität ist für den Editor weitestgehend implementiert, jetzt folgt die Spiellogik.
Gewinner der MiniBCC's #11, #13 und #28

DAK

Link zu diesem BeitragFr, Jan 25, 2013 13:36
Schaut nicht schlecht aus, wenn du es durchziehst.
Noch ein paar Tipps zwecks großen Projekten aus eigener Erfahrung:
-Verzettel dich nicht in Content. Mach den erst am Schluss. Ich hab in einem Spiel von mir ein doch recht komplexes Map-Format erstellt, und den Fehler gemacht (weils Spaß gemacht hat), von Anfang an einige Maps zu erstellen. Jedes Mal, wo ich irgendwas am Map-Format geändert habe, habe ich alle Maps updaten müssen, damit sie immer noch mit meinem Spiel kompatibel sind.
-Wenn du technisch aufwändige Sachen einbauen willst, tu das, wenn das Spiel noch klein ist. Ich wollte z.B. bei einem Spiel, an dem ich da schon seit einem halben Jahr geschrieben hatte, einen Multiplayermodus einbauen. Keine Chance. Geht einfach nicht mehr. War schon viel zu spät, und einfach nicht für Multiplayer ausgelegt.

Viel Spaß ansonsten!
Gewinner der 6. und der 68. BlitzCodeCompo
 

PhillipK

Link zu diesem BeitragDi, Feb 19, 2013 15:58
Huhu!

Ich möchte einen kleinen Wiederspruch gegen die "wann explodiert rakete" planung einlegen.
Würde pur auf die Z Koordinate geschaut werden, gibts bei hügeln etc ein problem. Ausserdem finde ich, das es wieder sehr künstlich wirkt.
Stattdessen würde ich auch hier eine Zeitspanne (5-10 sekunden als beispiel) bevorzugen, bis die rakete explodiert. Nicht jede Rakete, egal ob baugleich oder nicht, explodiert zum gleichen Zeitpunkt.
als beispiel:
Du baust etwas ein, was das paralele zünden von 10 Raketen ermöglicht. Diese starten also nach zufälligen 5-7 sekunden und explodieren alle an der exakt gleichen höhenposition. Fände ich sehr schade - ein bisschen differenz wirkt einfach besser.
Mögliche auslöser die mir einfallen:
-> Weg zurückgelegt (pro bewegungsupdate den speedvektor auf einen puffer addieren, ist die länge des Vektors > Wunsch-wert ist eine explosion möglich) (anmrk: Auch beim bewegungsspeed sind geringe zufallsdifferenzen cool. Die eine rakete fliegt mit 4.9m/s², die andere mit 5.1m/s²)
-> Zeit des fliegens (4.5-5.5 sekunden als beispiel)
-> Höhe, mit variation.Aktuelle höhe - starthöhe als "zurückgelegte höhe-wert". Nun noch eine differenz von 55-60metern e voila!


Natürlich gibt es auch feuerwerkskörper die ziemlich krass kontrolliert sind. Selbst geringe produktionsabweichungen werden aussortiert. Diese explodieren zb nach 5.1 bis 5.15 sekunden - also ziemlich identisch. Könntest du auch mit einbauen, falls eine mission ziemlich Starke rahmenbedingungen hat. Diese könnten dann aber beispielsweise Teurer sein Smile

------

kleines ps:
Schreibe den editor fertig, oder zumindest brauchbar ins Beta stadium. Baue eine Speichern / Ladefunktion ein und überlasse der Community den rest. Wenn jeder auch nur 3 dinge zusammenschustert, hast du keinen streß mit Content und kannst dich auf programmlogik konzentrieren. E voila, hast nen dicken batzen an raketen,böllern, scherzartikeln, welche du zum testen nutzen kannst. Und natürlich auch für die erste Beta des spiels Smile

Spark Fountain

Betreff: Danke für den Tipp :)

Link zu diesem BeitragMi, Feb 20, 2013 18:45
Hey PhillipK,

danke für den Tipp mit den Hügeln! Daran hatte ich noch gar nicht gedacht, dass die Raketen dann "kürzer" aufsteigen würden, wenn man auf dem höchsten Gipfel steht. Auch deine Alternativ-Vorschläge sind recht praktisch. Das mit der Zeitdauer hatte ich auch schon überlegt, d.h. dass man die Rakete nach z.B. 10 bis 11 Sekunden in der Luft explodieren lässt. Nur hatte ich ein paar Bedenken, ob ich dann kompliziert herumrechnen muss, welche Höhe sie bis dahin erreicht hat; aber das ist eigentlich in der Tat nicht so furchtbar wichtig Wink.
Ich werde das ganze also noch etwas überdenken und deine Vorschläge auf jeden Fall mit einbauen. Danke nochmal!

Was den Editor angeht, habe ich mit dem Bugfixen bereits angefangen. Laden und Speichern war schon implementiert, allerdings muss ich das nochmal überarbeiten, weil ich einen Denkfehler gemacht hatte: Ich habe alle Objekte (egal welcher Kategorie) von ein und demselben Type erzeugt, namentlich WorldObject. Zuerst dachte ich, das sei praktisch, weil es dann ganz eindeutige ID's von allen existierenden Objekten gibt etc. Aber dann ist mir aufgefallen, dass die verschiedenen Kategorien ja auch ganz unterschiedliche Attribute haben! Ein Fahrzeug braucht eine Masse, Beschleunigungsverhalten etc., ein Mensch hingegen besteht aus Animationen, hat bestimmte "Fähigkeiten" etc., und ein Karton, der auf dem Boden liegt, braucht eigentlich nicht viel mehr Infos als Position und Drehung.
Deshalb werden nun doch alle Elemente beim Speichern in Kategorien unterteilt. Zwar stehen noch nicht alle Attribute pro Kategorie fest, aber das alte Konzept hätte auf kurz oder lang enorme Probleme bereitet.
Langer Reder kurzer Sinn: Funktionsfähig wird der Editor in den nächsten Tagen sein, aber bis alle Features implementiert sind, dauert es noch ein Weilchen. Dazu muss ich auch alles nochmal fertig durchdenken, damit ich später keinen doppelten Aufwand habe.
Gewinner der MiniBCC's #11, #13 und #28
 

PhillipK

Link zu diesem BeitragMo, Feb 25, 2013 15:21
Ach iwo. Rumrechnen der höhe is doch simples mathe.

Wenn: Du DeltaTiming hast, gilt dein speedvektor als "einheiten pro sekunde" - dementsprechend reicht es, wenn du startposition + (auftrieb * lifetime) - (graviation * lifetime) machst. Warum du die höhe wissen willst, ist mir allerdings schleierhaft ^^
Wenn du kein DeltaTiming hast.. dann fang besser damit an! Smile Sonst explodieren die Raketen den Spielern auf schlechten pc's direkt vor der nase, wärend leute mit krassen gaming pc's die exlposionen garnicht mehr sehen, weil die raketen so schnell fliegen *grins*

Spark Fountain

Link zu diesem BeitragMo, Feb 25, 2013 17:35
Hm, ich hab mal den englischsprachigen Wikipedia-Artikel zum Thema "Delta Timing" angeschaut (den Begriff kannte ich nämlich noch nicht). Aber ist das nicht letztendlich ein ähnliches Verfahren, wie es der BlitzBasic Timer benutzt? (Den ich natürlich verwende Wink)
Ich habe jetzt allerdings nochmal etwas anderes vorgeschoben, nämlich will ich die GUI jetzt komplett auf Devil's GUI umstellen. Meine war bisher recht buggy und ich will nicht mehr ewig viel Zeit damit verschwenden, so banale Funktionen zu implementieren wie "welches Fenster muss jetzt im Vordergrund sein" oder "welche Variable kümmert sich um welchen Button" usw. Zumal es ja eine Engine dafür gibt Smile.
Gewinner der MiniBCC's #11, #13 und #28

DAK

Link zu diesem BeitragMo, Feb 25, 2013 20:40
Delta Timing, so wie PhillipK es meint, ist im Grunde, dass du die momentane Position als mathematische Funktion dieser Art ermittelst:

Momentane Position = Startposition + (Auftrieb * Flugzeit) - (Graviation * Flugzeit)

Wobei Flugzeit die Zeit ist, die sich das Ding schon in der Luft befindet.

Um das Ganze in 3D zu machen, brauchst du 3 Gleichungen:

posX = startX + (auftriebX * Flugzeit) - (gravitationX * Flugzeit)
posY = startY + (auftriebY * Flugzeit) - (gravitationY * Flugzeit)
posZ = startZ + (auftriebZ * Flugzeit) - (gravitationZ * Flugzeit)

Durch AuftriebX, -Y und -Z kannst du die Richtung des Auftriebs als Vektor einstellen (so z.B. wenn die Rakete schief fliegen sollte). Das Gleiche gilt für die Gravitation (ist dort aber eher sinnlos, da die meistens gerade nach unten geht.

Ist alles nix Besonderes, einfach nur Funktionen und Vektoren.

Damit kannst du dann, statt von Höhe oder Entfernung auszugehen, einfach sagen, die Rakete brennt ~5 Sekunden, also wenn die Rakete irgendwo in den Bereich kommt, dann lässt du sie explodieren. Das wär dann auch näher an der Funktionsweise echter Silvesterraketen heran, weil die fliegen auch nur so lange, bis ihr Pulver aufgebraucht ist, und nicht, bis sie eine bestimmte Höhe erreicht haben (wär aber cool, dann würd ich sie waagrecht feuern^^).

PS: Durch herausheben läße sich die Formel vereinfachen:
Momentane Position = Startposition + (Auftrieb-Gravitation) * Flugzeit
Und das dann für jede der drei Koordinaten.
Gewinner der 6. und der 68. BlitzCodeCompo


Übersicht Kommentare Worklogs