<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
	<channel>
		<title>BlitzBasic Portal Worklogs - The Vorx</title>
		<link>https://www.blitzforum.de/worklogs/309/</link>
		<description>Worklog von Warping Cows</description>
		<language>de</language>
		<managingEditor>mail@blitzforum.de</managingEditor>
		<webMaster>mail@blitzforum.de</webMaster>
		<pubDate>Tue, 21 Dec 2010 22:43:02 +0100</pubDate>
		<lastBuildDate>Tue, 21 Dec 2010 22:43:02 +0100</lastBuildDate>

		<item>
			<title>32. Ferien (:</title>
			<link>https://www.blitzforum.de/worklogs/309/#3078</link>
			<guid>https://www.blitzforum.de/worklogs/309/#3078</guid>
			<author>ComNik</author>
			<description>Ferien sind toll. Da das keine weitere Erkl&amp;auml;rung ben&amp;ouml;tigt ist das heut einfach mal der WLog Titel, da ich nicht weiss, was aus den 2 Monaten (&lt;img src=&quot;/forum/images/smiles/icon_eek.gif&quot; alt=&quot;Shocked&quot; /&gt;) ohne Eintrag das wichtigste Neue ist.&lt;br /&gt;&lt;br /&gt;Zuerst ging es recht schleppend mit den inzwischen 3 gleichzeitigen Projekten (Vorx.Engine, The Vorx selbst und Vorx.Editor) voran.&lt;br /&gt;&lt;br /&gt;Als dann aber mein Router den Geist aufgab gepaart mit der Unf&amp;auml;higkeit der Telekom mir innerhalb von 20 Tagen einen neuen zukommen zu lassen, liess der Fortschritt nicht lange auf sich warten.&lt;br /&gt;Und jetzt sind eh Ferien ich hab also endlich mal Zeit.&lt;br /&gt;&lt;br /&gt;Wobei ich leider im Moment nicht so genau weiss in welche Richtung es weitergeht. &lt;br /&gt;&lt;br /&gt;Doch zuerst die Neuerungen (wenn m&amp;ouml;glich geordnet und klar strukturiert dargelegt...)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;&lt;span style=&quot;color: green; font-size: 1.1em;&quot;&gt;Vorx.Editor:&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Das Interface wurde stark ver&amp;auml;ndert/vereinfacht&lt;br /&gt;&lt;br /&gt;          &lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;https://www.blitzforum.de/upload/file.php?id=10043&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;          Es gibt jetzt zum Beispiel kein Menu am oberen Rand und keine Status Leiste am unteren Rand.&lt;br /&gt;Letztere, weil sie nicht gebraucht wird, ersteres, weil es durch ein mauslastigeres System ersetzt wurde.&lt;br /&gt;&lt;br /&gt;Ein Beispiel: Anstatt &amp;uuml;ber Map -&amp;gt; Tile -&amp;gt; LoadTileset ein Tileset zu laden, reicht es nun die betreffende Datei irgendwo im Editor per Drag 'n' Drop abzuwerfen, sie wird dann automatisch in der Images Node des GameManager Trees gespeichert. Moment mal das ist doch gar kein Image! Es gibt doch extra eine Tileset Node!?&lt;br /&gt;&lt;br /&gt;Das ist richtig. M&amp;ouml;chte man ein geladenes Bild als Tileset oder als Animation aufbereiten lassen (so dass der Editor nachher mit umgehen kann), so reicht wieder ein Draggen und Droppen der Datei aus dem Game Manager Tree in eine der Arbeitsfl&amp;auml;chen.&lt;br /&gt;&lt;br /&gt;Wirft man das Bild z.B auf die MapEditor Arbeitsfl&amp;auml;che, so wird es als Tileset geladen und landet dann auch im richtigen Ordner. Wirft man es stattdessen auf die (hypothetische) Animations Editor Fl&amp;auml;che, wird es als Animation interpretiert.&lt;br /&gt;&lt;br /&gt;Es wird sich zeigen ob diese Bedienung allen Leuten so einfach f&amp;auml;llt.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Maps werden einfach auf die MapEditor Fl&amp;auml;che gezogen, erscheinen dann dort und k&amp;ouml;nnen bearbeitet werden. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Integrieren von neuen Dateien:&lt;br /&gt;&lt;br /&gt;1.) Neue Grafiken, Textdateien und Sounds liegen im Projekteordner.&lt;br /&gt;2.) Vorx.Editor &amp;ouml;ffnen, alle Dateien markieren und in den Game Manager ziehen.&lt;br /&gt;3.) Der ordnet sie (siehe oben) nach Format in die richtigen Ordner ein&lt;br /&gt;&lt;br /&gt;N&amp;auml;chste Neuerung:&lt;br /&gt;&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Platzieren und Editieren von Entities (mehr dazu demn&amp;auml;chst)&lt;br /&gt;&lt;br /&gt;In seiner jetzigen Version (0.0.1) hat der Editor zwar noch l&amp;auml;ngst nicht volle Funktionalit&amp;auml;t, aber l&amp;auml;uft stabil und l&amp;auml;sst sich (meiner Meinung nach) super bedienen.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;&lt;span style=&quot;color: green; font-size: 1.1em;&quot;&gt;Vorx.Physics:&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Nun wie soll ich anfangen: ES FUNZT VERDAMMT NOCHMAL! ENDLICH!&lt;br /&gt;Boaah. Was habe ich in Tische gebissen wenn die h&amp;auml;ssligen Kisten sich mal wieder mit &amp;Uuml;berlichtgeschwindigkeit verabschieden  &lt;img src=&quot;/forum/images/smiles/icon_evil.gif&quot; alt=&quot;Evil or Very Mad&quot; /&gt; &lt;br /&gt;&lt;br /&gt;Nunja Version 1.0 ist stabil, nicht perfekt, aber sieht gut aus &lt;img src=&quot;/forum/images/smiles/icon_smile.gif&quot; alt=&quot;Smile&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Dazu ein paar Bildchen:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Jump'n'Run Test&lt;/b&gt; &lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;https://www.blitzforum.de/upload/file.php?id=10044&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Der schlanke weisse Kasten repr&amp;auml;sentiert &amp;uuml;brigens den &amp;quot;Spieler&amp;quot;, der per Leertaste in die Luft bef&amp;ouml;rdert wird. Das Ganze diente eig nur dazu um zu gucken wie die Kollision mit statischer Geometrie funktioniert.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Shooting Test + armselige Texturierungsversuche:&lt;/b&gt; &lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;https://www.blitzforum.de/upload/file.php?id=10045&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Der Test war relativ schwer zu implementieren, da ich erstmal das richtige Verh&amp;auml;ltnis zwischen Gewicht und Geschwindigkeit der Kugeln finden muss. Aber es sieht ganz gut aus.&lt;br /&gt;&lt;br /&gt;Der letzte Test kommt einer realen Anwendung am n&amp;auml;chsten:&lt;br /&gt;&lt;b&gt; Cs2D PhysX &lt;/b&gt;: &lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;https://www.blitzforum.de/upload/file.php?id=10046&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hier spielen Vorx.Engine, Vorx.Maps und Vorx.Physics recht gut zusammen.&lt;br /&gt;Die Map wurde im Editor erstellt, lediglich die Kisten werden noch &amp;quot;inGame&amp;quot; platziert.&lt;br /&gt;Der weisse Kreis ist hier der Player, der auf die Kisten schiessen kann.&lt;br /&gt;&lt;br /&gt;Soweit so gut. Ich hab keine Lust mehr zu schreiben, ich hoffe aber auch das der n&amp;auml;chste Eintrag nich wieder 2 Monate sp&amp;auml;ter kommt.&lt;br /&gt;&lt;br /&gt;Daher schonmal frohe Feiertage (:&lt;br /&gt;ComNik&lt;br /&gt;&lt;br /&gt;</description>
			<pubDate>Tue, 21 Dec 2010 22:43:02 +0100</pubDate>
		</item>

		<item>
			<title>31. Vorx.Script 2.0</title>
			<link>https://www.blitzforum.de/worklogs/309/#2966</link>
			<guid>https://www.blitzforum.de/worklogs/309/#2966</guid>
			<author>n-Halbleiter</author>
			<description>Guten Morgen BBP!&lt;br /&gt;&lt;br /&gt;Nach etwas l&amp;auml;ngerer Zeit kann auch ich wieder Fortschritte vermelden: Vorx.Script ist jetzt (zumindest so wie ich das aktuell &amp;uuml;berblicken kann) fertig. Wenn es noch Bugs gibt, die ich nicht schon gefixt habe, dann werde ich nat&amp;uuml;rlich noch daran arbeiten..&lt;br /&gt;&lt;br /&gt;Es wird jetzt noch das Modul BaH.MuParser ben&amp;ouml;tigt, um Vorx.Script nutzen zu k&amp;ouml;nnen, da ich f&amp;uuml;r das Parsen von mathematischen Ausdr&amp;uuml;cken ebenjenes Modul nutze. (Ein Eigenes schreiben wollte ich schlicht und einfach nicht)&lt;br /&gt;Herunterzuladen gibt's das Modul BaH.MuParser &lt;a href=&quot;http://brucey.net/programming/blitz/#bahmuparser&quot; target=&quot;_blank&quot;&gt;hier&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Was ist hinzugekommen:&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Mathematische Ausdr&amp;uuml;cke (man kann in ihnen allerdings nur Scriptvariablen und Zahlen nutzen)&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Verzweigungen (einfache If-Verzweigungen, mehr w&amp;auml;re m&amp;ouml;glich, aber nicht notwendig)&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Bugfixes&lt;br /&gt;&lt;br /&gt;Ich habe nochmal alles sch&amp;ouml;n zu Paketen geschn&amp;uuml;rt:&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; &lt;a href=&quot;https://www.blitzforum.de/upload/file.php?id=9677&quot; target=&quot;_blank&quot;&gt;Vorx.Script, das Modul&lt;/a&gt;&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; &lt;a href=&quot;https://www.blitzforum.de/upload/file.php?id=9676&quot; target=&quot;_blank&quot;&gt;Vorx.Script Testpaket (sowohl Source als auch eine .exe sind enthalten).&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&amp;Uuml;ber Feedback bzw. Kritik w&amp;uuml;rde ich mich freuen. (:&lt;br /&gt;&lt;br /&gt;mfg, n-Halbleiter&lt;br /&gt;&lt;br /&gt;EDIT: Ich habe noch einen Fehler in der Dokumentation entdeckt. Das neue Paket zu Vorx.Script ist hochgeladen und der Link ersetzt.</description>
			<pubDate>Mon, 18 Oct 2010 00:26:41 +0200</pubDate>
		</item>

		<item>
			<title>30. Nach langer Zeit</title>
			<link>https://www.blitzforum.de/worklogs/309/#2926</link>
			<guid>https://www.blitzforum.de/worklogs/309/#2926</guid>
			<author>ComNik</author>
			<description>Guten Tag,&lt;br /&gt;&lt;br /&gt;meine G&amp;uuml;te liegt der letzte Eintrag schon zur&amp;uuml;ck  &lt;img src=&quot;/forum/images/smiles/icon_eek.gif&quot; alt=&quot;Shocked&quot; /&gt; &lt;br /&gt;&lt;br /&gt;Es ist aber auch einiges dazwischengekommen. Trotzdem ging es immer stetig voran und davon soll ja schliesslich auch der heutige Eintrag handeln.&lt;br /&gt;&lt;br /&gt;Erstmal kurz zur Versp&amp;auml;tung: In letzter Zeit besch&amp;auml;ftige ich mich nebenbei/haupts&amp;auml;chlich mit zwei Wettbewerben: 1. Bundeswettbewerb Informatik und 2. Google AI Contest. Wobei 1. eher Fleissarbeit ist :/&lt;br /&gt;&lt;br /&gt;Wenn ich an The Vorx / der Vorx.Engine weitergearbeitet hab, dann nur am Editor.&lt;br /&gt;&lt;br /&gt;Man kann im Moment:&lt;br /&gt;&lt;br /&gt;  &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Maps erstellen&lt;br /&gt;  &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Bilder und Tilesets laden &lt;br /&gt;  &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; geladene Assets in der &amp;quot;Game Manager&amp;quot; TreeView verwalten&lt;br /&gt;  &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Bilder direkt im Editor anschauen.&lt;br /&gt;  &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Entity Komponenten bearbeiten&lt;br /&gt;&lt;br /&gt;Dazu mal ein paar Bilder:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.dropbox.com/gallery/10978296/1/Gallery%20WLog%2026.9?h=5685e7&quot; target=&quot;_blank&quot;&gt;Dropbox Gallery&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Als n&amp;auml;chtes kommen ein paar Tools f&amp;uuml;r gen&amp;uuml;gend Komfort, z.B:&lt;br /&gt;&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Rect Fill (f&amp;uuml;llt einfach einen per Maus markierten Bereich mit dem gleichen Tile)&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Random Set (setzt bei jedem klick ein zuf&amp;auml;lliges Tile aus einer vorher ausgew&amp;auml;hlten Menge)&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Pick (w&amp;auml;hlt das Tile an der jetzigen Mausposition&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; diverse Masken&lt;br /&gt;&lt;br /&gt;sowie die restlichen Speicher Methoden.&lt;br /&gt;&lt;br /&gt;F&amp;uuml;r The Vorx arbeite ich gerade an einem kleinen Test f&amp;uuml;r Goal Oriented Action Planning.&lt;br /&gt;&lt;br /&gt;Das Programm kriegt quasi eine Menge Funktionen und ein Ziel, wobei alles mit Bedingunen und Effekten verkn&amp;uuml;pft ist. Danach soll das Programm eine Reihe von Funktionen ausgeben, die a) zum Tiel f&amp;uuml;hren und b) erlaubt sind, also alle Bedingunen zum Zeitpunkt der Ausf&amp;uuml;hrung erf&amp;uuml;llt sind.&lt;br /&gt;&lt;br /&gt;Ein Beispiel:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Code: &lt;/b&gt;&lt;span style=&quot;font-size:0.8em; display:inline;&quot; id=&quot;showcodebox0&quot;&gt; &lt;a href=&quot;javascript&amp;#058;show_code('0')&quot;&gt;[AUSKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;font-size:0.8em; display:none;&quot; id=&quot;hidecodebox0&quot;&gt; &lt;a href=&quot;javascript&amp;#058;hide_code('0')&quot;&gt;[EINKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;div id=&quot;codebox0&quot; class=&quot;codebox&quot; style=&quot;max-height: 200px;&quot; onload=&quot;check_code('0');&quot;&gt;&lt;br /&gt;ziel = T&amp;ouml;teNpc&amp;#40;id=13/npc Referenz&amp;#41;&lt;br /&gt;actions = &amp;#91;WaffeFeuern&amp;#40;&amp;#41; , Nachladen&amp;#40;&amp;#41; , GehenZu&amp;#40;&amp;#41;&amp;#93;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Bedingung f&amp;uuml;r WaffeFeuern() w&amp;auml;re z.B das die Waffe geladen ist. Effekt das ein Ziel tot ist.&lt;br /&gt;(Hier kann man nat&amp;uuml;rlich auch Wahrscheinlichkeiten einbringen). &lt;br /&gt;&lt;br /&gt;Nachladen() hat keine Bedingung, aber den Effekt das die Waffe geladen ist.&lt;br /&gt;&lt;br /&gt;GeheZu() hat keine Bedingung, aber den Effekt das Self an (x,y) steht.&lt;br /&gt;&lt;br /&gt;Ein einfacher Aktionsbaum w&amp;auml;re nun:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Code: &lt;/b&gt;&lt;span style=&quot;font-size:0.8em; display:inline;&quot; id=&quot;showcodebox1&quot;&gt; &lt;a href=&quot;javascript&amp;#058;show_code('1')&quot;&gt;[AUSKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;font-size:0.8em; display:none;&quot; id=&quot;hidecodebox1&quot;&gt; &lt;a href=&quot;javascript&amp;#058;hide_code('1')&quot;&gt;[EINKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;div id=&quot;codebox1&quot; class=&quot;codebox&quot; style=&quot;max-height: 200px;&quot; onload=&quot;check_code('1');&quot;&gt;&lt;br /&gt;GeheZu&amp;#40;targetNpc.x,targetNpc.y&amp;#41;&lt;br /&gt;WaffeFeuern&amp;#40;&amp;#41;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Das sch&amp;ouml;ne an der Sache ist nun, dass der Npc ohne Ifs nachl&amp;auml;dt, wenn er seine Waffe feuern will und sie nicht geladen ist.&lt;br /&gt;&lt;br /&gt;Auch ist das ganze sehr flexibel. Mehr Aktionen einbauen und Kosten errechnen lassen machen den Algorithmus schon sehr viel interressanter.&lt;br /&gt;&lt;br /&gt;Zum Beispiel k&amp;ouml;nnte man eine gro&amp;szlig;e t&amp;ouml;dliche Waffe neben den Npc stellen, ihr geringere Kosten f&amp;uuml;r WaffeFeuern() zuschreiben, eine Funktion WaffeWechseln() oder WaffeAufheben() schreiben und als Bedingung zum Beispiel setzen, dass der Situationsbewertungs - Algorithmus ein &amp;quot;Gute Situation&amp;quot; oder &amp;quot;Keine Gefahr&amp;quot; zur&amp;uuml;ckliefert.&lt;br /&gt;&lt;br /&gt;Dann w&amp;uuml;rde der Npc hinrennen, schauen ob mann auf ihn schiesst und wenn nicht, in aller seelenruhe die M&amp;ouml;rderwaffe aufheben und auf das arme Ziel entladen.&lt;br /&gt;&lt;br /&gt;Die M&amp;ouml;glichkeiten sind unendlich &lt;img src=&quot;/forum/images/smiles/icon_smile.gif&quot; alt=&quot;Smile&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Und damit komm ich auch schon zum Ende, mehr zu GOAP in einem der n&amp;auml;chsten Eintr&amp;auml;ge.&lt;br /&gt;&lt;br /&gt;Ein sch&amp;ouml;nes Restwochenende noch,&lt;br /&gt;ComNik&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description>
			<pubDate>Sun, 26 Sep 2010 15:56:42 +0200</pubDate>
		</item>

		<item>
			<title>29. Vorx.Script Version 1.7</title>
			<link>https://www.blitzforum.de/worklogs/309/#2870</link>
			<guid>https://www.blitzforum.de/worklogs/309/#2870</guid>
			<author>n-Halbleiter</author>
			<description>Guten Abend BBP!&lt;br /&gt;&lt;br /&gt;Auch von mir gab es l&amp;auml;ngere Zeit nichts, was wohl daran lag, dass ich mich durch zwei nervt&amp;ouml;tende Features schlagen musste (direkte Wertzuweisungen von Feldern und Funktionen). Aber jetzt ist das getan, und Vorx.Script geht in die Version 1.7. (:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Was ist nun dazugekommen?&lt;/b&gt;&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Funktionen inkl. R&amp;uuml;ckgabewerte&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Scoping (globaler und lokaler Scope pro Funktion)&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Wertzuweisungen von Feldern&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Globale Variablen werden mit &amp;quot;Global&amp;quot; deklariert, die Syntax sonst bleibt erhalten&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Mehrere Variablendeklarationen pro Zeile&lt;br /&gt;&lt;br /&gt;Und ich habe noch etwas Performance herauskitzeln k&amp;ouml;nnen.&lt;br /&gt;&lt;br /&gt;Das soweit zur neuen Version, hier die Downloads:&lt;br /&gt;&lt;b&gt;Links entfernt, siehe weiter oben f&amp;uuml;r neue Versionen.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Nochmal, zur Info: Zum selbstkompilieren wird eine Modifikation von BRL.Reflection ben&amp;ouml;tigt, die gibt's &lt;a href=&quot;http://blitzbasic.com/Community/posts.php?topic=84918&quot; target=&quot;_blank&quot;&gt;hier&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Falls sich noch Fragen ergeben, fragt. &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Soweit von mir und meinen kleinen Fortschritten, als N&amp;auml;chstes kommen mathematische Ausdr&amp;uuml;cke und Verzweigungen.&lt;br /&gt;&lt;br /&gt;mfg, n-Halbleiter</description>
			<pubDate>Mon, 30 Aug 2010 23:47:39 +0200</pubDate>
		</item>

		<item>
			<title>28. Ein neues Spielzeug...</title>
			<link>https://www.blitzforum.de/worklogs/309/#2869</link>
			<guid>https://www.blitzforum.de/worklogs/309/#2869</guid>
			<author>ComNik</author>
			<description>Einen wundersch&amp;ouml;nen guten Abend nach l&amp;auml;ngerer Zeit!&lt;br /&gt;&lt;br /&gt;Nein, mit dem neuen Spielzeug ist nicht etwa Starcraft 2 gemeint (*produktivit&amp;auml;tskiller*) sondern &lt;br /&gt;der &lt;b&gt;Vorx.Editor&lt;/b&gt; passend zur Vorx.Engine.&lt;br /&gt;&lt;br /&gt;Ich gebe erstmal einen Umriss was der Vorx.Editor so ist und kann, danach gibts ein paar Bilder zu sehen.&lt;br /&gt;Eins vorweg: Die momentane Version l&amp;auml;uft unter der Bezeichnung &amp;quot;Visions Prototyp&amp;quot; &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; Es ist also noch wenig High Level funktionalit&amp;auml;t drinn.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Wozu einen Editor?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Wer die Spielebranche ein wenig verfolgt hat, wird mitbekommen haben, dass Programmierer immer mehr zu Editor schreibern werden, mit denen Designer dann ganze Spiele erstellen k&amp;ouml;nnen. Da ich von Physik Optimierungen die Schnauze voll hatte dachte ich mir ich probier das doch auch mal aus.&lt;br /&gt;Praktischerweise wurde ja letztens erst die MaxGUI kostenfrei ver&amp;ouml;ffentlicht, also entschloss ich mich mir die mal anzuschauen. - Und ich bin positiv &amp;uuml;berrascht! Bis auf die unglaublich d&amp;auml;mlichen Tabber Gadgets -.- (danke an &lt;b&gt;BlitzCoder&lt;/b&gt;, dessen Erweiterung mir das Schreiben einer eigenen erspart hat...) &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Was soll der Editor k&amp;ouml;nnen?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Der Editor ist streng modular aufgebaut, dass h&amp;ouml;rt man zwar immer aber ich werde es trotzdem erkl&amp;auml;ren:&lt;br /&gt;&lt;br /&gt;Jede Komponente f&amp;uuml;r den Editor (z.B Map bearbeiten, Scripts schreiben oder Entities erstellen) wird in eine eigene von TModule abgeleitete Klasse gepackt (z.B TMapEditor, TScriptEditor oder TEntity/TPropertyEditor). Module haben eine tabId um zu wissen wann sie geupdatet werden sollten, oder ob sie immer geupdatet werden m&amp;uuml;ssen.&lt;br /&gt;&lt;br /&gt;Desweiteren hat jedes Modul einen Tab auf dem sogenannten Editor Tabber (sozusagen die Arbeitsfl&amp;auml;che links vom Splitter, siehe Bild) und auf dem UI Tabber (die kleinere Fl&amp;auml;che rechts vom Splitter).&lt;br /&gt;&lt;br /&gt;Das Modul muss nichts davon benutzen, kann aber. Auf dem Bild hier sollte das deutlich werden:&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;https://www.blitzforum.de/upload/file.php?id=9418&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Wie man erkennen kann, ist im Moment auf dem Editor Tabber das Map Editor Modul ge&amp;ouml;ffnet, allerdings auf dem uiTabber, der vom TVorxEditor - Hauptmodul herstammende, Content Manager (oder auch Game Manager).&lt;br /&gt;&lt;br /&gt;Durch diverse Kontextmen&amp;uuml;s, l&amp;auml;d man sich sp&amp;auml;ter alle Game Assets in die richtigen Unterordner, oder erstellt neue wenn was fehlt. Die Kontextmen&amp;uuml;s verbinden &amp;uuml;brigens auch eventuelle, im Editor erstellbare Assets wie Maps oder Entities mit den dazugeh&amp;ouml;rigen Modulen (wie man auch auf dem Bild sehen kann, entweder eine Map laden oder einfach direkt eine erstellen). &lt;br /&gt;&lt;br /&gt;Hierbei muss allerdings gesagt werden, dass die Map Engine noch nicht eingebunden ist, daher kann mann Maps noch nicht erstellen. &lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;https://www.blitzforum.de/upload/file.php?id=9419&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;EDIT: Nat&amp;uuml;rlich sind DC's Tilesets nur zum testen drinn!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Um m&amp;ouml;glichst viel Verschiedenes auf ein Bild zu bekommen, ist hier gleichzeitig ein geladenes Entity mitsamt den Map Tools dargestellt. Unter &amp;quot;Tiles&amp;quot; setzt man wieder erwarten Tiles, unter &amp;quot;Entities&amp;quot; alle anderen Objekte (da ja alles ein Entity ist &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt;) und unter Sections wird die Map in im Spiel ansprechbare Bereiche eingeteilt.&lt;br /&gt;&lt;br /&gt;Man kann alle Fields eines Komponenten sch&amp;ouml;n &amp;uuml;bersichtlich &amp;uuml;ber die Tabs bearbeiten und dann speichern.&lt;br /&gt;&lt;br /&gt;Alles in allem wird es wohl noch mindestens ein, zwei Wochen (Schule :@) dauern, bis es eine Alpha Version mit mehr High Level funktionalit&amp;auml;t gibt. &lt;br /&gt;&lt;br /&gt;&amp;Uuml;brigens wird das einzige Feature, dass den Editor an die Vorx.Engine bindet sein, dass man das Level aus dem Editor heraus testen kann. Wenn man den Editor f&amp;uuml;r andere Engines oder Spiele nutzen will ist das kein Problem, solange man Bah.Persistence nutzt, oder mit .txt Dateien vorlieb nimmt. Und notfalls kann man ja jederzeit ein neues Modul hinzuf&amp;uuml;gen, oder vorhandene ab&amp;auml;ndern.&lt;br /&gt;&lt;br /&gt;Das wars von mir, &lt;br /&gt;Gute Nacht (:</description>
			<pubDate>Mon, 30 Aug 2010 21:47:42 +0200</pubDate>
		</item>

		<item>
			<title>27. VMath goes *Low Level*</title>
			<link>https://www.blitzforum.de/worklogs/309/#2790</link>
			<guid>https://www.blitzforum.de/worklogs/309/#2790</guid>
			<author>ComNik</author>
			<description>&lt;b&gt;Eins vorweg: Dieser Eintrag wird langweilig f&amp;uuml;r die, die kein Interresse an Low Level Optimierungen, Mathe im Allgemeinen oder an langen Erkl&amp;auml;rungen haben. N&amp;auml;chstes mal kommt wieder was zum Spiel &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Huhu,&lt;br /&gt;&lt;br /&gt;nun VMath ist ein neues SubModul der VorxEngine, warum es nicht einfach Vorx.Math heisst, sondern VMath?&lt;br /&gt;Erkl&amp;auml;r ich sofort, erstmal zum (total spannenden) Inhalt.&lt;br /&gt;&lt;br /&gt;VMath stellt Vector2, Matrix2 (2x2), Rect und Line bereit, zusammen mit vielen kleineren (Hilfs-)Funktionen.&lt;br /&gt;&lt;br /&gt;Nun zum etwas *besonderen*: VMath unterst&amp;uuml;zt ein nicht ganz so coderfreundliches optimiertes Interface um ein Float[2] Array als Vektor zu benutzen wobei [0] = x und [1] = y sind.&lt;br /&gt;&lt;br /&gt;Warum nennt sich das optimiert? Nun, primitive Datentypen sind vom erzeugten Assembler Code immer schneller (respektive weniger umfangreich = weniger Asm Befehle = schnellere Laufzeit). Nat&amp;uuml;rlich macht das nicht die Welt aus aber es wenn Millisekunden z&amp;auml;hlen, kann sich selbst so etwas minimales bei Vekotraufw&amp;auml;ndigen Sachen bezahlt machen.&lt;br /&gt;&lt;br /&gt;Und was noch viel besser ist: Wenn unser Assembler / Compiler gn&amp;auml;dig ist, optimiert er unsere Float Arrays in __m128 SIMD Datentypen.&lt;br /&gt;&lt;br /&gt;F&amp;uuml;r alle die es interressiert und die es noch nicht wissen:&lt;br /&gt;&lt;br /&gt;SIMD = Single Instruction Multiple Data ist eine fest im Prozessor verbaute Technik, die es erlaubt ein Float[4] Array mehr oder weniger gleichzeitig zu berechnen das heisst, &lt;b&gt;alle&lt;/b&gt; Elemente des Float Arrays zu addieren w&amp;uuml;rde in etwa so viel Zeit einnehmen wie das addieren &lt;b&gt;einer&lt;/b&gt; Float. &lt;br /&gt;&lt;br /&gt;Das ganze wird also ~4 mal schneller, solange es der Prozessor unterst&amp;uuml;tzt. Um in C++ direkt SIMD schreiben zu k&amp;ouml;nnen muss man den __m128 Datentyp nutzen, normale Float[4] Arrays werden nicht immer vom Compiler optimiert. M&amp;ouml;chte mann nun mit den Fake Vektoren rechnen, so behilft man sich mit Compiler Intrinsics (die automatisch unterst&amp;uuml;tzt werden, wenn SIMD unterst&amp;uuml;zt wird). An die C++er&lt;br /&gt;unter euch: &amp;quot;mmintrinsics.h&amp;quot; sollte (wenn ich nicht irre) die n&amp;ouml;tigen Intrinsics zur Verf&amp;uuml;gung stellen.&lt;br /&gt;Intrinsics sind &amp;uuml;brigens meistens schneller als Inline Assembler.&lt;br /&gt;&lt;br /&gt;Aber ich will mich hier nicht in C verlieren sondern komme zur&amp;uuml;ck zu BlitzMax. Ich habe einen kleinen Test gemacht, der in etwa so aussah:&lt;br /&gt;&lt;br /&gt;[syntax=&amp;quot;bmax&amp;quot;]&lt;br /&gt;SuperStrict&lt;br /&gt;&lt;br /&gt;Import Vorx.VMath&lt;br /&gt;&lt;br /&gt;Global v1:Vector2 = Vector2.Create(100.0,100.0)&lt;br /&gt;Global v2:Vector2 = Vector2.Create(100.0,100.0)&lt;br /&gt;&lt;br /&gt;Global time:Float = MilliSecs()&lt;br /&gt;For Local i:Int=0 Until 1000000&lt;br /&gt;	v1.Dot(v2)&lt;br /&gt;	v2.Perp()&lt;br /&gt;	v1.Perp()&lt;br /&gt;	v2.ScalarMultiply(2)&lt;br /&gt;Next&lt;br /&gt;Print(MilliSecs()-time)&lt;br /&gt;[/syntax]&lt;br /&gt;&lt;br /&gt;In diesem Test wird das ganz normale nutzerfreundliche Vector2 benutzt. Eine Millionen mal irgendwelche zuf&amp;auml;lligen, nicht sehr rechenaufw&amp;auml;ndigen Vektor Operationen.&lt;br /&gt;&lt;br /&gt;Die Ausf&amp;uuml;hrungszeit liegt (auf meinem I7) bei durchschnittlich 1500 Ms. &lt;br /&gt;&lt;br /&gt;Ersetzt man den Test nun durch:&lt;br /&gt;&lt;br /&gt;[syntax=&amp;quot;bmax&amp;quot;]&lt;br /&gt;Global v1:Float[] = [100.0,100.0]&lt;br /&gt;Global v2:Float[] = [100.0,100.0]&lt;br /&gt;&lt;br /&gt;Global time:Float = MilliSecs()&lt;br /&gt;For Local i:Int=0 Until 1000000&lt;br /&gt;	vDot(v1,v2)&lt;br /&gt;	_vPerp(v2)&lt;br /&gt;	_vPerp(v1)&lt;br /&gt;	vMul(v2,2)&lt;br /&gt;Next&lt;br /&gt;Print(MilliSecs()-time)&lt;br /&gt;[/syntax]&lt;br /&gt;&lt;br /&gt;Die Aktionen sind genau das gleiche, allerdings haben wir nun eine durchschnittliche Laufzeit von 450 Ms!&lt;br /&gt;Das sind etwa 60% der Zeit, die der *normale* Ansatz ben&amp;ouml;tigt.&lt;br /&gt;&lt;br /&gt;Man beachte hier, dass sowohl das Skalarprodukt (vDot()) und die Skalarmultiplikation (vMul) an beiden Indizes des Float[] Arrays werkelt. F&amp;uuml;gt man der Schleife zwei Normalisierungen hinzu, sieht das ganze schon anders aus, da die Wurzel nicht durch SIMD optimiert werden kann, sondern nur die anschliessende Dimension. Mit Normalisierung ist der Geschwindigkeitsgewinn nur noch 30% (allerdings ohne schnelle Wurzel Funktion, sondern mit der Standard Sqr()).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Das wars f&amp;uuml;r heute, ich hoffe es war wenigstens f&amp;uuml;r manche interressant &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt;&lt;br /&gt;N&amp;auml;chstes mal gehts wieder um was spannenederes...&lt;br /&gt;&lt;br /&gt;lg&lt;br /&gt;ComNik&lt;br /&gt;</description>
			<pubDate>Wed, 04 Aug 2010 01:20:47 +0200</pubDate>
		</item>

		<item>
			<title>26. TScript Version 1.5! \o/</title>
			<link>https://www.blitzforum.de/worklogs/309/#2779</link>
			<guid>https://www.blitzforum.de/worklogs/309/#2779</guid>
			<author>n-Halbleiter</author>
			<description>Guten Morgen BBP!&lt;br /&gt;&lt;br /&gt;Die letzten Tage war ich flei&amp;szlig;ig und habe nun auch etwas kleines zusammengehackt: Version 1.5 des Scriptsystems von The Vorx (sofern es wirklich &amp;uuml;bernommen werden sollte).&lt;br /&gt;&lt;br /&gt;Es beinhaltet ein paar kleine &amp;Auml;nderungen gegen&amp;uuml;ber des alten Scriptsystems:&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Es ist schneller&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Variablen werden mit &amp;quot;Var [Variablenname] -&amp;gt; [Variablentyp]&amp;quot; deklariert ( [...] sind die Platzhalter &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; )&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; S&amp;auml;mtliche Aufurfe von &amp;quot;Call: &amp;quot; und &amp;quot;Invoke: &amp;quot;entfallen&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Wertzuweisungen funktionieren jetzt wie von BlitzMax gewohnt mit einem &amp;quot;=&amp;quot;&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Primitive Datentypen sind jetzt m&amp;ouml;glich. Ferner sind &amp;quot;True&amp;quot; und &amp;quot;False&amp;quot; als Parameter zugelassen und werden auch korrekt behandelt&lt;br /&gt;&lt;br /&gt;Die weitere Syntax ist denkbar einfach: Wer schonmal mit BlitzMax gearbeitet hat, wird wohl wissen, wie man Methoden und Funktionen von Types mit Parametern aufruft. Genauso geht's auch hier.&lt;br /&gt;&lt;br /&gt;Mehr f&amp;auml;llt mir jetzt spontan nicht ein. Was noch nicht m&amp;ouml;glich ist sind das direkte Setzen von Feldern, Funktionen (eventuell auch sp&amp;auml;ter Klassen, wer wei&amp;szlig;) im Script, mathematische Ausdr&amp;uuml;cke und Verzweigungen. All das ist geplant und wird schnellstm&amp;ouml;glich umgesetzt, und zwar in dieser Reihenfolge.&lt;br /&gt;&lt;br /&gt;Im Script kann man &lt;b&gt;alle&lt;/b&gt; Types mit Funktionen, Methoden und Feldern nutzen, die importiert oder inkludiert werden. So ist es theoretisch auch m&amp;ouml;glich, aus dem Script heraus einen anderen Script zu starten (theoretisch deshalb, weil ich es noch nicht getestet habe).&lt;br /&gt;&lt;br /&gt;Genug geschwafelt, hier das Modul (schon vorkompiliert im Debug- und Releasemodus f&amp;uuml;r Win32, Singlethreaded): &lt;b&gt;Link entfernt, siehe weiter oben f&amp;uuml;r neue Version&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Und ein Test (im Paket enthalten: &amp;quot;Test.debug.exe&amp;quot; zum schnellen Ausf&amp;uuml;hren, &amp;quot;Test.bmx&amp;quot; zum Ansehen, ein Ordner &amp;quot;Test_Imports&amp;quot; f&amp;uuml;r alles, was gebraucht wird und &amp;quot;Script.txt&amp;quot; als Script selbst): &lt;br /&gt;&lt;b&gt;Link entfernt, siehe weiter oben f&amp;uuml;r neue Version&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Ich m&amp;ouml;chte hiermit zum Ausprobieren und R&amp;uuml;ckmelden anregen.&lt;br /&gt;&lt;br /&gt;Es kann sein, dass sich das Programm unter gewissen Umst&amp;auml;nden mit einer &amp;quot;Exception_Access_Violation&amp;quot; verabschiedet, ich wei&amp;szlig; nicht genau, woran es liegt, aber es k&amp;ouml;nnte am Reflectionmodul liegen, das verwendet wird (eine Modifikation von BRL.Reflection, zu finden &lt;a href=&quot;http://blitzbasic.com/Community/posts.php?topic=84918&quot; target=&quot;_blank&quot;&gt;hier&lt;/a&gt;). Ich werde der Sache auf den Grund gehen.&lt;br /&gt;&lt;br /&gt;Sollten sich weitere Fehler ergeben, bitte die Scriptdatei und die (eventuell) modifizierte bmx-Datei per PN an mich senden. Mal sehen, was sich machen l&amp;auml;sst. &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt;&lt;br /&gt;&lt;br /&gt;mfg, n-Halbleiter</description>
			<pubDate>Sat, 31 Jul 2010 05:02:54 +0200</pubDate>
		</item>

		<item>
			<title>25. Wabbel</title>
			<link>https://www.blitzforum.de/worklogs/309/#2758</link>
			<guid>https://www.blitzforum.de/worklogs/309/#2758</guid>
			<author>ComNik</author>
			<description>Gute Nacht&lt;br /&gt;&lt;br /&gt;tut mir leid f&amp;uuml;r den bl&amp;ouml;den Titel, ich bin zu m&amp;uuml;de f&amp;uuml;r einen kreativeren, aber ich wollte euch auch die neusten Features von Vorx.Physics vorenthalten, zumal Cloth/Verlet Simulation ja hier gr&amp;auml;d m&amp;auml;chtig in Mode kommt &amp;lt;.&amp;lt;&lt;br /&gt;&lt;br /&gt;Ja also Wabbel ist genau das was Verlet simulierte K&amp;ouml;rper machen, vorrausgesetzt man spielt an der Joint Elastizit&amp;auml;t rum, aber egal ich greife vor, eins nach dem anderen:&lt;br /&gt;&lt;br /&gt;1.) Ein Bildchen:&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;https://www.blitzforum.de/upload/file.php?id=9194&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2.) &lt;br /&gt;Wie man eventuell erkennt, hat Vorx.Physics nun auch eine &lt;b&gt;TCSoftBody&lt;/b&gt; Komponente. Erstellen und simulieren geht etwas anders von der Hand als Rigid Bodies :&lt;br /&gt;&lt;br /&gt;[syntax=&amp;quot;bmax&amp;quot;]&lt;br /&gt;Global entity:TEntity = TEntity.Create(400,300)&lt;br /&gt;entity.AddComponent(TCSoftBody.Create(4,6))&lt;br /&gt;Global body:TCSoftBody = TCSoftBody(entity.GetComponent(CT_SOFTBODY))&lt;br /&gt;body.AddParticle(350,250)&lt;br /&gt;body.AddParticle(450,250)&lt;br /&gt;body.AddParticle(450,350)&lt;br /&gt;body.AddParticle(350,350)&lt;br /&gt;&lt;br /&gt;body.AddJoint(0,1,40)&lt;br /&gt;body.AddJoint(1,2,40)&lt;br /&gt;body.AddJoint(2,3,40)&lt;br /&gt;body.AddJoint(3,0,40)&lt;br /&gt;body.AddJoint(0,2,40)&lt;br /&gt;body.AddJoint(1,3,40)&lt;br /&gt;[/syntax]&lt;br /&gt;&lt;br /&gt;Ich werde aber noch ein an der User Freundlichkeit schrauben. AddJoint nimmt als Parameter &amp;uuml;brigens die Indizes der Partikel 0 ist also der zuerst hinzugef&amp;uuml;gte, 3 der letzte.&lt;br /&gt;&lt;br /&gt;Dann wird in der Main Loop mit:&lt;br /&gt;&lt;br /&gt;[syntax=&amp;quot;bmax&amp;quot;]&lt;br /&gt;For Local s:TCSoftBody = EachIn VPhysics.softBodies&lt;br /&gt;	s.Update(dt)&lt;br /&gt;			&lt;br /&gt;	For Local s2:TCSoftBody = EachIn VPhysics.softBodies&lt;br /&gt;		If s &amp;lt;&amp;gt; s2 &lt;br /&gt;			VPhysics.VCollide(s,s2) &lt;br /&gt;		End If &lt;br /&gt;	Next&lt;br /&gt;		&lt;br /&gt;	s.Draw()&lt;br /&gt;Next &lt;br /&gt;[/syntax]&lt;br /&gt;&lt;br /&gt;Diese ganzen Schleifen werden &amp;uuml;brigens sp&amp;auml;ter einfach per VPhysics.Simulate() oder so verk&amp;uuml;rzt.&lt;br /&gt;&lt;br /&gt;Wie man sieht, werden SoftBodies direkt in der Funktion VCollide (die auch nur f&amp;uuml;r SoftBodies zu gebrauchen ist) Kollidiert. Demn&amp;auml;chst baue ich ein, dass Rigid Bodies mit Soft Bodies kollidieren k&amp;ouml;nnen.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nun ja also es funktioniert super, ich hab jetzt noch keinerlei Optimierungen drinn (ich schreib auch erst ne Stunde oder so drann, Strand geht vor (&lt;img src=&quot;/forum/images/smiles/icon_smile.gif&quot; alt=&quot;Smile&quot; /&gt;, au&amp;szlig;er AABBs. &lt;br /&gt;&lt;br /&gt;Joa, ich denke mal in den n&amp;auml;chsten Tagen/Wochen, gibt es ein paar &amp;quot;ausprobierbare&amp;quot; Physik Spielereien (mir gefallen Wippen ganz gut, jedenfalls bei den Rigid Bodies...).&lt;br /&gt;&lt;br /&gt;Au&amp;szlig;erdem experimentiere ich gerade mit &amp;quot;rei&amp;szlig;enden&amp;quot; Verbindungen bei den SoftBodies, damit eventuelle  2D Cloth Simulationen (Cloth in 2D, naja egal) auch sch&amp;ouml;nen rei&amp;szlig;enden Stoff bekommen...&lt;br /&gt;&lt;br /&gt;Ok, ich streiche jetzt erstmal einen dicken Punkt der ToDo Liste und gehe Schlafen (:&lt;br /&gt;&lt;br /&gt;Allen einen guten Morgen! (Zeitverschiebung rocks)</description>
			<pubDate>Tue, 27 Jul 2010 05:41:19 +0200</pubDate>
		</item>

		<item>
			<title>24. Anfänge des Scriptsystems</title>
			<link>https://www.blitzforum.de/worklogs/309/#2756</link>
			<guid>https://www.blitzforum.de/worklogs/309/#2756</guid>
			<author>n-Halbleiter</author>
			<description>Guten Abend BBP.&lt;br /&gt;&lt;br /&gt;Die Grundsteine des Scriptsystems sind gelegt, ein Script der Version 1 k&amp;ouml;nnte zum Beispiel folgenderma&amp;szlig;en aussehen:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Code: &lt;/b&gt;&lt;span style=&quot;font-size:0.8em; display:inline;&quot; id=&quot;showcodebox2&quot;&gt; &lt;a href=&quot;javascript&amp;#058;show_code('2')&quot;&gt;[AUSKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;font-size:0.8em; display:none;&quot; id=&quot;hidecodebox2&quot;&gt; &lt;a href=&quot;javascript&amp;#058;hide_code('2')&quot;&gt;[EINKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;div id=&quot;codebox2&quot; class=&quot;codebox&quot; style=&quot;max-height: 200px;&quot; onload=&quot;check_code('2');&quot;&gt;//Var&amp;#58; Phys -&amp;gt; TCPhysics&lt;br /&gt;Var&amp;#58; Phys -&amp;gt; TCPhysics&lt;br /&gt;Var&amp;#58; Entity -&amp;gt; TEntity&lt;br /&gt;Var&amp;#58; Box -&amp;gt; TBox&lt;br /&gt;&lt;br /&gt;Invoke&amp;#58; TBox.Create&amp;#40;50,50&amp;#41; -&amp;gt; Box2&lt;br /&gt;Invoke&amp;#58; TBox.Create&amp;#40;50,50&amp;#41; -&amp;gt; Box&lt;br /&gt;Invoke&amp;#58; TCPhysics.Create&amp;#40;Box,10&amp;#41; -&amp;gt; Phys&lt;br /&gt;Call&amp;#58; Entity.AddComponent&amp;#40;Phys,Phys&amp;#41;&lt;br /&gt;Invoke&amp;#58; TEntity.Create&amp;#40;400,300&amp;#41; -&amp;gt; Entity&lt;br /&gt;Call&amp;#58; Entity.AddComponent&amp;#40;Box,Entity&amp;#41;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Mit &amp;quot;//&amp;quot; sind Kommentare.&lt;br /&gt;Folgende drei Optionen stehen pro Zeile zur Verf&amp;uuml;gung:&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Var: Eine neue Variable wird eingef&amp;uuml;hrt. (Intern wird alles als Object gehandhabt, deshalb sind keine primitiven Datentypen (Int, Float, Byte, ...) m&amp;ouml;glich&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Invoke: Eine Methode/Funktion eines Types aufrufen, die einen R&amp;uuml;ckgabewert hat. Der R&amp;uuml;ckgabewert wird in der Variable nach dem Pfeil (-&amp;gt;) gespeichert.&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Call: Eine Methode/Funktion eines Types aufrufen, die keinen R&amp;uuml;ckgbewert hat.&lt;br /&gt;&lt;br /&gt;Weitere Eigenschaften:&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; S&amp;auml;mtliche Variablen m&amp;uuml;ssen irgendwo im Script deklariert werden.&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Man kann auf dem Weg zu einer Methode auch beliebig auf Felder und/oder Methoden bzw. Funktionen zugreifen. Das funktioniert auch dann, wenn eine Methode nichts zur&amp;uuml;ckgibt, zum Beispiel, wenn man im Voraus Berechnungen anstellen will.&lt;br /&gt;&lt;br /&gt;M&amp;ouml;glich wird das alles durch die wunderbare M&amp;ouml;glichkeit der Reflections. F&amp;uuml;r Funktionen gibt es die Modifikation &lt;a href=&quot;http://blitzbasic.com/Community/posts.php?topic=84918&quot; target=&quot;_blank&quot;&gt;hier&lt;/a&gt;. Damit sind noch ein paar mehr sch&amp;ouml;ne Dinge mit Reflections m&amp;ouml;glich, die sonst nicht funktionieren w&amp;uuml;rden.&lt;br /&gt;&lt;br /&gt;So viel zur Version 1, das ist alles bisher nur ein Test, ich muss mir noch Gedanken dazu machen, was ich modifizieren muss.&lt;br /&gt;&lt;br /&gt;mfg und gute Nacht, n-Halbleiter</description>
			<pubDate>Tue, 27 Jul 2010 00:43:23 +0200</pubDate>
		</item>

		<item>
			<title>23. Warping Cows und weitere Erfolge </title>
			<link>https://www.blitzforum.de/worklogs/309/#2752</link>
			<guid>https://www.blitzforum.de/worklogs/309/#2752</guid>
			<author>ComNik</author>
			<description>Guten Abend,&lt;br /&gt;&lt;br /&gt;Gestern und Heute waren zwei sehr produktive Tage, ich werde die Ergebnisse gleich mal zusammenfassen und dann kurz was zum neuen Team (n-Halbleiter und ich) sagen. &lt;br /&gt;&lt;br /&gt;Zuerst mal die Erfolge:&lt;br /&gt;&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Vorx.Physics unterst&amp;uuml;tzt dank &lt;b&gt;darth&lt;/b&gt; nun korrekte Impulse &lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Zudem werden nun tangentiale Impulse unterst&amp;uuml;tzt&lt;br /&gt;          (an diesem Punkt war mein Kopf explodiert, gottseidank gibts hier so viel Sonne und Meer &lt;img src=&quot;/forum/images/smiles/icon_smile.gif&quot; alt=&quot;Smile&quot; /&gt;)&lt;br /&gt; &lt;img src=&quot;/forum/images/smiles/icon_arrow.gif&quot; alt=&quot;Arrow&quot; /&gt; Ich habe eine neue Optimierung drinne: best case: keine Zeit f&amp;uuml;r Integration ben&amp;ouml;tigt (nur bei statischen Szenerien), average case: ca 50 % weniger Dauer f&amp;uuml;r den Integrationsteil, worst case, keine Beschleunigung f&amp;uuml;r die Integration&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;Zudem arbeite ich gerade an einer Geometrie Optimierung, es wird (hoffentlich?) m&amp;ouml;glich sein ohne mehr Speicherbelastung belieb viele Objekte gleicher Geometrie (also z.B eine Kiste oder ein Partikel) zu erstellen (Geometry Cloning). Das klingt relativ einfach ist aber wesentlich komplizierter korrekt umzusetzen...&lt;br /&gt;&lt;br /&gt;Diese Art Optimierung wird extrem n&amp;uuml;tzlich f&amp;uuml;r z.B Wasser Simulationen, wenn man tausende gleicher Wasserpartikel simulieren will, der Speicher wird nicht belastet (zu gunsten wirklich minimaler CPU Auslastung).&lt;br /&gt;&lt;br /&gt;Wie Calvin mir best&amp;auml;tigen konnte (bzw ich ihm staunend best&amp;auml;tigte), schafft die Simulation im Debug Modus gerade gute 300 Objekte bei ca. 90-100 FPS (Framebegrenzung ist 100). Als h&amp;auml;rtetest habe ich gerade 400 Objekte auf ziemlich engem Raum (das erh&amp;ouml;ht die worst case wahrscheinlichkeit der Optimierung) erstellt und hatte immernoch 30 FPS. Und man muss bedenken, dass die Simulation noch ohne jegliches BSP arbeitet und nicht testet ob Objekte beim zeichnen noch auf dem Bildschirm sind...&lt;br /&gt;&lt;br /&gt;Nunja, jetzt noch schnell zu &amp;quot;Warping Cows&amp;quot;, vllt hat jemand das Video gesehen (eine Folge von =3), der Name fiel mir vorhin ein. n-Halbleiter wird diesen Worklog jetzt auch von Zeit zu Zeit beschreiben, allerdings nicht zum Spiel, sondern zu einer Scriptsprache, die er f&amp;uuml;r das D&amp;uuml;mpel-Vorx Framework Mischmasch erstellt, ihr werdet schon lesen (hoffe ich doch &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; ).&lt;br /&gt;&lt;br /&gt;Jetzt bin ich aber auch in Amerika m&amp;uuml;de und morgen geht es schliesslich fr&amp;uuml;h wieder ins Meer, also h&amp;ouml;r ich jetzt mal auf (:&lt;br /&gt;&lt;br /&gt;Gute Nacht und motivierte lg&lt;br /&gt;ComNik</description>
			<pubDate>Mon, 26 Jul 2010 05:15:50 +0200</pubDate>
		</item>


	</channel>
</rss>
