<?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>Kubagert&#039;s dev[b]log &#187; Programowanie gier</title>
	<atom:link href="http://www.kubagert.com/category/programowanie-gier/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kubagert.com</link>
	<description>Jakub Gert prezentuje...</description>
	<lastBuildDate>Tue, 06 Sep 2011 18:04:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Dlaczego Unity 3D ???</title>
		<link>http://www.kubagert.com/2011/01/22/dlaczego-unity-3d/</link>
		<comments>http://www.kubagert.com/2011/01/22/dlaczego-unity-3d/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 18:41:01 +0000</pubDate>
		<dc:creator>kubagert</dc:creator>
				<category><![CDATA[Programowanie gier]]></category>
		<category><![CDATA[Unity3D]]></category>
		<category><![CDATA[unity unity3d engine]]></category>

		<guid isPermaLink="false">http://www.kubagert.com/?p=255</guid>
		<description><![CDATA[Gdy pisałem swoje pierwsze gry, budowałem je samodzielnie od podstaw, czyli &#8211; engine &#8211; przygotowanie asetów, wbudowany edytor i jednocześnie grę. Pisanie własnego silnika jest bardzo modne. W zasadzie każdy programista którego pasja oscyluje wokół tworzenia gier, takowy silnik stworzył (a przynajmniej doprowadził do jakiejś sensownej formy). I na tym kończy się przeważnie etap prac. [...]]]></description>
			<content:encoded><![CDATA[<p>Gdy pisałem swoje pierwsze gry, budowałem je samodzielnie od podstaw, czyli &#8211; engine &#8211; przygotowanie asetów, wbudowany edytor i jednocześnie grę. Pisanie własnego silnika jest bardzo modne. W zasadzie każdy programista którego pasja oscyluje wokół tworzenia gier, takowy silnik stworzył (a przynajmniej doprowadził do jakiejś sensownej formy). I na tym kończy się przeważnie etap prac. Programista się wypala, czasem walczy z własnymi błędami projektowymi, babolami we własnych, super genialnych algorytmach, itp. Z czasem odkrywa, że chciał zrobić genialną grę, a utknął na podstawie zwanej silnikiem, lub zauważa, że tak bardzo skupił się na rozwoju silnika, że zapomniał robić grę. <span id="more-255"></span>Gdy pracowałem nad grą Bober The Beaver, pisałem silnik wraz z edytorem, projektując tylko i wyłącznie niezbędną mi funkcjonalność do tego stopnia, że silnik ten praktycznie nie nadawałby się do robienia innych gier niż platformówki 2D. Wtedy zauważyłem silnik Unity3D. Zapoznałem się z jego podstawową funkcjonalnością, poznałem jego filozofię i mnie oświeciło. Ten silnik to nie Unreal Engine 3, ale ma wszystko co potrzeba aby zrobic to, co mam w głowie. No więc zacząłem robi proste rzeczy i postanowiłem przenieść BoberTheBeaver ze swojego FemtoEngine na silnik Unity3D. Udało mi się zrobić to w niecałe 4 tygodnie. Dlaczego tak prędko ?<br />
A no dlatego:</p>
<div id="attachment_259" class="wp-caption aligncenter" style="width: 160px"><a href="http://www.kubagert.com/wp-content/uploads/2011/01/Zrzut-ekranu-2011-01-22-godz.-18.30.22.png"><img class="size-thumbnail wp-image-259" title="Unity3D" src="http://www.kubagert.com/wp-content/uploads/2011/01/Zrzut-ekranu-2011-01-22-godz.-18.30.22-150x150.png" alt="" width="150" height="150" /></a><p class="wp-caption-text">Okno główne Unity3D</p></div>
<ol>
<li>Wygodny w użyciu edytor na który składa się:
<ul>
<li>Zakładka &#8222;Scene&#8221; &#8211; panel widoku sceny, w niej przemieszczamy obiekty, obracamy, skalujemy, &#8222;latamy&#8221; po scenie, ustawiamy kamery, światło, i co tam jeszcze potrzeba.</li>
<li>Zakładka &#8222;Game&#8221; &#8211; panel widoku gry, jeśli testujemy grę to &#8222;gramy&#8221; w tej zakładce</li>
<li>Zakładka &#8222;Project&#8221; &#8211; panel widoku projektu &#8211; czyli po ludzku tutaj widzimy hierarchię plików i katalogów wchodzących w skład projektu.</li>
<li>Zakładka &#8222;Hierarchy&#8221; &#8211; panel widoku hierarchii obiektów na scenie.</li>
<li>Zakładka &#8222;Inspector&#8221; &#8211; inspektor obiektów, tutaj ustawiamy &#8222;z palca&#8221; właściwości obiektów na scenie, pozycję, rotację, skalę, parametry skryptów, parametry fizyczne, renderingu, itp.</li>
<li>Zakładka &#8222;Console&#8221; &#8211; konsola projektu, widzimy wszystkie informacje które wyrzucamy do log&#8217;a (messages), a także ostrzeżenia (warnings) oraz błędy (errors).</li>
</ul>
</li>
<li>Bogata pomoc
<ul>
<li>Unity Manual &#8211; manual do silnika, z dokladnym opisem każdego okna, opisanym sposobie poruszania się po edytorze, skróty klawiszowe, itp</li>
<li>Reference Manual &#8211; manual poszczególnych części edytora &#8211; do audio, fizyki, renderingu, itp</li>
<li>Scripting reference &#8211; opis wszystkich klas i funkcji Unity3D, do których możemy się odwoływać z poziomu skryptów. Większość funkcji oraz klas jest wsparta prostymi przykładami wykorzystania w trzech językach, JavaScript, C# oraz Boo</li>
</ul>
</li>
<li>Klarowny podział na obiekty i komponenty (oraz skrypty)
<ul>
<li>Obiekty (&#8222;GameObjects&#8221;) &#8211; Obiekt to bazowy obiekt (masło maślane) który ma transformacje (czyli pozycja, obrót, skala), nazwę, dzieci (childs), oraz może mieć rodzica (parent). Może to być pusty obiekt (w sensie nie ma żadnej reprezentacji na ekranie ani w fizyce, ani w audio, ani w niczym, poprostu nicość <img src='http://www.kubagert.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , może to być prostopadłościan, powierzchnia, światło, kamera, albo cały działający oskryptowany samochód</li>
<li>Komponenty (&#8222;Components&#8221;) &#8211; Komponenty wchodzą w skład obiektów. Na komponentach opiera się praktycznie cała filozofia działania Unity. Komponenty przeważnie maja parametry. Wyobraźmy sobie wyrenderowaną na ekranie kulę. W filozofii Unity taki obiekt wygląda następująco: jest to obiekt GameObject (pusty), który zawiera komponent MeshFilter (odpowiedzialny za przetrzymywanie i obsługę geometrii, jako parametr ma ustawiony siatkę kuli), następnie obiekt ten zawiera komponent MeshRenderer (odpowiedzialny jest za renderowanie geometrii, którą pobiera z MeshFilter, jako parametr może mieć ustawiony materiał renderowania). Dodatkowo może zawierać komponent Rigidbody (więc zostanie mu przypisane ciało fizyczne z masą, gęstością, itp, na które będziemy mogli oddziałowywać siłą), oraz może zawierać SphereCollider (czyli fizyczny mesh kolizyjny w kształcie kuli, dzięki czemu nasza kula może się toczyć). Komponentem może być także skrypt.</li>
<li>Komponent Skrypt &#8211; najważniejszy element dla programisty, czyli komponent skryptowy. I tutaj tkwi siła Unity wg mnie. Piszemy jeden skrypt i możemy go &#8222;podpiąć&#8221; do każdego obiektu. Na dodatek możemy podpiąć kilka różnych skryptów pod jeden obiekt. A skrypty możemy pisać aż w 3 różnych językach: w JavaScript, C# oraz Boo. Wszystkei skrypty są kompilowane w locie, więc na bierząco widzimy czy nie popełniliśmy błędu. Dodatkowo nawet jak popełniliśmy karygodny błąd (NullPointer Exception) nie powoduje to zamknięcia Unity, tylko włączenie pauzy, i możemy na konsoli zobaczyć co się złego stało.</li>
</ul>
</li>
<li>Elastyczność
<ul>
<li>Można łatwo rozbudować funkcjonalność edytora o pluginy lub skrypty</li>
<li>Można łatwo przenosić elementy między projektami poprzez eksportowanie/importowanie paczek assetów (packages)</li>
<li>Prefabrykowane elementy &#8211; specjalny typ obiektów. Jeśli zbudujemy scenę z 10 takich samych prefabrykantów  a następnie zmienimy parametry jednego z nich, to automatycznie (jeśli tego chcemy) nowe parametry zostaną uaktualnione w pozostałych elementach tego samego typu. Przyspiesza to błyskawicznie prototypowanie oraz składanie leveli.</li>
<li>Unity ma wbudowaną bazę shaderów, ale jeśli chcemy możemy ją rozbudować pisząc swoje, własne.</li>
</ul>
</li>
</ol>
<p>Te kilka rzeczy spowodowały tak szybkie przeniesienie BoberTheBeaver z FemtoEngine do Unity3d, gdyż:<br />
- napisałem skrypt, który importował modele z Bober&#8217;a do Unity i tworzył z nich prefabrykanty,<br />
- napisałem skrypt, który importował levele z Bobera do Unity, automatycznie wstawiając na level odpowiednie prefabrykanty w odpowiednich miejscach i skali,<br />
- napisałem kilka skryptów obsługi postaci<br />
- napisałem kilka skryptów obsługi menu, dźwięków, animacji poklatkowych<br />
- uruchomiłem wszystkie skrypty po kolei i gra była przeniesiona, następny etap to było już tylko tweakowanie i poprawianie błędów. Unity ma jeszcze jedną zaletę, a mianowicie można wygenerować projekt, który działa zarówno na PC&#8217;tach, komputerach Mac, oraz na stronie www (po zainstalowaniu pluginu).</p>
<p>Uff, to by było tyle wstępu dotyczącego zalet Unity3D. Co będzie w następnym odcinku ? Jeszcze nie wiem, ale na pewno coś ciekawego. <img src='http://www.kubagert.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.kubagert.com/2011/01/22/dlaczego-unity-3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sublustrum / Outcry</title>
		<link>http://www.kubagert.com/2010/12/29/sublustrum-outcry/</link>
		<comments>http://www.kubagert.com/2010/12/29/sublustrum-outcry/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 21:57:46 +0000</pubDate>
		<dc:creator>kubagert</dc:creator>
				<category><![CDATA[Programowanie gier]]></category>

		<guid isPermaLink="false">http://www.kubagert.com/?p=245</guid>
		<description><![CDATA[Daaawno dawno temu wpadła w moje ręce gra pt. Sublustrum ( znana także jako Outcry ). Jako że jestem fanem gier point&#38;click grę postanowiłem przejść. Grało się całkiem ciekawie. Jako że po przejściu gry pozostał mi pewien niedosyt, postanowiłem zobaczyć jak jest zbudowana od środka. Szybki podgląd paczek plików utwierdził mnie w przekonaniu, że struktura [...]]]></description>
			<content:encoded><![CDATA[<p>Daaawno dawno temu wpadła w moje ręce gra pt. Sublustrum ( znana także jako Outcry ). Jako że jestem fanem gier point&amp;click grę postanowiłem przejść.<br />
Grało się całkiem ciekawie. Jako że po przejściu gry pozostał mi pewien niedosyt, postanowiłem zobaczyć jak jest zbudowana od środka.<br />
Szybki podgląd paczek plików utwierdził mnie w przekonaniu, że struktura jest bardzo prosta. Każdy plik pak zawiera w swojej strukturze:</p>
<ul>
<li>ilość plików w paczce</li>
<li>nazwę pliku</li>
<li>offset pliku względem początku</li>
<li>długość pliku</li>
</ul>
<p>Wypakowanie wszystkich plików z paczki było pryszczem, ale okazało się, że są one zaszyfrowane, lecz za pomocą bardzo prostego klucza. Na klucz wpadłem analizując nazwy plików, założyłem, że pliki graficzne są plikami DDS, dźwiękowe WAV lub OGG. Szukając powtarzających się wzorców odkryłem klucz: każdy bajt został rozbity na dwa półbajty (starsza i młodsza część. Z takiego podziału otrzymujemy 4 bity (wartości od 0-15). Każdej wartości przyporządkowana została nowa wartość z tego samego przedziału (czyli szyfr Cezara). Raz dwa powstał programik, który wypakowywuje wszystkie pliki z paków, oraz je poprawnie dekoduje. Dwie małe próbki:</p>
<p><a href="http://www.kubagert.com/wp-content/uploads/2010/12/gfx.part3_.town_.p3_town_pan12.jpg"><img class="alignnone size-full wp-image-246" title="gfx.part3.town.p3_town_pan12" src="http://www.kubagert.com/wp-content/uploads/2010/12/gfx.part3_.town_.p3_town_pan12.jpg" alt="Screen 1" width="128" height="128" /></a><a href="http://www.kubagert.com/wp-content/uploads/2010/12/gfx.part6_.p6_pan2.jpg"><img class="alignnone size-full wp-image-247" title="gfx.part6.p6_pan2" src="http://www.kubagert.com/wp-content/uploads/2010/12/gfx.part6_.p6_pan2.jpg" alt="Screen 2" width="128" height="128" /></a><br />
<span id="more-245"></span></p>
<p>I kod źródłowy jakby ktoś chciał zobaczyć całą resztę:</p>

<div class="wp_syntax"><div class="code"><pre class="cpp" style="font-family:monospace;">&nbsp;
<span style="color: #339900;">#include &lt;stdio.h&gt;</span>
<span style="color: #339900;">#include &lt;stdlib.h&gt;</span>
<span style="color: #339900;">#include &lt;vector&gt;</span>
&nbsp;
<span style="color: #0000ff;">struct</span> SFile
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">int</span> filenameLen<span style="color: #008080;">;</span>
	<span style="color: #0000ff;">char</span> fileName<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">256</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
	<span style="color: #0000ff;">int</span> offset<span style="color: #008080;">;</span>
	<span style="color: #0000ff;">int</span> fileLen<span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">char</span> cryptoTab<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #208080;">0x0C</span>,
	<span style="color: #208080;">0x0D</span>,
	<span style="color: #208080;">0x0E</span>,
	<span style="color: #208080;">0x0F</span>,
&nbsp;
	<span style="color: #208080;">0x08</span>,
	<span style="color: #208080;">0x09</span>,
	<span style="color: #208080;">0x0A</span>,
	<span style="color: #208080;">0x0B</span>,
&nbsp;
	<span style="color: #208080;">0x04</span>,
	<span style="color: #208080;">0x05</span>,
	<span style="color: #208080;">0x06</span>,
	<span style="color: #208080;">0x07</span>,
&nbsp;
	<span style="color: #208080;">0x00</span>,
	<span style="color: #208080;">0x01</span>,
	<span style="color: #208080;">0x02</span>,
	<span style="color: #208080;">0x03</span>,
<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>
&nbsp;
&nbsp;
&nbsp;
<span style="color: #0000ff;">void</span> CryptoBuff<span style="color: #008000;">&#40;</span> <span style="color: #0000ff;">char</span> <span style="color: #000040;">*</span>buff, <span style="color: #0000ff;">int</span> bufLen <span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
&nbsp;
	<span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> a<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> a<span style="color: #000080;">&lt;</span>bufLen<span style="color: #008080;">;</span> a<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000ff;">char</span> msb<span style="color: #000080;">=</span><span style="color: #008000;">&#40;</span>buff<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span> <span style="color: #000040;">&amp;</span> <span style="color: #208080;">0xF0</span><span style="color: #008000;">&#41;</span><span style="color: #000080;">&gt;&gt;</span><span style="color: #0000dd;">4</span><span style="color: #008080;">;</span>
		<span style="color: #0000ff;">char</span> lsb<span style="color: #000080;">=</span><span style="color: #008000;">&#40;</span>buff<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span> <span style="color: #000040;">&amp;</span> <span style="color: #208080;">0x0F</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
		buff<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #008000;">&#40;</span>cryptoTab<span style="color: #008000;">&#91;</span>msb<span style="color: #008000;">&#93;</span><span style="color: #000080;">&lt;&lt;</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">|</span> cryptoTab<span style="color: #008000;">&#91;</span>lsb<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
&nbsp;
&nbsp;
	<span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> DepackFile<span style="color: #008000;">&#40;</span> <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">char</span> <span style="color: #000040;">*</span>fileName <span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">FILE</span> <span style="color: #000040;">*</span>f<span style="color: #000080;">=</span><span style="color: #0000dd;">fopen</span><span style="color: #008000;">&#40;</span>fileName,<span style="color: #FF0000;">&quot;rb&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
	<span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>f<span style="color: #008000;">&#41;</span>
		<span style="color: #0000ff;">return</span><span style="color: #008080;">;</span>
&nbsp;
&nbsp;
	<span style="color: #0000ff;">char</span> temp<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
	<span style="color: #0000dd;">fread</span><span style="color: #008000;">&#40;</span> temp, <span style="color: #0000dd;">1</span>, <span style="color: #0000dd;">4</span>, f<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
	<span style="color: #0000ff;">int</span> filesCount<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
	<span style="color: #0000dd;">fread</span><span style="color: #008000;">&#40;</span> <span style="color: #000040;">&amp;</span>filesCount, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span><span style="color: #008000;">&#41;</span>, <span style="color: #0000dd;">1</span>, f<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
	std<span style="color: #008080;">::</span><span style="color: #007788;">vector</span><span style="color: #000080;">&lt;</span>SFile<span style="color: #000080;">&gt;</span> files<span style="color: #008080;">;</span>
&nbsp;
	<span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> a<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> a<span style="color: #000080;">&lt;</span>filesCount<span style="color: #008080;">;</span> a<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		SFile file<span style="color: #008080;">;</span>
		<span style="color: #0000dd;">fread</span><span style="color: #008000;">&#40;</span> <span style="color: #000040;">&amp;</span>file.<span style="color: #007788;">filenameLen</span>, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span><span style="color: #008000;">&#41;</span>, <span style="color: #0000dd;">1</span>, f<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		<span style="color: #0000dd;">fread</span><span style="color: #008000;">&#40;</span> file.<span style="color: #007788;">fileName</span>, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">char</span><span style="color: #008000;">&#41;</span>, file.<span style="color: #007788;">filenameLen</span>, f<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		file.<span style="color: #007788;">fileName</span><span style="color: #008000;">&#91;</span>file.<span style="color: #007788;">filenameLen</span><span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
&nbsp;
		<span style="color: #0000dd;">fread</span><span style="color: #008000;">&#40;</span> <span style="color: #000040;">&amp;</span>file.<span style="color: #007788;">offset</span>, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span><span style="color: #008000;">&#41;</span>, <span style="color: #0000dd;">1</span>, f<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		<span style="color: #0000dd;">fread</span><span style="color: #008000;">&#40;</span> <span style="color: #000040;">&amp;</span>file.<span style="color: #007788;">fileLen</span>, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span><span style="color: #008000;">&#41;</span>, <span style="color: #0000dd;">1</span>, f<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
		files.<span style="color: #007788;">push_back</span><span style="color: #008000;">&#40;</span>file<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
&nbsp;
	<span style="color: #0000ff;">int</span> startOffset<span style="color: #000080;">=</span><span style="color: #0000dd;">ftell</span><span style="color: #008000;">&#40;</span> f <span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
	<span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> a<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> a<span style="color: #000080;">&lt;</span>files.<span style="color: #007788;">size</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> a<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
	<span style="color: #008000;">&#123;</span>
		<span style="color: #0000dd;">fseek</span><span style="color: #008000;">&#40;</span> f, files<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">offset</span><span style="color: #000040;">+</span>startOffset, <span style="color: #0000ff;">SEEK_SET</span> <span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
		<span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> n<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> n<span style="color: #000080;">&lt;</span><span style="color: #0000dd;">strlen</span><span style="color: #008000;">&#40;</span>files<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">fileName</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> n<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
			<span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>files<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">fileName</span><span style="color: #008000;">&#91;</span>n<span style="color: #008000;">&#93;</span><span style="color: #000080;">==</span><span style="color: #FF0000;">'/'</span><span style="color: #008000;">&#41;</span>
				files<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">fileName</span><span style="color: #008000;">&#91;</span>n<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #FF0000;">'.'</span><span style="color: #008080;">;</span>
&nbsp;
		<span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>Process file: %s &quot;</span>, files<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">fileName</span> <span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		<span style="color: #0000ff;">FILE</span> <span style="color: #000040;">*</span>nf<span style="color: #000080;">=</span><span style="color: #0000dd;">fopen</span><span style="color: #008000;">&#40;</span> files<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">fileName</span>, <span style="color: #FF0000;">&quot;wb&quot;</span> <span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		<span style="color: #0000ff;">char</span> <span style="color: #000040;">*</span>tempBuff<span style="color: #000080;">=</span><span style="color: #0000dd;">new</span> <span style="color: #0000ff;">char</span><span style="color: #008000;">&#91;</span>files<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">fileLen</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
		<span style="color: #0000dd;">fread</span><span style="color: #008000;">&#40;</span> tempBuff, <span style="color: #0000dd;">1</span>, files<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">fileLen</span>, f <span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
		CryptoBuff<span style="color: #008000;">&#40;</span> tempBuff, files<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">fileLen</span> <span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
		<span style="color: #0000dd;">fwrite</span><span style="color: #008000;">&#40;</span> tempBuff, <span style="color: #0000dd;">1</span>, files<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">fileLen</span>, nf<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
		<span style="color: #0000dd;">fclose</span><span style="color: #008000;">&#40;</span>nf<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #008000;">&#125;</span>
&nbsp;
	<span style="color: #0000dd;">fclose</span><span style="color: #008000;">&#40;</span>f<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> argc, <span style="color: #0000ff;">char</span> <span style="color: #000040;">*</span>argv<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
<span style="color: #008000;">&#123;</span>
	<span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> a<span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> a<span style="color: #000080;">&lt;</span>argc<span style="color: #008080;">;</span> a<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
		DepackFile<span style="color: #008000;">&#40;</span> argv<span style="color: #008000;">&#91;</span>a<span style="color: #008000;">&#93;</span> <span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
&nbsp;
&nbsp;
	<span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
	<span style="color: #0000dd;">system</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;PAUSE&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
	<span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #008000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.kubagert.com/2010/12/29/sublustrum-outcry/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bober The Beaver &#8211; puzzle</title>
		<link>http://www.kubagert.com/2010/09/24/bober-the-beaver-puzzle/</link>
		<comments>http://www.kubagert.com/2010/09/24/bober-the-beaver-puzzle/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 14:02:09 +0000</pubDate>
		<dc:creator>kubagert</dc:creator>
				<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Programowanie gier]]></category>
		<category><![CDATA[Bober The Beaver]]></category>
		<category><![CDATA[Puzzle]]></category>
		<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.kubagert.com/?p=220</guid>
		<description><![CDATA[W momencie ukończenia gry Bober The Beaver powstał projekcik poboczny &#8211; puzzle. Aktualnie mamy do wyboru 6 obrazków do ułożenia. Zapraszam. Bober The Beaver Puzzle]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.kubagert.com/wp-content/uploads/2010/09/thumb_puzzle1.png"><img class="alignleft size-full wp-image-224" title="thumb_puzzle" src="http://www.kubagert.com/wp-content/uploads/2010/09/thumb_puzzle1.png" alt="" width="110" height="110" /></a>W momencie ukończenia gry Bober The Beaver powstał projekcik poboczny &#8211; puzzle. Aktualnie mamy do wyboru 6 obrazków do ułożenia. Zapraszam.<br />
<a href="http://www.boberthebeaver.com/puzzle/">Bober The Beaver Puzzle</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kubagert.com/2010/09/24/bober-the-beaver-puzzle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bober The Beaver Demo</title>
		<link>http://www.kubagert.com/2010/09/22/bober-the-beaver-demo/</link>
		<comments>http://www.kubagert.com/2010/09/22/bober-the-beaver-demo/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 16:18:05 +0000</pubDate>
		<dc:creator>kubagert</dc:creator>
				<category><![CDATA[Programowanie gier]]></category>
		<category><![CDATA[Różne]]></category>
		<category><![CDATA[Bober The Beaver]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://www.kubagert.com/?p=213</guid>
		<description><![CDATA[Po roku ciężkiej pracy, jednej zmianie silnika, po 2 przeprowadzkach, po ślubie, wyprawie na Opener&#8217;a, Woodstock oto i jest, BOBER THE BEAVER demo Pograć można w przeglądarce internetowej, oraz ściągnąć wersję na pc&#8217;ta ( w sensie pod windowsa ). Zapraszam wszystkich pod adres: www.boberTheBeaver.com/demo/]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.kubagert.com/wp-content/uploads/2010/09/thumb.jpg"><img class="alignleft size-full wp-image-214" title="thumb" src="http://www.kubagert.com/wp-content/uploads/2010/09/thumb.jpg" alt="" width="105" height="105" /></a>Po roku ciężkiej pracy, jednej zmianie silnika, po 2 przeprowadzkach, po ślubie, wyprawie na Opener&#8217;a, Woodstock oto i jest,<br />
BOBER THE BEAVER demo <img src='http://www.kubagert.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Pograć można w przeglądarce internetowej, oraz ściągnąć wersję na pc&#8217;ta ( w sensie pod windowsa ).<br />
Zapraszam wszystkich pod adres: <a href="http://www.Boberthebeaver.com/demo/">www.boberTheBeaver.com/demo/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kubagert.com/2010/09/22/bober-the-beaver-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bober The Beaver</title>
		<link>http://www.kubagert.com/2010/07/12/bober-the-beaver/</link>
		<comments>http://www.kubagert.com/2010/07/12/bober-the-beaver/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 08:38:21 +0000</pubDate>
		<dc:creator>kubagert</dc:creator>
				<category><![CDATA[Programowanie gier]]></category>
		<category><![CDATA[Różne]]></category>
		<category><![CDATA[2D]]></category>
		<category><![CDATA[Bober The Beaver]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[platform game]]></category>
		<category><![CDATA[superfrog]]></category>

		<guid isPermaLink="false">http://www.kubagert.com/?p=198</guid>
		<description><![CDATA[Bober The Beaver from Dash Dot Creations on Vimeo. Więcej na www.dashdot.pl/blog]]></description>
			<content:encoded><![CDATA[<p><center><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="225" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=13410228&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="225" src="http://vimeo.com/moogaloop.swf?clip_id=13410228&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/13016152">Bober The Beaver</a> from <a href="http://vimeo.com/user535927">Dash Dot Creations</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Więcej na <a href="http://www.dashdot.pl/blog/">www.dashdot.pl/blog</a><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kubagert.com/2010/07/12/bober-the-beaver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FemtoEngine</title>
		<link>http://www.kubagert.com/2009/11/08/femtoengine-2/</link>
		<comments>http://www.kubagert.com/2009/11/08/femtoengine-2/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 23:20:14 +0000</pubDate>
		<dc:creator>kubagert</dc:creator>
				<category><![CDATA[Programowanie gier]]></category>
		<category><![CDATA[Unity3D]]></category>

		<guid isPermaLink="false">http://www.kubagert.com/?p=23</guid>
		<description><![CDATA[Coś się szykuje]]></description>
			<content:encoded><![CDATA[<p>Coś się szykuje <img src='http://www.kubagert.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div id="attachment_25" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.kubagert.com/wp-content/uploads/2009/11/2009_09_18_loading.jpg"><img class="size-full wp-image-25" title="2009_09_18_loading" src="http://www.kubagert.com/wp-content/uploads/2009/11/2009_09_18_loading.jpg" alt="FemtoEngine - loading screen" width="500" height="250" /></a><p class="wp-caption-text">FemtoEngine - loading screen</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.kubagert.com/2009/11/08/femtoengine-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Taglines system, cutscenes system</title>
		<link>http://www.kubagert.com/2009/09/10/19/</link>
		<comments>http://www.kubagert.com/2009/09/10/19/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 23:15:12 +0000</pubDate>
		<dc:creator>kubagert</dc:creator>
				<category><![CDATA[Programowanie gier]]></category>
		<category><![CDATA[Unity3D]]></category>
		<category><![CDATA[cutscene]]></category>
		<category><![CDATA[taglines]]></category>

		<guid isPermaLink="false">http://www.kubagert.com/?p=19</guid>
		<description><![CDATA[Udało mi się w końcu ukończyć moduł &#8222;Taglines&#8221;. Co to takiego &#8222;taglines&#8221; ?? Jest to system skryptów graficznych służacych do skryptowania rozgrywki w grach. Powstał początkowo jako edytor graficzny dialogów do projektu &#8222;Afterfall&#8221; ale szybko przeszedł metamorfozę, został przeprojektowany, przepisany i teraz jest świetnym pełnowartościowym narzędziem. Narzędziem nieocenionym do skryptowanai gry, level designerzy nie muszą [...]]]></description>
			<content:encoded><![CDATA[<p>Udało mi się w końcu ukończyć moduł &#8222;Taglines&#8221;. Co to takiego &#8222;taglines&#8221; ?? Jest to system skryptów graficznych służacych do skryptowania rozgrywki w grach. Powstał początkowo jako edytor graficzny dialogów do projektu &#8222;Afterfall&#8221; ale szybko przeszedł metamorfozę, został przeprojektowany, przepisany i teraz jest świetnym pełnowartościowym narzędziem. Narzędziem nieocenionym do skryptowanai gry, level designerzy nie muszą rozumieć zasad programowania, gdyż skryptowanie odbywa się poprzez tworzenie odpowiednich grafów i odpowiedniego łączenia &#8222;końcówek&#8221; bloków grafu. <span id="more-19"></span>System ten jest bardzo prosty (nie mylić z prostackim), łatwo rozbudowywuje się go o nowe bloki, bez problemu moża go sprzężyć z innymi językami skryptowymi (np LUA). Obecnie współpracuje z UnigineScripts silnika Unigine. Generalnie jest to system podobny do Crysis FlowGraph firmy CryTek albo Unreal Kismet firmy Epic Games. </p>
<p>W wirze pracy postał także system do robienia cutscenek, albo sekwencji zdarzeń w grze. Dzięki temu narzedziu możemy zmieniać położenie obiektów w czasie, zmieniać ich obrót w czasie, oraz uruchamiać specjalne funkcje obiektów. Wszystko edytuje się prosto i przyjemnie korzystając ze specjalnego okienka na którym mamy oś czasu i nanosimy klucze odpowiedzialne za dany typ zdarzenia. Opis na pewno jest bardzo enigmatyczny, ale niżej wszystko się wyjaśni. System ten jest systemem niezależnym , czyli może działać jako narzędzie do uruchamiania jakiś sekwencji lub funkcji w czasie, lub poprzez przejrzysty interfejs może być sprzęrzony z jakimś gotowym &#8222;gameplay framework&#8221;. Dzięki temu znów nie trzeba być programistą aby zaprogramować jak potworki wybiegają zza rogu, chowają się za przeszkodami i do nas strzelają, albo aby wykonać przerywnik filmowy w grze (tzw &#8222;cut scene&#8221;). Aktualnie wykorzystuje trochę system taglines, oraz także współpracuje z silnikiem Unigine i specjalnie przygotowanym przeze mnie n-tą generacją bazą skryptów do tego silnika. Aktualnie baza skryptów jest ciągle rozwijana poprzez zespół programistów, aby był jeszcze lepszy <img src='http://www.kubagert.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Podobnie jak system Taglines system cutscen może być bez problemu sprzężony z innym językiem skryptowym (np moja ulubiona chyba LUA <img src='http://www.kubagert.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )<br />
Koniec bełkotu, czas na filmy</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/WQzScNY3r7Y&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/WQzScNY3r7Y&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object></p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/T-ecdqrRpw8&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/T-ecdqrRpw8&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kubagert.com/2009/09/10/19/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pathfinder</title>
		<link>http://www.kubagert.com/2009/04/30/pathfinder/</link>
		<comments>http://www.kubagert.com/2009/04/30/pathfinder/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 23:11:12 +0000</pubDate>
		<dc:creator>kubagert</dc:creator>
				<category><![CDATA[Programowanie gier]]></category>
		<category><![CDATA[pathfinder]]></category>

		<guid isPermaLink="false">http://www.kubagert.com/?p=15</guid>
		<description><![CDATA[Nadeszedl moment w ktorym mogłem przetestować w końcu swój system wyszukiwania drogi na potrzeby gry. Pierwsza generacja bazuje na znanym i popularnym algorytmie A*. Wszystko sprzężone jest z silnikiem UNIGINE. Cała siatka wykorzystywana do wyszukiwania drogi generowana jest z geometrii świata. Fajnie jest w końcu zobaczyć jak postaci same zmierzają do wybranego przez nas miejsca [...]]]></description>
			<content:encoded><![CDATA[<p>Nadeszedl moment w ktorym mogłem przetestować w końcu swój system wyszukiwania drogi na potrzeby gry. Pierwsza generacja bazuje na znanym i popularnym algorytmie A*. Wszystko sprzężone jest z silnikiem UNIGINE. Cała siatka wykorzystywana do wyszukiwania drogi generowana jest z geometrii świata. Fajnie jest w końcu zobaczyć jak postaci same zmierzają do wybranego przez nas miejsca <img src='http://www.kubagert.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Następnym krokiem będzie wygładzanie odnalezionej ścieżki. Na deser zapraszam do obejrzenia działania<br />
<span id="more-15"></span><br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/Wx4fVvyKN_w&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=pl&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/Wx4fVvyKN_w&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=pl&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kubagert.com/2009/04/30/pathfinder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FemtoEngine &#8211; pierwszy projekt</title>
		<link>http://www.kubagert.com/2009/04/28/femtoengine-pierwszy-projekt/</link>
		<comments>http://www.kubagert.com/2009/04/28/femtoengine-pierwszy-projekt/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 23:06:49 +0000</pubDate>
		<dc:creator>kubagert</dc:creator>
				<category><![CDATA[Programowanie gier]]></category>
		<category><![CDATA[Unity3D]]></category>

		<guid isPermaLink="false">http://www.kubagert.com/?p=11</guid>
		<description><![CDATA[Prace nad silniczkiem idą jak przysłowiowa krew z nosa. Manager plików i katalogów został nieco rozbudowany, i jest juz prawie przygotowany do działania . Dodatkowo postanowiłem w koncu napisać renderer od początku (stary bazował jeszce na funkcjach z OpenGL 1.2). Oczywiście zostaję przy OGL&#8217;u bo dx&#8217;a trochę nie lubię, lecz nie zmienia to faktu że [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_10" class="wp-caption alignright" style="width: 160px"><a href="http://www.kubagert.com/wp-content/uploads/2009/11/2008_04_femto_big.jpg"><img class="size-thumbnail wp-image-10" title="2008_04_femto_big" src="http://www.kubagert.com/wp-content/uploads/2009/11/2008_04_femto_big-150x150.jpg" alt="FemtoEngine" width="150" height="150" /></a><p class="wp-caption-text">FemtoEngine</p></div>
<p>Prace nad silniczkiem idą jak przysłowiowa krew z nosa. Manager plików i katalogów został nieco rozbudowany, i jest juz prawie przygotowany do działania <img src='http://www.kubagert.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Dodatkowo postanowiłem w koncu napisać renderer od początku (stary bazował jeszce na funkcjach z OpenGL 1.2). Oczywiście zostaję przy OGL&#8217;u bo dx&#8217;a trochę nie lubię, lecz nie zmienia to faktu że muszę nauczyć się kolejnych nowych rzeczy (pisanie shaderków). Spowoduje to na pewno opóźnienia w ukończeniu pierwszej produkcji, ale na szczęście ta produkcja jest grą 2D, więc shadery tez nie będa &#8222;Crysisowe&#8221; lecz maksymalnie proste. Przez czas od ostatniego wpisu do teraz edytor ma już opcję wstawiania nowych elementów do levelu, oraz możliwość ich przesuwania. Jeszcze by się przydała możliwość ich kasowania, grupowania itp, ale nie wszysto na raz. Hmm, tak w sumie piszę o produkcji i grze ale nie napisałem jeszcze co to będzie dokładnie. A będzie to STRIKE <img src='http://www.kubagert.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.kubagert.com/2009/04/28/femtoengine-pierwszy-projekt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FemtoEngine</title>
		<link>http://www.kubagert.com/2009/04/08/femtoengine/</link>
		<comments>http://www.kubagert.com/2009/04/08/femtoengine/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 23:04:32 +0000</pubDate>
		<dc:creator>kubagert</dc:creator>
				<category><![CDATA[Programowanie gier]]></category>
		<category><![CDATA[Unity3D]]></category>
		<category><![CDATA[LUA]]></category>

		<guid isPermaLink="false">http://www.kubagert.com/?p=8</guid>
		<description><![CDATA[Chyba dorosłem już do napisania nowego silniczka Przez około dwa tygodnie do dnia dzisiejszego męczyłem się z implementacja LuaPlus w swoim frameworku. Przysporzył mi trochę problemów, ale udało mi się w końcu tę bibliotekę poskromić (a przynajmniej tak mi się wydaje). Nie tracąc ani chwili oddechu od razu napisałem prosty manager plików i katalogów wraz [...]]]></description>
			<content:encoded><![CDATA[<p>Chyba dorosłem już do napisania nowego silniczka <img src='http://www.kubagert.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Przez około dwa tygodnie do dnia dzisiejszego męczyłem się z implementacja LuaPlus w swoim frameworku. Przysporzył mi trochę problemów, ale udało mi się w końcu tę bibliotekę poskromić (a przynajmniej tak mi się wydaje). Nie tracąc ani chwili oddechu od razu napisałem prosty manager plików i katalogów wraz z interfejsem do LUA. Dzięki temu mogę tworzyć nowe jednostki w grze <img src='http://www.kubagert.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  Heh, teraz te słowa i tak brzmią trochę pusto <img src='http://www.kubagert.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> . Więc: Tak jak mówiłem na początku piszę swoj nowy silniczek, który będzie się nazywać FemtoEngine i będzie podstawą do tworzenia prostych (?) gier platformowych. Będzie to kolejna ewolucja silnika który napisałem na potrzeby gry WłatcyMóch ale piszę go zupełnie od początku. Czyli kompletnie od zera. Nie wiem ile razy jeszcze będę wałkować te same fragmenty kodu, ale swój kod można poprawiać w nieskończoność. Tak jest i tym razem, z nowym bagażem doświadczeń silnik powinien być lepszy, elsatyczniejszy, i w ogóle fajniejszy <img src='http://www.kubagert.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Co wyjdzie z tego potworka &#8211; zobaczymy <img src='http://www.kubagert.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.kubagert.com/2009/04/08/femtoengine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

