Project - Desert (w.t.)

Kommentare anzeigen Worklog abonnieren
Gehe zu Seite Zurück  1, 2, 3  Weiter

Worklogs Project - Desert (w.t.)

Bilder ...

Dienstag, 27. Januar 2009 von eleXity
So,

leider hab ich das gestern nicht mehr geschafft, deswegen hole ich das nun nach.
Ich denke die Bilder sind selbsterklärend, viele Objekte brauchen noch ein wenig arbeit,
dh. die Texturen müssten noch überreitet werden, aber erstmal reichen die denk ich.

So nun die Bilder, viel Spaß ^^


bis zum nächsten mal ...

Neues Jahr, Neues glück ^^

Sonntag, 25. Januar 2009 von eleXity
Moin,

Als erstes wünsche ich, wenn auch etwas verspätet allen Lesern, ein Gutes und Produktives neues
Jahr 2009 Wink

nun zu meinen Updates :
- Ich habe viele kleine Bugs entfernt, sowohl in der Scriptengine als auch in dem Main framework

- Ich hab angefangen ein paar 3d Modelle in das von der Leadwerks engine benutzte Format .gmf, zu
bringen, was leichter gesagt als getan ist, allein um herauszufinden wie ich das am besten,
und schnellsten bewerkstellige hab ich 2 tage verbraten .... Evil or Very Mad

- Es können nun Items in der Scriptengine geschrieben werden, und an sogenannten Anchor points
eines 3D Modells angeheftet werden. (dies sind pivots die in einem Modeling Programm hinzugefügt
werden können, und spezielle namen haben, HAND_LEFT, HAND_RIGHT, HEAD ...)

- Desweiteren kann man Script Events, Waypoints und Trigger im Editor hinzufügen
- Script Events : Wenn der Spieler ein Objekt in der Welt berührt wird das Script ausgeführt
- Waypoints : Für die KI, die im Moment nur theoretisch existiert ^^
- Trigger sind für schalter und dergleichen gedacht, und werden auch per Script erstellt

Es hat sich außerdem viel bei den Quellcodes getan, ich habe viele dinge gesplittet, um es übersichtlicher
zu gestalten. Leider waren die bisherigen Arbeiten fast nur von programmiertechnischer Seite, und ich
kann deswegen keine interessanten Spielszenen zeigen, aber ich werde morgen nach der arbeit,
ein paar Bilder der Modelle die ich schon konvertiert habe hochladen, damit der Worklog mal ein
bisschen bunter wird.

So das wars für heute, über weitere Kommentare würde ich mich freuen Wink

Kleine Schritte ...

Freitag, 12. Dezember 2008 von eleXity
Nur ganz kurz ...

Hab einige Verbesserungen und kleine Änderungen an der Script engine vorgenommen,

- Funktionen müssen am anfang Definiert werden
- man kann nun private variablen in Funktionen deklarieren

Code: [AUSKLAPPEN]
// -------------------------------------------
//   Script test
// -------------------------------------------
// Define vars
   private flt num = 123.12;   
   private str Text = "Hello World";
      
// Define Functions
   define Test;
   define Test2;
      
// Change var
   num = 142.86;

// Draw some
   Print("Print Vars ....");
   Print("----------------------------------------------");
   Print(Text);
   Print("Script Version ["+GetVersion()+"]");
   Print("nummer : " + num + " flt");
   Print("Pi : " + MATH_PI);
   Print("");
   Print("Test If ....");
   Print("----------------------------------------------");

// Increment
   num = 1;
   num:++5;
   Print("Nummer Jetzt : " + num);
   num:--1;
   
// Call own Function
   num = Test(num);

// If test
   If (num>1)
      Print("Nummer ist größer als 1 '"+num+"'");
   Else      
      Print("Hmm, doch nicht ? '"+num+"'");
   EndIf
   
// Test Funktionen
   Function Test(flt _hNumber)
   
      // var test
      private char TeeSorte = "EisTee!";
      print(TeeSorte);

      Test2();
      return _hNumber;

   EndFunction
   
   Function Test2()
      Print("Nu in 2");
      return;
   EndFunction

