Wie gesagt, die Interesse hier scheint sich sehr begrenzt zu halten.Aber wenn man selten was von euch hört, wirds schwieriger.
Ausserdem ist es ja nicht soo schwer ab und zu mal den Worklog zu checken, oder? Das reicht schon, um immer auf dem neusten Stand zu sein.
Ich führe zwei Worklogs paralell und das macht mir schon genug Arbeit, einen dritten (der aber etwas inaktiver wär) könnte ich atm nicht machen.
mfG
Naja, gut, aber wenns fertig ist, schon sagen
Hm, klar ist es nicht schwer ab und an mal einen Worklog zu checken, aber wenn ihr interesse wollt dann müsst IHR die News verteilen. Und wenn ihr das immermal wieder macht, dann wird sich das interesse bald auch steigern.
@Eduard Bär: Klar, habe ich ja Anfangs hier auch gemacht, aber irgendwann antwortet niemand mehr und dann ist man sich zu blöd 3 mal Worklog zu führen
Na gut, für die Faulen, hier direktkopie aus dem letzten Worklogeintrag:
So, ein weiterer Worklogeintrag, für die Interessierten.
Also, zuerst steht da im Titel Reformen. Was ist damit gemeint? Es sind in letzter Zeit einige Reformierungen in der Programmierung von Tehadon im Gange. Soll heissen, ich habe mich endlich dazu durchgewrungen SVN zu benutzen, und habe auch angefangen die Arbeit jetzt mit nem TicketTrac zu arbeiten.
Jetzt steht einer einigermassen ordentlich ablaufenden Entwicklung nichts im Wege, denn jetzt können wir schon zu zweit an Tehadon arbeiten. Willi hat sich bereit erklärt die Physik, Kamerasteuerung, GUI zu inplementieren. Ich werde dann asbald HDSS in Tehadon einfügen. Das kann aber erst geschehen, wenn die vielen Bugs einigermassen weg sind.
Sobald das getan ist, gehts mit Vollgas an den IAOs, anschliessend ans Inventar und paralell ans NPC-Itemsystem. Die DGF-AI müsste auch mal erweitert werden.
Ansonsten, fehlt nicht mehr sooo viel, um mal ne Techdemo rauszuschmeissen. Ich muss aber sagen, das dieses "nicht so viel" wohl noch einiges an Arbeit fordern wird.
Kommen wir zu HDSS. Ich dachte mal euch erst einen kleinen Überblick, was schon alles funktioniert, zu schaffen.
So, ich hoffe ich habe nix vergessen. Ansonsten, was noch grösseres fehlt ist:
- If-Abfragen, boolsche Operatoren (==, >, <, =>, <=)
- Mathe-Operationen: +, -, * (Divisionen gibts noch nicht)
- verschachtelte Terme à la print (len (parse (1+15)));
- externe Invokes (Befehle)
- Do-Schleife
- OOP:
- Klassenerstellung (noch intern)
- Instanz-Erstellung
- Member-Zugriff
- interne Methoden
- Prozeduren
- Variabeln
- bequem bedienbares Interface (sfhIF, siehe einen Beitrag oben)
- Precompiler:
- #include, #includeDir zum Includen von Dateien / Ordnern
- #replace zum ersetzen eines textes im Skript
- Textressourcen
Zum letzten Punkt: das kommt erst richtig dran, wenn ich die Alpha rausbringe.
- AND/ OR/ XOR
- While
- Funktionen mit Rückgabewerten
- Punkt-vor-Strich (habe ich wieder entfernt, ein neuer Ansatz muss her)
- bugs-killen
Gut, kommen wir zu diesen Textressourcen, die ihr oben vlt bemerkt habt. Was sind das? Ich habe die heute eingebaut, zuerst aber muss ich euch vom HDSS-Zwischencode erzählen.
HDSS-Zwischencode besteht praktisch nur aus Zahlen. Wieso? Weil Integers viel schneller verarbeitet werden können, als Strings. Und trotzdem wird der Zwischencode immer als String eingeladen und gecastet. Warum, das ist doch viel langsamer? Ganz einfach und banal: die HDSS-Strings werden ja auch im Zwischencode gespeichert. Und einen String mit Zahlen darzustellen war mir zu umständlich. Aber jetzt nur wegen Strings das ganze etwa 10% langsamer machen? Nein, natürlich nicht, also hatte ich die Idee Strings in separaten Dateien mit einer ID zu speichern. Diese ID ist ein Integer-Wert. Wird jetzt im Zwischencode ein String aufgerufen, wird einfach die ID angegeben, und da alle Strings dann von dieser Textressource in einen Array kommen, geht das sauschnell.
Ist vlt etwas kompliziert, desshalb ein Beispiel:
Ein normales HDSS-Skript.Code:print ("das ist ein Text"); print ("das ist auch ein Text");
Jetzt die Textressource-Datei:
Wie gesagt, HDSS-Zwischencode besteht praktisch nur aus Zahlen, aber in diesem Beispiel verdeutliche ich das mit Strings.Code:1=das ist ein Text 2=das ist auch ein Text
Der daraus generierte Zwischencode:
Seht ihr, was nach 'STRING' kommt? Eine ID. Das ist die ID der Textressource-Value. Ich hoffe ihr versteht was ich meine, irgendwie habe ich etwas wirr beschrieben. Wenn Fragen vorhanden sind, sind sie wie immer hier willkommen.Code:PRINT STRING 1 PRINT STRING 2
So, diese Textressourcen funktionieren bereits einwandfrei.
Als nächsten Schritt werde ich den Zwischencode nicht mehr als String sondern als Int einlesen lassen. Ich erhoffe mir damit mindestens 10% Speedgewinn, was wirklich sehr erfreulich wäre.
So, leider ist durch HDSS Tehadon etwas kurz gekommen, in letzter Zeit. Aber es geht nicht anders, dafür sollte ab jetzt mehr geschehen.
Ich habe mal, vor langer Zeit, nämlich am 2. Mai 2008, eine Tehadon-Mitarbeiter-Demo rausgegeben. Natürlich nur Team-intern. Dort habe ich diverse Dinge gezeigt, so z.B. den Maploader, das Dialog-System, TA-System der NPCs, Quest-System und noch das Skriptevent-System.
Man konnte eine kleine mehrteilige Quest lösen.
Nun, diese Demo war ziemlich verbuggt und so, wesshalb die Öffentlichkeit noch gar nix davon sah. Wird sie wohl auch nicht.
Ich wollte euch aber trotzdem ein paar Screens zeigen, heute stiess ich zufällig auf den alten Game-Content und probierte es aus. Dabei habe ich ein paar Screens gemacht. Allzu schön sind sie nicht, aber wenigstens etwas sichtbares.
[Bild: MtDemo_01.JPG]
[Bild: MtDemo_02.JPG]
[Bild: MtDemo_03.JPG]
An der komischen Schrift-Verzerrung ist JPG Schuld.
Dieser untexturierte NPC übrigens ist von Domi. sieht etwas komisch aus, ohne Texturen, aber die Animationen sind ziemlich schön. Die meisten jedenfalls.
mfG
Wieviele Leute arbeiten denn insgesamt daran?
Und wenn ihr den Fortschritt in Prozent angeben müsstet, was würdet ihr sagen?
Baut ihr eure eigene Programmiersprache? Oder was ist HDSS?
Ich finde die Hütte sieht schon voll gut aus. Zu den Personen kann ich mich nicht äußern, da sie ja noch nicht fertig sind und so der erste Eindruck wohl trügt.
Der Eingang sieht iwie aus wie Ardea xD
Hütte und Zaun sieht wirklich recht gut aus, die Brücke aus dem Worklog auch (ja, ich kann lesen xD). An Boden und Umgebung (Horizont) wird noch gearbeitet, oder? Der Boden sieht mir zu leer aus und der Hintergrund sieht unrealistisch aus. Zu den Figuren kann man nur was sagen, wenn sie dann texturiert sind.
Ich poste für ilir, er hat im Moment Schwierigkeiten mit der Anmeldung im Forum. Nein, ich bin nicht im Team.
Wir sind im Moment 7 Leute.Wieviele Leute arbeiten denn insgesamt daran?
Und wenn ihr den Fortschritt in Prozent angeben müsstet, was würdet ihr sagen?
In Prozent anzugeben ist immer schwierig, ich würde die Game-Engine etwa auf 50-70% schätzen
HDSS ist unser Skriptsystem, welches wir für Tehadon benutzen. Das besondere (na gut, so besonders isses jetzt auch nicht) ist daran, das die Skripte in einen Zwischencode kompiliert werden, welcher relativ schnell ausgeführt werden kann.Baut ihr eure eigene Programmiersprache? Oder was ist HDSS?
Ich finde die Hütte sieht schon voll gut aus. Zu den Personen kann ich mich nicht äußern, da sie ja noch nicht fertig sind und so der erste Eindruck wohl trügt.
Der Boden ist natürlich echt hässlich, aber ich werde mich demnächst wieder um Terrains kümmern. Die Figur ist wie gesagt noch nicht texturiert, das macht ja dann einiges aus.Der Eingang sieht iwie aus wie Ardea xD
Hütte und Zaun sieht wirklich recht gut aus, die Brücke aus dem Worklog auch (ja, ich kann lesen xD). An Boden und Umgebung (Horizont) wird noch gearbeitet, oder? Der Boden sieht mir zu leer aus und der Hintergrund sieht unrealistisch aus. Zu den Figuren kann man nur was sagen, wenn sie dann texturiert sind.
mfG
So, jetzt gehts wieder.
Ich denke die meisten Fragen wurden beantwortet, ich füge trotzdem noch ein paar Dinge hinzu.
Unser Tool-Programmierer hat zwei Videos vom Skriptsystem- samt dem externen Editor veröffentlicht.
In beiden ist die Klasse 'Image' in Action zu erleben. Link.
Desweiteren gibts drei Screenshots zu sehen. Neu sind sie nicht, sondern sicherlich nViertel Jahr alt. Wers trotzdem interessiert, ihr könnt sie auf der Tehadon-Seite anschauen. Alles weitere steht im letzten Newseintrag.
Bei Fragen stehe ich hier gerne zur Verfügung
mfG
Na gut, die Interesse scheint ja doch etwas abwärts gegangen zu sein.
Egal, es sind ein paar kleinere Dinge geschehen.
Wers interessiert, soll ab hier lesen.
mfG pm
ps: Für Fragen und Feedback bin ich wie immer offen.
Prinzipiell ist interesse da (zumindest von mir), aber ich kann mit diesen ganzen Dingen die ihr macht nichts anfangen... viel interessanter wäre da ein story einblick oder aber eine genauere erklärung dessen was ihr macht. es ist bestimmt furchtbar interessant was ihr macht, aber ich versteh nichts davon...
Es gibt eben ~10 Leute, die aber nicht alle dauernd was schreiben.
Welchem Spiel soll euer Spiel denn eig am meisten ähneln?
Diversen. Die NPCs sind denen von Gothic teilweise nachempfunden, das Gameplay besitzt viele eigene Elemente, das Kampfsystem ist dem von Gothic1/2 etwas ähnlich, gepaart mit vielen Action-Elementen wie Physik (Telekinese oä) und teils dynamischem Umfeld (verschiebbare Objekte, etc)
So, ich habe zwei Bilder für euch. Natürlich noch höchst Work in Progress. Am besten ihr ingoriert den Terrain. Später kommt da noch einiges an Gras drauf, was das ganze etwas schöner macht.
[Bild: september_screen_06.PNG]
[Bild: september_screen_07.JPG]
mfG
Solltet ihr bereit sein euer Game unter eine OpenSource-Lizenz zu stellen, könntet ihr euch an anderen OpenSource-Games bedienen was Texturen, Modelle, Scripte und Sourcecode angeht.
Aus aktuellem Anlass hätte ich da z.B. das OpenSource-Spiel "Yo Frankie!" im Sinn.
http://www.yofrankie.org
Modells und sonstige Ressourcen unter GPL oder Creative Commons-Lizenz gibts hier:
http://graphicall.org/bbb/index.php
und vielleicht auch woanders. Keine Ahnung.
Natürlich gibts auch noch andere OpenSource-Games bei welchen man sich bedienen könnte. Aber Yo Frankie! hat nach meiner Kenntnis zurzeit eine der besten Grafiken im OpenSource-Bereich, wobei zu beachten ist, dass es auch noch in Entwicklung ist.
Moralische Bedenken sich bei OpenSource-Projekten zu bedienen seh ich keine. Dazu ist OpenSource da und das macht OpenSource so stark, nur solltet ihr bereit sein Änderungen zurückzugeben.
Man muss das Rad ja nicht immer wieder neu erfinden und kann sich so vielleicht besser auf andere Dinge konzentrieren.
Tehadon wird kein Opensource, wir werden aber das Skriptsystem z.B. unter desselbigen rausgeben.
mfG
ich hoffe ich habe gerade etwas verlesen.
Ihr wollt doch nicht das Skriptsystem unter die GPL stellen? Da würde ich glatt eine andere Lizenz wie die LGPL nehmen. Denn die GPL schließt es aus das euer Spiel als Freeware vertrieben werden kann.
Das nur mal als kleiner Tipp.
Hat mal wer von euch versucht das Spiel mit Wine laufen zu lassen?
Also, wegen des Lizenz-Krames: wir sind noch nicht so weit, und atm ist das auch nicht so wichtig.
Wenn wir dann einen entsprechenden Stand erreicht haben, werde ich mich genauer mit dem Lizenz-Kram auseinandersetzen
Getestet hat es noch niemand auf Wine, aber das wird sicherlich bald jemand machen. *hust* akaz
mfG
So, nach längerer Zeit melden wir uns auch hier zurück.
Natürlich ist die Entwicklung nicht stehen geblieben, es ist einiges geschehen!
Ich versuche euch mal das nötigste zu erzählen, alles weitere kriegt ihr ansonsten wie immer im Worklog mit.
So, beginnen wir im Bereich Programmierung. Die HDSS-Skriptengine, die ich vor ca. 2 Monaten begonnen habe neuzuschreiben, hat schonmal nen Status erreicht, in welchem es ins Spiel gebunden werden konnte. Im Worklog steht eigentlich sehr viel über HDSS, aber ich erkläre euch hier trotzdem mal kurz worums geht: HDSS ist die Skriptengine die wir für Tehadon entwickelt haben. Die Skripts werden in einen Zwischencode kompiliert, welcher dann relativ schnell ausgeführt wird.
Dabei unterstützt die Sprache alles, was wir gebraucht haben. Eines der ersten Anforderungen war Speed. Natürlich kommt HDSS niemals an Lua und konsorten ran, aber es hat doch einen akzeptablen Speed.
Dann war eine weitere Anforderung an die Sprache selbst, das sie möglichst bequem ist. So besitzt die Sprache Elemente wie Variabeln, ein vereinfachtes OOP-Konzept und was da sonst noch dazugehört. (If-Abfragen, Funktionen, Events usw.)
Unser Tool-Programmierer hat mal zum Spass ein Tutorial für HDSS gemacht. Erklärt wird die simple Image-Klasse.
Noch etwas wichtiges. Dieses Video da nutzt eine ziemlich alte Nativ-Version von HDSS. Diese Bugs wie das Leerzeichen vor Invoke-Klammern etc, wurden schon seit längerem gefixt. Hier könnt ihr euch das Video anschauen (ca 800 kb)
Nun gut, das System ist erstmal fürs weitere fertig gestellt, hat zwar noch ziemlich viele Bugs, die werden jedoch fortlaufend behoben. So, als dieses Systemchen fertig war, musste ich wieder alle Spiel-Systeme anpassen. Das waren NPC-, Dialog-, Item-, Quest-, Eventsystem, und noch einige kleinere mehr.
Dazu sind jetzt auch die IAOs, Interactive Objects drin. Das sind so Dinger wie eine Bank, ein Amboss, ein Schleifstein, ein Bett und noch so paar Dinger.
Die sind zu 100% extern geskriptet, dafür erstellt man einfach eine Instanz der Klasse (IAO) und belegt diese üblich mit Eigenschaften.
Hiermal das Skript einer Bank:
Und jetzt das Ingame-Screen dazu:Code:// IAO var $bench; var $user; $bench = new (IAO); $bench->mesh= loadMesh ($mod->meshDir."IAO_Bank_01.3DS"); $bench->name= "Bank"; // Fokus-Name $bench->range= 200;// Aktions-Radius void $bench :: onStart () { if (B3DDistance3D ($user->entity,$bench->activeWP) > $bench->range) { $user->gotoWP ($bench->activeWP); addTrigger (pos($user->targetWP), ref($bench::onArrive)); } else { $this->onArrive (); }; }; void $bench :: onArrive () { $user->alignToEntity ($this->mesh); $user->sit (); }; void $bench :: onEnd () { $user->standUp (); };
http://tdata.td.funpic.de/_User/_Pea..._screen_06.PNG
Und hier bei Benützung:
http://tdata.td.funpic.de/_User/_Pea..._screen_07.JPG
Und bevors jetzt Kritik bezüglich dieses NPCs hagelt: Nicht final.
Dann hier noch ein Bild bei einem Dialog. Auch 100% extern geskriptet.
http://tdata.td.funpic.de/_User/_Pea..._screen_08.PNG
Nun,dann wurden endlich die Partikeleffekte inplementiert. Ich habs lange vor mir hergeschoben, aber irgendwann wurde es echt Zeit.
Die Partikeleffekte sind auch wieder extern geskriptet, hier Beispielsweise ein kleines Feuer:
Dann würde das ungefähr so aussehen:Code:$path="data\gfx\particle\Particle_008.png"; $fire = new (pfx); $fire->interval = 1; $fire->emitterlifetime = (-1); $fire->texture = $path; $fire->setParticleLifetime (10, 25); $fire->setParticleSize (60, 140); $fire->alphavel = 1; $fire->setTemplateColor (255,255,0,255,0,0); // den PFX bei einem Waypoint positionieren PFX_InsertWP ($fire, "TEST_WAYPOINT");
http://tdata.td.funpic.de/_User/_Pea..._screen_10.PNG
oder so
http://tdata.td.funpic.de/_User/_Pea..._screen_11.PNG
Dann habe ich auch das Slotsystem der NPCs bearbeitet. Bild dazu:
http://tdata.td.funpic.de/_User/_Pea..._screen_09.PNG
Und ja, die Füsse sind auch nicht final.
Wer noch mehr Bilder sehen will, sollte hier mal schauen.
Wie gesagt, das ist noch lange nicht alles, wer interessiert kann aber gerne mal das Forum , die Seite , oder den Tehadon-Channel besuchen.
mfG
Das sieht alles sehr gut aus, liest sich auch ganz hervorragend, aber kannst du nicht noch immer kurz dazu schreiben was das genau bedeutet, also in verständlicher Form, dass man auch als Nicht-Coder mitkommt?