2012. január 14., szombat

Elhanyagolás

Kicsit elcsúsztam a saját roadmapemmel, így a blogra nem jutott időm, de amint végzek vele, írok 2 hosszabbat.

Jelenleg amivel foglalatoskodom:
  • Particle system
  • Collision model
Ha ezekkel megvagyok, akkor leírom nekem mik a tapasztalataim, mik a buktatói és bemutatom a jelenlegi motorban hogy működnek.

Addig türelem :)

2012. január 7., szombat

Tasks

Gondoltam, hogy legyen tartalom, írok néha 1-1 alkalmazásról, amiket hasznosnak érzek. Ne csak folyton a Windows Phone vigye el a tartalmat. Ennek most kicsit ellentmond, hogy egy WP7-es appról fogok írni :)

Az alakalmazás neve, mint ahogy a cím is mutatja, Tasks. Egy egyszerű feladatrögzítő app, amelyben ilyen sticky notes szintű feladatokat vihetünk fel magunknak, szín és prioritás szerint csoportosíthatjuk őket, valamint szép kis piktogramokkal láthatjuk el. Feladatainkat kategóriákba lehet rendezni, figyelmeztetést lehet beállítani. Tényleg mindent tud, amit az ember elvár egy ilyen alkalmazástól.

Marketplacen tőlem 5 csillagot kapott.

Állapotok

A cím kicsit félrevezető lehet, nem hazánk gazdasági állapotáról szeretnék most írni, bár az is megérdemelne pár keresetlen szót, hanem a játékok állapotairól. Kicsit rég volt bejegyzés, ezt most próbálom pótolni.

Aki már foglalkozott játékok programozásával, előbb-utóbb eljutott oda, hogy a játék állapotait jó lenne valahogy egységesen kezelni. Miről is van szó? Egy egyszerű játék állapottere kb így néz ki (nem fogok UML state chartot rajzolni, csak powerpointban dobok össze valamit):
Körülbelül így néz ki. A megvalósítás sem sokkal bonyolultabb, egyszerűen a játék komponenseit egységbe kell zárni, esetemben ezek a Screen osztályban valósulnak meg. Ha szétválogattuk a komponenseket és mindegyik komponens a saját Screen osztályába helyeztünk, akkor már nincs más dolgunk, mint az állapotkezelést megvalósítsuk egy ScreenManager osztályban.

Akit érdekel a Microsoft is csinált sample-t, amely ezen a linken érhető el.
Működés közben így néz ki

2011. december 28., szerda

Coding Windows Phone 7 Flashlight

Komolyan mondom, több órányi szenvedés után életem legundorítóbb megoldását találtam meg a neten. Az alapprobléma, hogy ugye pár WP7-es modellen van egy kis LED, amely a vakut hivatott helyettesíteni. Ennek segítségével jobb fotókat készíthetünk. Azonban ez a hardveres feature nem szerves része a hivatalos WP7-es specifikációnak, ennek köszönhetően nem támogatja a keretrendszer.

Azonban "trükkök százaival" van lehetőségünk arra, hogy bekapcsoljuk ezt a funkciót. Ez pedig nem más mint a PhotoCamera osztály. Ezt példányosítva a Flashmode propertyjét átállítjuk On-ra és egyszerűen egy végtelen ciklusban meghívjuk a PhotoCamera Focus() metódusát. Az eredmény a telefon elkezd fókuszálni és mivel a flash be van kapcsolva, szépen be is kapcsolja a LED-et.

Kérdés az, hogy ezzel az eljárással mennyire csökkentjük a fókuszáló optika mechanikájának az élettartamát. Erre tényleg nincs értelmesebb megoldás?!

2011. december 20., kedd

Nokia Lumia 800