Desweiteren habe ich das main framework aufgeräumt und die Script engine integriert.
Zurzeit bin ich dabei einige Module des frameworks zu überarbeiten und die Funktionen neu zuschreiben die in die Script engine exportiert werden sollen.

Weiter gehts ...

Mittwoch, 3. Dezember 2008 von eleXity
So..
die letzten tage hab ich damit verbracht, einige kleine und große Bugs zu entfernen,
desweiteren sind nun inScript Funktionen drinnen

Aktuelles TestScript :Code: [AUSKLAPPEN]
// -------------------------------------------
//   Script test
// -------------------------------------------
// Define vars
   private flt num = 123.12;   
   private str Text = "Hello World";

// Test Funktionen
   Function Test(flt _hNumber, str _hText)

      _hNumber:++4;
      Print(_hText + _hNumber);

      if (_hNumber<1000)
         //_hNumber = Test(_hNumber, _hText);
         Print("Bla");
      endif
      
      return _hNumber;
   
   EndFunction

// Change var
   num = 142.86;

// Draw some
   Print("Print Vars ....");
   Print("----------------------------------------------");
   Print(Text);
   Print("Script Version ["+GetVersion()+"]");
   Print("nummer : " + num + " flt");
   Print("Pi : " + MATH_PI);
   Print("");
   Print("Test If ....");
   Print("----------------------------------------------");

//  In / Decrement
   num = 1;
   num:++5;
   Print("Nummer Jetzt : " + num);
   num:--1;
   
// Call own Function
   num = Test(num, "Nummer ist : ");

// If test
   If (num>1)
      Print("Nummer ist größer als 1 '"+num+"'");
   Else      
      Print("Hmm, doch nicht ?");
   EndIf

// -------------------------------------------
// EOF
// -------------------------------------------

Leider funktioniert die Rekursion noch nicht und ich habe auch noch keine Ahnung wieso Evil or Very Mad.
Aber auch dieses Problem werde ich noch lösen ^^.

Wegen der 'Demo' habe ich mir überlegt das es ja eigentlich schwachsinnig ist von einer reinen Scriptengine eine Demo vorzuzeigen, ich denke wenn diese im Haupt Framework eingebaut ist und daraus etwas vorzeigbares wird könnt ihr alles ausführlich testen. Leider kann ich noch kein Termin nennen ich hoffe das das am Anfang des nächsten Jahres was wird, Lasst euch überraschen.

Anmerken will ich noch kurz das das Script wie es oben zu sehen ist in knapp 2ms ausgeführt wird Wink, also ausreichend schnell denke ich.

Script und die IFs

Freitag, 28. November 2008 von eleXity
so...

die if abfragen sind nun auch drin allerdings ohne ElseIf da ich die für überflüssig halte.
Man kann die abfragen ineinander schachteln und so den gleichen Effekt erzeugen ...

Test
Code: [AUSKLAPPEN]
// -------------------------------------------
//   Script test
// -------------------------------------------
// Define vars
   public flt num = 123.12;   
   private str Text = "Hello world";

// Change var
   num = 142.86;

// Draw some
   Print("Print Vars ....");
   Print("----------------------------------------------");
   Print(Text);
   Print("Script Version ["+GetVersion()+"]");
   Print("nummer : " + num + " flt");
   Print("Pi : " + MATH_PI);
   Print("");
   Print("Test If ....");
   Print("----------------------------------------------");
// If test
   If (num==142.86)
      Print("Alles Ok !");
   Else      
      Print("Hmm, doch nicht ?");
   EndIf

// -------------------------------------------
// EOF
// -------------------------------------------


Es werden nun noch einige kleine Bugs gefixt und viele Funktionen hinzugefügt, damit man auch was damit anstellen kann
desweiteren ist es nicht vorgesehen etwas zu Rechnen ... allerdings muss ich sehn ob das nicht doch irgendwann mal benötigt würde, Das gleiche mit schleifen.

ich denke mal Mitte nächste Woche könnt ihr damit 'etwas rumspielen' (vllt) und mir noch zusätzliche Bugs mitteilen...
dann kommen noch inScript Funktionen hinzu, und später irgendwann Types.

