Technik / Diary

Forum für das was nicht direkt Fate betrifft. Aber dennoch irgendwie hier hin gehört. z. B. reLINE
Biing!2 Download-Dateien

Moderatoren: Xajorkith, erni, Asgard

Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

Ich mißbrauche mal das Forum hier als vorläufigen Projektbericht.

Sobald sich etwas sehen läßt, wandert das Zeug natürlich auf eine Internet-Seite zum Projekt, solange verbleibt aber alles noch hier.

In diesem Strang möchte ich über Technisches am Projekt reden und Zuhören und gebe ab und an Infos zum Stand der Dinge.

Wer diesbezüglich Fragen hat, nur zu.
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

Status-Bericht:
Ich schreibe für das Spiel (und andere) eine Art DirectX-Konsole, welche die Arbeit mit DirectX übernimmt. Im Moment konzentriere ich mich voll auf die 2D-Grafik Funktionen des cDirectX-Objekts.

Derzeit führt cDirectX selbstständig eine Bilderliste. Man kann eine .BMP Datei laden lassen und beliebig auf den Bildschirm blitten. Wird versucht, ein Bild mehrmals zu laden, erhält man lediglich die Bildnummer, unter der es bereits geladen ist.
Daneben gibt es einen Object-Handler, der später die korrekte Wiedergabe aller Objekte übernimmt. Der Object-Handler kann die enthaltenen Objekte nach X, Y oder Z Koordinate sortieren.
Auf diesem Weg bin ich später nicht an Kartenraster gebunden und kann beliebig große Objekte an beliebigen Stellen platzieren, auch fallengelassene Objekte müssen nicht festen Positionen in einem Raster liegen, sondern können frei platziert werden, auch übereinander (die Objekte haben schließlich auch eine Z-Koordinate).
Ich mache mir allerdings über die Geschwindigkeit Gedanken.
Ein Auszug aus dem Time-Logfile:
|konsole.bmp 47 millis
|added 121 objects in 3 milliseconds
|blitted 120 objects in 20 milliseconds

Um die gesamte Konsole zu blitten, braucht mein Testrechner 47 Millisekunden.
Für eine Frame-Rate von 10 Frames/Sekunde bleiben dann nur noch ca 30 Millisekunden für den Rest der Arbeit!
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

Schade, schade.

Mein bisheriger Provider hat vor kurzem die Füße gestreckt.
Wie auch immer, ich ab jetzt unter `ner neuen eMail zu erreichen:
LordFinster@t-online.de
Alle eMails der letzten Wochen sind wahrscheinlich ins Nirvana abgeritten, falls was von euch dabei war, schickt es doch bitte zu dieser Adresse.

Cheerio.
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

/-------------------------------------------------------
Neues zum Kartenformat:
Die Karten werden 65536 x 65536 `Einheiten` groß. Eine Einheit ist dabei ein Bildschirmpixel bei 800 x 600 Auflösung.
Das gibt ca. 81 x 110 Bildschirme pro Karte.
Alle Objekte sind `freischwebend` in den Karten untergebracht und werden in einer Rasterstruktur zur schnelle Auffindung gespeichert. Die Rasterkarte fasst immer 128 x 128 Einheiten zusammen und belegt genau 1 MB + 2 Byte pro Objekt.
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

Jemand hat mal hier irgendwo gesagt, beim Spieleprogrammieren müsse man alles irgendwann einmal umschmeißen.
Demnach dürfte ich was richtig machen. Das Konzept für die Karten hab` ich jetzt zum dritten Mal komplett über den Haufen geworfen - und dabei bin ich noch nicht einmal bis zu den grafischen Vorgaben gekommen, sondern immer schon im technischen Konzept hängen geblieben.
Naja, ich hoffe, ich kann beim jetzigen Entwurf bleiben.
Die Leistungsfähigkeit und der Größenbedarf scheint jedenfalls vielversprechend.
Ich werde Karten von 128 x 128 Feldern Größe verwenden. Wie groß ein solches Feld ist, mach` ich erstmal von der Geschwindigkeit abhängig, mit der sie gezeichnet werden können. Davon hängt dann natürlich auch ab, wieviele verschiedene Tiles eine Karte enthalten darf. Ich rechne mit ca. 1000 verschiedenen grafischen Elementen, die zu Tiles zusammengestzt werden können.
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

Nach dem ganzen Feier-Zeits-Streß erste Neuigkeiten.
Die Map-Engine sieht schon ganz gut aus, auch wenn alle Funktionen eher provisorisch zusammengeschraubt sind - aber ich befinde mich ja auch noch im frühesten Entwicklungsstadium.
Die Karte wird (zwar noch nicht optimiert, aber immerhin) korrekt gezeichnet. Was jetzt noch fehlt, sind dynamische (bewegliche) Objekte und viiiiieeeeeeel Grafik.
Ich habe schon mal einen Screenshot (*Hüstel*) an Xajorkith geschickt, damit er ihn evtl. veröffentlicht.
Was darauf zu sehen ist, habe ich mit MoRay und POV erstellt. Das ist im Anfang recht mühsam, aber man kann sehr fix die Objekte in allen nötigen Perspektiven erstellen.

Als nächstes stehen ein paar Utilities auf dem Plan, sowas wie ein MapMaker und File-Uts für diverse Grafikaufgaben.

Ein vorläufiges Fazit aus dem Projekt hab` ich aber schon:
DAS NÄCHSTE MAL PROGRAMMIER ICH EIN SPIEL IN 3D! DAS IST LEICHTER!!!!!!!!
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Benutzeravatar
Roy
Ritter/Amazone
Ritter/Amazone
Beiträge: 571
Registriert: Mo 30.07.2001 - 09:26
Wohnort: Köln