Szögezzük le az elején, nem elemezni akarom a telefon minden funkcióját, csak a véleményemet írom le róla. Vágjunk is bele. Pár napja úgy hozta a sors, hogy sikerült a családi költségvetésből kiszakítani egy nagyobb szeletet és hozzájutnom egy Nokia Lumia 800-as készülékhez. Hogy miért pont erre esett a választás? Munkámból kifolyólag az MS platform közelebb áll hozzám, így egyértelmű volt, hogy az iPhone után egy WP7-es telefont fogok venni. Szerencsére a többi gyártó modeljei nem tetszettek, így meg tudtam várni mire a Nokia is összekalapálja a sajátját, nem bántam meg.
Először is beszéljünk kicsit magáról a hardverről. A telefon nagyon jó, kézben pont akkora amekkorának lennie kell, kellemes tapintású anyag. Bár valószínűleg megvásárlás után a legtöbben a mellékelt gumi tokban fogják tartani. A készülék házának különlegessége, hogy egyetlen darabból lett kimaratva, ebből fakad hátránya is, otthon nem fogunk akkumulátort cserélni benne. Itt megjegyeznék 2 személyes negatívumot. A nyomógombok gagyik. De tényleg, itt egy prémium készülék és felraknak rá 3 olyan gombot, amin látszik, hogy valamelyik kínai tartományban fröccsöntötték pénteken délután, kár értük. A másik problémám pedig az USB-s csatlakozóval volt, egyfelől egy kipattintható ablak takarja, ami még elfogadható meg designos, de minden egyes töltésnél nyitogatni kell., a másik probléma vele, hogy a készülék tetején helyezték el. Hééé mérnökök ott a Nokiánál, dokkoló?! Autós  kihangosító?! Navigációs állvány?! Teljesen kényelmetlen, ezért is kár. Hogy egy kis pozitívummal zárjam a külsőről szóló részt, kiemelném a kijelzőt és a kötelező windows mobile gombokat. A kialakítás egyedi, gyönyörű és a netes videókat elnézve, rettentő ellenálló is (nem fogom karcolgatni/dobálgatni a saját mobilom).

Belsőséget tekintve, aki WP7-es telefont használt, nem fogja meglepetés érni. Azaz részben fogja, mert a Nokiás telefonból egy nagyon fontos funkció kimaradt, az internet megosztás. Nincs, se USB, se Wifi, se Bluetooth, sebaj, Nokia ígérete szerint egy update majd megoldja (vagy nem, de ebbe inkább bele se gondolok). Emellett a telefon szoftvere nagyon gyors és nagyon hamar hozzászoktam (azt tapasztaltam, hogy 1,5 nap után visszatértem az iPhone-omhoz és már WP7-es funkciókat kerestem). A Nokia azonban csomagolt egy kis meglepetést is a saját telefonjához, ezek a Nokia Drive (navigáció), Nokia Maps (térképek, no offline mód), Nokia Music (hasonló mint a beépített zenelejátszó, nem használtam) és az App Highlights (kb mint a Marketplace, vicces random funkcióval). Tetszetősek, de igazából nem volt időm érdemben elmerülni bennük. Többi feature igazából WP7, fölösleges túlságosan elemeznem őket.

Összegezve: nekem tetszik, kényelmes, méretben és súlyban is megfelelő, de a szoftverre ráfér még 1-2 update. Majd úgyis írok még, ha valami jóság történik, vagy valami már nagyon bosszant.

UI.: remélem hamarosan lesz Opera mini WP7-esre is, ez az IE még az iPhone-os Safarinál is rosszabb...

2011. december 17., szombat

Róka a térben

Róka a 3D-s térben
Sikerült egy kis időt szakítanom a 3D fejlesztésre. Így részben elkészült a terrain content, amit a fenti videón is lehet látni, valamint áthuzaloztam picit az irányítást, hogy a róka "szét is tudjon nézni" az új terepen. Azt még mondjuk nem tudom, hogy fogom feltextúrázni normálisan a tájat, mert ugye Windows Phone alatt nem lehet custom shadert használni... no mindegy, majd csak megoldom valahogy :)

2011. december 9., péntek

Controller live

Controller működés közben

Irányítás telefonon

Sikerült! Több napi munka utáni kódolás után sikerült megcsinálni az irányítást a telefonos játékomhoz. Most megpróbálom leírni a tapasztalataimat. Először is kicsit magáról az eszközről. A konzol-pc platformmal ellentétben a modern okos kütyük csak korlátozott és előre definiált gombkiosztással érkeznek. Tehát adott a probléma, hogy az érintőképernyőn nekünk kell kitalálnunk és egyben megvalósítanunk a saját vezérlőnket. Ez ugye adja a szabadságot, hogy azt rakunk fel, amit csak akarunk, ugyanakkor figyelnünk kell az ergonómiára is. Az ergonómiának egyik legfontosabb része az egyszerűség, hiszen a fizikai irányítókkal ellentétben itt nincs visszacsatolás, hogy a felhasználó megfogta azt a gombot. Szerintem az egyik legjobb megoldás, ami a mellékelt képen is látható, hogy létrehozok 2 virtuális thumbsticket (lásd Xbox 360 controller valós thumbstickjei). Ez természetesen már létezik más játékokban is, így maga az ötlet nem saját, csak a megvalósítás.

