Tech, szoftvertervezés és programozás

Szoftverfejlesztés, Shaderprogramozás, DirectX

  • A betűméret növelése
  • Alapértelmezett betűméret
  • A betűméret csökkentése
Címlap Játékfejlesztés Libra balance - hogyan készült?

Libra balance - hogyan készült?

E-mail Nyomtatás PDF
Olvasóink értékelése: / 0
ElégtelenKitűnő 
Bevezetőként néhány szót ejtenék az Apple-, illetve az AppStore-ról is, mivel így kerek a történet, másrészt egyeseket érdekelhet a téma.
 
Libra balance iPhone gameTavaly hallottam először az Apple legújabb üzleti megoldásáról, az AppStore-ról, amely a független fejlesztők Mekkájának tűnt; az Apple részéről ez egy nagyon ügyes húzás: gyakorlatilag felkínálja a terjesztési csatornáit az indie-fejlesztők számára, és így mindenki jól jár.
A fejlesztők egy egy többmilliós, folyamatosan bővülő vevőtábort kapnak minimális befektetéssel (a minimális szó persze relatív), az Apple pedig olyan tartalmat biztosít az iPhone / iPod Touch felhasználók számára, amelyről más gyártók csak álmodoznak. (Jelenleg több, mint 100.000 alkalmazás található az AppStore-ban, és a letöltések száma meghaladta az egymilliárdot!)

Ezt a szolgáltatást egy szerénynek mondható, 100$-os összeg ellenében kapod - ez az éves fejlesztői licenc díja.
Persze azért ennyire nem rózsaszínű a helyzet, de erről is szó lesz a továbbiakban.

Kis kutakodás után úgy döntöttem, hogy egy ilyen lehetőséget nem szabad elszalasztani. Belevágtam a bizniszbe, aztán pár röpke hónap után méltóztattak elfogadni a pénzemet: hivatalosan is "iPhone App Developer" lettem - legalábbis egy évre biztosan.
(Megj.: manapság állítólag egy hét alatt megvan a licenc.)

Ezt követően sem tudtam 100%-ban a tényleges fejlesztésre összpontosítani, mivel különböző apróságokat kellett tisztázni, online form-okat kitölteni, adózással kapcsolatos levelezéseket lefolytatni, stb.
Mindezt érdemes idejekorán elkezdeni és lezárni. Az átfutás akár több hónapot is igénybe vehet, és ameddig ez nincs rendben, addig az alkalmazásod nem kerülhet be az iTunes-ba (akkor sem, ha sikeresen átment a review-n), vagy az Államokban *és itthon is* adóznod kell a bevételek után.
Szóval nem mindegy.

A kezdéshez kellett egy Mac és egy iPod Touch vagy iPhone. Nem olcsó mulatság, de ha az ember ügyes, lényegesen olcsóbban is hozzá lehet jutni a kütyükhöz.
Ezután következett az új környezet megismerése. Mindig is PC-m volt (a ZX Spectrum után, persze), de ennek ellenére - vagy épp emiatt ;-) - könnyű volt mac-szokni és mac-szeretni. (Elnézést!)
Az Obj-C-t már nehezebb volt megemészteni, a szintaxisa nem hasonlít semmilyen általam kedvelt prog-nyelvére. Őszintén: nem kedveltem meg különösebben, ezért csak akkor használom, ha nincs más opció.
Szerencsére elég ügyesen összeházasították a C++-szal, amit én piszkosul ki is használok.
Természetesen eleinte intenzíven bújtam a fejlesztői blog-okat, dev fórumokat, a dokumentációt - erre számítson mindenki, még akkor is, ha amúgy tapasztalt fejlesztőnek tartja magát. Az SDK folyamatosan bővül, javul, egyre több szolgáltatást nyújt, és emiatt folyamatosan követni kell a fejleményeket.

Miután már kezdtem kiismerni a (fejlesztő)környezetet és az Obj-C-t, belevágtam a prototípus gyártásba.
Az ötletadó egy egyszerű fizikai demó volt. Némi ötletelés meg whiteboard-os agyalás után megszületett a Libra balance ötlete: egy egyensúlyozós játék, amelyben az a lényeg, hogy golyókat tereljünk egy lyukba.
A grafikai és a fizikai motor rendelkezésemre állt egy előző project-ből. :-/
Már csak egy gond volt, amit meg kellett oldani: a laza, mégis létező PC/DirectX/Win-függőségektől megszabadulni úgy, hogy a motor átemelhető legyen és működjön iPhone-on.
Volt benne kihívás, de viszonylag könnyen ment az átlapátolás. Említettem, hogy az Obj-C és a C++ jól megférnek egymás mellett. Ezt a lehetőséget kiaknázva egy vékony, Obj-C réteget (nevezzük homlokzatnak) húztam a C++ framework fölé.
Néhány dolgot Obj-C-ben implementáltam az API-függőségek miatt (érintőképernyő-, illetve gyorsulásmérő kezelése), de a kód nagy része C++.

