2013. január 9., szerda

Kezdjük hát!

Itt az új év, itt az új post, ahogy azt ígértem.
Viszont egy új dizájn nem ártana, mert már nem a Starship Prototype-ról (később: Dimension Leak) fog szólni a blog, hanem inkább saját magamról és kalandozásaimról a játékfejlesztők világában. :D Ezen felül még a hozzám hasonló haladó(bb) fejlesztőknek próbálok tanácsokat adni, ahogy eddig is. Tök zéró kezdőknek is ajánlom az olvasgatást, mert néha úgy érzem, nem sok választ el engem is ettől a státusztól. Minél többet tanul az ember és minél tapasztaltabbak között dolgozik, annál inkább szarnak érzi magát. Ez ilyen úgy látszik. :)

Ez a bejegyzés pedig nem született meg volna, ha hülye fejemmel nem felejtem el felmásolni pendrive-ra a melóhelyi munkát, mert most is azt a kódot túrnám, mint jó disznó a moslékot. Arra még visszatérek később, hogy a kódomat miért nevezem mosléknak a jelen állapotában.

Azzal gyorsan megbarátkoztam, hogy igencsak nulla vagyok a többi kollégához képest, de hát el kell kezdeni valahol. Ezt próbálom azzal kompenzálni, hogy az egy hétre tervezett 42 óra munkaidőt én simán kitolom 60-65 -re. Ez nem (csak) azért van, mert ilyen munkamániás vagyok, hanem mert nekem jóval több idő megcsinálni egy-egy fejlesztést, vagy beépíteni egy új feature-t, mint más kollégának. Ekkor jön az, hogy addig kell csinálni, amíg nem működik. Ha kétszer annyi ideig tart, akkor annyi ideig, de meg kell csinálni.

Kezdjük ott hogy prototípus fejlesztés. Ebben már egész jónak éreztem magam, és tájékozódtam is a témában. Első szabály az volt, hogy minél gyorsabban, a kódot leginkább elhanyagolva csináljunk látható eredményt, hogy le lehessen tesztelni futás közben. Ezután ha marad a feature, akkor újratervezünk és újraalkotjuk a kódot. Na igen, de mi van ha a nagy siettségben az ember ezt a refactoring részt kihagyja? Hát kurva nagy gáz. :D

Jelenleg a tényleges munkaidőn kívüli kódolásom abban merül ki, hogy szépítgetem, csinosítom, újraírom a spagettit, mert ha jön valami változtatás, tuti borul az egész, és akkor (ahogy ma is) nem a tényleges átírással fog foglalkozni az ember, hanem a bugok kergetésével, amit gyűlölök. Úgy ültem neki a mai munkának is, hogy 1-2 óra alatt megvan (előző nap negyed órára tettem ezt a munkát), erre 7 óra elteltével sikerült mindennel elkészülni, úgy hogy kínkeservesen kiírtottam a bugokat, de a kód cserébe úgy néz ki, mint egy rakás szar. Holnap pedig nem a további feature-ök fejlesztésével kezdem a napot, neeem, hanem ennek a kódnak a csinosításával, mert bent hagytam a melót...

Megtanulhatunk tehát egyből két leckét is:
1. A munkát akkor is vidd haza, ha úgy gondolod, hogy nem fogsz otthon kódolni. Ha kell töltsd fel ftp-re, rakd fel pendrive-ra, küldd el magadnak e-mailben, bármi, de a munka MINDIG legyen elérhető!

Verziókövetővel tessék megbarátkozni! Én a TortoiseHG-t használom. Hogy miért? Mert ezt ismerem. :D Viccet félretéve, szerintem jó kis program és megkönnyíti a munkát, még ha a setupolása elsőre körülményesnek is hathat. MEGTÉRÜL! Higyjétek el!

