Ich finde die Lichteffekte Gameplay-technisch sehr interessant. Man könnte zum Beispiel einen Level bauen, in dem das Licht ab und zu an oder ausgeht, sodass man den richtigen Zeitpunkt abpassen muss, um nicht gesehen zu werden. Ich bin gespannt wie es weiter geht.
Registriert: Do Apr 09, 2009 12:51 Beiträge: 53
Programmiersprache: Lazarus
Hey, glückwunsch zur bestandenen Prüfung. Hast denn auch gesamt gut bestanden? *zu WiSo schiel*
OnT: Auch wenn ich eig so Spiegelungen nur auf Flüssigkeiten mag, schaut klasse aus! Das könnte man bestimmt auch taktisch nutzen. (man sieht durch die Spiegelung im Nebel reflektierte Taschenlampen oä )
Zuletzt geändert von mleyen am Di Feb 08, 2011 11:15, insgesamt 2-mal geändert.
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Die Screenshots sehen ja mal wieder richtig gut aus. Aber so als kleiner Tip : Wenn du Screenshots machst die du veröffentlichen willst ists immer ne gute Idee AA zu aktiveren, dann sehen die Shots noch ne ganze Ecke besser aus, die FPS sind dann ja relativ egal. Ansonsten sieht man was technisch mit deiner Engine möglich ist, besonders jetzt wenn man mal ein Setting sieht dass nicht fast komplett im Dunkeln liegt. Da wärs überlegenswert später im Spiel zumindest kurze Passagen einzubauen die evtl. außen liegen, z.b. Gewächshäuser oder kleinere Gärten. Muss ja nicht gleich ne komplette Aussenlandschaft sein. Auf jedenfall bin ich wie immer gespannt was für ein Spiel denn letztendlich dabei rauskommt.
An den Reflektionen müsstest du aber noch eine wichtige Kleinigkeit verbessern. Auf dem dritten Shot sieht man das sehr gut, denn die Reflektionen die im Schatten liegen wirken falsch und müssten meiner Meinung nach viel dunkler bzw. diffuser sein (evtl. im Schatten den Texture-LOD verschieben um sie unschärfer zu machen und dann noch verdunkeln?). Das wirkt nämlich etwas unnatürlich, sollte bei deiner shaderbasierenden Engine aber auch kein Problem darstellen.
P.S. : Auch von meiner Seite aus herzlichen Glückwunsch zum bestandenen Abschluss.
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Sieht schick aus Sag mal wo hast du das Model und die Texturen für das Atrium her ? Es schwirren viele Versionen im Netz rum aber entweder treffe ich tote Links oder halt die Orginal version(nie die mit Pflanzen oder den Stoff Bannern) an.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Registriert: Mi Mär 09, 2005 15:54 Beiträge: 372 Wohnort: München
Programmiersprache: Delphi, C#, FPC
Danke erstmal für die Glückwünsche und für das Feedback
mleyen hat geschrieben:
Hey, glückwunsch zur bestandenen Prüfung. Hast denn auch gesamt gut bestanden? *zu WiSo schiel*
Das Gesamtergebnisse habe ich noch nicht, muss noch auf die Post warten - bei WiSo bin ich mit meinen 86 Punkten vollkommen zufrieden (try-and-error funktioniert anscheinend doch manchmal )
Sascha Willems hat geschrieben:
Die Screenshots sehen ja mal wieder richtig gut aus. Aber so als kleiner Tip : Wenn du Screenshots machst die du veröffentlichen willst ists immer ne gute Idee AA zu aktiveren, dann sehen die Shots noch ne ganze Ecke besser aus, die FPS sind dann ja relativ egal.
AA ist bei mir ein relativ großes Problem -> Deferred Shading zusammen mit OpenGL 2.0 -> kein wirklich MSAA möglich. Im Editor - aus dem die Screenshots übrigens sind - habe ich jedoch kein AA aktiviert. Ich war erstmal heil froh, dass die Reflektionen endlich funktioniert haben, da ich einige Probleme mit den Lichtern hatte. Hatte die falsche Matrix bei den Lichtern angewendet wodurch ich ganz komisches Verhalten bei der Anzeige hatte. Das hat ganz schön Nerven gekostet.
Sascha Willems hat geschrieben:
Ansonsten sieht man was technisch mit deiner Engine möglich ist, besonders jetzt wenn man mal ein Setting sieht dass nicht fast komplett im Dunkeln liegt. Da wärs überlegenswert später im Spiel zumindest kurze Passagen einzubauen die evtl. außen liegen, z.b. Gewächshäuser oder kleinere Gärten. Muss ja nicht gleich ne komplette Aussenlandschaft sein. Auf jedenfall bin ich wie immer gespannt was für ein Spiel denn letztendlich dabei rauskommt.
Einen Height-Map-Generator, der aus einem Graustufen-Bitmap eine Landschaft zaubert hätte ich schon drinnen . Aber ich wollte mich aus Zeitgründen erstmal nur auf Innen-Levels beschränken. Ich muss da sowieso noch einiges ändern, da mein Octree noch nicht wirklich das Gelbe vom Ei ist. Ich wollte da auf ein Portal-Culling-Mode umstellen - aber das ist auch wieder eine große Baustelle.
Sascha Willems hat geschrieben:
An den Reflektionen müsstest du aber noch eine wichtige Kleinigkeit verbessern. Auf dem dritten Shot sieht man das sehr gut, denn die Reflektionen die im Schatten liegen wirken falsch und müssten meiner Meinung nach viel dunkler bzw. diffuser sein (evtl. im Schatten den Texture-LOD verschieben um sie unschärfer zu machen und dann noch verdunkeln?). Das wirkt nämlich etwas unnatürlich, sollte bei deiner shaderbasierenden Engine aber auch kein Problem darstellen.
Die Darstellung der Reflektions-Textur ist noch sehr primitiv. Bisher ist es ein einfaches Quad, auf dem nur die Reflektionstextur gebunden ist. Das Quad ist bei den meisten Screenshots auch nur per Blending (GL_SOURCE_COLOR, GL_ONE) draufgezeichnet. Aber da ist noch sehr viel Luft nach oben.
TAK2004 hat geschrieben:
Sag mal wo hast du das Model und die Texturen für das Atrium her ? Es schwirren viele Versionen im Netz rum aber entweder treffe ich tote Links oder halt die Orginal version(nie die mit Pflanzen oder den Stoff Bannern) an.
Gibs auf der Crytek-Webseite links unten. Dort dann das gewünschte Format (obj oder max) und das Texturpaket herunterladen.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Sascha Willems hat geschrieben:
An den Reflektionen müsstest du aber noch eine wichtige Kleinigkeit verbessern. Auf dem dritten Shot sieht man das sehr gut, denn die Reflektionen die im Schatten liegen wirken falsch und müssten meiner Meinung nach viel dunkler bzw. diffuser sein (evtl. im Schatten den Texture-LOD verschieben um sie unschärfer zu machen und dann noch verdunkeln?). Das wirkt nämlich etwas unnatürlich, sollte bei deiner shaderbasierenden Engine aber auch kein Problem darstellen.
Ich finde, dass das auf dem 5. Shot ziemlich perfekt ist. Auf dem 4. und 3. ist jedoch irgendwas anders, was die Reflektion merkwürdig erscheinen lässt.
Ansonsten schön mal wieder was vom Projekt zu hören!
greetings
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Do Jun 28, 2007 17:58 Beiträge: 193
Programmiersprache: Pascal, C
Hi,
zuerst muss ich (wie immer) sagen, dass die Screenshots super aussehen und auf mehr hoffen lassen.
Lord Horazont hat geschrieben:
Ich finde, dass das auf dem 5. Shot ziemlich perfekt ist. Auf dem 4. und 3. ist jedoch irgendwas anders, was die Reflektion merkwürdig erscheinen lässt.
Ja, irgendwas an der Mischung des reflektierenden Materials mit der Spiegelung ist falsch: Scheinbar ist diese Additiv, wodurch das Spiegelbild aufgehellt wird. Das Blending müsste aber normales Alphablending sein.
Ich wollte genau das Gegenteil sagen: In dem einen Bild liegt der Schatten über der Spiegelung, die ja additiv sein müsste. Aber ich denke igel hat da schon recht, wenn du das Spiegelbild zu 60% verwendest, sollte der Untergrund nur noch zu 40% einfließen. So wie wenn man sich vorstellt, man teilt die Oberfläche in kleine Spiegel und matte Flächen ein. Da wo gespiegelt wird, kommt weder die Grundtextur zum Tragen noch haben Schatten einen Einfluss. Ich schau da gerne auf mein spiegelndes Laptop-Display, das praktisch perfekt schwarz ist so dass man die Eigenschaften der Spiegelung bei verschiedenen Winkeln gut sehen kann. In der Source-Engine haben sie mehrere sehr niedrig aufgelöste statische Cube-Maps verwendet, um Spiegelungen auf Materialien darzustellen. Das funktioniert in besondere schlecht bei Materialien mit hohem Glanz (man erwartet mehr Schärfe) und bei großen Flächen, weil die statische Textur dann schnell nicht mehr zur Betrachterposition passt. Besonders gut passt es aber bei räumlich begrenzten Objekten mit vielen Flächen, die eine echte Spiegelung ohne Ray-Tracer teuer machen.
P.S.: Wie sieht es mit anisotrophem Texturfilter aus? 4x macht wie ich finde einen guten Eindruck ohne deutliches Aliasing.
Registriert: Di Okt 13, 2009 17:25 Beiträge: 365
Programmiersprache: C++
@Anti-Aliasing: Warum nimmst du nicht einfach Supersampling? Es ist imho am einfachsten zu implementieren und liefert außerdem die qualitativ besten Ergebnisse.
Ansonsten: Schön, dass es weiter voran geht. Weiterhin viel Erfolg mit deinem Projekt!
Zuletzt geändert von mrtrain am Mi Aug 31, 2011 17:50, insgesamt 1-mal geändert.
Ich verfolge dieses Projekt schon ewig lang und sehe das genauso wie Sascha: Aussenpassagen wären eine Überlegung wert. Ich finde auch die Screenshots vom Tag sehr schön, ein wahrer Genuss für das Auge, herrliche Farbabstimmung und das was Dich am meisten interessieren dürfte: schöne Grafik - was will man mehr. Es geht um das Stehlen. Ich weiß ja nicht was genau das nun heißt und welche Vorstellungen Du genau hast, aber viele Diebstähle können auch tagsüber stattfinden und wie schon gesagt, ist es nicht nötig das Spiel zur Grafikfehlervertuschung nur nachts spielen zu lassen, da es solche Fehler gar nicht gibt. Vielleicht ist es sogar besser wenigstens ein Tag-Level einzubauen, um gewissen Schlechtrednern die Argumente aus dem Mund zu nehmen, das Spiel spiele nur nachts weil die Engine nicht gut genug sei etc. blabla. Generell sind Außenareale aber geplant ? Das lese ich aus noch bestehender Arbeit mit Octrees zumindest raus. Dann könntest Du auch ein ganzes Anwesen als Level machen, bei dem man wirklich mal ganz von vorne einen Einbruch spielt. Was dieser Beitrag hier zeigt ist, dass es tonnenweise Möglichkeiten gibt, das Spiel noch weiterzuentwickeln. Daher bin ich sehr gespannt, wie es am Ende ist. Nur sicher dass es gut wird, bin ich mir schon lange. Aber was ich mich neulich fragte: Im Projektthema steht, es sei ein Multiplayerspiel. Gibt das nicht einen ziemlichen Run auf die Rolle des Diebs ? Man kann bei UT, CS etc. sein Team wählen, hier ginge das in dem Sinne ja nicht wirklich. Darin sehe ich ein kleines Problem. Es ist klar, dass man als Wächter ebenso Spaß haben kann. Nur denke ich, muss der Dieb mehr taktisch arbeiten als die Wächter, da diese mehr suchen und im Team abgesprochen eventuell Stellen absichern müssen. Ich liebe große CS-Maps, eben weil man sich suchen muss, nur damit zähle ich zu einer kleinen Gruppierung wohl eher. Ich hoffe halt einfach, dass dieses Spielkonzept sich als Multiplayer auch behaupten kann. Da Du so viel Zeit in das Projekt investierst, hätte sich das Spiel einen Platz bei den "großen" längst verdient, es ist eben auch einfach kein Spiel von der Stange. Was ich eben bloß sagen wollte ist, dass Du beim Leveldesign tierisch aufpassen musst, dass beide Teams gleichen Spielspaß haben, also die Wächter nicht wächtertypisch nur rumstehen sondern auch irgendwie im Level Möglichkeiten bekommen, taktisch aktiv zu agieren. Das stell ich mir recht schwierig vor, aber nach bereits so guter Arbeit ist auch das kein Problem .
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Wenn Singleplayer: Taglevel zum Auskunschaften nutzen.
Für Multiplayer: eventuell 3 Parteien: 1. Einbrecher (1-2Personen), 2. und 3. Team als Wächterteams (jeweils 2-3 Personen). Die Wächter spielen gegeneinander um "Beförderung" oder sowas.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Cool mal wieder was von dem Projekt zu hören. Das sieht alles schon mächtig gut aus. Eine Frage hätte ich da aber: Warum UDP? Ist das nicht eher unüblich ein verbindungsloses Protokoll für sowas zu verwenden?
Registriert: Di Okt 13, 2009 17:25 Beiträge: 365
Programmiersprache: C++
Schön, dass du dich mal wieder mit deinem Projekt meldest. Hab' mir das Video angesehen und es sieht schon echt heftig professionell aus. Respekt! Allerdings finde ich auch, dass du schon einiges an nebensächlichen Spielereien eingebaut hast (z.B. die Ladeanimation *g*). Vielleicht wäre die viele GUI-Arbeit besser in etwas anderes (Multiplayer, Logik) investiert gewesen... Aber ich bin selber kein Stück besser und kann das gut verstehen.
Ich hoffe, dass es demnächst wieder schneller voran geht. Mir gefällt das ganze sehr.
Seth hat geschrieben:
Eine Frage hätte ich da aber: Warum UDP? Ist das nicht eher unüblich ein verbindungsloses Protokoll für sowas zu verwenden?
Nein ist es nicht. Der Vorteil von UDP ist halt, dass keine Überprüfung stattfindet, ob das Paket richtig angekommen ist. Dadurch kommen die Daten (wenn auch nicht immer korrekt) sehr schnell beim Empfänger an, sprich man hat eine geringe Ping. Bei Spielen, in denen es auf schnelle Reaktionszeit ankommt, ist das von wesentlicher Bedeutung. Gerade bei Positionsdaten ist es nicht so schlimm, wenn die mal falsch übermittelt werden, denn sie werden ja einige Millisekunden später sowieso wieder aktualisiert. Edit: Außerdem sind mit UDP ja auch Multi-/Broadcasting möglich, was einiges an Bandbreite sparen kann.
Zuletzt geändert von mrtrain am Mi Aug 31, 2011 17:50, insgesamt 1-mal geändert.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Yess, Gael is back! Ich bin gespannt .
OT:
mrtrain hat geschrieben:
Seth hat geschrieben:
Eine Frage hätte ich da aber: Warum UDP? Ist das nicht eher unüblich ein verbindungsloses Protokoll für sowas zu verwenden?
Nein ist es nicht. Der Vorteil von UDP ist halt, dass keine Überprüfung stattfindet, ob das Paket richtig angekommen ist.
Es wird überprüft ob die Daten richtig ankommen, aber nicht ob sie in der richtigen Reihenfolge bzw. überhaupt ankommen. Wenn sie nicht richtig ankommen werden sie auch verworfen anstatt neu gesendet zu werden. Das ist aber wie mrtrain sagt überhaupt nicht so dramatisch. Wenn man einen Timestamp oder eine fortlaufende Nummer einbaut, kann man veraltete Daten verwerfen und wenn mal was fehlt interpoliert man einfach (geht besonders gut, wenn man nicht nur die Position, sondern auch deren Ableitungen (Geschwindigkeit, Beschleunigung) mitsendet).
greetings
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Mi Mär 09, 2005 15:54 Beiträge: 372 Wohnort: München
Programmiersprache: Delphi, C#, FPC
Danke erstmal für die Antworten,
@mrtrain: die "Spielerei" mit der Ladeanimation z.B. ist nicht so aufwendig gewesen. Bei der ProgressBar habe ich vor längerer Zeit extra diesen "Kachel"-Modus eingebaut, da ich das so ganz nett finde. Vom Aufwand her war die Implementierung jetzt somit relativ gering - geschätzt 30min. Daher ist das noch vertretbar .
Bezüglich UDP wurde ja bereits die korrekte Erklärung genannt: es findet keine Überprüfung statt, ob ein Paket ankommt oder nicht. Falls es also mal ein Paket verloren gehen sollte, wird nicht mehrmals versucht, das selbe nochmal zu schicken. Es kann z.B. sein, dass das Positions-Paket eine so große Verzögerung hat, dass der Inhalt "hoffnungslos veraltet" ist. Daher eignet sich UDP hervorragend für diesen Fall, da einfach Brute-Force-Mäßig jedes Paket losgeschickt wird und gehofft wird, dass es ankommt.
In vielen Engines ist es sogar so, dass die komplette Kommunikation über UDP abläuft. In der Engine selber wird dann meistens eine eigene, verlässliche Verbindungsüberprüfung eingebaut (somit TCP over UDP), doch das ist relativ komplex. Ich gehe daher den Weg über zwei Kommunikationspfade.
Eine TCP-Verbindung für Daten, die verlässlich und in der richtigen Reihenfolge ankommen müssen - wie z.B. "Neuer Spieler", "Runde beendet", etc. Als zweiten Kanal kommt dann eine UDP-"Verbindung" ins Spiel, in der alle unkritischen Befehle gesendet werden - wobei das hier die Positionsdaten usw. sind. Der Einfachheit halber benutze ich fürs erste nur die TCP-Verbindung für beide Message-Typen. Später will ich dann auf UDP umstellen. Da die Engine die Netzwerk-Kommunikation mit Hilfe einer abstrakten Klasse abstrahiert ist hat und nur diese Basis-Klasse direkt benutzt wird, muss ich somit nicht die eigentliche Kommunikation umstellen sondern nur einen anderen Kommunikationspfad auswählen. Die Abstraktionsschicht erlaubt mir zudem, beliebige Filter davor zuschalten. Z.B. einen Kommpressions-Filter, der den Datenverkehr On-The-Fly komprimiert und dekomprimiert - oder einen Verschlüsselungsfilter.
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.