tag:blogger.com,1999:blog-50148939708822504182024-02-20T19:44:35.509+01:00...pa to radi!!!našli se programeri da pričaju<br>
<br>
molimo poštujte našu anonimnost; ako ćemo htjeti, sami ćemo otkrit tko smo i što smo :)<br>
and don't be a grammar nazi -- znamo mi pisat, samo nam se ne da :)Ivan Vučicahttp://www.blogger.com/profile/09801850158138970240noreply@blogger.comBlogger18125tag:blogger.com,1999:blog-5014893970882250418.post-56292257918149783972010-09-19T11:44:00.002+02:002010-09-19T14:15:12.954+02:00C je high level jezik?!?<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.webopedia.com/FIG/PROG-LAN.gif"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 293px; height: 213px;" src="http://www.webopedia.com/FIG/PROG-LAN.gif" border="0" alt="" /></a>Dosta literature, a i predavanja na fakultetu (još uvjek) na spomen programskog jezika C istiće da je isti high level jezik. S druge strane, npr. diskutirate s nekim o izradi grafičkog enginea, kada se kaže da nešto treba napraviti na low level razini, zapravo znači da to treba biti napisano C-u. Uzrok te dvoličnosti C-a se može objasniti tromošću prilagodbe obrazovnih materijala novim tehnologijama. Dok neki iskusan programer napiše knjigu ili postane profesor, prođe 5 do 10 godina a u tom vremenoskom razdoblju svijet se dvaput prevrne.<div><br /></div><div>Kako se mišljenje o tome što je high level mjenja s vremenom, neki su se dosjetili da umjesto pojmova low level i high level uvedu nazive koji zapravo govore što je na kojoj razini. Jedan od takvih pokušaja su generacije jezika (<a href="http://www.computerhope.com/jargon/num/1gl.htm">http://www.computerhope.com/jargon/num/1gl.htm</a>), no i tamo je C high level jezik a sve što je iznad je praktički ljudski jezik. Što pak nije istina, između C-a (3. generacije jezika) i skriptnih jezika (4. generacija), postoje jezici kao što su C++, C# i Java. Drugi od pokušaja su paradigme. C je primjer proceduralne paradigme a Java i C#, objektne. Na trećem mjestu idu još dalje, paradigme su omotane u modele: </div><div><ul><li>model zasnovan na proceduralnoj paradigmi</li><li>model zasnovan na objektima</li><li>model zasnovan na komponentama</li><li>model zasnovan na uslugama</li></ul>Taj treći primjer je zanimljiv jer pokazuje kako trenutni modeli već nadilaze moderne programske jezike. Komponenti model se relativno lagano ostvaruje pomoću objektnog modela ali za model usluga, u većini slučajeva, još uvjek nema načina da ga se ostvari bez gubitka apstrakcije. Vjerojatno će se uskoro pojaviti nešto kao što je C++ bio u vrijeme C-a.</div><div><br /></div><div>Suma sumarum, nakupilo se razina iznad assemblerskih jezika i high i low level nazivlje se svakako treba osuvremeniti. Moji osobni pristup bi bio slijedeći:</div><div><ul><li>Sklopvska razina (hardware i možda strojni kod)</li><li>Assemblerska razina (assembler i možda strojni kod, stari low level)</li><li>Algoritamska razina (današnje poimanje low levela)</li><li>Objektna razina (povezivanje algoritama)</li><li>Komponentna razina (povezivanje procesa)</li><li>Razina usluga</li></ul><div><br /></div></div>EmPhttp://www.blogger.com/profile/03964770125352175794noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-66086530127751766182010-02-06T23:04:00.008+01:002010-02-07T00:41:34.167+01:00Anegdote podrazumjevanog<div>Joj joj joj. Napravim nekom program, meni radi korisniku ne. Popravim problem i nakon nekog vremena novi problem. Na drugom mjestu al zbog iste stvari. Zvuči ko da sam šeprtljavo napravio program, je l' da? Dam vam 5 minuta, razmislite. Koliko je teško pretvoriti niz znakova u broj?</div><div><br /></div><div><b>Vrlo</b></div><div>Vrlo teško, pogotovo kad ne znate da l imate decimalnu točku ili zarez. To što ste si u operacijskom sustavu postavili možete si objesit za rep, to vam korisnik programa može a i ne mora poštivati. Eeee, al ima još jedna zamka jer da je nema, mogli bi ste točku ili zarez pretvoriti u znak po volji i dalje imat predvidivu situaciju. Zamka je u tome što je sasvim legalno imati znak koji razdvaja tisućice. A da zamka bude s otrovanim šiljcima, taj znak je isto ili točka ili zarez. I za to bi mogli smislit postupak koji pazi na to ali tada smo već daleko od jednostavnosti i korak bliže umjetnoj inteligenciji. Eh, ni umjetna inteligencija ne bi radila ak ne bi znala "domenu" odnosno koji raspon brojeva očekivati. To vam je stvar koja se podrazumjeva da kao programer znate napraviti.</div><div><br /></div><div><b>Locale</b></div><div>U C#-u (a valjda i Javi) ugrađene funkcije za pretvaranje stringa (niza znakova) u broj gledaju u postavkama operativnog sustava koji su znakovi za što u formatu brojeva i na temelju toga vrše pretvorbu. No, po mom sudu, škrtare na dojavi pogreške. Da vam ispričam jednu anegdotu. </div><div><br /></div><div>Na svom računalu postavke o formatu brojeva imam uštimano na ono što sam učio u osnovnoj školi: tisućice odvajaj s pola razmaka a decimale s točkom, ne sa zarezom nego s točkom. Pošto pola razmaka nije lako za utipkat, obično stavljam cijeli. I s tim postavkama sam počeo raditi Zvjezdojeca i bilo mi dobro na Zemlji. Jednom prilikom sam bio dao frendu proba Zvjezdojeca na svom računalu, i kako je upalio igru odmah sam imao što vidjet. Zvijezde su bile pre prevelike. Tada nisam znao u čemu je problem a Vi iz teksta kojeg sam napisao možete pretpostaviti. Problem sam skužio tek kada sam reinstalirao operativni sustav. Naime, prije toga nisam mogao na svom računalu rekonstruirati problem a nakon reinstalacije sam zaboravio pošimat format brojeva. Pošto Microsoft misli da mi Hrvati koristimo točku između tisućica i zarez između decimala i cijelobrojnog dijela broja, ugrađene funkcije za pretvaranje stringa u broj su krivo tumačile tekst. Tekst koji glasi "0.2" bi prevele u broj 2. Osobno bih za takvo nešto očekivao da mi baci NumberFormatException iznimku s tekstom "kak moš imat 0 tisućica i nakon toga samo 2 bez još 2 znamenke?". Ono što je bilo još gore u cijeloj priči je da je taj propust u ugrađenim funkcjama bio vidljiv samo djelomice. Kada su veličine jednog tipa zvijezda trebale biti pomnožene s faktorom između 0.2 i 0.6, on bi množio s faktorom između 2 i 6 a ja bi jednostavno vidio 10 puta veću sliku nego što bi trebala biti i tražio bi uzrok na totalno desetom mjestu. Hvala Bogu, imo sam tip zvijezda koji ima faktor veličine između 0.7 i 1, koji kada se krivo prevede je od 7 do 1 a pošto je tada minimum veći od maksimuma, ispalo je da su zvijezde tog tipa bile sve iste veličine.</div><div><br /></div><div><b>MS SQL Express 2005</b></div><div>U svojoj igri mogu reć da ću svugdje koristiti određen znak. Korisniku aplikacije mogu reć da je krivo unio broj. Ali bazi podataka ne mogu reć da je sama sebi nedoslijedna. To je još jedan biser oko pretvorbe teksta u broj i broja u tekst. MS SQL baza iz naslova će vam uredno vratiti unose s decimalnim zarezom odnosno točkom, ovisno o tome kako imate u OS-u postavljeno ali kad unosite podatak on mora biti s točkom. I opet, kod mene radi a kod korisnika ne. I samo za MS-ovu bazu moram ubacivati dio kôda koji ko za retardirane pretvara broj u tekst koji ona može prihvatiti.</div><div><br /></div><div>Hvala Bogu sad to radi! A ima vam još jedna zafrkancija oko obrade teksta s kojom još nisam morao imati posla, sortiranje. Što po abecedi ide prije? C ili Č? U nas Hrvata C je l' da. E, al kako idu E-ovi s črčkama? Poredajte mi po abecedi E, Ě, Ę, É i Ë.</div>EmPhttp://www.blogger.com/profile/03964770125352175794noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-43856160378490529142010-01-09T23:11:00.001+01:002010-01-09T23:22:56.084+01:00Matematičko savršenstvo i pilotiranjeProjekt svemirske simulacije sporo se kreće, primarno jer skoro uopće ne radim na njemu, baveći se umjesto toga obiljem drugih stvari (koje, eto, ipak nisu društvenog i sportskog tipa). Zadnji put sam pisao o filozofskim i praktičnim problemima rada na 3D AI-ju. Ono malo što radim na njemu, pokazuje kako, za razliku od naziva ovog bloga, to baš i ne radi.<br />
<br />
Pa o čemu se radi?<br />
<br />
Kako (valjda) rekoh i prije, jako se treba paziti na svaki detaljčić, i borba protiv kolizije postaje jednako bitna kao i sama borba. Niti ne pokušavam pokriti slučaj gdje brod svojim skretanjem može udariti u drugi brod koji, eto, nailazi istim putem. Zasad bi to bilo previše za jedan projektić koji radim u slobodno vrijeme. Naravno, možemo razmišljati o raznim teoretskim rješenjima kao "ajde prođi sve pod kutem prema kojem se krećeš, i ako ti je tamo prepreka, odluči ići negdje drugdje". No prvo treba napraviti rješenje da brod uopće dođe do jednog odredišta prema kojem je odlučio letiti, a bez da se zaleti u neki drugi komad metala koji lebdi.<br />
<br />
Slijedi opis moje ideje za AI, a nakon toga daljnja osobna gnjavaža.<br />
<br />
<h1>Eksperimentalni AI</h1><br />
Naš AI nazovimo <b>Pilotom</b> koji rješava <b>Zadatke</b>. <br />
<br />
Dakle Pilot odluči koje zadatke će vršiti paralelno, i nakon što se oni odvrte, koji će se zatim početi rješavati. Očito, pilot ima listu zadataka koji idu jedan iza drugoga -- to jest, nakon što jedan završi, odmah se pokrene sljedeći na listi. Svaki zadatak ima listu paralelnih zadataka. Sam zadatak nije gotov dok i svi njegovi paralelni zadaci nisu gotovi. <br />
<br />
Pilot može biti agresivac, pasivac, kukavica, trgovac -- uglavnom, možemo za različite karakterne osobine imati različite klase s definicijom koda pilota (<span style="font-family: "Courier New", Courier, monospace;">PilotTrgovac</span>, <span style="font-family: "Courier New", Courier, monospace;">PilotAgresivan</span>). Naravno, ne moramo; sve to mogu biti mali parametri. Također, možemo imati i nazovi-apstraktnog pilota, a to je <span style="font-family: "Courier New", Courier, monospace;">PilotMrezni</span> odnosno <span style="font-family: "Courier New", Courier, monospace;">PilotIgrac</span>, ili pak <span style="font-family: "Courier New", Courier, monospace;">PilotDaljinskiUpravljan</span>. Trenutno ne implementiram igrača kao pilota koji prima input, ali teoretski mogu i čak je moguće da ću to odraditi. Ovi ostali piloti očito neće imati tipične zadatke i tipično odlučivanje. <span style="font-family: "Courier New", Courier, monospace;">PilotMrezni</span> recimo uistinu ne treba imati zadatke, kao ni <span style="font-family: "Courier New", Courier, monospace;">PilotIgrac</span>, ali <span style="font-family: "Courier New", Courier, monospace;">PilotDaljinskiUpravljan</span> prima konkretne precizne naredbe od igrača.<br />
<br />
A kakvi zadaci mogu postojati? Primjer jednog zadatka je <span style="font-family: "Courier New", Courier, monospace;">ZadatakLeti</span> (<span style="font-family: "Courier New", Courier, monospace;">JobFly</span>). Ovaj zadatak je trenutno jedini koji implementiram, a trenutno sadrži i kod za odlazak na neko odredište, ali i kod za slijediti nekoga. Planiram uskoro razdvojiti ovaj zadatak u dva: <span style="font-family: "Courier New", Courier, monospace;">ZadatakLeti</span> i <span style="font-family: "Courier New", Courier, monospace;">ZadatakSlijedi</span>. Također, može postojati i <span style="font-family: "Courier New", Courier, monospace;">ZadatakPucajDoPrilaska</span>, <span style="font-family: "Courier New", Courier, monospace;">ZadatakPucajStojecki</span>, i slično. Zadaci ne sadrže pametno odlučivanje.<br />
<br />
Trenutno u svojem jedinom zadatku implementiram detekciju prevelikog približavanja meti, detekciju potencijalne kolizije i slično. Konceptualno, to je krivo, i to leti van iz koda, odnosno o tome će odlučivati Pilot. Naime, Pilot može uistinu željeti zaletiti se u odredište. Takav je Pilot, primjerice, projektil. Stoga, svi zadaci trebaju biti vrlo jednostavni. Možemo uistinu implementirati dio kontrole kada je ona uistinu korisna (<span style="font-family: "Courier New", Courier, monospace;">ZadatakPucajDoPrilaska</span>), odnosno onda kada nam uistinu odgovara naslagati nekoliko naredbi za redom, no zadatak ne smije sam određivati paralelne zadatke ili one koji slijede nakon njega.<br />
<br />
E sad, kako najavih, prelazimo na jadanje.<br />
<br />
<h1>Programersko prigovaranje</h1><br />
Pilot i jedini implementirani zadatak, kao što je par puta rečeno, trenutno imaju nekoliko gadnih konceptualnih propusta. Zadatak pokušava previše odlučivati, a Pilot to radi premalo. Sve to je tako jer je AI eksperimentalan i <i>work-in-progress</i>. Da nisam ovo napravio, ne bih ni znao da postoji kriv način izrade AI-ja.<br />
<br />
Trenutno AI bi trebao implementirati napadački mentalitet. AI pokuša letiti prema igraču, no odluči da će se sudariti i izbjegava ga tako da predaleko odleti. Zatim se vrati, i počne kružiti u blizini igrača, gotovo nikada ga ne naciljajući zastvarno jer, jednostavno, kruži preblizu. Najvažnije pitanje je ovdje, otkuda AI-ju ideja da tako daleko odleti, a zatim da ne ponavlja to ponašanje?<br />
<br />
Spomenuo sam u naslovu matematičko savršenstvo. To se odnosi na pilotovo izbjegavanje.<br />
<br />
Tu je ključna bila detekcija točne točke kolizije ako se pilot nastavi gibati po istom pravcu. Svaki objekt sastavljen je od više sudarnika (collidera). Sudarnik može biti ili kugla, ili trokut. Relevantne točke (jedna ili tri) definirane su relativno u odnosu na objekt u svemiru.<br />
<br />
Imam veliku sreću da sam naletio na odlični <a href="http://www.tsarevitch.org/ozcollide/">ozcollide</a> ruskog programera Igora Kravčenka koji je odradio velik dio prvog ciklusa gradiva <a href="http://www.fer.hr/predmet/mat2">Matematike 2</a>, a i više. Ova biblioteka (il' što bi neki profesori rekli, "knjižnica" ... brrrr) uvelike mi je olakšala koliziju kugle i trokuta, te trokuta i trokuta. Štoviše, biblioteka za neke od kombinacija predviđa i udaljenost do sudara za zadani vektor brzine -- točno ono što meni treba!<br />
<br />
No biblioteka ne pokriva kombinaciju kugla-kugla. A ja sam, kako je poznato, vrlo ... kržljav što se tiče matematike. Stoga sam potrošio velik dio razmišljanja u zadnjih par "sessiona" bavljenja igrom upravo na razmišljanje i pokušaje implementacije gore navedenog. S obzirom da sam vrlo sklon greškama u implementaciji imalo složenijih fora od y=x+5, tu sam zapeo, no uz ideju i određenog "rješavača" matematičkih formula koji nosi ime po prvom grčkom slovu, te uz odvojeni mali frameworkić za testiranje koji sam si složio, i to sam implementirao. Je, vraga. Treba paziti i na jezik u kojem se radi, na svako moguće dijeljenje i množenje, da ne bi ispalo cjelobrojno ... vražji C/++ :-)<br />
<br />
I eto, dobijem točku gdje se kugla premjesti da bi udaljenost centara bila točno R1+R2, i zatim povučem liniju između dvije kugle, shvatim kao vektor, normaliziram je i pomnožim s R1. Konačno dodam na onaj "odredišni" (x,y) gdje će kugla biti. Voila! Riješeno.<br />
<br />
Za referencu, rješava se ova formulica:<br />
<br />
<i>[(x_1 + t v_x) - x_2]^2 + [(y_1 + t v_y) - y_2]^2 + [(z_1 + t v_z) - z_2]^2 = (R_1 + R_2)^2</i><br />
<br />
<span style="font-size: xx-small;">(Lakše ćete je pročitati ako je kopirate u OpenOfficeov matematički modul. Osim toga... skoro pa je TeX :-) )</span><br />
<br />
Za lakše shvaćanje, i lijeva i desna strana su kvadrirane. Lijeva bi trebala biti pod korijenom i time dati udaljenost između točke <i>(x_1+tv_x, y_1+tv_y, z_1+tv_z) </i>i točke <i>(x_2, y_2, z_2)</i>. Ta udaljenost treba biti <i>R_1+R_2</i>, te kada to izjednačimo dobijemo parametar <i>t</i> -- odnosno njih dva -- pomoću kojeg možemo odrediti odredišnu točku, tj. prvu od dvije koje sam napisao u ovom odlomku. <br />
<br />
U rješenju računam da brzina postoji, tj. da bar jedan od <i>v_x, v_y i v_z</i> nije 0. Inače se kolizija nikako ne događa. To rješava problem nule u nazivniku. Također, dobivamo dva rješenja -- jedno na ulazu, a drugo na izlazu iz kolizije. Ako uzmemo ono bliže, to je to. Po iskustvu, to bi trebalo biti ono kod kojeg <i>nemamo</i> negativni predznak.<br />
<br />
<h1>I sve to računanje...</h1><br />
Poanta ove priče je ... rezultantna formula je podulja, uključuje mnogo kvadriranja, jedan korijen jedno dijeljenje. Bez nekih benchmarka, iznijet ću ono što se može vidjeti u kodu <a href="http://www.ogre3d.org/">Ogre3d</a><br />
enginea: <span style="font-family: "Courier New", Courier, monospace;">sqrt()</span> je skup. Ogre3d zbog toga ima <span style="font-family: "Courier New", Courier, monospace;">getSquaredDistance() </span>u vektoru, koji ga izbjegava.<br />
<br />
Što bi mogli napraviti? Da li bi bilo brže napraviti nekakav fiksan set koraka koji gleda kvadriranu udaljenost i procjenjuje da li je dovoljno daleko udaljeno, i lupiti aproksimiranu brojku?<br />
<br />
Iskreno, za ovo uopće nemam ideje kako to gluplje i brže izvesti. Osim toga, ovo se queryja kao zadnji korak -- ako objekti nisu dovoljno blizu da bi se skoro mogli kolidirati, onda uopće ne moramo razmišljati o tome koliko ovo traje.<br />
<br />
Zašto uopće pričam o jednostavnijim rješenjima? Jer sam nedavno imao gadnih problema s jednom malom 2D igrom koju je trebalo napraviti. Umjesto da posegnem za što jednostavnijim rješenjem (povuci liniju, gledaj gdje se prvo kolidira, ograniči pomak do tamo), igrao sam se s pravim, matematičkim rješenjem sličnim ovom gore. Nažalost, cijela logika igre je umirala, a zbog neadekvatno delimitiranih objekata (što-je-tu-je) koje nisam mogao srediti na jednostavan način, postojala je hrpa rupa i nedozvoljenih poteza koje je igrač ipak mogao raditi. Nakon tjedan i pol rješavanja svega toga, nisam bio ništa bliže rješenju. To matematičko rješenje je na kraju odbačeno, i sad igra radi čudno, loše, ali bar igrač ne može raditi nedozvoljene poteze.<br />
<br />
U predikciji odnosno predviđanju sudara kugli, formula ispada tako jednostavna. Dugačka, ali jednostavna i čista. Meni na sramotu je što mi je dugo trebalo da to izvedem kako spada.<br />
<br />
Uz nadu da sljedeći post neće biti tek za 2 mjeseca, lijep pozdrav, i ne zaboravite čitati EmPov primarni blog (link sa strane). A tko zna, možda se pojavi i koji Kramerijanski post :-)Ivan Vučicahttp://www.blogger.com/profile/09801850158138970240noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-43071514699999601792009-10-26T19:06:00.002+01:002009-10-26T19:06:46.694+01:00AI u letačkim simulacijama<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">Ako se radi 3D space sim, može biti gadno raditi AI. Prvi obstacle? Predviđanje kolizije i adekvatno reagiranje. Dakle imamo svemirski brod. On treba negdje letjeti. Možemo imati cilj prema kojem želimo letjeti, i recimo da je lako i riješeno kako se brod treba tamo okrenuti. (Ako ništa drugo -- sfejka se.) I tako mi letimo... i sad treba predvidjeti da ako odmah ovaj čas istog trenutka ne krenemo skretati, bit će sudar, udar i neće biti dobro .Još ako pričamo o roju brodova koji se bore, treba paziti da se ne udare međusobno. Treba vrlo pametno odlučivati.<br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
Po čemu se to razlikuje od ostalih AIjeva? Pa prvo, po količini prostorne matematike. Za svaku, ama baš svaku sitnicu, treba očekivati rad sa hrpom vektora, kuteva, sinusića i kosinusića. Nema tu "Hm, točno iznad mene je? Ok, idem lijevo" -- ne, zato što prvo treba odlučiti što točno znači "iznad mene" i što točno znači "lijevo", te kako postići "idemo u lijevo".<br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
2D račun je relativno jednostavan. U 3D računu se petljaju dodatne mogućnosti. Recimo, upravo to -- što znači skrenuti ulijevo? Ako imamo rotaciju baziranu na kvaternionima, lako je skrenuti ulijevo bazirano na naš viewport... a ako računamo za AI, malčice je teže predvidjeti što točno jest skretanje ulijevo i da li ćemo na taj način ustvari lupiti u nekoga.<br />
</div><div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
Uglavnom, I'm having fun! :-)<br />
</div>Ivan Vučicahttp://www.blogger.com/profile/09801850158138970240noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-13407576274858470312009-10-10T18:13:00.002+02:002009-10-10T18:13:54.462+02:00Rvacki eksprešniDeckerova primjenica za međusobno isključivanje dretvi.<div><br /></div><div>Decker's algorithm for mutual exclusion of threads.</div><div><br /></div><div>Da, tako to ide na FERu :-)</div>McCosmo Kramerhttp://www.blogger.com/profile/07287354391557293811noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-61869711827785490622009-08-19T20:53:00.003+02:002009-08-20T00:05:38.734+02:00Master of Orion kakvog još nisam igroMaster of Orion II igram već godinama ali partija koju smo kolega Kramer i ja odigrali, iznenadila me. Prvo zato što je riječ o multiplayer partiji a drugo, igrali smo s isključenim taktičkim borbama. Ovaj post je većinom o dotičnoj igri i partiji, pa ako niste igrali MoO 2, budite upozoreni.<br /><br />Slično kao i Diablo 2, Master of Orion 2 ima ponuđen multiplayer koji ne funkcionira. Doduše u Diablu funkcionira ali sa iritantnim lagovima koji ne ovise o ni računalu ni o vezi. Igra jednostavno cukne s vremena na vrijeme i pokaže vam kakav ste lijepi leš ostavili u momentu u kojem niste mogli igrati. Master od Orion je teži pacijent, njega njegovi tvorci nisu njegovali zakrpama 10 godina od kada je izašao i zbog toga je zaglavio u oblicima multiplayera koji više ne postoje. Negdje sam čak čitao da je multiplayer bio rađen naknadno pa da ni kôd igre nije predviđen za to. Uglavnom, jedini način da se igra u mreži, i to samo lokalnoj mreži (znači, treba upalit Hamachi il neki ekvivalent), je da se instalira neslužbena zakrpa i preko DOSBox-a omogući IPX komunikacija. Čim je DOSBox u pitanju znači da se može igrati samo DOS inačica igre a ta je aplikacija uporna sa svojom sporošću. Kada smo napokon pokrenuli partiju u kojoj smo obojica sudjelovali, bili smo ono, "Pa to radi!" osjećaja.<br /><br />Kolega Kramer je slagao partiju i jest, za sve me je pitao ali nekako mi je uspjelo promaknuti pitanje o taktičkim borbama i tako je partija krenula s isključenom tom opcijom. Svo vrijeme sam smatrao da isključivanje te opcije jednostavno znači da računalo igra bitke umjesto igrača no uspostavilo se da su promjene mnogo opsežnije. Kao prvo, igraču je onemogućeno dizajniranje brodova što je inaće segment igre po kojem se Master of Orion serijal prepoznaje. Iznenađenje je bilo još veće kada sam skužio da računalo dizajnira brodove mimo pravila. Jednostavno si ima zacrtano, bez obzira na sve, na toj i toj veličini broda mora biti toliko beam oružja, toliko raketa, itd. Ta tvrdoglavost nerjetko rezultira nepokretnim brodovima. A i onako, računalo se igra s njima u borbama, pa me ni ne zanima kako to izgleda kad se ni jedna ni druga strana ne mogu pomaknuti. Zamjetio sam i još jednu anomaliju, tehnologije za oklop ne povećavaju izdržljivost strukture, samo izdržljivost oklopa. Da li je to namjerno il slučajno, ne znam, ako je namjerno onda je propust napravljen u modu s taktičkim borbama, ako nije, onda obratno.<br /><br />Partija sama po sebi je bila klikanje end turn gumba, gledanje brojčanog izvještaja borbi i pouka da drugi put igramo na puno većoj mapi. No to, kako je igra napravljena, zbunjuje me, neke stvari ko da su imale u vidu samo jedan način igre. Šteta što su u 3. nastavku serijala morali napraviti potpuno drugačiju igru i još k tome je nisu ni dovršili ni pokrpali, šteta.EmPhttp://www.blogger.com/profile/03964770125352175794noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-38125839135343099102009-08-06T22:18:00.001+02:002009-08-06T22:18:53.156+02:00Pričam ti priču<p>Sjećam se koliko sam kao klinac bio fasciniran pričama u nekim igrama. Mislim da slobodno mogu reći da je to zato što uistinu igre sredinom devedesetih pa do prve polovice prvog desetljeća novog milenija proživljavaju zlatno doba grafičkog storytellinga. Zaboravimo li na one prave, stare avanture, mislim da možemo reći da su u to doba (1995-2005) igre imale najbolju kombinaciju zanimljivih priča ugodne grafičke izvedbe. Vrlo vjerojatno jednostavno nisam u toku (ali i to nešto govori o svemu), ali jednostavno ne mogu se sjetiti nove igre koja mi je istovremeno bila i zanimljiva po priči, nije ostavljala dojam MTV-generacije, a da je još uvijek i lijepo izgledala. Zadnja je Half Life 2, koji je već lagano i ostario.</p> <p>Vidio sam nedavno Prototype kod kolege na laptopu. Zaintrigiralo me, no nemam dojam da ta igra ima “ono nešto”, odnosno da je u njoj duh Quakea II (koji puca, ali ima i, doduše neistaknutu, priču), da je u njoj duh jednog Black&Whitea (koji ima fantastičnu priču i setting, finu premisu, i nadasve originalan gameplay). Posebice nema duh Half Lifea 1. Nema čak ni duh jednog Star Trek Voyager: Elite Forcea, niti Star Trek: Armade (fine trekijevske pričice uz jako finu igru; nipošto savršeno, ali fino).</p> <p>Igre 1995-2005 imale su fine priče. No što im je to vrijedilo kad sam ja bio faca i imao sam cijele svoje male svjetove koje sam htio pretočiti u “tako savršene” igre, ne znajući išta o pravom game developmentu i smatrajući ga magijom :-)</p> <p>Pred par dana, javio mi se jedan stranac zainteresiran za jedan projekt koji radim. O tom projektu, na net sam stavio par demo filmića i par skrinšota (naravno, namještenih tako da pokazuju projekt u najboljem svjetlu). </p> <p>Ponudio je – priču. Zatim je istaknuo da nema teksture, da nema modele, da nema muziku, da nema ustvari ništa osim priče, ali da bi jako volio surađivati na igri baziranoj na mom engineu, jer, kakti, priča mu je hiper kul i originalna, pa bi mi mogli surađivati.</p> <p>Pa sam mu odgovorio poprilično podulji mail o načinu rada na igrama, o smrti srednjeg tržišta za igre (preživljavaju casual i high-end retail). Pisah mu o tome kako za omanju igru vjerojatno treba bar 6 mjeseci programiranja i artistiranja, i to fulltime. Naravno, govorim o relativno indie developmentu. Ako se to pretoči samo u cijenu pojedene hrane i popijenih pića za to vrijeme za manji tim dolazimo do prebolesnih cifri.</p> <p>A to je samo izrada enginea i grafike!</p> <p>A sad slijedi moja slobodna procjena za to koliko treba full time rada da bi se napravile misije, odnosno priča. </p> <p>Recimo, dva tjedna.</p> <p>Pa usporedite koliko je bitan prinos priča, za komercijalno izdavanje igre, ako su vam osnovni constraint nedostatak grafičara, programera, vremena, financijskih sredstava. Odmah ću otkriti tajnu: to je stvarno tako sporedna stvar da to ne mogu dovoljno naglasiti koristeći samo ljudski jezik (a pogotovo pisani).</p> <p>Napominjem da se tu ne radi o story-intensive igri, kao što su avanture ili RPGovi, nego o igri s misijama. Zaključak: Priča je nebitna, setting se da nabrzinu osmisliti, misije se daju naštancati.</p> McCosmo Kramerhttp://www.blogger.com/profile/07287354391557293811noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-84021333251439726132009-08-03T15:37:00.002+02:002009-08-03T16:18:40.836+02:00RadarWow, šta je ovo, mjesec tek počeo a već imamo 2 posta!<br /><br />Ko što je kolega napisao, radim na svojim projektima tokom ljeta. Razlozi tome su razni od neinspiratovnosti TV programa do čudnih raspoloženja tipa "ne da mi se igrat igrice" no najutjecajniji razlog je to što nema psihičkog pritiska sa strane faksa. Pa što je tako novoga da pišem ovaj post?<br /><br />U prethodnom svom postu pisao sam o projektu "neuronska letjelica". Zadnjih deset dana sam se ozbiljnije uhvatio plivanja, igranja Master of Oriona 2 i rada na neuronskoj letjelici a rezultat ovog zadnjeg možete vidjeti na <a href="http://www.box.net/shared/sunsb14hic">linku</a>. Uz uspješno dobivene partije sa špijunima i izgubljene partije sa feudalcima u neuronskoj letjelici napravljeno je manje više sve što se tiće igrača i započet je dio koji se odnosi na umjetnu inteligenciju. Malo detaljnije, napraljene je upravljanje letjelicom, pozadina koja daje osjećaj kretanja, pucanje, detektiranje pogodaka i neka vrst radara. Ako će te probat igrat tu igru, malo će vas iznenaditi način na koji radar prezentira svoje informacije. Naime taj "radar" je tzv. pretprocesor za umjetnu neuronsku mrežu. Njime se informacije o okolini sažimaju u oblik koji je pogodan za ulaz u neronsku mrežu, drugim riječima, taj radar je ono što će računalni protivnici vidjeti. Za sada je na radaru samo udaljenost objekata u okolini letjelice a kanim još dodati informacije koje opisuju tipove objekata. To, efekat uništenja letjelice (za sada se može do mile skupljati metke, hp ode u minus i nikom ništ) i neko ograničenje na paljbu su mi zaostatci od koje kanim riješiti prije nego počnem raditi na samoj neuronskoj mreži.<br /><br />Ima posla za ubijat dosadu tokom još jednog tjedna bez interneta. Hmm, možda ako uzmem +20 u spying umjesto transdimensional kojeg kasnije čopim sa evolutionary mutation, možd budem mogo nadvladat silikoide.EmPhttp://www.blogger.com/profile/03964770125352175794noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-71723621946719163012009-08-02T18:40:00.000+02:002009-08-02T18:40:57.570+02:00Ljeto vrije, a mi se kuhamoVidim ja, evo, kolega EmP je <a href="http://pljs.blog.hr/">i dalje radio</a> preko ljeta :-)<br />
<br />
Ja, s druge strane, nemam čime da se hvalim bez da otkrivam tko sam i što sam (jer Kramer ipak nisam ^^). U firmi smo skoro pa završili novu igru: izdavač čini se ne otkriva više nove bugove i ide se na snimanje voiceovera. Falimtebože da imamo izdavača, jer bi inače bili bez voiceovera.<br />
<br />
S druge strane, moji vlastiti projekti stoje. Malo radim na Javascript igri, no došao sam toliko daleko da imam fascinantan fadein/fadeout i loading. To govori o tome koliko treba čovjeku da na relativno novoj platformi napravi osnovne stvari: sati i sati. Mislim da sam preko 6 sati utrošio na to da nemam niti to da se osnovna mapa vidi.<br />
<br />
Istovremeno space-sim na kojem radim stoji. Zadnje sam stavio <i>job</i>-sustav kao osnovicu za AI, i prebacio dosadašnje "slijedi brod" u taj sustav. Odmah sam napravio da pokuša biti pametan pa se približiti do nekakvog radijusa, i zatim odletiti iza svoje mete. No, i dalje se uspijeva zabijati u svoju metu. Neke ideje mi se vrzmaju po glavi (možda da prvo ode na (leftvector*radius) pa zatim dalje?) no vidjet ćemo.<br />
<br />
Ništa, idem proučavati <a href="http://www.unity3d.com/">Unity engine</a>. Tutoriali za interface od IDEa su vrlo, što bi naši prekobarni susjedi rekli, <i>compelling</i>, i preporučam da se pogledaju. Skriptiranje izgleda interesantno i moćno... ali idemo probati sada stvaron napisati pokoju skripticu!<br />
<br />
Živjeli lijeni programeri!McCosmo Kramerhttp://www.blogger.com/profile/07287354391557293811noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-20760101775334074312009-07-11T16:31:00.003+02:002009-07-11T16:48:48.944+02:00E, ljetoPraznici, napokon. Dobro, još samo jedna prezentacija i a je to ali bar su ispiti prošli. Napokon se mogu pošteno baciti na rad na svojim igrama. Na svom blogu pljs.blog.hr nisam preko mjesec dana ništa objavio što ne znači da nisam mnogo napravio u međuvremenu. Update Zvjezdojeca bi trebao sjesti tokom jednog od četvrtaka u mjesecu. Još sam se dosjetio jednog projektića, letjelice upravljane umjetnom neuronskom mrežom.<br /><br />Naime, ANN (engl. <em>artificial neural network</em>) je u suštini vrlo jednostvna stvar. Jedino što kod nje zahtjeva malo više znanja i kreativnosti je određivanje pobude (ono što je ulaz neuronske mreže) i tzv. treniranje neuronske mreže. Programčić bi izvana funkcionirao kao igrica u kojoj se igrać sa svojom letjelicom napucava s ostalim letjelicama u 2D prostoru. Iz nutra, računalni protivnici bi pomoću neuronske mreže upravljali svojim letjelicama istim naredbama kojima raspolaže sam igrač: okreći lijevo, okreći desno, potisak naprijed, potisak nazad i paljba. Na tom projektiću, kodnog imena "neuronska letjelica" sam već poćeo raditi i čim bude do neke zanimljive razine napravljen, postam ovdje.<br /><br />A ljeto bi stvarno moglo bit malo manje kišno.EmPhttp://www.blogger.com/profile/03964770125352175794noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-90987242088612879862009-06-22T21:16:00.002+02:002009-06-22T21:24:55.089+02:00Lumberžak<div><i>Profesor i student na dotnetaškom predmetu...</i></div><div><br /></div><div><i><span class="Apple-style-span" style="text-decoration: underline;">Profesor:</span></i> Kolega, objasnite mi kakav je ovo kod.</div><div><br /></div><div><i><span class="Apple-style-span" style="text-decoration: underline;">Student: </span></i></div><div><br /></div><div>Profesore, imam taj jedan neopisivi strah kada vidim .Net. Kada sam bio mlađi, mrzio sam vidjeti .Net aplikaciju, čak i sam spomen na nju. Moja majka mislila je da sam glup, i da je jedini lijek da upišem FER i počnem raditi u .Netu. MOŽETE LI I ZAMISLITI KAKO JE TO PISATI .Net KOD CIJELI SEMESTAR NA FERu? Ne možete ni zamisliti kako je to ... pisati kontinuirano retardisan kod (ili povremeno samo drag'n'dropati) CIJELI BOŽJI SEMESTAR!!!</div><div><br /></div><div>Iovako ionako ne htjedoh biti .Net programer.</div><div><br /></div><div>Htjedoh biti drvosječa!</div><div>Skačući s drveta na drvo dok plutaju moćnim rijekama i jezerima naše Like!</div><div>Divovski hrast! Moćni dalmatinski bor!</div><div>Sa svojom draganom uz mene!</div><div>I pjevali bismo, pjevali ...</div><div><br /></div><div><a href="http://www.youtube.com/watch?v=xToPCaNxaow&feature=related">Ja sam lumberžak i ja sam okej...</a> [3:25 pa nadalje]</div>McCosmo Kramerhttp://www.blogger.com/profile/07287354391557293811noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-90463363614475160772009-06-22T17:00:00.001+02:002009-06-22T17:01:35.930+02:00Dosta je radaKad će više ovaj faks završiti pa da se pošteni student može početi baviti nečim interesantnim? :-(McCosmo Kramerhttp://www.blogger.com/profile/07287354391557293811noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-24730193057078868382009-06-07T00:58:00.001+02:002009-06-07T01:00:24.067+02:00Vidoviti Milan u Noćnoj mori?!...a očekivali ste da će biti samo programerskih stvari, a? Pa jesmo programeri, ali ... :)<br /><br />Ok, sjedim sad u 1:00 i "stara majka" na Z1 gleda emisiju Noćna mora Željka Malnara. I vot d fak ... "<a href="http://www.youtube.com/watch?v=SFeNgr1AbUo">VIDOVITI MILAN</a>"!<br /><br />Straašno :) :)McCosmo Kramerhttp://www.blogger.com/profile/07287354391557293811noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-25559558213099176572009-06-04T23:09:00.002+02:002009-06-05T00:12:37.385+02:00Prijatelji i jeziciInače sam n00bek u web developmentu al Java, kolko se meni čini, ima pun potencijala u razvoju web aplikacija. Osim apleta, Java nudi servlete. Servleti su web aplikacije razlomljne na dva dijela: jsp stranicu i aplikacijski dio. Jsp stranice su na sličnu foru kao i PHP, malo pišete HTML pa otvorite tag i pišete server side kôd, u ovom slučaju Java kôd, pa zatvorite tag i nastavite s HTML-om. Aplikacijski dio je .class datoteka koja komunicira sa jsp stranicom i obrađuje njene zahtjeme. Ta podjela je napravljena zato da se server side kôd lakše odvoji od client sidea, jednostavno napravite svu obradu podataka u čistom Java razredu i potom gotove podatke servirate jsp stranici. Moje veliko negativno iskustvo s ovom tehnologijom je ubitačno nezgrapno debugiranje. Da bi Tomcat server mogao raditi s vašim servletom, morate ga prvo spakirati, prebaciti u direktorij (eh da, prvo je trebalo napravit xml datoteku koja Tomcatu opisuje di je, tko je, šta je i što može) i onaj najgluplji dio: resetirati server. Naime Tomcat dok se pokreće kopira sve servlete na neko svoje skriveno mjesto i od tamo ih koristi. Naravno dok je upaljen povremeno provjeri da li ste vi promjenili sadržaj direktorija u kojem mu zadajete aplikaciju, al ta provjera se nikad ne dogodi onda kad treba. Dakle, potencijalno moćno al ne bi ja ak ne moram il bar dok se ne razvije malo spretniji mehanizam osvježavanja aplikacijskog dijela.<br /><br />ASP.Net sam bio slušo na jedom predavanju koje je držao kolega s faksa, al pošto ne radim ništ u vez weba, pozaboravljo sam. Ono što se sjećam je bila finta da izrada web aplikacije izgleda skoro identično izradi obične desktop aplikacije.<br /><br />Eh, game dev. Do ne tako davno, bio sam tvrdoglavi mali C-ovac koji je sve morao napraviti vlastitim trudom. Kakvi gotovi engine-i, wrapperi i dll-ovi. Al kako je faks uhvatio stiskat omču tako sam sve više prelazio na stav "sve je već napravio Švabo" (izreka profesora iz srednje škole), zašto bih ja metodom greške i pokušaja razvio sustav za detekciju i razriješavanje sudara i patio se sa specijalnim slučajevima kad su drugi dali besplatno da se koristi njihov engine za fiziku koji radi 100x bolje nego što bi se meni dalo radit. Tako sam Zvijezdojeca prebacio iz C++ u C# kako bi iskoristio gotova riješenja za grafičko sučelje skup sa obradom događaja (event handling-om). Projekt tako napreduje deset puta brže. Istina Bog, neću moći napraviti fensi šemi grafiku al bože moj, sklepat ću što mogu. Najbolje je otić na čim viši nivo apstrakcije i napraviti u izvjesnom roku nešto što radi, nego se kilaviti na nekoj niskoj razini ili pak izmišljati stvari koje već postoje. Python i Ogre su super kombinacija, pogotovo ako imate grafičara. C++ nije loš samo prije nego se upustite u izradu igre, prvo potražite gotova rješenja za GUI. C# je isto neloš, podržavaja standardni DirectX i XNA a ako radite nešto grafički jednostavno kao npr. Civilization 1 ne treba vam čak ni to. Jest da je .Net Microsoftov, al njega su stvarno dobro napravili. Ne odlično ali dobro.<br /><br />Što god radili, raspolođivi alati za razvoj (počevši od editora) će vam puno više značiti nego jezik u kojem radite.EmPhttp://www.blogger.com/profile/03964770125352175794noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-28961230892969399932009-06-03T18:28:00.003+02:002009-06-03T18:43:50.472+02:00Jezici i prijateljiKoji jezik koristiti? Evo mojih preferiranih, pa let the flame wars begin :)<br /><br /><ul><li><span style="font-weight: bold;">web development.</span><br /></li><ul><li>Nema do PHPa. Savršen balans između muke u hrpi koda i snage mogućnosti modifikacije kroz razumijevanje. Milijarda i jedna ekstenzija za sve (kreiranje slika, kreiranje PDFova, lakši pristup bazama podataka, ...) Samo paziš kako pišeš i možeš sve :)<br /></li><li>U .Netu (C#, ...) možete raditi bez razumijevanja što se događa. Možda je moćan, ali ... ne :)<br /></li><li>C je overkill. Možeš sve, ali dok se spojiš na bazu umreš. Nećeš valjda s fajlama raditi. A tek slaganje stringova... enđoj :)</li><li>Perl je ogavan, write only jezik. Osim ako si vrlo vrlo pažljiv. Funkcije ilitiga subovi su izvedeni na bolestan način. Ima ekstenzija za hrpu toga, kao i PHP, no stvarno, pisati u Perlu kao što neki sugeriraju i rade... ne :)</li><li>Java bi mogla biti <a href="http://ferko.fer.hr/">interesantna</a> no imam apsolutno nula iskustva s njom.</li><li>I konačno još jedan mejđor pro-PHP argument (doduše, i za .Net): hosting je svagdje dostupan. Ako nemaš vlastiti server, pozdravi se s C-om, a vjerojato i s Perlom.</li></ul><li><span style="font-weight: bold;">game development</span>. Uf, tu ima puno <span style="font-style: italic;">niche</span> segmenata... al ajmo pogledati.<br /></li><ul><li>web igre - PHP + Javascript. Rijetko koja igra iskorištava činjenicu da se cijela igra može u Ajaxu napisati ... i danas već ličiti na nešto što je pred petnaestak godina bilo mainstream na desktopima. Za optimizacije backenda, napisati cijeli server u C-u, kako ne bismo ovisili o tome što je PHP relativno stateless nakon završetka procesiranja pojedinog requesta i što različiti sessioni mogu komunicirati samo preko baze.<br /></li><li>2D igre - C++ i SDL odnosno OpenGL (ovisno što se želi napraviti). Jako sam sretan čak i s SDLom ako ne trebam često reskalirati i rotirati sprajtove kada se jako gube performanse. Tada se treba baciti na OpenGL.</li><li>3D igre - C++ i OpenGL, odnosno Python i Ogre3D (tj. PythonOgre). Prva varijanta ako se razvija kao hobby, ako treba biti jako portabilno, i ako se ne ovisi o jako jako jako puno optimizacijskih algoritama. PythonOgre je rješenje za komercijalne <span style="font-style: italic;">casual</span> igre koje se trebaju rapidno razvijati.<br /></li></ul><li><span style="font-weight: bold;">business development</span><br /></li><ul><li>.Net je nesrušivi car. A ja ne volim .Net i Microsoft. Jednostavno, u bilo kakvom poslovnom okruženju gdje se dođe, vjerojatno će se biti natjeran da se radi s .Netom.</li><li>Mono može pomoći ako ne volite MS i ne želite ovisiti o njima - ali samo ako cijeli tim u daljoj budućnosti može raditi s Monom :)</li><li>Java je <span style="font-style: italic;">close contender </span>po mom mišljenju. Opet, nemam iskustva s Javom pa nemam blage veze o čemu pričam... no imam osjećaj da je Java malčice nezgrapnija.<br /></li></ul></ul>Moj pregled... kolega EmP, napadajte u postu; svi ostali, napadajte u komentarima :)McCosmo Kramerhttp://www.blogger.com/profile/07287354391557293811noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-42355815416246334642009-05-30T13:00:00.003+02:002009-05-30T13:07:59.736+02:00Nema se vremena...Meni se nekako čini da među nama programerima ima vrlo malo ljudi koji <i>actually</i> mogu reći da imaju vremena. Mislim, uzme se poslić izrade sitea, malo se radi u firmi, rade se dežurstva u jednoj udruzi, i još se studira. Onda se želi raditi na nekim opensource projektima, eto, za zabavu... ali se ne stigne.<div><br /></div><div>Najgore je još kad imam vremena, ali nemam volje. Pa se osjećam kao ljenčina, a realno ne bih ništa napravio niti da probam raditi.</div><div><br /></div><div>Pa evo, za one koji su actually išli čitati treći post na blogu, dva pitanjca.</div><div><ul><li>Jesam li endem po tom da nemam vremena, ili i vi ostali ste izgubljeni po tom pitanju? Pa nema cuganja, nema kavica, itd?</li><li>Jesam li samo lijeni po tom što mi se često ne da raditi, il ima još takvih?<span class="Apple-tab-span" style="white-space:pre"> </span></li></ul></div>McCosmo Kramerhttp://www.blogger.com/profile/07287354391557293811noreply@blogger.com2tag:blogger.com,1999:blog-5014893970882250418.post-10330700059256679252009-05-30T11:55:00.003+02:002009-05-30T12:19:55.194+02:00Dobar danKolko toga smo McCosmo i ja rekli da ćmo skup napravit, više ni ne brojim. Ak smo se složili oko bloga, možda se jednom složimo i oko <a href="http://en.wikipedia.org/wiki/4x">4X-a</a>.<br /><br />Ja sam EmP, samo EmP. Programer FER-ovac, kao i kolega al s malo drugačijim ukusima, pišem mnogo jezika a C#/.Net mi draži je nekak najdraži za sada. Ne strijepim ni od skriptnih jezika al me više privlače jezici s boljim razvojnim okolinama (<pretjerivanje>Eclipse ruuuuuula! Eclipse je naači! Svi pređite na Javu, razlog je Eclipse! Eclipse čita misli! Eclipse sam piše kôd!</pretjerivanje>). Programerske vještine, osim za fakultetske obveze, koristim pretežno za izradu igara (možete pogledai na mom osobnom blogu<a href="http://pljs.blog.hr/"> pljs.blog.hr</a>). Od me programerskih crta tu i tamo me pukne neka religijsko filozofska inspiracija. Tolko o meni, ajmo na poso!EmPhttp://www.blogger.com/profile/03964770125352175794noreply@blogger.com0tag:blogger.com,1999:blog-5014893970882250418.post-77756092280102524572009-05-30T11:11:00.002+02:002009-05-30T11:20:38.555+02:00Šta nam je?Eto, puklo dvojici hrvatskih programera da blogaju. Mislim, kad ima hrpa seljačina koje blebeću o tome kako im je kafica bila prehladna kada su naručili s poluhladnim mlijekom i šlagom dok je susjeda prolazila niz ulicu i vikala "Peče me obraz"... zašto ne bi dvije seljačine pričale o ce kompajlerima, o pajton interpreterima, i slično?<div><br /></div><div>Kako bi mogli pričati što nas je volja, idemo pod pseudonimima. </div><div><br /></div><div>Daklem, da se predstavim. Ja sam McCosmo Kramer. Ne volim .Net. Volim OpenGL i PHP, i po mom mišljenju što slobodnije to bolje. Radim igre u jednom studiju za igre. Živim u Zagrebu, studiram na FERu. Ostalo ćete vidjeti iz mojih postova, koji će, nadam se, biti obilni i interesantni.</div><div><br /></div><div>Kolegi EmP-u ću ostaviti da se sam predstavi. </div><div><br /></div><div>Bleeee!!!!</div>McCosmo Kramerhttp://www.blogger.com/profile/07287354391557293811noreply@blogger.com0