Aktualisá Snake '97
Tokante e retonan di desaroyá un wega hopi popular
- Publiká
- Aktualisá
- (kreá )
- Skirbí pa
- Willem L. Middelkoop
- Tópikonan
- Windows · android · krea · kreatividat · desèño · wega · iOS · iPad · iPhone · programashon · retro · server · smartphone · snake · trabou
- Vershon humano di e artíkulo aki
- https://willem.com/pap/2018-02-21_aktualisa-snake-97/
- English
- Updating Snake '97
- Nederlands
- Snake '97 Updaten
- Deutsch
- Snake '97 aktualisieren
- Español
- Actualizando Snake '97
- Français
- Mettre à jour Snake '97
- Italiano
- Aggiornare Snake '97
- Português
- Atualizar o Snake '97
- Frysk
- Snake '97 fernije
- Lenganan
- Tradusí for di e original ingles pa un modelo di lenga den dos rònde (traduksion i korekshon) ku un glosario i un kontròl di ortografia; ainda no lesá pa un lektor ku Papiamentu komo lenga mamá.
Resumen
Algun aña pasá mi ruman a tira un serbes riba mi iPhone den un bar na Amsterdam. E pobre ding no a gusta e serbes hulandes tantu ku mi: e a muri. Miéntras mi tabata warda pa un telefòn nobo yega, mi a usa un telefòn bieu ku por a manda mensahe i yama so... i Snake! Asina e idea pa Snake '97 a nase, i e luna akí a yega e momentu pa aktualisá e wega hopi popular.
Teksto kompleto

Snake '97
Na prinsipio mi a programá e wega Snake na 2011 pa iOS. Mi a tuma mas o menos dos siman pa traha un prototipo ku tabata funshoná i ku tabata mira i sinti manera e klásiko di bèrdat di e añanan 90. Mi otro ruman a yuda mi ku e gráfikanan, ku e a tuma algun foto di serka bon skerpi di mi telefòn bieu (ta keda un idea straño ku tantu di boso tin un kopia di mi telefòn den boso saku).

Algun blog grandi a agarra e wega i esei a hasi Snake '97 sali den e top di e rankingnan rònt mundu. Awe e ta wegá den henter mundu, tradusí den 53 idioma i disponibel pa iOS, Android, Windows, ChromeOS i MacOS.

Nesesidat di aktualisashon
Na 2011 tabata tin solamente un iPhone, e iPhone 4. Komo desaroyador bo por a ignorá Android sin problema, i Windows Phone ainda no a wòrdu inventá. Bida tabata asina bunita ku un desaroyador (floho) por a deseá: solamente un medida di pantaya.

Bai pa awe: Apple ta vende 8 iPhone awor, i tin miyones i miyones di aparato Android, tur ku diferente medida di pantaya, prosesadó, memoria i version di software. Ta un subestimashon pa yama esaki un reto...
Pa mantené e plaser den Snake '97 mi tabatin ku aktualisá e motor di e wega te na su nùkleo mes. Di un manera of otro mi tabatin ku hasi e gráfikanan kuadra riba tur pantaya di mundu i tene kuenta ku e diferensianan den poder di prosesamentu i memoria....

Un motor di wega pa regí nan tur
E versionnan original di e wega tur tabatin nan mes motor. Un pa iOS, un pa Android, un pa Windows, etc. Ora mi a lansa Snake 2k (e variante di Snake II), mi a djis agregá un otro set di motor di wega. Total mi a programá 6 motor diferente di Snake den Objective-C (iOS), Java (Android) i C# (Windows). Pa tene e motornan aki ta funshoná riba aparato nobo ku diferente medida di pantaya, prosesadó i konfigurashon di memoria a bira kada bes mas difísil.
Ma e luna akí mi a tuma e desishon difísil, di bèrdat. Mi a konsebí di nobo i konstruí ainda un motor di Snake. Ma e un akí tabata pa reemplasá tur e anterior. E mester kore riba iOS, Android i Windows. Mi tabata kier un motor prepará pa futuro, pa kualkier pantaya i kualkier tipo di input (teklado, touch, pencil, gamepad, joystick, bo yama).

HTML5 Rocks
Web a alkansá teknologia di app nativo. Hopi API nobo a wòrdu introdusí ku ta pèrmití eksperensia interaktivo rikú riba hopi aparato diferente. Mi a puntra mi kuán difísil lo ta pa hasi Snake '97 funshoná riba teknologia di web. Tin un so manera pa sa, pesei mi a kuminsá.
Gráfika responsive
Primero mi a kuminsá traha e motor gráfiko basá riba HTML5 canvas i un sistema di eskalashon responsive ku mi a konsebí pa e version di Android di Snake '97. Basikamente e motor ta midi e medida di pantaya disponibel, e orientashon i e densidat di pixel. E ta tradusí outomátiko material di foto di alta resolushon pa kuadra ku bo pantaya spesífiko.

E motor gráfiko nobo ta tene kuenta te ku kosnan straño manera e notch di iPhone X. Tur esaki ta pasa den un frakshon di sekònde. Mi a konsebí e motor gráfiko nobo pa e reakshoná tambe riba kambio den medida di pantaya. Awor ta posibel pa wega e wega den portrait of landscape, den un windòw of full screen (of split screen si bo ta riba iPad).