A prototípus működött, de a gamma csúnyácska volt. Ekkor fordultam Archenemy-hez, akinek köszönhetően a játékot profi köntösbe bújtattuk. Rendszeresen egyeztettünk, és végül megszületett az 1.0-ás verzió.
Aztán egy szép, nyári, hétvégi estén létrejött a kapcsolat az Apple szervereivel, és a bináris megkezdte hosszú útját valamelyik Cuppertino-i szerver felé. Ez is megvolt, utána jó érzéssel legurítottam egy sört az erkélyen. ;-)

10: Várakozás. Egy hét. Várakozás. Két hét. Várva várt e-mail, benne a rettegett szó: "Rejected", némi hivatalos körítéssel, plusz a visszautasítás okáról. Banális dolog, de végülis igazuk volt.
Elnéztem egy apróságot, amit két egérkattintással kijavítottam. Fél órán belül újra feltölt, majd goto 10.

Újabb két hét után megérkezik az e-mail. Dobpergés, hatásszünet: "Your application is ready for sale", sör az erkélyen.

Itt kell elkezdeni azon gondolkozni, hogy Jaguár vagy Subaru - ki-ki vérmérséklete szerint. Legalább kicsit örülsz. Aztán úgyis elmúlik, viszonylag gyorsan.

A fejlesztők naponta megnézhetik, hány példány kelt el az alkalmazásból. A kezdeti boom után elég gyorsan csökken a számláló, főleg ha nem reklámozod vagy nem reklámoznak mások (utóbbira ne számíts túlságosan).

Az a legjobb, ha az Apple maga ragadja ki a jelenleg 100.000+ app közül a gammádat. Ehhez valami egyénit kell alkotni, vagy fene tudja. (Néha olyan alkalmazásokat is reklámoznak, hogy a fal adja a másikat.)

Amikor ez az egész indult, sok iPhone játékra szakosodott weboldal született, akik néhány promo-kódért cserébe ingyen reklámozták az alkalmazást.
Ugyanezek az oldalak manapság 50$-tól pár ezer dolláros összegekig hajlandóak szóba állni velünk.
Ingyen nem kapsz szinte semmit sem manapság, úgyhogy érdemes feltölteni a paypal account-ot, ha belevágsz a bizniszbe. ;-)

Vissza a játékhoz, ha már postmortem cikk. Sokat tanultam a visszajelzésekből. Rá kellett jönnöm, hogy az emberek (főként amerikaiak, németek és japánok, a többi eladás elhanyagolható esetemben) többsége nem szereti, ha egy játék kicsit is nehéz.
Már a harmadik frissítésnél tartok, és sok új szolgáltatással bővült a játék ; az irányítást és a fizikai részt teljesen átszabtam. A kisfiam már fél kézzel tolja végig az első szinteket (2,5 múlt), de még mindig van, aki túl nehéznek találja a játékot. (Az 1.0 valóban nehéz volt, beismerem.)

Közben kiadtam a játék LITE verzióját - ez egy ingyenes változat, és azt a célt szolgálja, hogy az emberek kipróbálhassák a játékot, mielőtt fizetnének érte.

Ha más fizetés... A játék a megjelenése után szinte azonnal felkerült egy orosz warez oldalra, majd utána annak rendje és módja szerint elterjedt a hasonló profilú oldalakon. Nem mintha nem számítottam volna rá, de azért nem is örülök neki. Az újabb verziókat némileg "preparáltam", hogy ne okozzanak felhőtlen örömet a torrent-es rajongóimnak.   

Mindent egybevéve jó kis tapasztalat volt!
A nehézségek ellenére nagyon bánnám, ha kihagytam volna. Sokat lehet tanulni, és most elsősorban nem a programozás/tervezés részre gondolok.

Egy ilyen end-to-end project alatt megismerheted a játékfejlesztés menetét és buktatóit, és végre a magad ura lehetsz. Te vagy a designer, az architekt, a fejlesztő - esetleg modellező/grafikus is -, a tesztelő, a projectmenedzser, a PR-os, a sales-es, stb.
Gyakorlatilag egy emberként viszel végig egy project-et az ötlettől a piacra dobásig. (Szerintem egy ilyen tapasztalás/gyakorlat minden szoftverfejlesztőnek jól jönne...)
A végeredmény sikerességét egy élő környezetben mérheted fel, a visszajelzések pedig sokat segíthetnek abban, hogy valóban jó szoftvereket alkoss.

Üdv,
Carlos