Wenn das soweit erledigt ist will ich mich erstmal auf das main framework stürzen und teils Neuschreiben oder überarbeiten. Ich denke mal das das so die nächste zeit in Anspruch nehmen wird, Anfang nächstes Jahr will ich mich endlich mal dem spiel an sich widmen.

mehr dazu später...

Kurzes Update ...

Sonntag, 23. November 2008 von eleXity
Scripte wie dieses :
Code: [AUSKLAPPEN]
// -------------------------------------------
//   Script test
// -------------------------------------------
// Define var s
   public flt num = 123.12;   
   private str Text = "Hello world";

// Change value
   num = 142.86;

// Draw
   Print(Text);
   Print("Script Version ["+GetVersion()+"]");
   Print("nummer : " + num + " flt");

// -------------------------------------------
// EOF
// -------------------------------------------

werden nun fehlerfrei ausgeführt.

Ausgabe Zitat:
Hello world
Script Version [2.00000000]
nummer : 142.86 flt
Runtime : 1.00000000ms

Als nächstes kommen if´s rein der Anfang ist bereits gemacht ...
wenn diese drin sind, und fehlerfrei funktionieren, werdet ihr mal etwas zum herumspielen bekommen

bis dahin Wink

greetz

... Script ...

Freitag, 21. November 2008 von eleXity
So heute einige infos zu der neuen Script engine ....

Allg. Syntax
Code: [AUSKLAPPEN]
// -------------------------------------------
//   Script Test
// -------------------------------------------

public flt number=123;            // Erstellt var und setzt den wert auf 123   
                           
private str Text = "Hello world";             // Das gleiche nur auf 'Hello World'

Print( number);                        // Schreibt 123 in die Console

number = 142.86;                         // ändert den wert auf 142.86

Print( number);                       // Schreibt 142.86 in die Console

// -------------------------------------------
// Script Ende
// -------------------------------------------

Das Script ist so ausführbar es kommen noch hinzu :
- Funktionen (im Script geschriebene)
- If, while, for evt. auch noch andere mal sehn erstmal diese

Was unterscheidet die Scriptversion von der vorherigen ?

Erstens ist der Core sehr viel sauberer gehalten und geschrieben.
Zweitens wird das Script bevor man es ausführen kann compiliert und in dem folgenden Syntax verschlüsselt gespeichert

Code: [AUSKLAPPEN]
ins public
type flt
push 123.12
reg number

ins private
type str
push "Hello world"
reg Text

run Print( number)

push 142.86
mov number

run Print( number)


Ja, ich hab mich dabei etwas von Assembler inspirieren lassen, auch wenn ich ASM bisher nie verstanden hab Wink

Das war es für heute, wollte nur mal wieder etwas von meiner arbeit zeigen, wenns auch nicht viel ist aber das wird noch ....

bis demnächst

Es lebt noch ...

Dienstag, 18. November 2008 von eleXity
Nur ganz kurz heute .....

es lebt noch, ich hatte die letzten Woche viele andere RL dinge zu erledigen deswegen ist
das Projekt etwas stockend vorangegangen, zusätzlich warte ich auf die neue Version der
Leadwerks Engine (2.14).

Etwas hat sich aber getan da ich zuletzt echte Schwierigkeiten mit der Script engine hatte,
beim einfügen von den Types usw... jedenfalls kam es immer wieder zu nervigen Bugs ,deswegen
hab ich eine neue Script engine entworfen und sie schon relativ weit gebracht.

Ich hoffe das ich jetzt wieder regelmäßig am Projekt arbeiten kann,
das war es erstmal für heute weitere Infos werden demnächst folgen Wink

cheers

Update

Dienstag, 23. September 2008 von eleXity
Soo nun auch mal von mir etwas neues Wink

Das Projekt lebt noch, ist aber etwas schleppend vorangegangen in den letzten 2 Wochen da viele andere
dinge zu tun waren...