Beitrag von Roy »

@ darklord: *gg* glaub das bloß nicht!8o
Linux is like a wigwam:
no windows, no gates and an apache inside
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

Das war kein Glaubensbekenntnis, sondern eine Tatsache.
Ich hab` mich lange genug mit 3D-Programmierung herumgeschlagen um sagen zu können:
Wenn man bei 3D einmal den Knackpunkt hat, wird alles nur noch leichter (das Programmieren betreffend) - bei 2D nimmt die Menge und Schwere der Probleme proportional zur Anzahl der bereits gelösten Probleme zu.
Natürlich würde ich genau das Gegenteil behaupten, würde ich gerade an einem 3D-Projekt arbeiten ;)

Die größte Schwierigkeit in 3D ist, die Menge an Objekten zu verringern, die man zeichnen muß und schnell auf die Objekte zugreifen zu können, die zu zeichnen sind.
Bei 2D fängt schon alles damit an, wie man den ganzen Schlunz, den man benötigt im Speicher unterzubekommen.
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Benutzeravatar
Roy
Ritter/Amazone
Ritter/Amazone
Beiträge: 571
Registriert: Mo 30.07.2001 - 09:26
Wohnort: Köln

Beitrag von Roy »

@Darklord
Da hast Du wohl recht :rolleyes:

Ich gehe ja auch von meiner Situation aus. Obwohl ich ein recht leistungsstarkes 3D-System zur Programmierung benutze, habe ich dennoch so meine Schwierigkeiten X(
Aber ich bin ja quasi blutiger Anfänger in Sachen 3D 8o

Jedoch, es wird schon. :smokin:

CU
Roy
Linux is like a wigwam:
no windows, no gates and an apache inside
Benutzeravatar
Xajorkith
Inquisitor
Inquisitor
Beiträge: 4889
Registriert: Fr 13.07.2001 - 12:07
Wohnort: Bremen Fate2.exe-12.03.2007
Kontaktdaten:

Beitrag von Xajorkith »

So, ich hab das erwähnte Bild upgeloadet.
Sowie die anderen beiden nochmal auf meinen aktuellen Server. :)

Das aktuelle Bild
Konsolenschema
Titelbild
Zitadelle Asgard / Fangrorn
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

So, ich hab` wieder etwas gebastelt.

Der Prototyp kann jetzt ein echtes, flimmerfreies Front/Back-Buffer Flipping. Die Darstellung ist jetzt 100%ig stabil.

Außerdem mißt er jetzt auch die Framerate. Auf dem Testrechner (Pentium III/800 mit Matrox G200 AGP & Matrx G200 PCI und 512MB Ram) erreichte durchschnittlich 25 Frames/Sec. Wie repräsentativ das ist, wage ich jedoch zu bezweifeln. Ein anderer Rechner mit besserer Grafikkarte und 866 mHz, aber nur mit DirectX 7 kam nur auf durchschnuttlich 15 Frames/Sec.
Ich werd` das mal weiter testen und meld` dann das Ergebnis.
Es geht ja nicht an, das F2ndD nur auf Rechnermonstern läuft, wenn erstmal alles implementiert ist.
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