2. Még ha prototípust is fejlesztünk, törekedjünk a tiszta kódra. Szedjünk szét mindent a lehető legkisebb modulokra, függvényekre. Használjunk mindenhol konstansokat, ahol csak lehet, és kommentezzünk ezerrel. 
Én nagyon szeretem az objektumorientált tervezést és programozást és szinte mindent modulokra, külön unitokra, osztályokra szedek, amit csak lehet, de így is beleesek abba, hogy a nagy prototypingolásban (szép szó) úgy írok meg egy 50 soros eljárást, hogy azt később akár 3-4 függvényre szétszedem és máshol is használom ezeket a részleteket. Ehelyett, mivel gyorsabbnak érzem elsőre, ennek az 50 sorosnak a részleteit ollózom ide-oda, ha máshol is szükség van rá. Ennek az szarnak egésznek az lesz a vége, hogy az az idő, amit erre rászántam megduplázódik, sőt, megtriplázódik, mikor javításra vagy refactoringra kerül sor, mert ugyanaz a kódrészlet más helyeken is megtalálható lesz és mire kipucoljátok a kódot, ott hagytok, hogy bárcsak el se kezdtétek volna.

Haladjunk tovább!

Próbáltatok már úgy fejleszteni, hogy nektek mondjuk Win7 van a gépen és 24"-os monitoron dolgoztok, egyik társatoknak Linuxa van laptopon, a másiknak pedig asztali gép alaplapi videókártya és Win7?
Mi ebben az érdekes? 


Az egyik a méretezés:

Engem mindig átver a nagy monitor és az hogy szabadon csinálhatok akármilyen méretű editorokat hetvennyolc felugró ablakkal, külön szerkesztő modulokkal, stb. mert ELFÉR. Mikor kész vagy jó pár nap után a munkával és mondjuk egy pályaszerkesztő vázát odaadod a kollégának, aki használni fogja, az felrakja a laptopjára, ami max 1360x768 -as, abnormális méretet tud. A programot elindítva az természetesen nem fér ki neki és minden felugró újabb ablak elveszik az éterben.

A másik a plugin, ami esetünkben OGL vagy/és DX.
Amikor egyik kolléga gépe csak OGL-t szeret, a másik pedig csak DX-et, hát az fantasztikus. A legjobb mikor olyannál derül ki (pont a mai nap), hogy az asztali gépen, ahol alaplapi gpu van, ami nem is a grafikus megjelenítés, hanem a PÁLYAMENTÉS ?!

Jó, erre lehet azt mondani, hogy miért használok még mindig Delphi-t és Andorra2D-t, mikor ez az OGL/DX hiba egyértelműen a fejlesztői eszközök miatt van, vagyis leginkább a grafikus könyvtártól.
Szándékomban áll minél gyorsabban HTML5-re áttérni, főleg hogy a cég leginkább böngészőkre fejleszt.

Igy a harmadik leckénk mára:
3. Pályaszerkesztő és/vagy játékkliens fejlesztésének kezdetekor, ha tudjátok, hogy lesz kolléga, aki használni fogja a programot, kérdezzétek meg, hogy milyen gépen, és milyen oprendszer alatt fogja használni a cumót, különben hasonló csapdába eshettek, mint én.

Mivel még nem írtam soha hálózati játékot, és a játékaim sem használtak még nagyon netes adatbázist, ezért hát természetesen az első "hivatalos" játékomnak egyből ilyennek kell lennie a THX-nél. Sájsze. :D
Szerencsére azért SQL-t meg helyi adatbázisokat már használtam, de hát gyorsan kiderült, hogy nem ártana tudni a PHP/JavaScript/HTML5/Json/CSS csoportot. Amint lesz két szusszanásnyi időm, el is kezdem a HTML5-öt, mert eszméletlen, hogy miket lehet már megcsinálni egyszerű browserben...

Erről viszont majd a következő postban fogok részleteket írni, valamint könyvbemutató is lesz, hogy milyen programozással kapcsolatos könyveket sikerült beszerezni karácsonykor potom összegekért. ;)



3 megjegyzés:

  1. hoppácska, felvettek a THX-hez? Megérte akkor jóra megcsinálnod azt a protojátékot

    VálaszTörlés
  2. Igen, de szerintem bennmaradnom sokkal nehezebb lesz, az az érzésem ...

    VálaszTörlés
  3. fenét, hidd el, mindig bekerülni a legnehezebb

    VálaszTörlés