A megvalósításom a következőképpen néz ki. A Thumbsticket 2 objektumra bontottam, az alsó karika reprezentálja az érzékelő területet, ahol a controller érzékeli az érintést, illetve a központi "stick"-re, amely az aktuális elmozdulást reprezentálja. A középpont és az elmozdulás különbségéből pedig szépen kiszámolom az aktuális irányvektort. Ez egész jól működött is, azonban zavaró volt, hogy amikor kiléptem a karikából leállt a teljes irányítás. Ez egy izgalmas akció közben erősen a játékélmény rovására mehet, ezért kell egy kis toleranciát építeni a vezérlőbe. A trükk egyszerű, mindaddig vegyen infót az irányító, amíg a felhasználó fel nem emeli az ujját a képernyőről. Ezt könnyen le is tudjuk követni a TouchLocation State propertyjével, amely Released állapotba kerül. Innentől már csak fel kell használnunk a vektorokat, amelyeket a vezérlőtől kapunk.

2011. december 4., vasárnap

Windows Phone Developement

Lassan de biztosan haladok egy működő Windows Phone-os motor felé. A belső váz már működőképes. Még sok fejtörést okoz, hogy a debug igen nehézkes, főleg ha közvetlenül telefonra fejleszt az ember. 1-1 komplexebb hiba megtalálása bizony komoly időbe telik. Még pár hét és remélem már valami használható kis játék is kikerül a kezem alól.

2011. december 3., szombat

Design

Gondoltam felrakok egy új designt, sajnos az oldalsó tag "felhő" olyan mint ha egy hurrikán söpört volna végig rajta. Opera alatt a linkek egy részét oldalra fújta. Firefox, Chrome és IE9 alatt jó, de olyat nem használok. No mindegy, majd leszedem.

2011. november 18., péntek

Eurázsia a barátunk

Eurázsia ismét a barátunk. Sokakban felmerülhet, hogy dehát tegnapelőtt még a legnagyobb ellenségünk volt. Nos nem kell aggódni, Eurázsia duplapluszjó! Ő majd megment minket. A bukás című film jut eszembe, Orbán ül a térképnél, stadionokat vizionál a nagyvárosokba és azt mondja: "Majd az IMF jön és minden rendben lesz"

Egy biztos, jövőre megszorítások jönnek, mert a strukturális átalakításokhoz ez a társaság is gyenge, hiába a 2/3...

2011. november 4., péntek

Szmog

Országunk irányítói, jogászai és a drága állampolgárok, jól elvitatkozgatnak azon, hogy most mi a szabályos, hogy kell értelmezni a jogszabályt, mi-ki-kivel-hogyan közlekedhet. Lehet-e ezzel-azzal fűteni. Aztán végül mindig az jön ki, hogy jogunk van, nem tilthatják ki/meg stb.

Egy dolgot felejtenek el, nem azért tiltják ki az autókat, tiltják meg a "nemgázfűtést", az avarégetést, hogy kiszúrjanak a zemberekkel, hanem azért, mert tönkrevágja az egészségünket, ha ilyen csodás levegőt kell beszívnunk huzamosabb ideig.

A legnagyobb baj, hogy ezek a szabályok nem következetesek, senki nem tartja/tartatja be őket. Az obszidiánfekete matricás régi Ikaruszok vidáman pöfékelik tele a tüdőnket kosszal, és ez senkit nem érdekel.

2011. augusztus 11., csütörtök

SQL vs Excel

Érdekes feladat, hogyan mentsünk excelbe egy SQL-es lekérdezés eredményét. Ameddig 1-2 ilyennel akadunk össze könnyű dolgunk van, viszont amint több fájllal akadunk össze, elkezdünk keresgélni milyen automatizálási lehetőségeink vannak.

Az Interneten számos megoldást találhatunk a problémánkra, nálam viszont egyik sem akart működni. Igaz a lekérdezés sem volt egyszerű, és nem csak egyszer kellett meghívnom.

Legjobb megoldásnak végül azt találtam, hogy szakítok az MS konvenciókkal és mivel a nagy multiknál sem idióták dolgoznak, így szerencsére az .xls fájl betöltésénél igen nagy tolerancia van. Így végül maradt, hogy az adatok szépen mennek ki egy txt-be, tabbal (\t) elválasztva, majd egy C#-os dummy kóddal kapnak szépen headert és formázást. Így viszonylag hamar, használható táblázatokat sikerült előállítani.