Ein Fall für die X-Akten:
Ich wollte gestern die Darstellungs-Routine für die Spielwelt ein wenig entmotten und verbessern.
Derzeit läuft die Routine drei mal durch die gesamte Karte, zeichnet beim 1. Mal alle Böden, dann alle Carpets (=Teppiche ;) ) und dann alle `Contents` (= Szenerie) - bei letzterem klinken sich dann noch die Actors, also die NPCs und Monster ein.
Der Plan war, stattdessen 1 Mal durch die Karte zu rappeln und in einem Schwung Boden, Carpet, Content und ggf. auch einen Actor zu zeichnen.
Soweit zum Plan. Das Ergebnis produzierte einen häßlichen, perspektivischen Fehler bei Tiles, die größer als 1x1 waren (das Haus im Screenshot #2) und ließ die Frame-Rate mal eben auf 1/2 bis 1/3 abstürzen.

Ein kleiner Trost aber: ich hab` ein paar Macken in der Routine noch finden und ausmerzen können - nur muß ich immer noch dreimal durch die Karte ackern.
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

So, jetzt hab` ich`s geschafft, die Karte platziert sich jetzt pixel-genau, somit ist ein weiches Scrolling möglich.
(Wenn ich den Aufbau der Karte entsprechend puffern kann, damit die frames schnell genug kommen)
Bei 20 fps und 30 Pixeln pro Feld Horizontal und 80 Vertikal, würde es unangemessen lange dauern, ein Feld zur Seite zu scrollen - zumindest Pixel für Pixel.
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

Zum Thema Frame-Rates (siehe das Post ein Stück weiter oben)

Ich hatte Sorge wegen der evtl. geringen Frame-Rate, die meine Rechner produziert haben - das hat sich quasi erledigt. Bei all dem Gemauschel, `wie schnell kann ich die Frames dumpen` et c. habe ich ganz vergessen, daß ich eine konstante Frame-Rate gar nicht benötige.
Zum Ersten war gar nicht geplant, Animationen in die Tiles der Landschaft zu bringen,
Zum Anderen ist für einen gewissen Umfang an Animation in der Szene auch keine Frame-Rate nötig.
Animationen zeichnen sich dadurch aus, das sie sich nach einer gewissen Zeit wiederholen. Animierte Stellen der Szene müssen also nur `auf Vorrat` gezeichnet werden und zyklisch an die richtige Stelle gezeichnet werden.
Ich hab` auch schon nen Plan dafür. Ist zwar etwas aufwendig, aber ich setze mal voraus, daß ich bis 64 MB RAM vollkleistern kann, ohne mit swappen anzufangen ;)
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