was gib es denn neues ?
- Viele kleine Bugs in der Script engine gefixt
- Scripts unterstützen nun Types (man kann per Reflection alle Fields benutzen)
- Man kann in den Scripts strings zusammenfügen ( Print("Hello" + $GetWorld()) ), vllt nichts besonderes aber ich freu mich drüber
- Viele kleine bugs im framework allgemein gefixt
- Tageszeit ist nun Zeitabhängigkeit (es fehlen nur die skys für sonnen auf, Untergang, tagsüber und Nacht)
( also alle Wink, habe im Moment nur temporäre skys drin, Tag und Nacht)
- Anfänge der GUI sind gemacht und das erste Gadget ein Label ist schon vorhanden ( zu der GUI schreibe ich noch einmal einen eigenen Worklog wenn diese etwas fortgeschritten ist)

Noch was ?
Aufgrund der Tatsache das die Grafik lib, besser die Implementation der Leadwerks
engine in meinem game framework mir nicht flexibel genug war, habe ich sie neu geschrieben
aber es fehlen noch einige wichtige dinge (post effects, render buffers ...)

Screens ?

Da muss ich euch diesmal leider enttäuschen da es nichts neues zu sehn gibt und die Landschaft ohne Effekte langweilig aussieht, ich werde mein bestes geben um zum nächsten mal neue wunderschöne Screenshots vorzeigen zu können Very Happy

Das war´s ?
Em ... Fast hab fast vergessen zu erwähnen das Xeres so freundlich ist mir eine Story zu basteln die ihr dann, hier lesen dürft (vllt Laughing )

Also dann bis zum nächsten mal hier ...
cheers

Zeit system + Tag/Nachtwechsel

Mittwoch, 27. August 2008 von eleXity
So nach langem herumtüfteln habe ich es nun endlich hinbekommen, dass sich der Tag/Nacht wechsel
nach der Uhrzeit richtet Wink

Desweiteren habe ich es hinbekommen das sich der himmel zu einer bestimmten Uhrzeit ändert.

Und da alle guten dinge 3 sind habe ich nun auch noch eine Datei die sich SunColors.png (variabel) schimpft, von der ausgelesen wird welche Farbe das Sonnenlicht zu einer bestimmten zeit haben soll.

So nach dem guten nun das schlechte, leider habe ich noch ein kleines Problem bei der Berechnung des
Rotationswinkels für das Sonnenlicht, aber das werde ich morgen hinbekommen denke ich.

So für die interessierten Leser unter euch ... kommt nun meine Script Engine

Die selbst geschriebene Script engine ist vom Syntax her ähnlich BlitzMax ohne types (noch).
Sie wird im späteren spiel viele aufgaben übernehmen, zb. das definieren von items oder laden von Ressourcen um nur 2 beispiele zu nennen.

Beispiel Script
Code: [AUSKLAPPEN]
// Simples Hello World script
// ------------------------------------------------------
Print("Hello World !")


Ein wichtiger punkt wie ich finde ist, die tatsache das variablen Local (nur in diesem Script vorhanden) oder Global (in allen Scripten vorhanden) sein können.

Beispiel Script
Code: [AUSKLAPPEN]
// Variable definieren
// ------------------------------------------------------
Hello_world:local = "Hello World !"
Hello_world1:global = "Hello World !"
Print(Hello_world)


Desweiteren sind im Moment nur If Bedingungen implementiert, falls andere benötigt werden
kann ich diese dann noch einfügen Wink

Beispiel Script
Code: [AUSKLAPPEN]
// If Bedingung
// ------------------------------------------------------
Hello_world:local = "Hello World !"

if (Hello_world > "")
    Print(Hello_world)
endif


Man kann außerdem alle variablen vom Game-Code aus ändern oder erstellen, Funktionen werden hardcoded geschrieben und per srcScript.RegisterFunction(Name:string, Pointer()) in das Script eingefügt

Apropos, Funktionen können auch Funktionen als Parameter erhalten
Code: [AUSKLAPPEN]
// If Bedingung
// ------------------------------------------------------
Print(GetPlayerName(GetPlayer(CurrentPlayerID())))


So das wars für heute hoffe es war ein wenig interessant

freut euch auf den nächsten da gibt es neue Screenshots
Wink

wie immer sind Fragen, Kritik oder Lob offen PM an mich

MFG

Gehe zu Seite Zurück  1, 2, 3  Weiter