<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>UGamela Blog &#187; Ressourcenberechnung</title>
	<atom:link href="http://ugamela-blog.pheelgood.net/tag/ressourcenberechnung/feed/" rel="self" type="application/rss+xml" />
	<link>http://ugamela-blog.pheelgood.net</link>
	<description>Entwicklung eines Browsergames</description>
	<lastBuildDate>Mon, 12 Dec 2011 18:28:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Erste Implementierungen mit NodeJS</title>
		<link>http://ugamela-blog.pheelgood.net/2011/12/12/erste-implementierungen-mit-nodejs/</link>
		<comments>http://ugamela-blog.pheelgood.net/2011/12/12/erste-implementierungen-mit-nodejs/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 16:51:12 +0000</pubDate>
		<dc:creator>Phoscur</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[NodeJS]]></category>
		<category><![CDATA[Programmiersprachen]]></category>
		<category><![CDATA[Ressourcenberechnung]]></category>

		<guid isPermaLink="false">http://ugamela-blog.pheelgood.net/?p=380</guid>
		<description><![CDATA[NodeJS lässt sich mittlerweile sehr einfach unter Windows installieren. Das ist ein guter Fortschritt. Ich habe auch feststellen können Aptana Studio macht was ich will, kann aber auch sein, dass ich mich einfach mittlerweile dran gewöhnt habe. Letzte Woche habe ich mal grundsätzlich ein Markup auf gesetzt, bisher sind die Widgets (Menü, Planet, Resourcen, Gebäudeliste) [...]]]></description>
			<content:encoded><![CDATA[<p><a title="NodejS Download" href="http://nodejs.org/#download">NodeJS</a> lässt sich mittlerweile sehr einfach unter Windows installieren. Das ist ein guter Fortschritt. Ich habe auch feststellen können Aptana Studio macht was ich will, kann aber auch sein, dass ich mich einfach mittlerweile dran gewöhnt habe.</p>
<p>Letzte Woche habe ich mal grundsätzlich ein Markup auf gesetzt, bisher sind die Widgets (Menü, Planet, Resourcen, Gebäudeliste) aber noch statisch. Ich brauche dann auch bald einen Designer, damit ich mich nicht ewig mit dem CSS rumschlagen muss. Ich möchte auch ein Touch-Interface für Smartphones, damit man das Spiel gut unterwegs spielen kann.</p>
<p>Als nächstes möchte ich das Interface ein bischen dynamischer gestalten. Die Ressourcenverwaltung habe ich schonmal früher geschrieben, da waren jetzt aber noch eine Änderungen notwendig. An der Ressourcenberechnung habe ich schon lange gearbeitet (Implementierungen in PHP, MySQL und JavaScript).</p>
<p>Über die Gebäudeliste soll man dann als nächstes bauen können.</p>
<p>Ich habe mir mit der <a href="https://github.com/caolan/async">async</a> Bibliothek einen eigenen Build Prozess gebaut, der meinen Code zusammenfasst und kompressieren kann und mich ein an die asyncrone I/O und den Callback-Stil gewöhnt. Nebenbei lerne ich an der Uni in Programmierparadigmen Haskell, die funktionale Sprache überhaupt. JavaScript mischt objektorientiert und funktional. Funktionale Programmierung hat durchaus gute Seiten, obwohl der Einstieg oder Umstieg von zB. Java schwierig sein kann. Besonders in Haskell ist Code deutlich kürzer, viele Dinge lassen sich mit einem Einzeiler erledigen. Sehr gut, dass in JavaScript Funktionen erster Klasse (first-class) sind.</p>
<p>Ich beobachte einige NodeJS Projekte über die Mailingliste und github, und habe begonnen einige auszuprobieren. Leider nicht immer mit Erfolg. Man merkt doch noch sehr, dass NodeJS noch sehr jung ist.</p>
<p>Erfolgreich habe ich <a href="http://livejs.com">live.js</a> und <a href="http://documentcloud.github.com/underscore/">underscore</a> eingebunden. Mein Buildprozess ist in der Lage Dateien zu beobachten und live.js aktualisiert ständig HTML, CSS und JavaScript, so kann man Codeänderungen direkt im Browser beobachten.</p>
<p>So wirklich funktioniert <a href="https://github.com/substack/node-browserify">browserify</a> für mich nicht, ich werde wohl bei meinem eigenen Buildprozess bleiben und Dateien manuell hinzufügen. Ich brauche aber definitv eine Implementierung für require() im Browser, da werde ich evtl. ein wenig Code übernehmen.</p>
]]></content:encoded>
			<wfw:commentRss>http://ugamela-blog.pheelgood.net/2011/12/12/erste-implementierungen-mit-nodejs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Phlame Engine: Ressourcenberechnung (Fusionskraftwerkproblem/Endliche Rohstoffe) &amp; Bauliste mit Wartefunktion</title>
		<link>http://ugamela-blog.pheelgood.net/2008/08/30/phlame-engine-ressourcenberechnung-fusionskraftwerkproblem-bauliste-mit-wartefunktion/</link>
		<comments>http://ugamela-blog.pheelgood.net/2008/08/30/phlame-engine-ressourcenberechnung-fusionskraftwerkproblem-bauliste-mit-wartefunktion/#comments</comments>
		<pubDate>Sat, 30 Aug 2008 13:36:41 +0000</pubDate>
		<dc:creator>Phoscur</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Bauliste]]></category>
		<category><![CDATA[Fusionskraftwerkbug]]></category>
		<category><![CDATA[Phlame]]></category>
		<category><![CDATA[Phlame Engine]]></category>
		<category><![CDATA[Ressourcenberechnung]]></category>
		<category><![CDATA[UGamela]]></category>

		<guid isPermaLink="false">http://ugamela-blog.pheelgood.net/?p=32</guid>
		<description><![CDATA[Ich arbeite schon den ganzen Sommer an der Ressourcenberechnung und gerade zur Zeit an einer Bauliste und dem Eventhandler (Das sind die drei Ebenen der Planetenaktualisierung, die bei jedem Klick geschehen. Daher müssen sie auch besonders performant sein). Mich wundert das noch niemand den Fusionskraftwerkbug bemerkt und ernst genommen hat. Er bedingt einige Funktionalitäten auf [...]]]></description>
			<content:encoded><![CDATA[<p>Ich arbeite schon den ganzen Sommer an der Ressourcenberechnung und gerade zur Zeit an einer Bauliste und dem Eventhandler (Das sind die drei Ebenen der Planetenaktualisierung, die bei jedem Klick geschehen. Daher müssen sie auch besonders performant sein).</p>
<p>Mich wundert das noch niemand den Fusionskraftwerkbug bemerkt und ernst genommen hat. Er bedingt einige Funktionalitäten auf die ich nicht verzichten möchte:</p>
<p>Gebäude mit starkem &#8220;Resourcendrain&#8221; (hoher Verbrauch, höher als die Produktion ist) oder eine sehr knappe Ressource die von bestimmten Gebäuden verbraucht wird.<span id="more-32"></span></p>
<p>Beispiele:<br />
AMmine/Ultramine: Verbraucht AntiMaterie (das nur sehr wenig bis gar nicht produziert wird) und produziert große Mengen von Energie und als Abfallprodukt Aluminium und Silicium&#8230; (gut noch etwas gesponnen sollte aber nur ein Beispiel sein)</p>
<p>Rohstoffwandler: Dieses Gebäude verwandelt Dunkle Masse (die man nur auf Expeditionen findet) langsam in ein Aluminium/Silicium-Gemisch um (Über einen gewissen Zeitraum).</p>
<p>Betanken eines Schiffes: Man lässt eine Extra-Resssorte den Tank herunterzählen (leichter als ein variables Limit einzurichten)  &#8211; Energiebetankung/Laden von Batterien?.</p>
<p><strong>Erklärung des Bugs:</strong><br />
Die Ressberechnung basiert auf dem einfachen Prinzip Produktion (Rohstoff durch Zeit) mal Zeit ergibt Rohstoff. Problematisch wird dies allerdings wenn bestimmte Grenzen erreicht werden. Besonders die untere Grenze wird bisher nicht berücksichtigt, weil die Produktion eigentlich immer positiv ist. Wer den Bug beobachten will, der baue einfach mal das Fusionskraftwerk so weit aus wie möglich, stelle seinen Deutextraktor auf Null und das Kraftwerk auf volle Power. Spannend wird es wenn 0 Deuterium oder weniger erreicht wird (MinusDeut?!).</p>
<p>Um dieses doch etwas komplexere Probleme zu lösen hatte ich zuerst eine Klasse in PHP geschrieben, habe mich dann aber von meikel überzeugen lassen, dass es besser wäre das in SQL zu lösen. Nachdem ich irgendwann mein Argument, dass das mit SQL gar nicht möglich wäre aufgeben musste habe ich es in MySQL geschrieben. Dadurch ist der Script weit statischer (versch. Ress-/Energiesorten), doch man kann den Script ja vor dem speichern in der Datenbank durch PHP jagen, welches dann die vierte und fünfte Resssorte hinzufügt, die der Admin gerne hätte&#8230;</p>
<p>Als ich das geschafft hatte habe ich mich an einen SQL Eventhandler und eine Bauliste gemacht, die beide fast fertig sind.</p>
<p>Die Bauliste unterstützt eine Wartefunktion, die es dem Spieler erlaubt eine Liste anzulegen ohne vorher auf die Verfügbarkeit von seinen Ressourcen zu achten. Das ist leider noch nicht ganz fertig und bestimmt nicht bugfrei, aber der Ansatz steht.</p>
<p>PHP bekommt hinter dem SQL Core nurnoch die Aufgabe die Daten des Users zu validieren, zb ob er das überhaupt schon bauen darf&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://ugamela-blog.pheelgood.net/2008/08/30/phlame-engine-ressourcenberechnung-fusionskraftwerkproblem-bauliste-mit-wartefunktion/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