Diferensia den poder di prosesamentu
Bo ta pensa ku un wega simpel no mester preokupá su mes ku poder di komputashon? Mal! Den un wega manera Snake e timing ta esensial. Hende ta wega e wega ku "memoria di múskulo", ora nan ta tap rápido riba e pantaya di touch sin pensa riba kada movementu individual.
E motor di e wega mester ta predisibel, e mester kore konstante. Ma mas ainda, e eksperensia mester ta e mes si bo ta riba un aparato Android bieu of riba un maskina di 6 kore manera e iPhone X.

Mi a usa e kamera di video di alta velosidat di e iPad Pro pa grabá wega di Snake den kámara lenta. Ku e video mi por a mira diferensia den velosidat, frame pa frame. Esaki a kondusí na un sistema interno di benchmarking (ku timer, kontando milisekònde) ku ta ahustá outomátiko e velosidat di e wega presis pa bo aparato spesífiko.
Kontrol: Touch, Teklado, Pencil, Gamepad
Hende ta kontrolá Snake ku e kontrolnan retro (e teklado di e telefòn bieu). E version original di iOS di e wega tabata usa UIButton transparente fiho ku mi a pone riba e fotonan di e telefòn bieu. Un kuminsamentu simpel i efektivo.
Ma pa mal e botonnan ku iOS ta ofresé tabatin algun lag (ku ta kousa retraso impredisibel den input) i ovio nan no tabata eskalá pa diferente medida di pantaya. Mi a skirbi koordinadanan nobo pa kada iPhone nobo ku Apple a entregá den e último añanan, literal, a mano.... no ta un trabou agradabel.
E motor di wega nobo ta usa un truku ku mi a desaroyá pa e version di Android: botonnan virtual posishoná dinámiko. Ku e informashon di eskalashon ku e motor gráfiko ta kalkulá, mi ta mantené dinámiko un matris di koordinada X i Y ku ta korespondé ku e botonnan virtual. Ora un hugadó tuka e pantaya, e motor ta kalkulá e boton mas serka ku matemátika: e teorema di Pitágoras.

Esaki ta funshoná manera un sonjo i e ta hasi henter e pantaya un boton. E wega ta hopi mas divertido pa wega asina. Aparte di touch, mi a agregá soporte pa teklado, pa hende sin pantaya di touch por wega Snake tambe.
Miéntras mi tabata traha riba e kontrolnan mi a deskubrí algu mas di bon di HTML5, e GamePad API. E ta pèrmití programadónan manera mi pa duna soporte na gamepad, joystick i otro aparato di input konektá via USB of Bluetooth.

Duna soporte na diferente gamepad ta un reto, pero ainda asina ta divertido. Mi a pèrdè un dia henter ta "testa" ... ta perfekshoná mi abilidatnan ku e gamepad formidabel di SNES i e analog stick bunita di e kontrolador DualShock. ("Dispensa, amor, mi ta traha aki...")

Internashonalisashon
Si bo ta lesa esaki, ta probabel ku bo ta komprondé ingles. Ma un parti grandi di e públiko di Snake '97 no ta papia ingles. Di fakto tin hugadónan di mas ku 30 idioma diferente. Di spañó te rus, di arabe te ebreo, di aleman te hapones. Bo yama e un, i Snake tin e.
Traha un interface ku ta depende di teksto ta un reto si bo ke sirbi henter mundu. Ikonnan tampoko no ta perfekto (un figura por tin un sentido diferente). Komo konsebidó di UX bo mester pensa riba konseptonan ku ta wòrdu usá hopi rònt mundu. Pa Snake mi a usa ikonnan di un relòshi, speedometer, speaker i un trofeo. E ikonnan aki ta komun rònt mundu i nan a wòrdu skohé presis pa e razon aki.

E deskripshon di e app ta konsistí di teksto ku mi a laga un servisio profeshonal di traduksion tradusí. Algun otro publikadónan ta konfia riba Google Translate, pero mi sa ku esei ta duna resultado lamentabel.
Ranking mundial
Den e añanan 90 bo tabata gana bon rèspekt si bo a logra un bon score den Snake. Den e versionnan original di Snake '97 bo tabatin solamente bo mes highscore pa kibra, i riba iOS bo por a sube bo score na GameCenter.
Pa e version nobo mi tabata kier un alkanse mas global, i mi a introdusí "ranking mundial". Ta e leaderboard integrá nobo ku ta klasifiká bo wega na e momentu mes, kompará score di hende for di henter mundu. Tin tres ranking: di tur tempu, 24 ora i e último ora.

E highscorenan ta wòrdu prosesá dor di un server Intel XEON inkreíbel di 48 kore ku un montòn di memoria. E ta kore Debian GNU/Linux, MariaDB, NGINX i NodeJS. Durante ora di pik e ta maneha mas ku 10 score di wega pa sekònde. E konfigurashon di e server ta meresé un artíkulo di blog apart ku mi lo skirbi mas lat, pesei keda wak e blog akí si big data ta bo kos.

Download awor
Tin solamente un manera pa sa si mi trabou tabata bon: purba esaki bo mes.
Por fabor laga mi sa si bo topa ku bug, bo por haña mi informashon di kontakto aki.
