<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
	<channel>
		<title>BlitzBasic Portal Worklogs - ChaosRacer 2</title>
		<link>https://www.blitzforum.de/worklogs/173/</link>
		<description>Worklog von Chaos Interactive</description>
		<language>de</language>
		<managingEditor>mail@blitzforum.de</managingEditor>
		<webMaster>mail@blitzforum.de</webMaster>
		<pubDate>Tue, 26 May 2009 21:15:40 +0200</pubDate>
		<lastBuildDate>Tue, 26 May 2009 21:15:40 +0200</lastBuildDate>

		<item>
			<title>Ganz vergessen...</title>
			<link>https://www.blitzforum.de/worklogs/173/#1479</link>
			<guid>https://www.blitzforum.de/worklogs/173/#1479</guid>
			<author>D2006</author>
			<description>es ist schon eine Weile drin, aber ich wollte es mir f&amp;uuml;r den n&amp;auml;chsten, gr&amp;ouml;&amp;szlig;eren Worklog-Eintrag sparen. Gestern hab ich es aber vergessen, deshalb nen kurzer Eintrag:&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://garbage.chaos-interactive.de/images/cr2_05.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Wie unschwer zu erkenne ist, befindet sich nun in der rechten oberen Ecke eine kleine Minimap, welche die ganze Strecke zeigt und den Spieler (sowie sp&amp;auml;ter die Gegner) als Punkte darstellt. Diese kleinen Bildchen werde ich auch zur Streckenauswahl im Spielmen&amp;uuml; sp&amp;auml;ter benutzen. Sie werden &amp;uuml;brigens vollautomatisch beim Speichern einer Karte mit dem Streckeneditor erstellt... wie sollte es anders sein. &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt;&lt;br /&gt;&lt;br /&gt;An dieser Stelle Dank an d-bug, der mir bei Pixmap-Formaten und dem PNG-Export geholfen hat.&lt;br /&gt;&lt;br /&gt;Nachtrag (27.05.):&lt;br /&gt;Die Minimap sieht nicht so sch&amp;ouml;n aus, dass fiel einigen und mir ja auch schon auf. Da fehlt eindeutig AA. Gesagt, getan. Aber es war mal wieder ne schwierige Geburt und abermals muss ich mich bei d-bug bedanken, dass er mir das Brett vorm Kopf wegnahm. So sieht es nun aus, ihr k&amp;ouml;nnt es ja mit dem obigen Bild vergleichen:&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://garbage.chaos-interactive.de/images/cr2_06.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;</description>
			<pubDate>Tue, 26 May 2009 21:15:40 +0200</pubDate>
		</item>

		<item>
			<title>*krach*</title>
			<link>https://www.blitzforum.de/worklogs/173/#1478</link>
			<guid>https://www.blitzforum.de/worklogs/173/#1478</guid>
			<author>D2006</author>
			<description>Solche Ger&amp;auml;uche mache ich, wenn ich derzeit beim Testen in eine der neu implementierten Reifenmauer rase. Ich darf freudig berichten, dass diese nun eingebaut sind und damit der Stand von ChaosRacer 1 endg&amp;uuml;ltig eingeholt wurde *freu*. Dazu ein Bild:&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://garbage.chaos-interactive.de/images/cr2_04.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Drei-stufiges Kollisionssystem&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Kollisionspr&amp;uuml;fungen geschehen dreistufig. Das ist vorallem dazu da, um unn&amp;ouml;tigen Rechenaufwand zu sparen, den man braucht, wenn man mit Reifenmauern eine Kollisionspr&amp;uuml;fung macht, die kilometerweit weg sind. Die erste Stufe ist - naheliegenderweise - das bereits vorhandene Sektorensystem. Es werden also nur die Objekte (k&amp;ouml;nnen sp&amp;auml;ter noch mehr als nur Reifenmauern sein) auf Kollision gepr&amp;uuml;ft, die im gleichen oder sehr nah angrenzenden Sektor sind wie unser Fahrzeug. Die zweite Stufe ist ein BoundingBox-System, welches man auch gut auf dem Screen erkennen kann. Die nicht-gedrehten Rechtecke um das Fahrzeug und die Reifenmauern sind automatisch errechnete BoundingBoxes. Ob zwei Rechtecke kollidieren, ist nur eine l&amp;auml;ngere IF-Abfrage, also eine &amp;auml;u&amp;szlig;erst billige Berechnung, weshalb sich dieses System durchaus lohnt. Denn nur wenn die zwei BoundingBoxes &amp;uuml;berlappen - und das tun sie nur, wenn sich Fahrzeug und Objekt start n&amp;auml;hern - wird noch genauer gepr&amp;uuml;ft. (Anmerkung: im Bild ist die eine BoundingBox rot, weil sie halt gerade mit der BoundingBox des Fahrzeugs kollidiert) Und zwar in der dritten Stufe mit genauer Linienkollision. Dazu werden die abermals automatisch errechneten Linien nacheinander auf Kollision gepr&amp;uuml;ft. Allerdings wird da noch mal aussondiert: Ist das Fahrzeug auf der falschen Seite der Kollisionslinie, wird die Kollision ignoriert. Das hei&amp;szlig;t, dass man jeweils nur von &amp;quot;au&amp;szlig;en&amp;quot; mit einer Reifenmauer kollidieren kann. Dann wird noch geschaut, ob sich das Fahrzeug gerade wegbewegt. Da dies eintritt, wenn bereits eine Kollision erfolgte, werden so Fehler vermieden.&lt;br /&gt;&lt;br /&gt;Falls nun eine Kollision erfolgt, wird anhand einer sehr komplizierten Formen errechnet, welche Auswirkung dies auf die Fahrphysik unseres Autos hat. An dieser Stelle ein riiiieeeesiges Dankesch&amp;ouml;n an unseren Mathehelden Noobody, der die dazu n&amp;ouml;tigen Formeln ausspuckt, als h&amp;auml;tte er sie damals, kurz nach seiner Geburt selbst entwickelt. &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&amp;Uuml;brigens: Wie schon mehrfach angedeutet, geschiet dies alles automatisch. Im Streckeneditor kann man nun einfach per Klicken neue Reifenmauern hinzuf&amp;uuml;gen. Aber um Kollision muss man sich da einen Dreck scheren. Den Winkel einer Reifenmauer legt man mit dem Mausrad fest, dann einfach die Maus an die gew&amp;uuml;nschte Stelle bewegen und klicken. Wenn man Mauern entfernen will, einfach auf das M&amp;uuml;lleimer-Symbol dr&amp;uuml;cken und alle vorhandenen Reifenmauern bekommen ein kleines Rechteck, welches bei Klick die Entfernung ausl&amp;ouml;st.&lt;br /&gt;&lt;br /&gt;Ich bedanke mich recht herzlich f&amp;uuml;r die Aufmerksamkeit.</description>
			<pubDate>Mon, 25 May 2009 23:35:26 +0200</pubDate>
		</item>

		<item>
			<title>Psychedelisch...</title>
			<link>https://www.blitzforum.de/worklogs/173/#1433</link>
			<guid>https://www.blitzforum.de/worklogs/173/#1433</guid>
			<author>D2006</author>
			<description>mag auf den ersten Blick folgendes Bild wirken:&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://garbage.chaos-interactive.de/images/cr2_02.jpg&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Aber das ist auch nur eine Debug-Ansicht. Was sich dahinter verbirgt: Es ist eine Art Tilemap, die bestimmt, wo welcher Untergrund ist. Gr&amp;uuml;n ist Gras, gelb Kies und rot offensichtlich die Stra&amp;szlig;e. Das ganze wird automatisch berechnet und muss nirgends vorbereitet werden. Pro Tile stehen 8x8 Felder zur Verf&amp;uuml;gung. Dies mag zwar nich sehr genau wirken, es ist aber ein Kompromiss zwischen Speicher- und Rechenzeitverbrauch. Jedes Mal zu berechnen, welcher Untergrund gerade anliegt, w&amp;auml;re zu aufwendig. Und f&amp;uuml;r jeden Pixel dies vorzuberechnen, w&amp;auml;re zu speicherintensiv und auch v&amp;ouml;llig unn&amp;ouml;tig. Nun wird es f&amp;uuml;r 8x8 Pixel gro&amp;szlig;e Rechtecke berechnet. Wozu das ganze? In eine der n&amp;auml;chsten Version wird von jedem Auto jedes Rad bei jedem Berechnungsdurchgang den Untergrund ermitteln und entsprechend die Bodenhaftung berechnen.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Startpl&amp;auml;tze&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Nun kann man auch im Editor ausw&amp;auml;hlen, von wo die einzelnen Teilnehmer denn ins Rennen starten. Hab jetzt (vorerst) festgelegt, dass bis zu 6 Gegner antreten werden. Auf den folgenden zwei Bildern sieht man einmal die Auswahl im Streckeneditor und dann die Auswirkung im Spiel. (Dem Spieler wurde offensichtlich der zweite Startplatz zugewiesen.)&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://garbage.chaos-interactive.de/images/cr2_editor_05.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://garbage.chaos-interactive.de/images/cr2_03.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Weitere Schritte&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Bei vielen Punkten - zB der erste hier zulesende - hab ich den Vorg&amp;auml;nger l&amp;auml;ngst eingeholt. Um aber genau den letzten Stand zu erreichen, f&amp;auml;llt noch ein entscheidendes Merkmal: Hindernisse und Kollision. Das wird also die n&amp;auml;chste Aufgabe sein, die guten alten Reifenmauern wieder einzubauen, die zusammen mit der untergrundabh&amp;auml;ngigen Fahrphysik dem Abk&amp;uuml;rzen endg&amp;uuml;ltig einen Strich durch die Rechnung macht.&lt;br /&gt;&lt;br /&gt;Das war's erstmal, ich bedanke mich f&amp;uuml;r die Aufmerksamkeit.</description>
			<pubDate>Sun, 10 May 2009 21:53:13 +0200</pubDate>
		</item>

		<item>
			<title>Im Kreis fahren...</title>
			<link>https://www.blitzforum.de/worklogs/173/#1413</link>
			<guid>https://www.blitzforum.de/worklogs/173/#1413</guid>
			<author>D2006</author>
			<description>... ist nun m&amp;ouml;glich. Die Maps werden nun auch im Hauptspiel geladen. Da man nun seine Runden drehen kann, sollten selbige auch gez&amp;auml;hlt werden. Daf&amp;uuml;r muss aber das System wie im alten ChaosRacer herbei, dass daf&amp;uuml;r sorgt, dass man Runden nicht abk&amp;uuml;rzen kann. Weiterhin ist es nun m&amp;ouml;glich im Editor die Start- und Ziellinie festzulegen, sowie die Kollisionslinie, die zum konrekten &amp;Uuml;berfahren genutzt wird, anzupassen. Und als das dann funktionierte, war es ein leichtes nen Rundenz&amp;auml;hler einzubauen und die bisherigen Rundenzeiten zu speichern.&lt;br /&gt;&lt;br /&gt;F&amp;uuml;r das Beweisbild muss ich noch anmerken, dass ich das Rechteck mit einer nicht-finalen Autografik austauschte:&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://garbage.chaos-interactive.de/images/cr2_01.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;</description>
			<pubDate>Sun, 03 May 2009 20:55:43 +0200</pubDate>
		</item>

		<item>
			<title>Tot geglaubte leben länger...</title>
			<link>https://www.blitzforum.de/worklogs/173/#1405</link>
			<guid>https://www.blitzforum.de/worklogs/173/#1405</guid>
			<author>D2006</author>
			<description>&amp;Uuml;ber die lange Sendepause verliere ich keine Worte, konzentriere mich lieber auf die sch&amp;ouml;nen Dinge:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;~Der Editor~&lt;/b&gt;&lt;br /&gt;Der Streckeneditor hat die wichtigsten Funktionen und ist somit produktiv einsetzbar. Es ist der zweite Anlauf, nachdem ich vorher einen mit MaxGUI-Unterst&amp;uuml;tzung bauen wollte und dieser Versuch ganz schnell meine Motivation auffra&amp;szlig;. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;~Sektoren~&lt;/b&gt;&lt;br /&gt;Hier kann man die Sektorenkarte bearbeiten. Die Ausbreitung ist in jeder Richtung einstellbar, damit man die Karte nicht neusetzen muss, wenn man links oder oben mal fix mehr Platz braucht.&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://garbage.chaos-interactive.de/images/cr2_editor_01.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;~Rennstrecke~&lt;/b&gt;&lt;br /&gt;Dieser Teil brauchte extrem viel Mathe, aber es hat sich gelohnt. Die Strecke kann nun mit der Maus derart einfach und schnell zusammengeklickt werden, dass sp&amp;auml;ter sicher viele Rennstrecken f&amp;uuml;r das Spiel verf&amp;uuml;gbar sein werden. Man kann mit dem Mauszeiger exakt zeigen, wohin das n&amp;auml;chste Teilst&amp;uuml;ck verlaufen soll. Ein Klick setzt es und das n&amp;auml;chste Teilst&amp;uuml;ck ist dran. Zum Schluss einfach die Maus auf den roten Punkt halten und das letzte Teilst&amp;uuml;ck schlie&amp;szlig;t die Strecke perfekt passend ab. Alles Dank Vektorrechnung und Bezierkurven kein Problem. Da ich bei der Umsetzung aber schon welche hatte, m&amp;ouml;chte ich an dieser Stelle Noobody, Hyde, BtbN und allen Vergessenen danken.&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://garbage.chaos-interactive.de/images/cr2_editor_02.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;~Tiles~&lt;/b&gt;&lt;br /&gt;Dieser Bereich hat mir Kopfschmerzen bereitet, die ich nie vermutet h&amp;auml;tte, weil's eigentlich simpel ist. Man setzt entweder Gras- oder Kiestiles, wobei die R&amp;auml;nder automatisch angepasst werden ... sollten. Sie tun es, aber es gibt noch einige Probleme, die sich vermutlich nicht beseitigen werden lassen, so dass es am Ende mal &amp;quot;halbautomatisch&amp;quot; geschehen wird. Die Rennstrecke wird in diesem Modus sozusagen &amp;quot;wireframe&amp;quot; dargestellt, damit man nicht blind die Tiles setzen muss, weil man dank der Strecke nicht viel sieht oder dank fehlender Strecke gar nicht wei&amp;szlig;, wo der Kies hin muss.&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://garbage.chaos-interactive.de/images/cr2_editor_03.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;~Datei~&lt;/b&gt;&lt;br /&gt;Hier lassen sich Strecken speichern und laden. Auch sieht man nochmal die kreierte Strecke in voller Pracht. Guter Zeitpunkt um darauf hinzuweisen, dass sich dieser sowie die zwei vorher beschriebenen Bereiche stufenlos von 2facher Vergr&amp;ouml;&amp;szlig;erung bis 3facher Verkleinerung zoomen lassen.&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://garbage.chaos-interactive.de/images/cr2_editor_04.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ich bedanke mich f&amp;uuml;r die Aufmerksamkeit.</description>
			<pubDate>Fri, 01 May 2009 23:04:05 +0200</pubDate>
		</item>

		<item>
			<title>Von Tilemaps und DirectX</title>
			<link>https://www.blitzforum.de/worklogs/173/#1036</link>
			<guid>https://www.blitzforum.de/worklogs/173/#1036</guid>
			<author>D2006</author>
			<description>&lt;b&gt;DirectX&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Es funktioniert zwar schon seit mehr als einer Woche, aber ich kann ja trotzdem freudig berichten, dass Dank der tollen Hilfe von BladeRunner das Spiel nun unter OGL und DirectX laufen wird! Damit ist also auch gew&amp;auml;hrleistet, dass &amp;auml;ltere Hardware, welche allergisch auf OGL reagiert, mit dem ChaosRacer 2 zurechtkommen wird.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tilemaps&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Inzwischen sind die Konzepte zum Sektor-System ausgereift und ich hab schon mit der Umsetzung begonnen. Ein Sektor wird eine Kantenl&amp;auml;nge von 512 Pixel haben. Jeder einzelne wird eine Tilemap der Gr&amp;ouml;&amp;szlig;e 8x8 haben, wodurch sich *rechnerechnerechne* eine Tilegr&amp;ouml;&amp;szlig;e von 64x64 px&amp;sup2; ergibt. Wobei die schon eher feststand, weil ich f&amp;uuml;r den Anfang die alten Tiles aus dem Topdown Racer wiederverwenden werde. Da hab ich also schon Gras und Kies sowie  die &amp;Uuml;berg&amp;auml;nge dazwischen abgedeckt. (&lt;a href=&quot;http://www.chaos-interactive.de/pics/race5.jpg&quot; target=&quot;_blank&quot;&gt;Bild aus dem alten Projekt mit den Tiles&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tiles&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Allerdings sind die einzelnen Tiles nicht alle in einer Datei, weil ich sowas leicht unflexibel und nervig finde, wenn man sp&amp;auml;ter Tiles austauscht. Deswegen hab ich mir Gedanken gemacht, wie man Tiles aus mehreren Dateien nutzbar machen kann. Die kleinen Bildchen werden im Spiel nun von einer Klasse verwaltet. Die sieht im Groben so aus:&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;Type TTiles&lt;br /&gt;&amp;nbsp; &amp;nbsp;Field tiles&amp;#58;TImage&amp;#91; 42 &amp;#93;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Method load&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;'hier werden die Tiles geladen&lt;br /&gt;&amp;nbsp; &amp;nbsp;End Method&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Method getTile&amp;#58;TImage&amp;#40;index&amp;#58;int&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Return tiles&amp;#91; index &amp;#93;&lt;br /&gt;&amp;nbsp; &amp;nbsp;End Method&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Global _instance&amp;#58;TTiles&lt;br /&gt;&amp;nbsp; &amp;nbsp;Function getSelf&amp;#58;TTiles&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Return _instance&lt;br /&gt;&amp;nbsp; &amp;nbsp;End Function&lt;br /&gt;&amp;nbsp; &amp;nbsp;Method New&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;_instance = Self&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;load&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;End Method&lt;br /&gt;&amp;nbsp; &amp;nbsp;Function get&amp;#58;TImage&amp;#40;index&amp;#58;int&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;Return _instance.getTile&amp;#40;index&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;End Function&lt;br /&gt;End Type&lt;/div&gt;&lt;br /&gt;Nun braucht es zu den Beginn des Spiels bei der Initialisierung einfach nur ein &lt;i&gt;New TTiles&lt;/i&gt; und schon wird alles geladen. Beim Zeichnen der Tilemaps braucht's dann einfach nur noch ein &lt;i&gt;DrawImage TTiles.get(tilenr), x, y&lt;/i&gt;. (Dieses Prinzip nennt sich &amp;uuml;brigens &lt;a href=&quot;http://de.wikipedia.org/wiki/Singleton_(Entwurfsmuster)&quot; target=&quot;_blank&quot;&gt;Singleton&lt;/a&gt;) Aber wie geht es nun, dass jedes Tile eine eindeutige Nummer hat, egal aus welcher Datei sie kommt? Ich extrahiere einfach bei AnimImages die einzelnen Frames, sodass sie eigenst&amp;auml;dige TImages sind. Das geht so:&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;frame = LoadImage&amp;#40; image.pixmaps&amp;#91; i &amp;#93; &amp;#41;&lt;/div&gt;&lt;br /&gt;Wobei &lt;i&gt;image&lt;/i&gt; das animierte Image ist und &lt;i&gt;i&lt;/i&gt; f&amp;uuml;r den Frame steht, den wir gerade haben wollen (an dieser Stelle Dank an Suco-X und DC f&amp;uuml;r die Hilfe). Recht statisch und unflexibel sieht's daf&amp;uuml;r aber bisher in der load-Methode aus. Inwiefern dies sp&amp;auml;ter dynamischer wird oder gar Strecken eigenen Tilesets haben k&amp;ouml;nnen, steht noch nicht fest.&lt;br /&gt;&lt;br /&gt;So, dass waren erstmal die Einblicke in meine kleine Gedankenwelt,&lt;br /&gt;ich bedanke mich f&amp;uuml;r die Aufmerksamkeit.</description>
			<pubDate>Thu, 15 Jan 2009 10:42:38 +0100</pubDate>
		</item>

		<item>
			<title>Und es wurde hübscher...</title>
			<link>https://www.blitzforum.de/worklogs/173/#1008</link>
			<guid>https://www.blitzforum.de/worklogs/173/#1008</guid>
			<author>D2006</author>
			<description>Heut gelang mir ohne gro&amp;szlig;e OGL-Kenntnisse das Umsetzen meiner Idee, genauso wie ich es mir vorstellte. *freu* Gleich ein Bild zum Beweis:&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=4231&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Die Stra&amp;szlig;e wird nun fein texturiert gemalt und zwar nicht wie urspr&amp;uuml;nglich als Triangle sonder als Quad, aber das soll mir recht sein. Ob die Textur final bleibt ist zwar unwahrscheinlich, aber sie sieht f&amp;uuml;r den Moment erstmal passabel aus.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Gedanken zum Speichern der Strecke&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Unterdessen machte ich mir Gedanken, wie ich die Datenstruktur der Streckenteile am besten hinkrieg. Eine Tilemap f&amp;auml;llt klarerweiser aus, da die Stra&amp;szlig;e ja wie beabsichtigt kreuz und quer im jeden Winkel verlaufen wird. Trotzdem braucht es eine schnelle Methode, rauszukriegen, welche Teile der Stra&amp;szlig;e denn gemalt werden m&amp;uuml;ssen, da nat&amp;uuml;rlich nicht alle immer gezeichnet werden k&amp;ouml;nnen. Auch eine simple Liste reicht nicht, da man trotzdem immer beispielsweise 1000 Eintr&amp;auml;ge durchiterieren muss, um 20 zu zeichnen.&lt;br /&gt;&lt;br /&gt;Mein Plan ist es daher, die Strecke in Sektoren zu unterteilen, die ihrerseits jeweils eine festgelegte Kantenl&amp;auml;nge haben und alle Streckenteile (sp&amp;auml;ter auch Hindernisse und sowas wie Reifenspuren) speichern, die sich in ihnen befinden. Ob ein Sektor gezeichnet werden muss, kann dann einfach ausgerechnet werden und man spart sich allerhand Arbeit. Wie effizient das ganze dann wirklich ist, h&amp;auml;ngt nat&amp;uuml;rlich auch von besagter Kantenl&amp;auml;nge ab. Die darf weder zu klein noch zu gro&amp;szlig; sein, aber ganz so entscheidend wird das nicht sein.&lt;br /&gt;&lt;br /&gt;Das war mein Wort zum Sonntag,&lt;br /&gt;ich bedanke mich f&amp;uuml;r die Aufmerksamkeit.</description>
			<pubDate>Sun, 04 Jan 2009 20:35:45 +0100</pubDate>
		</item>

		<item>
			<title>1. Eintrag</title>
			<link>https://www.blitzforum.de/worklogs/173/#1003</link>
			<guid>https://www.blitzforum.de/worklogs/173/#1003</guid>
			<author>D2006</author>
			<description>Hiermit m&amp;ouml;chte ich den Start eines neuen Projekts verk&amp;uuml;nden und den interessierten Teil der Community Einblicke in die Entwicklung eines Rennspiels gew&amp;auml;hren. Vor Jahren hatte ich schon eins geschrieben, damals noch in BlitzPlus. Nun fang ich von Grund auf neu an und diesmal in BlitzMax, weshalb ich als Arbeitstitel f&amp;uuml;r das Spiel &amp;quot;ChaosRacer 2&amp;quot; w&amp;auml;hlte.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Was ist geplant?&lt;/b&gt;&lt;br /&gt;Im Grunde erstmal nicht viel. Das ist ein richtiges Hobbyprojekt, in welches ich bei Lust meine sp&amp;auml;rliche Zeit investieren will. Es ist nicht geplant, dass ein superduper Spiel draus wird. Geplant ist demnach, was ich umsetzen kann. Und wenn ich nun schon gern vollmundig einen Mehrspielermodus sowie eine superintelligente KI &amp;quot;mit dem Gehirn eines Planeten&amp;quot; versprechen w&amp;uuml;rde, ist das wohl zu unrealistisch. Allerdings versuche ich so abgekapselt mit den tollen Boardmitteln von BMax zu programmieren, dass es sp&amp;auml;ter nicht allzu schwer fallen wird, es vielleicht doch noch einzubauen.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Grundlegendes&lt;/b&gt;&lt;br /&gt;Das alte Projekt hie&amp;szlig; nicht mal &amp;quot;ChaosRacer&amp;quot;. Sondern nur &amp;quot;2D Topdown Racer&amp;quot; (der Thread sollte im Projekteforum noch auffindbar sein, allerdings sind keine Downloads mehr online. Mal sehen, vielleicht werde ich im Verlauf dieses Worklogs wieder was online stellen von dem alten Ger&amp;uuml;mpel.) Aber da war Name Programm und &amp;auml;hnlich will ich es wieder machen. 2D und aus der Vogelperspektive. Durch die sch&amp;ouml;ne Hardwarebeschleunigung von BMax wird es somit von Haus aus schonmal sch&amp;ouml;ner aussehen. Das Auto war damals ja doch arg pixelig, weil es mit RotateImage gedreht wurde.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Erste Fortschritte: Fahrphysik&lt;/b&gt;&lt;br /&gt;Das Spiel wird eine v&amp;ouml;llig andere Physik haben als sein Vorg&amp;auml;nger. F&amp;uuml;r jeden Reifen werden einzeln die Kr&amp;auml;fte und Wechselwirkungen zum Fahrzeug berechnet. Das System dazu steht bereits und macht schon Spa&amp;szlig;, allerdings wird es schwer sein ein brauchbares Balancing zu finden. Mal bricht der Wagen zu fr&amp;uuml;h aus, mal f&amp;auml;hrt er um enge Kurven wie auf Schienen. Die Physik wird zwar allemal realistischer sein als vormals, aber damit der Spielspa&amp;szlig; bestehen bleibt wird sie nicht 1:1 realit&amp;auml;tsgetreu.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Der Workloganlass: Streckenf&amp;uuml;hrung&lt;/b&gt;&lt;br /&gt;Da ich noch ein wenig mehr haben fertig haben wollte, ehe ich einen Worklog anfing, hab ich erstmal weiter &amp;uuml;berlegt und heute angefangen die Datenstruktur f&amp;uuml;r die Streckenf&amp;uuml;hrung auszuarbeiten. Im Vorg&amp;auml;nger gab es auch schon freie Streckenf&amp;uuml;hrung, aber zu einem hohen Preis: die Stra&amp;szlig;en-&amp;quot;tiles&amp;quot; wurde einfach gedreht auf ein gro&amp;szlig;es Image gemalt, dieses wurde dann gekachelt und diese Tiles dann immer gezeichnet. Das war zwar schnell, verbrauchte aber viel Speicherplatz und war somit arg ineffizient. Das neue System wird sich der sowieso schon ben&amp;ouml;tigten 3D-Beschleunigung bedienen. Die Strecke wird aus Polygonen bestehen, welche dann texturiert werden.  Das ist aber noch insofern Zukunftsmusik, als dass ich daf&amp;uuml;r noch eine BMax-L&amp;ouml;sung suche, die das auch kann (sowohl f&amp;uuml;r OGL als auch f&amp;uuml;r DX).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Beweisbild&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=4220&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;Hier sieht man halt ein Fahrzeug mit seinen vier Reifen, von welche die beiden vorderen stark lenken. Die Strecke wird hier quasi als &amp;quot;Wireframe&amp;quot; angezeigt. Sichtbar sind also die einzelnen Polygone. Sp&amp;auml;ter werde ich vermutlich optimieren, dass gerade Strecken weniger Polygone brauchen.&lt;br /&gt;&lt;br /&gt;Das war's erstmal zur Stunde,&lt;br /&gt;vielen Dank f&amp;uuml;r die Aufmerksamkeit!&lt;br /&gt;</description>
			<pubDate>Sat, 03 Jan 2009 18:23:18 +0100</pubDate>
		</item>


	</channel>
</rss>