Ich habe den Darstellungswinkel von 22,5° auf 45° aufwärts geändert. Man schaut so mehr von oben auf die Szene. Zum einen ist dieser Winkel mehr konform mit anderen Isos, zum anderen werden so etwas weniger Felder pro Screen dargestellt, was der Performance zu Gute kommt.
Da die Szenerie nicht mehr so flach ist, wird`s hoffentlich auch etwas übersichtlicher.
Ein neuer Screenshot kommt, sobald die Grafiken umgestellt sind.
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

So, der neue Screenshot ist raus : http://www.millennium.multiservers.com/ ... nshot3.jpg


Ich habe ungefähr den selben Ausschnitt gewählt, wie im letzten Screenshot.
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

Jubel! Trubel! Heiterkeit!
Ein neuer Screenshot - diesmal mit der vorläufig entgültigen Entwurfsversion der Konsole. Der Bereich Party&Characters ist noch nicht fertig, aber da ich das endgültige Format der Party-Steuerung noch nicht kenne ...

http://www.das-drachenland.de/images/screenshot4.jpg

Aber schon schick, gell?
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Die neue Generation

Beitrag von darklord »

Im Zuge der Umstellung von DX7 auf DX8 hatte ich beschlossen, die Grafik-Engine neu zu gestalten.
Statt der Tile-Based Blitter-Engine verwende ich jetzt echt 3D-Grafik, um die Spielwelt zu rendern.
Das ganze bleibt natürlich isometrisch und orthagonal, aber die Felder der Spielwelt sind halt 3D-Objekte. Das vereinfacht die Arbeit größtenteils, ich brauche mir keine Gedanken mehr über Perspektiven-Fehler und Beleuchtung machen. Auch Effekte wie Nebel, Regen, Tageszeiten et c. sind recht einfach realisierbar.
Im Moment mache ich gerade eine Experimentierphase durch, um zu sehen, wie ich am besten mit Texturen umgehe und um eine Marschrichtung für's Design festzulegen.
Natürlich darf man keine Grafik-Engine á la DungeonSiege oder Neverwinter erwarten, aber ich bemühe mich.

Der derzeitige Plan sieht so aus:
Der Handlungsbereich (der komplett im Speicher zu sein hat) wird aufgeteilt in Boden, Statische Elemente, Dynamische Elemente und Aktive Elemente.
Außerdem wird alles in kleine 'Zonen' organisiert, die es möglich machen, gezielt auf Änderungen zu achten (falls eine Zone außerhalb des Sichtbereichs liegt).
Der Handlungsbereich scrollt bis zu seinen Grenzen, wo man ihn dann verlassen kann - wie bei Fallout und Neverwinter.
Ferner wird es (mindestens) zwei Größenmaßstäbe geben: die Detailstufe (für Dungeons, Städte und Kampfplätze ...) und die Übersichtsstufe (für Reisen Überland et c.)
Letztere ist stark vergrößert und zeigt z.B. Gegnergruppen als eine Figur an, genau wie die Party.
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

Dann wollen wir diesen Thread auch mal auf den letzten Stand bringen:
Was schon fertig ist :top:
Ich kann 1000 Texturen und 1000 3D-Objekte (Templates!) verwalten (wenn genug Hauptspeicher vorhanden ist), um die Szene zu bevölkern.
Es gibt einen Objekttyp, der den Boden der Szene stellt und der sich nur aus Höhenpunkten und Texturentyp zusammensetzt (letzterer wird noch bearbeitet, funktioniert jedoch in groben Zügen schon).
Jedes 3D-Template kann an einer beliebigen Stelle mit jeder verwalteten Textur gerendert werden, ich kann also in einer Szene reichlich individuelle Objekte unterbringen (z.B. Personen und Kreaturen).
Die Grafik-Engine nähert sich also der ersten Stufe ;)
Was jetzt dran kommt :P
Funktionen für Sprites, Billboards und OnScreen Display - dürfte nicht allzulange dauern
SceneManager, der alle Objekte und Daten einer Karte verwaltet und Rendern läßt.
Die MainFrame des Spiels muß noch geplant werden, solange läuft das Game dann in einer Minimal-Schleife (Standardkarte, rumlaufen und Leute anquatschen/aufnehmen und ein bißchen kämpfen).

So, das war's vorerst wieder.

'Thanks-Giving, wir kommen voran.' - Dale Griffith in 'Ticket für Zwei :))
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Benutzeravatar
darklord
Ritter/Amazone
Ritter/Amazone
Beiträge: 588
Registriert: Mi 18.07.2001 - 14:05
Wohnort: Tower Tangramayne, links von New Magincia
Kontaktdaten:

Beitrag von darklord »

So, dann will ich euch mal auf den neuesten Stand bringen und euch erzählen, womit ich mich im Moment beschäftige.
Ihr sollt ja auch sehen, daß ich nicht faul bin und die Engine sioch stetig weiterentwickelt - auch wenn's nicht so schnell geht, wie ich gerne hätte.
Ich baue gerade eine 'Character-Engine' für die lebenden Erscheinungen im Spiel. Dabeio orientier ich mich stark an Morrowind, weil ich meine, daß genau dies hier sehr prima gemacht ist. Außerdem spart es sehr Zeit beim Modeln, da ich viele unterschiedliche Wesen aus den selben Körperteilen zusammensetzen kann. Ist auch erstaunlich schmal, das Prinzip. Eine komplette Figur hat im schlimmsten Fall 500 bis 600 Bytes plus die Models und Texturen - die ja, wie gesagt, von vielen Wesen zugleich benutzt werden können. Ein Humanoid besteht bis jetzt aus 16 Körperteilen (genau wie ein Vierbeiner:) ).
Ich hoffe, daß das System effektiv genug ist und daß ich so mit wenig Aufwand eine Vielzahl von Personen und Kreaturen auf einmal abdecken kann.
Kleiner Nebeneffekt: wenn alle Körperteile passen gebaut sind, ist die Animation einigermaßen einfach einzubauen.
Diplomacy is the art of telling some-one to go to hell and he is happy to be on his way.
Antworten

Zurück zu „Biing!2 und Anderes“