Ang panahon ng pagsubok sa aking unang trabaho ay natapos 3 taon na ang nakakaraan, ngunit ngayon lamang ako nakahanap ng oras upang magsulat ng isang artikulo. Isang taon akong gumugol sa iba't ibang departamento sa aking unibersidad: sa aking unang semestre, nag-aral ako ng pamamahala, at sa aking ikalawang semestre, lumipat ako sa software engineering. Sana turuan nila ako kung paano magprogram, pero nagkamali ako. Kaya, nakolekta ko ang mga materyales at nagpasya na matutunan ang lahat sa aking sarili. Ang tanging dahilan kung bakit ako nagpapasalamat sa aking guro ay dahil inirekomenda niya na magsimula ako sa ebook ni Stephen Pratt na "The C Programming Language". Ito ay tunay na isang magandang libro na may maraming praktikal na pagsasanay. Humigit-kumulang 2 buwan akong gumugol sa aklat, pagkatapos nito ay nakita ko ang online na kursong Java sa mga grupo ng isang kaibigan at kaya nagsimula ito.
Noong una, binalak kong maging isang developer ng Android, ngunit ang backend ay tila mas kawili-wili sa akin habang ako ay sumusulong sa aking pag-aaral. Siyanga pala, inabot ako ng 3 buwang pag-aaral bago ako umabot sa Level 20, pagkatapos ay nagpasya akong subukang maghanap ng trabaho. Ang unang order ng negosyo ay
lumipat sa ibang lungsoddahil ang sa akin ay walang anumang openings para sa isang junior Java developer. Nakahanap ako ng kumpanya, nag-apply, at nakatanggap ng test task, na binigyan ako ng isang linggo para tapusin. Kinailangan kong magsulat ng isang simpleng web application gamit ang Hibernate, Servlet/JSP at MySQL. Nakikita ang lahat ng mga terminong ito, alam ko lang na ang MySQL ay isang database. Nung una, sobrang disappointed ako. Nagpasya pa akong maghanap ng mga bakanteng trabaho sa ilang KFC, ngunit pagkatapos ay napagpasyahan kong kumuha ng crack sa gawaing pagsubok. Pagkatapos ng lahat, palagi akong makakakuha ng trabaho sa KFC. Buong linggo akong nagtrabaho nang walang tigil at nagawa kong tapusin ang pagsusulit. Isinumite ko ang aking solusyon, ngunit ito ay "hindi maganda", kaya binago ko ito ng 4 pang beses. Ang aking huling solusyon ay naging tama, ngunit ang mga posisyon ay napunan na at ang mga karagdagang aplikasyon ay hindi tatanggapin sa loob ng 3 buwan. Anong gagawin mo, di ba? Para sa susunod na 3 buwan, Natutunan ko ang HTML, CSS, JS, SQL at PHP. Bakit PHP? Kailangan ko ng wika ng server na tutugon sa mga kahilingan at iba pa. Noong panahong iyon, ang mga servlet at jsp ay tila masyadong kumplikado. Sa huli, gumawa ako ng isang ganap na web application na may kakila-kilabot na interface. Inilathala ko ang code sa GitHub para sa aking portfolio. Sa oras na ito, lumipas na ang 3 buwan at muling nakipag-ugnayan sa akin ang parehong kumpanya at inanyayahan ako sa isang panayam, na nagbibigay ng isa pang simpleng gawain upang subukan ang aking kaalaman sa SQL, na nagawa kong makumpleto sa loob ng ilang oras. Ang taong kausap ko tungkol sa trabaho ay nagpahiwatig na magtatanong sila tungkol sa mga algorithm at istruktura ng data — mga paksang hindi ko pa napag-uusapan. Sabi nga, may 15 days bago ang interview. Nakuha ko ito! Nakatulong sa akin ang aklat ni Robert Lafore na "Data Structures & Algorithms in Java". Hindi ko' wala akong oras para basahin at unawain ang lahat ng ito sa loob ng dalawang linggo, ngunit marami pa rin akong natutunan. At dumating ang araw ng panayam. Dumating ako sa takdang oras. Binati ako ng dalawang lalaki at nagsimula na ang interview. Ang sabihing ako ay nag-aalala ay isang ligaw na pagmamaliit. Nanginginig ang boses ko. Nagtanong sila tungkol sa lahat maliban sa mga algorithm at istruktura ng data. Nagtanong sila tungkol sa Spring, DI, IoC, Hibernate, kung paano gumagana ang JVM, kung paano gumagana ang garbage collector — hindi ko nasagot ang isa sa mga tanong na ito. Matagumpay kong nasagot ang mga tanong tungkol sa Java Core (mga koleksyon, eksepsiyon, OOP, atbp.). Habang nasa panayam pa, alam kong nabigo ako, ngunit nabigo pa rin ako na hindi makatanggap ng anumang puna. Sa halip, natukoy ko ang mga puwang sa aking kaalaman at nagsimulang masigasig na magtrabaho upang isara ang mga ito. At dumating ang araw ng panayam. Dumating ako sa takdang oras. Binati ako ng dalawang lalaki at nagsimula na ang interview. Ang sabihing ako ay nag-aalala ay isang ligaw na pagmamaliit. Nanginginig ang boses ko. Nagtanong sila tungkol sa lahat maliban sa mga algorithm at istruktura ng data. Nagtanong sila tungkol sa Spring, DI, IoC, Hibernate, kung paano gumagana ang JVM, kung paano gumagana ang garbage collector — hindi ko nasagot ang isa sa mga tanong na ito. Matagumpay kong nasagot ang mga tanong tungkol sa Java Core (mga koleksyon, eksepsiyon, OOP, atbp.). Habang nasa panayam pa, alam kong nabigo ako, ngunit nabigo pa rin ako na hindi makatanggap ng anumang puna. Sa halip, natukoy ko ang mga puwang sa aking kaalaman at nagsimulang masigasig na magtrabaho upang isara ang mga ito. At dumating ang araw ng panayam. Dumating ako sa takdang oras. Binati ako ng dalawang lalaki at nagsimula na ang interview. Ang sabihing ako ay nag-aalala ay isang ligaw na pagmamaliit. Nanginginig ang boses ko. Nagtanong sila tungkol sa lahat maliban sa mga algorithm at istruktura ng data. Nagtanong sila tungkol sa Spring, DI, IoC, Hibernate, kung paano gumagana ang JVM, kung paano gumagana ang garbage collector — hindi ko nasagot ang isa sa mga tanong na ito. Matagumpay kong nasagot ang mga tanong tungkol sa Java Core (mga koleksyon, eksepsiyon, OOP, atbp.). Habang nasa panayam pa, alam kong nabigo ako, ngunit nabigo pa rin ako na hindi makatanggap ng anumang puna. Sa halip, natukoy ko ang mga puwang sa aking kaalaman at nagsimulang masigasig na magtrabaho upang isara ang mga ito. Ang sabihing ako ay nag-aalala ay isang ligaw na pagmamaliit. Nanginginig ang boses ko. Nagtanong sila tungkol sa lahat maliban sa mga algorithm at istruktura ng data. Nagtanong sila tungkol sa Spring, DI, IoC, Hibernate, kung paano gumagana ang JVM, kung paano gumagana ang garbage collector — hindi ko nasagot ang isa sa mga tanong na ito. Matagumpay kong nasagot ang mga tanong tungkol sa Java Core (mga koleksyon, eksepsiyon, OOP, atbp.). Habang nasa panayam pa, alam kong nabigo ako, ngunit nabigo pa rin ako na hindi makatanggap ng anumang puna. Sa halip, natukoy ko ang mga puwang sa aking kaalaman at nagsimulang masigasig na magtrabaho upang isara ang mga ito. Ang sabihing ako ay nag-aalala ay isang ligaw na pagmamaliit. Nanginginig ang boses ko. Nagtanong sila tungkol sa lahat maliban sa mga algorithm at istruktura ng data. Nagtanong sila tungkol sa Spring, DI, IoC, Hibernate, kung paano gumagana ang JVM, kung paano gumagana ang garbage collector — hindi ko nasagot ang isa sa mga tanong na ito. Matagumpay kong nasagot ang mga tanong tungkol sa Java Core (mga koleksyon, eksepsiyon, OOP, atbp.). Habang nasa panayam pa, alam kong nabigo ako, ngunit nabigo pa rin ako na hindi makatanggap ng anumang puna. Sa halip, natukoy ko ang mga puwang sa aking kaalaman at nagsimulang masigasig na magtrabaho upang isara ang mga ito. Matagumpay kong nasagot ang mga tanong tungkol sa Java Core (mga koleksyon, eksepsiyon, OOP, atbp.). Habang nasa panayam pa, alam kong nabigo ako, ngunit nabigo pa rin ako na hindi makatanggap ng anumang puna. Sa halip, natukoy ko ang mga puwang sa aking kaalaman at nagsimulang masigasig na magtrabaho upang isara ang mga ito. Matagumpay kong nasagot ang mga tanong tungkol sa Java Core (mga koleksyon, eksepsiyon, OOP, atbp.). Habang nasa panayam pa, alam kong nabigo ako, ngunit nabigo pa rin ako na hindi makatanggap ng anumang puna. Sa halip, natukoy ko ang mga puwang sa aking kaalaman at nagsimulang masigasig na magtrabaho upang isara ang mga ito.
Nakahanap ako ng trabaho isang buwan pagkatapos ng aking nabigong interbyu. Oo nga pala, nahanap ko ang pagbubukas ng trabaho sa mga talakayan sa CodeGym (
CodeGym ay ang Russian-language na bersyon ng CodeGym — tala ng editor). Una, nagkaroon ng Skype interview sa isang recruiter (tumagal ito ng halos 2 oras). Nagtanong sila tungkol sa Java Core, pagkolekta ng basura (ngayon alam ko na kung paano ito gumagana), mga database, at mga istruktura ng data. Hiniling sa akin ng tagapanayam na ibahagi ang aking screen at magsulat ng calculator. Halos maiyak ako sa tuwa, dahil nakapagsulat ako ng calculator noong isang linggo lang. Tiwala sa aking sarili, sinimulan ko ang gawain. Ngunit kung dahil sa aking kaguluhan o para sa ibang dahilan, nakalimutan ko ang bahagi ng algorithm. Ibinahagi ang aking screen. Natatakot akong kumunsulta sa Google. Buti na lang at nasa akin ang aking cellphone, na nagligtas sa aking puwet. Kinabukasan, tumawag sila para sa isang in-person interview at makalipas ang ilang araw ay
nakatanggap ako ng alok. Ito ay hindi isang opisyal na posisyon. Ang aking tungkulin ay isang apprentice sa isang solong may-ari. Sumulat kami ng isang serbisyo para sa pagpaplano ng kaganapan, pagbebenta ng mga tiket, atbp. Naaalala ko ang aking unang araw ng trabaho. Ang aking boss ay tumagal ng 15 minuto upang ipaliwanag kung ano ang kailangang gawin. "Malinaw na ba ang lahat?" tanong niya. "Hmm, hindi naman. Puwede mo bang balikan ito ng isang beses?" tanong ko na may matinding pag-aalala. Ipinaliwanag muli ni boss ang lahat. "Maliwanag na ngayon?" "Oo, ngayon na." Actually, wala akong naintindihan. Ngunit natatakot akong humingi ng isa pang paliwanag. Sa tingin ko ay maiintindihan iyon ng sinumang may trabaho. Ang gawain ay bumagsak sa pag-port mula sa Thymeleaf patungo sa AngularJS. Sa kabutihang palad, nakakita ako ng isang piraso ng tapos na code at ginamit ito bilang isang halimbawa ng kung ano ang gagawin. Hindi ko maintindihan kung paano ito gumagana, ngunit natapos ko ang gawain. Kasunod na itinalaga sa akin ang mga gawaing direktang nauugnay sa backend. Pagkatapos lamang ng isang praktikal na karanasan sa Spring ay sinimulan kong maunawaan ang nabasa ko sa "Spring for Professionals". Nagtrabaho ako doon ng 8 buwan at pagkatapos ay lumipat sa ibang lungsod, kung saan mabilis akong nakahanap ng isang opisyal na trabaho, nagtrabaho ng 2 taon at binago ang aking titulo mula sa "junior" hanggang sa "mid-level" habang nasa daan. Pagkatapos ay hinarap ko ang katotohanan na ang aking trabaho ay naging nakagawian at hindi ako nagbigay ng kahit katiting na kasiyahan. Kaya nagpahinga ako. Upang pigilan ang aking mga daliri sa pag-atrophy sa panahon ng aking pahinga, nagpasya akong subukan ang aking kamay sa ibang lugar: pagbuo ng laro. Mas partikular, ang pagbuo ng laro sa mobile, pagkuha ng Android, dahil alam ko na ang Java. At iyon ang tatalakayin ko nang detalyado ngayon. Pagkatapos lamang ng isang praktikal na karanasan sa Spring ay sinimulan kong maunawaan ang nabasa ko sa "Spring for Professionals". Nagtrabaho ako doon ng 8 buwan at pagkatapos ay lumipat sa ibang lungsod, kung saan mabilis akong nakahanap ng isang opisyal na trabaho, nagtrabaho ng 2 taon at binago ang aking titulo mula sa "junior" hanggang sa "mid-level" habang nasa daan. Pagkatapos ay hinarap ko ang katotohanan na ang aking trabaho ay naging nakagawian at hindi ako nagbigay ng kahit katiting na kasiyahan. Kaya nagpahinga ako. Upang pigilan ang aking mga daliri sa pag-atrophy sa panahon ng aking pahinga, nagpasya akong subukan ang aking kamay sa ibang lugar: pagbuo ng laro. Mas partikular, ang pagbuo ng laro sa mobile, pagkuha ng Android, dahil alam ko na ang Java. At iyon ang tatalakayin ko nang detalyado ngayon. Pagkatapos lamang ng isang praktikal na karanasan sa Spring ay sinimulan kong maunawaan ang nabasa ko sa "Spring for Professionals". Nagtrabaho ako doon ng 8 buwan at pagkatapos ay lumipat sa ibang lungsod, kung saan mabilis akong nakahanap ng isang opisyal na trabaho, nagtrabaho ng 2 taon at binago ang aking titulo mula sa "junior" hanggang sa "mid-level" habang nasa daan. Pagkatapos ay hinarap ko ang katotohanan na ang aking trabaho ay naging nakagawian at hindi ako nagbigay ng kahit katiting na kasiyahan. Kaya nagpahinga ako. Upang pigilan ang aking mga daliri sa pag-atrophy sa panahon ng aking pahinga, nagpasya akong subukan ang aking kamay sa ibang lugar: pagbuo ng laro. Mas partikular, ang pagbuo ng laro sa mobile, pagkuha ng Android, dahil alam ko na ang Java. At iyon ang tatalakayin ko nang detalyado ngayon. kung saan mabilis akong nakahanap ng isang opisyal na trabaho, nagtrabaho ng 2 taon at binago ang aking titulo mula sa "junior" patungo sa "mid-level" habang nasa daan. Pagkatapos ay hinarap ko ang katotohanan na ang aking trabaho ay naging nakagawian at hindi ako nagbigay ng kahit katiting na kasiyahan. Kaya nagpahinga ako. Upang pigilan ang aking mga daliri sa pag-atrophy sa panahon ng aking pahinga, nagpasya akong subukan ang aking kamay sa ibang lugar: pagbuo ng laro. Mas partikular, ang pagbuo ng laro sa mobile, pagkuha ng Android, dahil alam ko na ang Java. At iyon ang tatalakayin ko nang detalyado ngayon. kung saan mabilis akong nakahanap ng isang opisyal na trabaho, nagtrabaho ng 2 taon at binago ang aking titulo mula sa "junior" patungo sa "mid-level" habang nasa daan. Pagkatapos ay hinarap ko ang katotohanan na ang aking trabaho ay naging nakagawian at hindi ako nagbigay ng kahit katiting na kasiyahan. Kaya nagpahinga ako. Upang pigilan ang aking mga daliri sa pag-atrophy sa panahon ng aking pahinga, nagpasya akong subukan ang aking kamay sa ibang lugar: pagbuo ng laro. Mas partikular, ang pagbuo ng laro sa mobile, pagkuha ng Android, dahil alam ko na ang Java. At iyon ang tatalakayin ko nang detalyado ngayon. Nagpasya akong subukan ang aking kamay sa ibang lugar: pagbuo ng laro. Mas partikular, ang pagbuo ng laro sa mobile, pagkuha ng Android, dahil alam ko na ang Java. At iyon ang tatalakayin ko nang detalyado ngayon. Nagpasya akong subukan ang aking kamay sa ibang lugar: pagbuo ng laro. Mas partikular, ang pagbuo ng laro sa mobile, pagkuha ng Android, dahil alam ko na ang Java. At iyon ang tatalakayin ko nang detalyado ngayon.
Ang team ko. Sa maikling pagkakasunud-sunod, nag-assemble ako ng maliit na team ng 4 na tao (kabilang ako): 2 developer, 1 game designer, at 1 sound engineer. Dahil walang sinuman sa koponan ang may karanasan sa pagbuo ng laro, at dahil limitado ang oras ng bakasyon ko, nagpasya kaming magpatupad ng isang simpleng proyekto na tiyak na magagawa naming tapusin. At kaya namin ginawa! Noong una, ang deadline ay Nobyembre 15, ngunit tulad ng alam mo, ang pagtatapos ng isang proyekto sa iskedyul ay mali lamang. Kaya, huli kaming natapos ng dalawang linggo. Ang aming teknolohiya stack ay binubuo ng Java 8 at libGDX.
Pag-unlad
Nagsimula ang pag-unlad noong ika-17 ng Oktubre. Sa kabuuan, gumugol kami ng 45 araw kung saan:
- Natutunan namin kung paano gamitin ang libGDX.
- Sumulat kami ng code.
- Gumawa kami ng mga graphics.
- Gumawa kami ng musika.
Maaaring magtanong ang sinumang nakakita ng laro, "Bakit ang tagal nito? Napakasimple ng laro." Oo, totoo iyon, at upang maging tumpak, ang bahagi ng pag-unlad (pagsusulat ng code) ay tumagal ng halos isang linggo at kalahati. Ang natitirang oras ay hinati sa pagitan ng:
- Mastering kung paano gamitin ang game engine.
- Pagguhit at muling pagguhit ng likhang sining.
- Pagsusulat ng musika.
- Naghahanap ng mga tunog sa https://freesound.org .
- Pagbabasa ng limpak-limpak na mga artikulo kung paano mag-promote ng mga laro.
Nagkaroon din kami ng mga sandali ng "downtime" sa iba't ibang dahilan: may nag-exam, may nagpa-make-up test, atbp. Tiyak na maaari naming iugnay ang isang linggo at kalahati o higit pa sa downtime. Ilang oras din ang ginugol sa "mga debate": ang mga bagong ideya tungkol sa kung ano ang idadagdag sa laro ay lumilitaw halos araw-araw, kaya't pinagtatalunan namin: "iyan ay kalabisan," "iyan ay hindi magkasya," atbp. Naglabas kami ng maraming mga ideya, halimbawa, pagdaragdag ng mga tumatakbong ipis na maaaring durugin para makakuha ng dagdag na puntos: sa aking palagay, ang isa sa pinakamahirap na bagay ay ang magpasya nang maaga kung ano ang gagawin sa laro at manatili sa plano nang hindi sinusubukang magdagdag ng "isa pa lang. " tampok. Ganyan naipon ang 45 araw na ito. Ang isang prototype ng laro ay handa na pagkatapos ng isang linggo at kalahati. Sa panahong ito, talagang wala kaming anumang mga graphics,
Ang laro ay napaka-simple sa isang teknikal na kahulugan. Hindi na namin kinailangan pang gumamit ng box2d (isang physics engine). Maaari naming hawakan ang mga banggaan at kalkulahin ang hypotenuse sa aming sarili. Ang pinaka-kagiliw-giliw na mga punto na aking i-highlight ay:
-
Sa una, ang lahat ng mga elemento ng laro ay random na nabuo. Sa madaling salita, inilalagay namin ang mga provider (ng mga black hole, gunting, ninja star, pencil lead, mga puso) sa isang array, nakakuha ng random na provider, nakakuha ng elementong may random na coordinate. Mabilis na naging malinaw na ang diskarteng ito ay "talagang hindi talaga maganda". Ang mga kaibigang kalahok sa pagsubok ay nagsabi sa amin ng parehong bagay, na nagrerekomenda ng paggamit ng mga template. Para sa mga kasangkot sa pagbuo ng laro, ito ay malamang na isang malinaw na solusyon. Ngunit dahil kami ay mga bagong dating sa larangan, ito ay napakapraktikal na payo para sa amin.
Kaya gumawa kami ng ilang mga template: isang lambak ng gunting; mga lead ng lapis — medyo cool na kolektahin ang mga ito nang napakabilis (whoosh, whoosh, whoosh gamit ang iyong daliri); at isa pang template na hindi ko alam kung ano ang tatawagin — sasabihin ko lang sa iyo kung ano ang pinangalanan namin sa klase sa aming code: StraightForwardPattern
.
Pinahusay ito ng mga template na ito, ngunit naging masyadong predictable ito kahit papaano. Kaya naman nagdagdag kami ng isa pa: isang random na template. Sa madaling salita, mayroon na kaming ilang "static" na template at isang random na isa (ipasok ang "perfectly balanced" meme dito).
-
Narito ang pangunahing problema na aming nakatagpo. Tinatawag ng LibGDX ang paraan ng pag-render (float delta) sa isang walang katapusang loop. Ito ay kung saan ang lahat ng mga elemento ay iginuhit. Ang linya ng lapis ay iginuhit tulad ng sumusunod: nakakakuha kami ng mga coordinate ng daliri at gumuhit ng texture doon. Kaya, kung inilipat namin ang aming daliri sa screen nang napakabilis, ang linya ay magkakaroon ng "mga puwang" dahil sa mga millisecond sa pagitan ng mga tawag sa render(delta) na paraan.
Ang solusyon ay medyo simple: naaalala namin ang mga huling coordinate kung saan iginuhit ang texture, kunin ang susunod na mga coordinate, at kung ang distansya sa pagitan ng mga ito ay higit sa X at ang daliri ay hindi pa nailalabas, pagkatapos ay pinupunan namin ang puwang. Noong una, naisip namin na maaaring hindi gumana ang opsyong ito — ang mga linya ay magiging angular. Ngunit ang aming mga takot ay walang batayan, ang lahat ay gumana tulad ng nararapat.
Tungkol sa laro
Ang gameplay ay hindi sinasabing natatangi, ngunit ito ay napakahusay at maaaring humihila ng mga user. Kinokontrol mo ang isang lapis, literal na gumuhit sa papel at umiiwas sa mga hadlang — gunting, ninja star, at black hole. Samantala, nauubos na ang iyong tingga ng lapis at kailangan mong kunin ang maliliit na lapis. Kung ang iyong lapis ay malapit nang matapos bago ka mangolekta ng isang maliit na lapis, maaari kang pumili ng isang piraso ng salamin. Sa loob ng ilang segundo, sa halip na ubusin ang tingga ng lapis, ito ay maibabalik, gayunpaman, sa parehong oras, ang mga kontrol ay naka-salamin — kung ang iyong daliri ay gumagalaw sa kaliwa, pagkatapos ay ang lapis ay gumuhit sa kanan. Maaari ka ring pumili ng isang puso na hahayaan kang tamaan ang isang balakid nang isang beses at manatiling buhay. Kung mas matagal mong igalaw ang lapis nang hindi inaangat ang iyong daliri, mas mataas ang iyong combo, na nangangahulugang mas mabilis kang makakaipon ng mga puntos.
Ang bilis ng laro ay unti-unting tumataas. Angry bird na lang ang kulang. Sa una, binalak naming pangalanan ang larong Karan Dash (ang transliterasyon ng salitang Ruso para sa lapis ay karandash — ha! get it?), ngunit nang maglaon ay nagbago ang aming isip at nanirahan sa Pencil Dash. Ginawa namin ito dahil ang kaaya-ayang punang ito ay mauunawaan lamang ng isang madlang nagsasalita ng Ruso. Inilabas namin ang laro ilang araw na ang nakalipas at ngayon ay pino-promote namin ito. Dito rin, walang sinuman sa koponan ang may karanasan. Nakuha namin ang lahat ng aming kaalaman tungkol sa promosyon ng laro mula sa iba't ibang artikulo. Nag-publish kami ng impormasyon tungkol sa laro sa iba't ibang mga website/forum nang libre. Kasama sa aming mga bayad na channel ang advertising sa 4pd, advertising sa isang blogger, ilang mga post sa mga pampublikong grupo sa VKontakte, at AdMob advertising. Sa pamamagitan ng paraan, ang post na ito ay bahagi din ng aming promosyon, kaya sa pahintulot mula sa administrasyon ng website, nagsasama ako ng isang link sa laro dito. Mahahanap mo ang laro sa Google Play
dito . Magpapasalamat ako kung i-install mo ito (marahil magustuhan mo ito!), at kung mag-iiwan ka ng rating, ipinapangako kong pangalanan mo ang isang bata! :)
GO TO FULL VERSION