<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
	<channel>
		<title>BlitzBasic Portal Worklogs - Realspace</title>
		<link>https://www.blitzforum.de/worklogs/7/</link>
		<description>Worklog von FS-COM</description>
		<language>de</language>
		<managingEditor>mail@blitzforum.de</managingEditor>
		<webMaster>mail@blitzforum.de</webMaster>
		<pubDate>Fri, 10 Apr 2015 01:56:26 +0200</pubDate>
		<lastBuildDate>Fri, 10 Apr 2015 01:56:26 +0200</lastBuildDate>

		<item>
			<title>Der Server läuft</title>
			<link>https://www.blitzforum.de/worklogs/7/#3787</link>
			<guid>https://www.blitzforum.de/worklogs/7/#3787</guid>
			<author>Silver_Knee</author>
			<description>Die Alpha ist gerade ver&amp;ouml;ffentlicht. Hier mal ein Screen, wie es auf dem Server aussieht.&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://evolver.us.to/cnrs/Server.png&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;</description>
			<pubDate>Fri, 10 Apr 2015 01:56:26 +0200</pubDate>
		</item>

		<item>
			<title>Sind es wirklich schon 8 Jahre..?</title>
			<link>https://www.blitzforum.de/worklogs/7/#3783</link>
			<guid>https://www.blitzforum.de/worklogs/7/#3783</guid>
			<author>Silver_Knee</author>
			<description>Ja, die Zeit vergeht. Abitur, Studium, Arbeit muss sein, doch das Projekt l&amp;auml;sst mich nicht gehen.&lt;br /&gt;&lt;br /&gt;Ich habe Herbst 2014 im Urlaub ein lange vorgenommenes Projekt fast komplett umgesetzt. &lt;a href=&quot;https://www.blitzforum.de/forum/viewtopic.php?t=40122&quot; target=&quot;_blank&quot;&gt;Das Implementieren von RMI als Modul in BlitzMax&lt;/a&gt;. Das war quasi der Grundstein, daf&amp;uuml;r, dass ich in 2,5 Monaten mit einer leeren Seite angefangen, die Idee so weit umgesetzt habe, wie sie noch nie war.&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=12959&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Im Screenshot zu sehen sind der Server, der Client und ein extra &amp;quot;KI&amp;quot;-Client. Die Grundfunktionalit&amp;auml;ten implementiert, die wir uns f&amp;uuml;r die &amp;quot;Version 1&amp;quot; &amp;uuml;berlegt hatten: Der Client soll sich Knarren f&amp;uuml;r sein Raumschiff kaufen k&amp;ouml;nnen und damit jemanden abballern. Dazu muss er frei rumliegendes Erz einsammeln und verkaufen, um sich von dem Erl&amp;ouml;s die Knarren leisten zu k&amp;ouml;nnen und sie an sein Schiff bauen. Von der Open World, wie sie noch in der ersten Version 2007 geplant war, haben wir zugunsten von Netzwerktraffic und Auswertung auf dem Server (wer ist nah genug an dem Client dran, dass es sich lohnt, die Koordinaten zu senden?) fallen gelassen. Daf&amp;uuml;r gibt es jetzt Sektoren und davon erst mal 2.&lt;br /&gt;Die Verwendung meiner RMI-Implementierung in einem richtigen Projekt (und nicht nur in den einfachen Test-Cases, die ich geschrieben hatte) machte mich auf eine ganze Reihe von Problematiken aufmerksam. &lt;br /&gt;Unter anderem wurde mir bekannt, dass &lt;a href=&quot;https://www.blitzforum.de/forum/viewtopic.php?t=40160&quot; target=&quot;_blank&quot;&gt;Timer immer erst alle Ticks abarbeiten, bis der n&amp;auml;chste Timer oder andere Events an der Reihe sind&lt;/a&gt;. Das f&amp;uuml;hrte bei RMI, das auf den EmitEventHook gehookt war, dann zu Problemen, wenn Methoden aufgerufen wurden, die etwas l&amp;auml;nger dauern. Aber auch das Ausf&amp;uuml;hren von Grafik-Befehlen, die mit EmitEventHook an einen Timer gebunden wurden, lie&amp;szlig;en die Hauptschleife Repeat-PollEvent-Forever nicht zu, da ihr Timer alle anderen Events blockierte. Das f&amp;uuml;hrte zu einer &amp;quot;klassischen&amp;quot; Hauptschleife, die Events abarbeitet, RenderWorld und anschlie&amp;szlig;end 2D-Ausgaben ausf&amp;uuml;hrt und vor Flip 0-Cls noch mit WaitTimer die FPS h&amp;auml;lt.&lt;br /&gt;Au&amp;szlig;erdem wollte ich zun&amp;auml;chst einige RMI-Methoden synchron ausf&amp;uuml;hren. Da der Server allerdings gleichzeitig, regelm&amp;auml;&amp;szlig;ig asynchrone oder synchrone Methodenaufrufe auf den Stream gepackt hat (Positionsupdates etc.), kamen manchmal Auftr&amp;auml;ge f&amp;uuml;r Methodenaufrufe auf dem Client dann an, als der Client gerade auf einen R&amp;uuml;ckgabewert gewartet hat. &lt;br /&gt;Eine gute L&amp;ouml;sung daf&amp;uuml;r habe ich bereits im Kopf, legte diese aber zugunsten einer vollst&amp;auml;ndig Asynchronen Implementierung beiseite. Da das Ganze singlethreaded ist, und die Asynchrone Antworten an ganz anderer Stelle reinkamen, als die Aufrufe rausgingen, stellte mich das auf eine kleine logistische Herausforderung bei der Zuordnung der Antworten zu den Anfragen. Ein Vorteil ist, das der Client nicht h&amp;auml;ngen bleibt, wenn der Server etwas l&amp;auml;nger braucht. Man hat daf&amp;uuml;r an Mancher Stelle mehr das Gef&amp;uuml;hl des Nachladens auf einer Web 2.0 Website, wenn kurz &lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://v1.preloaders.net/preloaders/5/preview.gif&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt; auftaucht.&lt;br /&gt;&lt;br /&gt;Geplant sind jetzt folgende Schritte:&lt;br /&gt;&lt;ol type=&quot;1&quot;&gt;&lt;li&gt;Neue RMI-Version dokumentieren und Problem mit synchroner Ausf&amp;uuml;hrung beheben.&lt;br /&gt;Das wird wahrscheinlich die Implementierung von FSCOM.ThreadPool und/oder FSCOM.Async enden.&lt;br /&gt;&lt;li&gt;Bugs ausbessern und Optimierungen an dem aktuellen Code vornehmen.&lt;br /&gt;&lt;li&gt;Projektthread und Betaversion&lt;br /&gt;&lt;li&gt;Feedback einholen und Plan f&amp;uuml;r Version 2.&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Mein Teamkollege Evolver01 sitzt derweil am Ausbau von den Grafiken, damit es mehr zu Sehen gibt.&lt;br /&gt;&lt;br /&gt;P.S.&lt;br /&gt;Geholfen hat wohl auch das Informationstechnik Studium, bei dem man so hochkomplexe Sachen lernt, wie ein Lasten- und Pflichtenheft anzulegen: Man schreib auf, was umgesetzt werden soll, und man macht dann auch nicht mehr (immer ein gro&amp;szlig;es Problem gewesen f&amp;uuml;r mich). Ich habe das professionell auf der R&amp;uuml;ckseite eines alten Briefumschlags angefertigt:&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=12962&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&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=12960&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;https://www.blitzforum.de/upload/file.php?id=12958&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;https://www.blitzforum.de/upload/file.php?id=12956&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;</description>
			<pubDate>Fri, 06 Mar 2015 18:32:23 +0100</pubDate>
		</item>

		<item>
			<title>Events und andere Sorgen</title>
			<link>https://www.blitzforum.de/worklogs/7/#3194</link>
			<guid>https://www.blitzforum.de/worklogs/7/#3194</guid>
			<author>Silver_Knee</author>
			<description>Irgendwie hatte ich das mit den Events nicht so ganz geschnallt... F&amp;uuml;r was Post- und EmitEvent genau zust&amp;auml;ndig waren erschloss sich mir erst heute. Da ich aber beide bereits eingesetzt habe, musste ich eute wieder 12 Tonnen code in die Tonne treten. Wieder alles 500fach einfacher. Wo sich vorher eine ganze datei mit 2 Hooks um das Hauptmen&amp;uuml; gek&amp;uuml;mmert haben ist heute nur noch ein Fenster. Ach Fenster... stimmt. Ich hab die Fenster endlich zum Laufen gebracht:&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://silversgames.de/cnRS/newclient.PNG&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Die Auff&amp;auml;lligen Farben waren vor allem beim Testen des Fensters von Vorteil. Die Rahmen, und der Mittelteil k&amp;ouml;nnen nach Fenstergr&amp;ouml;&amp;szlig;e verschieden gestreckt werden. Alle dazu n&amp;ouml;tigen Daten incl. Farben befinden sich in einer ini und lassen so dem Spieler die M&amp;ouml;glichkeit skins downzuloaden. &lt;br /&gt;&lt;br /&gt;Momentan teste ich das Netzwerk und setze das Protokoll weiter um. Wer sich das mal rein interessehalber ansehen will:&lt;br /&gt;[syntax=&amp;quot;bmax&amp;quot;]Rem  __PROTOCOL DOCUMENTATION__&lt;br /&gt;&lt;br /&gt;    byte C_UDP_MYSHIP|S_UDP_UPSHIP&lt;br /&gt;    int id&lt;br /&gt;    float X&lt;br /&gt;    float Y&lt;br /&gt;    float Z&lt;br /&gt;    int cx&lt;br /&gt;    int cy&lt;br /&gt;    int cz&lt;br /&gt;    float Pitch&lt;br /&gt;    float Yaw&lt;br /&gt;    float Roll&lt;br /&gt;    float sx&lt;br /&gt;    float sy&lt;br /&gt;    float sz&lt;br /&gt;    &lt;br /&gt;    byte S_UDP_CUBE&lt;br /&gt;    int cx&lt;br /&gt;    int cy&lt;br /&gt;    int cy&lt;br /&gt;    &lt;br /&gt;    byte C_UDP_LOGIN|C_TCP_LOGIN&lt;br /&gt;    bbString name&lt;br /&gt;    bbString pass[..md5]&lt;br /&gt;    $!TODO! password is doubble md5'ed. clientsided/serversided&lt;br /&gt;    $so no clearly visible passwords are sent and the db is save too.&lt;br /&gt;    &lt;br /&gt;    byte S_TCP_LOGIN|S_UDP_LOGIN&lt;br /&gt;    byte isLoggedin{True;False}&lt;br /&gt;    &lt;br /&gt;    byte C_TCP_CHAT&lt;br /&gt;    int channel&lt;br /&gt;    bbString text&lt;br /&gt;    $channel=0: 1 cuberadius&lt;br /&gt;    $channel!=0:send on a channel&lt;br /&gt;    &lt;br /&gt;    byte C_TCP_COMMAND&lt;br /&gt;    bbString cmd&lt;br /&gt;    $answer will be unformatd stdout (ReadString ReadAvail)&lt;br /&gt;    &lt;br /&gt;    byte S_TCP_CHAT&lt;br /&gt;    int channel&lt;br /&gt;    bbString text&lt;br /&gt;    $channel=0: 1 cuberadius&lt;br /&gt;    $channel!=0:send on a channel&lt;br /&gt;    &lt;br /&gt;    byte S_TCP_RESETSHIP&lt;br /&gt;    $client deletes all ships&lt;br /&gt;    &lt;br /&gt;    byte S_TCP_REMOVESHIP&lt;br /&gt;    int id&lt;br /&gt;    &lt;br /&gt;    byte S_TCP_ADDSHIP&lt;br /&gt;    int id&lt;br /&gt;    bbString kind.name&lt;br /&gt;    bbString name&lt;br /&gt;    bbString playername&lt;br /&gt;    $for i=0 to slots.length-1(&lt;br /&gt;    bbString slots[i].kind.name&lt;br /&gt;    $)&lt;br /&gt;    &lt;br /&gt;    byte C_TCP_LOADABLE_SET&lt;br /&gt;    int shipid&lt;br /&gt;    int slot/-storageid&lt;br /&gt;    bbString varname&lt;br /&gt;    bbString name&lt;br /&gt;    $this is only a request: the server decides weather this is set or not&lt;br /&gt;    &lt;br /&gt;    byte S_TCP_LOADABLE_SET&lt;br /&gt;    int shipid&lt;br /&gt;    int slot/-storageid&lt;br /&gt;    bbString varname&lt;br /&gt;    bbString name&lt;br /&gt;    &lt;br /&gt;    byte C_TCP_LOADABLE_CPBL&lt;br /&gt;    int shipid&lt;br /&gt;    int slot/-storageid&lt;br /&gt;    bbString kindname&lt;br /&gt;    int storageid&lt;br /&gt;&lt;br /&gt;    byte S_TCP_LOADABLE_CPBL&lt;br /&gt;    int shipid&lt;br /&gt;    int slot/-storageid&lt;br /&gt;    bbString kindname&lt;br /&gt;    int storageid&lt;br /&gt;    &lt;br /&gt;    byte C_TCP_REQUEST&lt;br /&gt;    byte REQID&lt;br /&gt;&lt;br /&gt;    byte S_TCP_OWNSHIP&lt;br /&gt;    bbString kind.name&lt;br /&gt;    bbString name&lt;br /&gt;    $for i=0 to slots.length-1(&lt;br /&gt;    bbString slots[i].kind.name&lt;br /&gt;    $)&lt;br /&gt;    $for i=0 to storage.length-1(&lt;br /&gt;    bbString slots[i].kind.name&lt;br /&gt;    $)&lt;br /&gt;    bbString accessplayer&lt;br /&gt;End Rem[/syntax]&lt;br /&gt;&lt;br /&gt;ein bbString ist &amp;uuml;brigens das was B3D bei ReadString ausgelesen und geschrieben hat: 4Bytes L&amp;auml;nge und dann der String, nicht wie Blitzmax rein den string und beim auslesen die l&amp;auml;nge wissen wollen. Wer hier schon die gro&amp;szlig;en Cheaterl&amp;uuml;cken o.&amp;auml;. findet: Kommentare erw&amp;uuml;nscht.&lt;br /&gt;&lt;br /&gt;Sonst ist nicht viel zu sagen. Es passiert viel Hintergrundarbeit, weil viel code noch ungetestet liegt. Weil der Server eine Funktionalit&amp;auml;t hat aber der client nicht etc. &lt;br /&gt;&lt;br /&gt;Latetest Bug: die UDP-Connection vom Client wird serverseitig irgendwie nicht geschlossen.&lt;br /&gt;&lt;br /&gt;RealSpace - Ich bin zu m&amp;uuml;de f&amp;uuml;r nen Werbespruch</description>
			<pubDate>Sat, 05 Mar 2011 03:02:57 +0100</pubDate>
		</item>

		<item>
			<title>Server und Client verstehen sich (wieder)</title>
			<link>https://www.blitzforum.de/worklogs/7/#3189</link>
			<guid>https://www.blitzforum.de/worklogs/7/#3189</guid>
			<author>Silver_Knee</author>
			<description>Das hat zwar alles unter B3D schon funktioniert aber das hantieren mit Sockets und Streams ist in BMax doch ein anderes. Habe daher eine &lt;a href=&quot;https://www.blitzforum.de/forum/viewtopic.php?t=36521&quot; target=&quot;_blank&quot;&gt;BB-&amp;Auml;hnlich Version&lt;/a&gt; des Ganzen geschrieben um etwas vertrauter meine Daten zu senden. Nebenbei habe ich auch bemerkt, dass BMAX kein Interface zum Empfangen von UDP-Nachrichten bereitstellt... Naja ist nun alles geregelt.&lt;br /&gt;&lt;br /&gt;Server und Client haben heute einen ersten Kontakt geschlossen. Meine protocol.bmx spezifiert zwar schon massig Nachrichten, doch die einzige die beide implementiert haben ist die Login-Kette. Danach war auch schon wieder Schluss. Es war aber mal ein Act den Client &amp;uuml;berhaupt zu compilen. Kenne mich mit der Dynamischen Event-Basierten struktur wohl doch noch nicht so aus. Alle 2 Minuten fange ich an Kilobytes von prozeturalen Code zu l&amp;ouml;schen und OOP-Like wieder umgeschrieben wieder einzubauen. Es sind wohl schon einige Muster festgefahren, wenn man an nem Projekt schon fast 4 Jahre h&amp;auml;ngt.&lt;br /&gt;&lt;br /&gt;Nun denn. Der Anfang der GUI ist (codetechnisch) gemacht. Windows, Buttons, Labels sind schon drin. Beim Client fehlen sicherlich noch einige Graphiken. Der Server l&amp;auml;sst sich per Kommandozeile steuern.&lt;br /&gt;&lt;br /&gt;Ich habe mich &amp;uuml;brigens entschlossen, allgemein n&amp;uuml;tzlichen Code, wie schon TCollectingStream, &amp;ouml;ffentlich zu machen. dabei w&amp;auml;ren TMirrorStream, meine GUI, TReversableStream und noch einige andere.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 18px;&quot;&gt;Realspace - Bist du Krieger oder H&amp;auml;ndler.... oder beides?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;EDIT:&lt;br /&gt;Screenshot: rechts=Server - links=Steuerkonsole&lt;br /&gt;&lt;span&gt;&lt;img onload=&quot;resize_image(this)&quot; src=&quot;http://silversgames.de/cnRS/screen.PNG&quot; alt=&quot;user posted image&quot; /&gt;&lt;/span&gt;</description>
			<pubDate>Thu, 24 Feb 2011 17:32:39 +0100</pubDate>
		</item>

		<item>
			<title>Eine kleine Gruselgeschichte</title>
			<link>https://www.blitzforum.de/worklogs/7/#3187</link>
			<guid>https://www.blitzforum.de/worklogs/7/#3187</guid>
			<author>Silver_Knee</author>
			<description>Es ist in der Nacht. Ein Mann gr&amp;auml;bt auf einem Friedhof eine Leiche aus. Er nimmt sie mit nach Hause. Dort wird sie auf den Tisch gelegt und obduziert. Viele Organe sind unterentwickelt. Das alte Kranke Herz &amp;quot;B3D&amp;quot; wird heraus gerissen und ein neues, junges eingesetzt. Der Schritt der ihm einst so schwer fiel ist nun hinter sich. Nun m&amp;uuml;ssen nur noch die Organe an das neue System angepasst werden und dann wird die Leiche zu neuem Leben erweckt werden. &lt;br /&gt;Ja dann wird Realspace neu aufleben. &lt;br /&gt;&lt;br /&gt;Kurz gesagt. Es l&amp;auml;sst mir keine Ruhe. Noch nichts in meinem Leben hat mich so gequ&amp;auml;lt und gefesselt wie dieses Spiel und BlitzMax mit seinen dynamischeren Strukturen und der neuen Grafik-Schnittstelle ist die ideale Wahl um diese Altlast irgendwann ad Acta legen zu k&amp;ouml;nnen.&lt;br /&gt;&lt;br /&gt;Leider sind alle Grafiken meinerseits auf meiner vom Tisch gefallenen Festplatte verschwunden. Ist aber im Moment nicht so wichtig. Ich m&amp;ouml;chte dieses Mal das Projekt etwas richtiger beginnen; habe Konzepte, Protokolle und sogar einige Storyelemente geschrieben, gemalt, beschrieben und fest gehalten. Ich wei&amp;szlig;, ich habe es schon oft gedacht, aber dieser Ansatz muss einfach funktionieren.&lt;br /&gt;Nun denn! Auf ein Neues.</description>
			<pubDate>Sun, 20 Feb 2011 13:47:23 +0100</pubDate>
		</item>

		<item>
			<title>d-Bug</title>
			<link>https://www.blitzforum.de/worklogs/7/#143</link>
			<guid>https://www.blitzforum.de/worklogs/7/#143</guid>
			<author>Silver_Knee</author>
			<description>Die Jagt nach den K&amp;auml;fern ist vor&amp;uuml;bergehend geschafft. Wir k&amp;ouml;nnen nun mit stolz verk&amp;uuml;nden: Ruckelfrei! Und zwar trotz Extremer Entfernungen (zB ca 600,000,000 BlitzEinheiten zum Pluto). Und das in extrem kleinen Bereichen (bei ca 1 BlitzEinheit/Frame innerhalb einer Station). Eigendlich nicht viel f&amp;uuml;r einen Worklog aber man soll wissen woran wir die letzten Wochen gearbeitet haben. Und es ging mir wie immer. Ich gehe vorerst davon aus, dass die neuste Formel die ich 3 mal getestet habe, l&amp;auml;uft...... GRO&amp;szlig;ER FEHLER..... Evo kuk in das Spiel und sagt intuitiv: &amp;quot;Da stimmt was an der Berechnung nich....&amp;quot;. Also zur&amp;uuml;ck an'nen Code. Hier! Da! Wo wird da die Entfernung eingegrenzt? Wie wird das berechnet? Und ich nat&amp;uuml;rlich: &amp;quot;Neue Formel! Frisch getestet! Is' nicht Falsch!&amp;quot; Nunja.... was soll ich sagen.... im test war die Speed 1 getestet. Dass da was verdoppelt wurde,was nicht verdoppelt werden sollte, f&amp;auml;llt bei der Zahl nicht auf.... Wenn man aber durch die Gravitation, der Erde mit ca 500 durchs All geschleudert wird, schon.... Beim &amp;Uuml;bergang, der Entfernungsbegrenzer kam es deshalb immer zu einem Ruck... Ekelhaft, W&amp;Auml;!!!! Zum Gl&amp;uuml;ck ist das weg! Aber nicht zu fr&amp;uuml;h freuen, denn Evo plant schon die n&amp;auml;chste H&amp;uuml;rde. Evtl mach ich demn&amp;auml;chst auch mal n neuen Screen.&lt;br /&gt;&lt;br /&gt;EDIT. Ach ja! Solltet ihr eine Version des Clients haben. Es gibt testweise eine 2. Station beim Pluto (irgend wie mussten wir das Ruckelfreie testen)...&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 18px;&quot;&gt;cnRS - Diesmal ohne Werbespruch &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; &lt;/span&gt;</description>
			<pubDate>Sat, 09 Feb 2008 03:52:02 +0100</pubDate>
		</item>

		<item>
			<title>Hallo Evo!!!</title>
			<link>https://www.blitzforum.de/worklogs/7/#134</link>
			<guid>https://www.blitzforum.de/worklogs/7/#134</guid>
			<author>Silver_Knee</author>
			<description>Hall&amp;ouml;chen dadr&amp;uuml;ben wie gehts. Etwas was wir 2 Lange nicht sagen konnten, denn obwohl alle &amp;Uuml;bertragungen glatt zu laufen schienen lief nichts.... Gott h&amp;auml;tte ich das fr&amp;uuml;her geahnt..... &lt;br /&gt;&lt;br /&gt;Aber fangen wir von vorne an: Nach dem hundertsten Versuch den KI-Script, sowie andere wichtige Nachrichten, via UDP zu &amp;uuml;bertragen bracht mich mein Grafiker wieder mal auf den Boden der Tatsachen zur&amp;uuml;ck und sagte &amp;quot;Nimm doch einfach TCP!&amp;quot;. An diese M&amp;ouml;glichkeit hatte ich garnichtmehr gedacht. zu verbissen war mein Kampf gegen die Verlustrate. Nachrichten bekamen ids die best&amp;auml;tigt werden mussten, aber nur dann, wenn sie von einem bestimmten Typ waren... Types namens &amp;quot;got&amp;quot; oder &amp;quot;savemessage&amp;quot; und all der K&amp;auml;se, der alle 120 Versuche 1 mal lief, machte mich v&amp;ouml;llig blind.... nun gut meine udp.bb behaust nun auch TCP und es ging gleich fr&amp;ouml;hlich ans Code l&amp;ouml;schen, denn zB der Timeout, der vorher die Aktivit&amp;auml;t &amp;uuml;berwachte und ggf einen Client f&amp;uuml;r tot erkl&amp;auml;rte, flog, denn wenn der Client tot ist bricht der TCP ab.... Auch etwas anderes ist nun vollkommen geworden durch den TCP-Stream: der Chat ist da!&lt;br /&gt;&lt;br /&gt;Nach dem ein ingame Chat in all seiner Reife (*hust*ingame IRC Fenster*hust*) sich darstellte konnten wir verbl&amp;uuml;ffend feststellen dass wir uns nicht finden konnten. Tats&amp;auml;chlich stellten wir es da Fest als Schnittlauch und Mas93 mal zum Testen da waren. Ich hatte mich mal wieder &amp;uuml;bersch&amp;auml;tzt und gedacht ach das kleine ding machste noch schnell, doch mein 1500 WLAN-DSL war sogar schneller. Die anderen waren einsatzbereit. Die EXE nicht &lt;img src=&quot;/forum/images/smiles/icon_redface.gif&quot; alt=&quot;Embarassed&quot; /&gt;. Bl&amp;ouml;d f&amp;uuml;r uns alle, denn ich hatte mich schon auf Alpha-Tests gefreut. Ich also ran an den Code. Geguckt. Mal hier. Mal da. Und dann was ausgebessert und mal und einfach uns beide an die Position 10000,10000,10000 gesetzt. Plopp. Zum ersten Mal &amp;quot;Hallo Evo &lt;img src=&quot;/forum/images/smiles/icon_biggrin.gif&quot; alt=&quot;Very Happy&quot; /&gt; &amp;quot;. und da flog das andere Schiff los und alles fl&amp;uuml;ssig trotz der 10FPS gedrosselte &amp;Uuml;bertragung und dann eine sch&amp;ouml;ne Rechts-Kurve.  &lt;img src=&quot;/forum/images/smiles/icon_evil.gif&quot; alt=&quot;Evil or Very Mad&quot; /&gt; WTF Boing Boing Boing. In zwei Richtungen gleichzeitig flog ein Zeptor Light an mir vorbei... O M G... was nun! wo liegt das Problem? noch dringender: was ist die L&amp;ouml;sung? Man f&amp;uuml;hlt sich wie bei dem Release von &amp;quot;Team Fortures 2&amp;quot; (Es kam &amp;uuml;ber 9 Jahre zu sp&amp;auml;t nachdem Valve sagte &amp;quot;bald&amp;quot; kommt es raus....)! Ich hatte damit gerechnet das im Sommer 2007 evtl. schon der ingame Verkauf steht aber so wird das sicher nichts.... Sommer 2008 vllt?? Hoffen wir das Beste. Die Suche nach dem Bug ging weiter... auf dem Weg dorthin hab min 64 Bugs platt gemacht, die nichts mit dem Problem zutun hatten, und 1024, die was damit zu tun hatten, aber nichts half wirklich. Ich sagte ich schlaf' mal dr&amp;uuml;ber. Ich schlief mehrere Wochen &amp;uuml;ber mein Praktikum hinweg. Immer mal wieder schaute ich in den Code und so kam es auch dass ich den Fehler fand. Doch das brachte mich der L&amp;ouml;sung 0 Schritte n&amp;auml;her. Ich schien sogar r&amp;uuml;ckw&amp;auml;rts zu gehen. Die X und Z Koordinate waren vertauscht, aber nicht bei beiden sondern der eine war zB bei 200,0,0 und der andere bei 0,0,200. Ingame konnten wir uns sehen (wei&amp;szlig; Gott warum) aber die Drehung wurde nicht &amp;uuml;bertragen weil die Entfernung zu gro&amp;szlig; war und der Traffic-Sparer zuschlug. Das hackte im Endeffekt dann auch so gr&amp;auml;sslich ingame, denn ich wollte nicht, dass Lagger so &amp;ouml;de in der gegend stehen (wie bei Counter Strike) sie sollten einfach dei tote zeit grade aus fliegen und so tun als ob... Doch das alles machte keinen Sinn: wir haben 1:1 den selben Client! Wie kommt es dass der eine xyz hat und der andere zyx??&lt;br /&gt;&lt;br /&gt;Heute kam die Erl&amp;ouml;sung: &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;PositionEntity s\mesh,ReadFloat&amp;#40;serverstream&amp;#41;,ReadFloat&amp;#40;serverstream&amp;#41;,ReadFloat&amp;#40;serverstream&amp;#41;&lt;/div&gt;&lt;br /&gt;ich nahm an dass die ReadFloats von links nach rechts abgearbeitet werden. aber das nette ding ehier beweist es:&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;vier_parameter&amp;#40;counter&amp;#40;&amp;#41;,counter&amp;#40;&amp;#41;,counter&amp;#40;&amp;#41;,counter&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;&lt;br /&gt;Function vier_parameter&amp;#40;mesh,x,y,z&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;Print &amp;quot;mesh=&amp;quot;+x&lt;br /&gt;&amp;nbsp; &amp;nbsp;Print &amp;quot;x=&amp;quot;+x&lt;br /&gt;&amp;nbsp; &amp;nbsp;Print &amp;quot;y=&amp;quot;+y&lt;br /&gt;&amp;nbsp; &amp;nbsp;Print &amp;quot;z=&amp;quot;+z&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Global count&lt;br /&gt;Function counter&amp;#40;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;count=count+1&lt;br /&gt;&amp;nbsp; &amp;nbsp;Return count&lt;br /&gt;End Function&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Die Parameter werden irgenwie willk&amp;uuml;rlich rausgefischt... RND w&amp;uuml;rde Evo sagen....&lt;br /&gt;Umgehen kann man den Effekt mit dem Vorspeichern der Werte und das war's. Wir machen an. Ich flieg zu ihm. TADA &amp;quot;Hi EVO!!!!&amp;quot; Nun wird's lustig, denn es kann weiter gehen. Auf der Liste stehen Kolli und Sch&amp;uuml;sse und dann der Release!!! Es wird &amp;uuml;brigens Freeware mit Premium sein....  Preis &amp;uuml;berlegen wir uns noch, aber nicht sonderlich teuer. Jeder soll einen Premium sich leisten k&amp;ouml;nnen. Bis dahin:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 18px;&quot;&gt;cnRS - wirst du einer unter Vielen oder der Eine unter Vielen?&lt;/span&gt;</description>
			<pubDate>Tue, 05 Feb 2008 04:21:10 +0100</pubDate>
		</item>

		<item>
			<title>GUI &amp; Kolli &amp; Script</title>
			<link>https://www.blitzforum.de/worklogs/7/#34</link>
			<guid>https://www.blitzforum.de/worklogs/7/#34</guid>
			<author>Silver_Knee</author>
			<description>Lasset die Korken knallen: Das Graphical-User-Interface ist vollbracht!!&lt;br /&gt;Im Zuge der letzten Tage habe ich es geschafft das GUI wiederherzustellen. Und sie ist besser als Vorher. Die Schriftarten haben noch mit uns zu k&amp;auml;mpfen aber mein Windows-Font-&amp;gt;D3D-Font Converter hat seinen Zweck erf&amp;uuml;llt. Die Feinabstimmung blieb wieder an Evo h&amp;auml;ngen aber der macht das ja gerne.... stimmts Evo? &lt;img src=&quot;/forum/images/smiles/icon_wink.gif&quot; alt=&quot;Wink&quot; /&gt; Nun denn es steht noch viel auf der Features-Liste was noch nicht im Spiel ist zB dieser Wundersch&amp;ouml;ne mit Paint gekritzelte Stammbaum, auf dem vermerkt ist welches Schiff welche Teile f&amp;uuml;r welches andere Schiff produziert, den ich heute morgen freudestrahlend entgegen nahm. Das ganze wird immer Komplizierter und ich frage mich immer &amp;ouml;fter auf was ich mich da eingelassen habe.... eigentlich wollte er doch nur ne Freelancer-Steuerung.... Nun welch Gl&amp;uuml;ck: Das GUI ist wieder da! Aber nicht dass ich denke ich h&amp;auml;te Feierabend komme ich auf das Thema Kollision.... &lt;br /&gt;&lt;br /&gt;Nun da sind viele Schiffe mit vielen Polys geb ich den allen die Kugel-Poly Kollision von BB hab ich die oft zitierte &amp;quot;Diashow mit 2 Bildern pro Minute&amp;quot;. Nun kam ja der Geniale Einfall: Moment Schilde sind doch Rund. Aha! Nun In der allgemeinen Raumschlacht werden alle ihre Schilde oben haben. Da reicht also Kugel-Kugel-Kollision. Die ist auch annehmbar schnell. Nun irgenwie muss man zB in die UtilityStation der SpacePolice kommen um sich dort Waffen und Sonstigen Kleinkram zu kaufen. Da f&amp;auml;llt mir ein: Nur dieses eine Schiff brauch dann Poly......... Die Natur liefer das Vorbild: Wir lassen Permissions &amp;uuml;ber den Chat laufen. Es gibt 255 Channel und da die Ersten 5 eh schon f&amp;uuml;r Positionsangabeu sw Verwendet werden belegen wir Channel 6 f&amp;uuml;r die Anfrage auf Schildeintrittserlaubnis. Nun Das ganze muss ja steuerbar sein. Auch von Nem KI-Script, denn die SpacePolice soll als einziger NPC sich selbst verwalten k&amp;ouml;nnen.&lt;br /&gt;&lt;br /&gt;Der KI-Script muss also um Funktionen erweitert werden. Die bisherigen M&amp;ouml;glichkeiten, turnto, planet, ship, %warp% und andere Befehle reichen dazu nicht mehr aus.... Es muss was richtiges her. Man muss bedingungen serten k&amp;ouml;nnen: WENN die anfrage kommt DANN Anfrageschiff reinlassen. ein IF muss her... wie konstruirt man if in einer sprache die so aussieht:&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;befehl&amp;#40;befehl&amp;#40;befehl&amp;#40;123&amp;#41;&amp;#41;,zeiterparameter&amp;#40;156&amp;#41;&amp;#41;;&lt;/div&gt;&lt;br /&gt;kein platz f&amp;uuml;r If und endif..... da fiel mir AVS von Winamp ein. Da hat die Sprache das selbe muster. Die l&amp;ouml;sten if so:&lt;br /&gt;&lt;b&gt;Code: &lt;/b&gt;&lt;span style=&quot;font-size:0.8em; display:inline;&quot; id=&quot;showcodebox3&quot;&gt; &lt;a href=&quot;javascript&amp;#058;show_code('3')&quot;&gt;[AUSKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;font-size:0.8em; display:none;&quot; id=&quot;hidecodebox3&quot;&gt; &lt;a href=&quot;javascript&amp;#058;hide_code('3')&quot;&gt;[EINKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;div id=&quot;codebox3&quot; class=&quot;codebox&quot; style=&quot;max-height: 200px;&quot; onload=&quot;check_code('3');&quot;&gt;if&amp;#40;function_die_1_zur&amp;uuml;ckgeben_muss&amp;#40;123&amp;#41;,damit_diese_ausgef&amp;uuml;hrt_wird&amp;#40;233&amp;#41;&amp;#41;&lt;/div&gt;&lt;br /&gt;nach dem gleichen Schema funktioniert nun auch mein if nur dass die anzahl der Parameter ergal ist: wird der erste als Int &amp;lt;&amp;gt;0 dann werden die anderen Parmameter nach der rihe ausgef&amp;uuml;hrt. Nochetwas gibt es neues in meinem Script, was es vorher nicht gab: Strings. Und die Funktion Equal erledigt dann den Rest.&lt;br /&gt;Variablen gab es schon Vorher. und zwar dos-like: %Hans%. Man kann &amp;uuml;brigens mit diesen auch die DoS Variablen auslesen, aber au&amp;szlig;er dass vllt irgendwann einer die Variable %path% von allen Clients durch den Chat haut kann ich mir nix weltbewegend schlimmes Vorstellen was man damit Unfug treiben k&amp;ouml;nnte. Damit man nun auf Chat-Msgs, wie so eine Schildeintrittserlaubnis-Anfrage antworten kann wurden neue Systemvariablen zu den alten hinzugef&amp;uuml;gt:&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;showcodebox4&quot;&gt; &lt;a href=&quot;javascript&amp;#058;show_code('4')&quot;&gt;[AUSKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;font-size:0.8em; display:none;&quot; id=&quot;hidecodebox4&quot;&gt; &lt;a href=&quot;javascript&amp;#058;hide_code('4')&quot;&gt;[EINKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;div id=&quot;codebox4&quot; class=&quot;codebox&quot; style=&quot;max-height: 200px;&quot; onload=&quot;check_code('4');&quot;&gt;targetspeed - Zielgeschwindigkeit&lt;br /&gt;warp - Ob warp aktiv ist&lt;br /&gt;me - Die eigene Schiff-Handle&lt;br /&gt;Und nun neu&amp;#58;&lt;br /&gt;lastmsg - Text der letzten Chatnachricht&lt;br /&gt;lastchan - Channel der letzten Chatnachricht&lt;br /&gt;lastfrom - Sender der letzten Chatnachricht&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Damit und mit diesen Befehlen:&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;showcodebox5&quot;&gt; &lt;a href=&quot;javascript&amp;#058;show_code('5')&quot;&gt;[AUSKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;font-size:0.8em; display:none;&quot; id=&quot;hidecodebox5&quot;&gt; &lt;a href=&quot;javascript&amp;#058;hide_code('5')&quot;&gt;[EINKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;div id=&quot;codebox5&quot; class=&quot;codebox&quot; style=&quot;max-height: 200px;&quot; onload=&quot;check_code('5');&quot;&gt;planet&amp;#40;planeten nummer von 1-9&amp;#41;;gibt die handle des planeten zur&amp;uuml;ck&lt;br /&gt;ship&amp;#40;schiffid&amp;#41;;gibt die handle des Schiffes mit der ID zur&amp;uuml;ck&lt;br /&gt;turnto&amp;#40;handle&amp;#41;;Pointentity&amp;#40;eigenes schiff,handle&amp;#41;^^&lt;br /&gt;not&amp;#40;wert&amp;#41;;sollt jeder wissen was das macht&lt;br /&gt;equal&amp;#40;x,y&amp;#41;;gibt 1 zur&amp;uuml;ck wenn x=y und 0 wenn x&amp;lt;&amp;gt;y&lt;br /&gt;ingravity&amp;#40;schiffhandle&amp;#41;;gibt wenn das angegebene Schiff sich dem Gravifeld eines Planeten befindet seine handle zur&amp;uuml;ck, sonst 0&lt;br /&gt;exp&amp;#40;x,y&amp;#41;;=x^y&lt;br /&gt;if&amp;#40;wenn,dann,dann,dann,...&amp;#41;;Wie oben beschrieben&lt;br /&gt;ask4openup&amp;#40;SchiffID&amp;#41;;Sendet eine Schildeintrittserlaubnis-Anfrage an das gegebene schiff&lt;br /&gt;sendmsg&amp;#40;txt,channel&amp;#41;;Kann man zb benutzen um nen Kick/Ban wegen Spambot-Schreibens zu bekomen&lt;br /&gt;subtract&amp;#40;x,y&amp;#41;;=x-y&lt;br /&gt;divide&amp;#40;x,y&amp;#41;;=x/y&lt;br /&gt;add&amp;#40;x,y&amp;#41;;=x+y&lt;br /&gt;multiply&amp;#40;x,y&amp;#41;;=x*y&lt;br /&gt;distance&amp;#40;handle1,handle2&amp;#41;;=EntityDistance&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Kann man zB schon eine Fernsteuerung f&amp;uuml;r Schiffe bauen. Oder in einer Nahen Zukunft schreiben:&lt;br /&gt;&lt;b&gt;Code: &lt;/b&gt;&lt;span style=&quot;font-size:0.8em; display:inline;&quot; id=&quot;showcodebox6&quot;&gt; &lt;a href=&quot;javascript&amp;#058;show_code('6')&quot;&gt;[AUSKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;span style=&quot;font-size:0.8em; display:none;&quot; id=&quot;hidecodebox6&quot;&gt; &lt;a href=&quot;javascript&amp;#058;hide_code('6')&quot;&gt;[EINKLAPPEN]&lt;/a&gt; &lt;/span&gt;&lt;div id=&quot;codebox6&quot; class=&quot;codebox&quot; style=&quot;max-height: 200px;&quot; onload=&quot;check_code('6');&quot;&gt;If&amp;#40;&lt;br /&gt;&amp;nbsp;equal&amp;#40;&lt;br /&gt;&amp;nbsp; add&amp;#40;&lt;br /&gt;&amp;nbsp; &amp;nbsp;equal&amp;#40;&amp;quot;%lastmsg%&amp;quot;,&amp;quot;Attack Him&amp;quot;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;,&lt;br /&gt;&amp;nbsp; &amp;nbsp;equal&amp;#40;&amp;quot;%lastfrom%&amp;quot;,&amp;quot;Silver_Knee&amp;quot;&amp;#41;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;#41;&lt;br /&gt;&amp;nbsp; ,&lt;br /&gt;&amp;nbsp; 2&lt;br /&gt;&amp;nbsp;&amp;#41;&lt;br /&gt;&amp;nbsp;,&lt;br /&gt;&amp;nbsp;Attack&amp;#40;Ship&amp;#40;28&amp;#41;&amp;#41;&lt;br /&gt;&amp;nbsp;&amp;#41;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Neben bei ship(28) ist die Utillity Station von der SpacePolice.....MUHAHA:&lt;br /&gt;&lt;span style=&quot;font-size: 18px;&quot;&gt;&lt;br /&gt;cnRS - Defeat all NPCs&lt;/span&gt;</description>
			<pubDate>Wed, 26 Dec 2007 15:13:11 +0100</pubDate>
		</item>

		<item>
			<title>Die Erste Bilanz + Über das Spiel</title>
			<link>https://www.blitzforum.de/worklogs/7/#10</link>
			<guid>https://www.blitzforum.de/worklogs/7/#10</guid>
			<author>Silver_Knee</author>
			<description>Nun will ich mich mal &amp;uuml;ber das Mega-Giga-Projekt cnRS auslassen: Das ganze war als MMORPG geplant hat aber seinen Charakter in Richtung  Massiv-Mulitplayer-Online-Weltraum-Aufbauspiel gebracht. &lt;br /&gt;Jener Schicksalhafte Thread (&lt;a href=&quot;https://www.blitzforum.de/forum/viewtopic.php?t=22732&quot; target=&quot;_blank&quot;&gt;pitch bei Entitypoint (Gel&amp;ouml;st)&lt;/a&gt;) hatte mich verleitet dieses Projekt von Evolver zu &amp;uuml;bernehmen. Der code war zu der Zeit noch Egozentrisch^^ dh es gab eine Player-variable, eine ship-variable usw usf... an LAN version oder Gar Inernet-Multiplayer war gar nicht zu denken und noch ein gro&amp;szlig;es Problem stellte sich f&amp;uuml;r mich dar: In dem Spiel ist alles Variabel. NIX ist wirklich fest und ich lernte die fehlende OOP-M&amp;ouml;glichkeit von Blitz zu sch&amp;auml;tzen. Da gibt es eine ungewisse Menge an Spielern, die eine ungewisse Menge an schiffen besitzen, die eine ungewisse Menge an Waffen haben. Mit geordneten Listen l&amp;auml;uft das sogar ganz annehmbar schnell^^&lt;br /&gt;&lt;br /&gt;Das(?) GUI ist das aktuelle Problem. Mit dem Erscheinen, der Draw3D war klar dass wir umsteigen. Schlie&amp;szlig;lich gibt es nur ein 640*480-Fenster, dass beim erstellen kopiert und in der Gr&amp;ouml;&amp;szlig;e ge&amp;auml;ndert wurde. Mit 2D eine Qual f&amp;uuml;r den User. Draw3D bringt Abhilfe: Nun kann man Fenster-Farbe einstellen, Transparenz und Gr&amp;ouml;&amp;szlig;e sind kein Problem mehr und Live-Scalen geh&amp;ouml;rt zu den Standardaufgaben. Anders sieht es mit dem Umschreiben der Grafik aus. Die ganze 2D-Koordinaten m&amp;uuml;ssen nun 3D-Konform gemacht werden. Meine Draw3D ist schon voll umgebaut. Mit der &lt;i&gt;d3dcam&lt;/i&gt; mit nem Range der fast nur die Fenster erwischt wird d3d gerendert unabh&amp;auml;ngig von der Position des Spielers oder auch solcher Konstruktionen:&lt;br /&gt;&lt;br /&gt;Fenster&lt;br /&gt;Schrift&lt;br /&gt;Fenster&lt;br /&gt;Schrift&lt;br /&gt;&lt;br /&gt;Man l&amp;auml;sst einfach nach der ersten Schrift die d3d rendern und die Grafik leeren. Am Ende sieht das Ergebnis besser als in 2D aus und ist trotzdem schneller.&lt;br /&gt;&lt;br /&gt;Das Br&amp;uuml;cken der Riesen-Positionen war ein bereits von Evolver gel&amp;ouml;stes Problem. Die Floats werden bei zu gro&amp;szlig;en werten ungenau. Nun ist Pluto halt weit von der Sonne entfernt. Wer einfach so dort hinfliegt dem schie&amp;szlig;t die Grafik um die Ohren: Teile des Schiffes werden woanders hingesetzt, Draw3d positioniert die Maus in Alaska und was mit den Sch&amp;uuml;ssen passiert bleibt dem Zufall &amp;uuml;berlassen. L&amp;ouml;sung: Chuck Norris l&amp;auml;uft nicht vorw&amp;auml;rts. Er tritt das Universum nach hinten. Mit Blitz kein Problem.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&amp;Uuml;ber das Spiel&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Das Spiel baut auf etwas auf, das eine Gegenposition zu den g&amp;auml;ngigen MMORPGs darstellt: Die Quests haben einen tieferen Sinn. Es sind keine NPCs die sagen: Renn von A nach B hole Trank C und besiege auf dem weg Monster D. Es sind Menschen die Missionen aufgeben: Ich geb dir 100 RS-Credits wenn du den umlegst. Und dann wird's schwierig... tu ich's oder tu ich's nicht? Was hat denn die Gegenseite zu bieten... Wei&amp;szlig; die &amp;uuml;berhaupt dass der andere hinter denen her ist? Ich kenne kein MMORPG wo man mit dem Monster dr&amp;uuml;ber reden kann den Trank so rauszur&amp;uuml;cken oder dem Monster helfen kann den Auftragsgeber umzulegen. Es wird keine Grenzen geben. Handel auf die alte weise: 1000 RS-Credits oder tot? Das Gruppenverhalten wird gef&amp;ouml;rdert, denn sobald ich eine Mission mache helfe ich einer Gilde/Gruppe/Allianz und mach mir somit Feinde und Freunde. Thema NPCs: Es gibt keine im klassischen Sinne - zu t&amp;ouml;tendes Monster/unbesiegbarer Auftraggeber - sondern mehr einen Standard-Spieler, der am Anfang da ist und durch ne kleine KI sich am Leben erh&amp;auml;lt. Er lebt durch Handel und hat die gleichen Schiffe, die alle anderen auch erwerben k&amp;ouml;nnen. Das hei&amp;szlig;t zum Einen, dass er dass Spiel ins rollen bringt, denn wer ihn angreift hat mit Kopfgeld zu rechnen und wer nimmt nicht gerne eine von 2568 Missionen an, in der es hei&amp;szlig;t: Bring den da um. Sogar als Vollnoob hat man vllt ne Chanse den Finalen Schuss, der ihn umbringt, los zu lassen und somit das Kopfgeld zu erhaschen. Sollte sich irgendwann einer Stark genug f&amp;uuml;hlen gegen die SpacePolice, wie sich diese KI nennt, zu K&amp;auml;mpfen und so ihren Platz als zentrale Handelsgewalt zu &amp;uuml;bernehmen kann er es ruhig versuchen. Die SpacePolice hat nichts was ein anderer Spieler nicht hat. Sogar die KI kann man seinen Schiffen geben, sodass sie Offline weiterk&amp;auml;mpfen. Jeder findet in diesem Universum seinen Platz, er muss nur ein Teil vom Ganzen sein.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 18px;&quot;&gt;cnRS - Be part of it&lt;/span&gt;</description>
			<pubDate>Sun, 23 Dec 2007 00:46:14 +0100</pubDate>
		</item>


	</channel>
</rss>
