Renkamės programavimo kalbą
Norint sukurti žaidimą, reikia mokėti bent kokią nors vieną programavimo kalbą. Jų yra daugybė, todėl kuriant pirmą savo žaidimą gali iškilti klausimų kokią kalbą verta būtų pasirinkti. Atsakymas į šį klausimą nėra vienareikšmis – viskas priklauso, kokį žaidimą norima sukurti. Žinoma, tai nereiškia, kad kuriant kiekvieną žaidimą verta ieškoti vis kitos programavimo kalbos. Iš tiesų beveik su bet kokia programavimo kalba galima sukurti norimą žaidimą, bet kiekviena kalba dažniausiai būna orientuota į tam tikrą uždavinių grupę, todėl su vienomis kalbomis norima programa gali būti parašoma greičiau, o su kitomis – lėčiau (kitaip tariant – tie patys uždaviniai naudojant skirtingas programavimo priemones gali būti išspręsti greičiau arba lėčiau).
Programos rašymo greitis, žinoma, yra labai svarbus, tačiau nemažiau svarbus dalykas besirenkant programavimo kalbą yra jos panaudojimas – ar ji pateisintų keliamų norimų gauti rezultatų lūkesčius (pvz. ar su pasirinkta programavimo kalba galima sukurti kelių kilobaitų žaidimą?). Šis klausimas yra iš tiesų labai „suktas“, nes variantų yra daugybė, todėl į jį galima atsakyti tik turint tikros programavimo patirties. O jei jos nėra? Tuomet belieka eksperimentuoti. Taip, tai gali skambėti labai žiauriai pradedančiajam (juk žaidimas turi būti kuo greičiau sukurtas), tačiau mokymasis programuoti ir dažnai pats programavimas – tai ne kas kita kaip krūva eksperimentų savo mintims, idėjoms išreikšti, kurie užrašomi tam tikromis tekstinėmis komandomis. Dėl šios priežasties priklausomai nuo matomų rezultatų verta „peršokti“ nuo vienos programavimo kalbos prie kitos. Visgi, labai daug taip „šokinėti“ nereikėtų – kažin ar bus tuomet išvis kokių nors pageidaujamų rezultatų…
Dažniausiai pradedantys programuoti bijo „peršokti“ nuo vienos kalbos prie kitos, nes jie galvoja, kad reiktų iš naujo vėl viską mokytis. Iš dalies tokia baimė yra pagrįsta. Iš dalies – ne. Dauguma kalbų naudoja angliškas komandas, kurios sutampa su kitose kalbose naudojamomis komandomis. Todėl mokantis naują kalbą dažniausiai reikia išmokti tik sintaksės skirtumus tarp jų.
Besirenkant programavimo kalbą verta pasiskaityti internete esančius apie ją straipsnius. Verta žvilgtelėti tiek į Wikipedia ar panašaus pobūdžio portalus, tiek į visokius tinklaraščius (liaudiškai dar vadinamais blog’ais) . Tai padės susidaryti geresnį vaizdą apie vieną ar kitą programavimo kalbą. Reikės mažiau „šokinėti su eksperimentais“.
Jei norite sužinoti daugiau apie programavimo kalbos pasirinkimą, verta perskaityti Vytauto Šaltenio (dar žinomo internete kaip rtfb) parašytą straipsnį Programavimo kalbos arba kaip pasistatyti nuosavą Babelio bokštą.
Kokių žinių dar reikės?
Priklausomai nuo programuojamo uždavinio gali reikėti ir kitų dalykų žinių. Pavyzdžiui: jei norite žaidime padaryti taip, kad automobiliai realistiškai vienas į kitą atsitrenktų, reikės tam tikrų fizikos žinių. Taip yra todėl, kad programavime norint ką nors padaryti veikiančio, reikia suprasti kaip tai veikia.
Dauguma žmonių, nemokančių programuoti, galvoja, kad programavimas yra LABAI SUDËTINGAS dalykas – reikia labai daug žinoti įvairių programavimo komandų ir turėti kitokių žinių norint parašyti norimą programą, žaidimą. Bet tiesa iš tiesų yra šiek tiek kitokia. Dauguma programuotojų atmintinai labai gerai žino gal tik kokių 10 dalykų. Apie visus kitus, kai prireikia informacijos, kaip jais pasinaudoti, jos ieškoma žinyne, kokioje nors knygoje arba kažkur internete. Vadinasi, pats programavimas iš esmės yra ne kas kita kaip tų dešimties komandų kaitaliojimas vietomis norint gauti norimą rezultatą! Visa kita – tai sugebėjimas rasti ir pritaikyti reikalingą informaciją konkrečiam uždaviniui spręsti. Šis sugebėjimas tikrai nėra įgimtas. Jį gali įgyti kiekvienas. Tereikia, iškilus problemoms, nepasiduoti ir siekti norimų rezultatų.
1 dalykas, kurį vertą žinoti: sintaksė
Kad ir koks nuobodus dalykas tai būtų, visgi nuo to ir reikėtų pradėti besimokant naują programavimo kalbą. Šio dalyko nežinojimas užkerta visas galimybes toliau kažką norimo padaryti.
Nors programavimo kalbų yra daugybė, tačiau daugumos jų sintaksė yra panaši. Tai gerai tuo, kad nebūtina mokytis visas pasaulyje esančias programavimo kalbas, todėl užtenka mokėti kelias, kad galėtum kažką daryti ir su kitomis. Dėl šios priežasties taip pat dažniausiai įmanoma iš vienos kalbos į kitą perkelti didžiulius programos kodus (o tai savo ruožtu gali labai sutaupyti programavimo laiką).
Vienose programavimo kalbose yra labai svarbu ar rašoma didžiosiomis raidėmis, ar mažosiomis. Kitose – tai visiškai nesvarbu. Pavyzdžiui, C++ kalboje komandos printf(‘kazkas’), printF(‘kazkas’), PrintF(‘kazkas’) duos skirtingus rezultatus, o FreeBasic kalboje tarp šių komandų nebus jokio skirtumo. Pradedančiuosius toks C++ elgesys labai dažnai erzina, nes tarp daugybę sunkiai suprantamų kodo eilučių reikia ieškoti ne vien loginių klaidų, bet ir tokių sintaksės. Dėl šios priežasties dirbant prie savo pirmo žaidimo verta geriau rinktis kokią nors programavimo kalbą, kuriai raidžių dydžiai nėra svarbūs ir skirtingos komandos užrašytos skirtingo dydžio raidėmis gražina tuos pačius rezultatus.
Kiekvienoje programavimo kalboje skirtingos komandos kaip nors atskiriamos. Dažniausiai naudojami du atskyrimo būdai:[li]komandos pradedamos iš naujos eilutės (JavaScript, FreeBasic, DarkBasic, Logo…);[/li][li]komandos atskiriamos kabliataškiais (C++, PHP, JavaScript, C#…).[/li]Sužinoti, kaip galima atskirti komandas, galima žvilgtelėjus į programavimo kalbos žinyną, perskaičius kokią nors knygą arba tiesiog žvilgtelėjus į kokį nors internete ta kalba parašytos programos kodo fragmentą (pagal tai, kuo baigiasi kiekviena eilutė, galima spręsti apie tai, kaip atskiriamos komandos).
Žvilgtelėjus į aukščiau pateiktus pavyzdžius, galima pastebėti, kad skiriasi ne tik kaip baigiasi eilutės, bet ir dar kažkokiu papildomu tekstu, kuris reikalingas, norint parašyti bazinę programą. Tai priklauso nuo programavimo kalbos tipo. Dažniausiai sutinkami šie tipai:[li]komandinė kalba (Windows BAT, Rexx, DarkBasic…), kurioje galima iškart rašyti komandas be jokio papildomo teksto;[/li][li]funkcinė (C, C++, Visual Basic…), kurioje komandos rašomos tam tikroje funkcijoje arba procedūroje;[/li][li]objektinė (Java, C#, VB.NET…), kurioje komandos rašomos tam tikroje klasėje;[/li][li]struktūrinė (Pascal, ALGOL…), kurioje komandos rašomos tam tikroje struktūroje.[/li][li]sąrašinė (Common Lisp, Python…), kurioje komandos rašomos sąrašais (iš pirmo žvilgsnio atrodo labai panašu į komandinį tipą).[/li]Kai kurios programavimo kalbos turi kelių prieš tai išvardintų tipų savybių.
Kiekvienoje programavimo kalboje savo programose galima palikti kokių nors komentarų, kurie padėtų lengviau suprasti lengviau, kas gero tame programos kode parašyta. Komentarai yra matomi tik tiems, kurie žiūri į programos kodus. Skirtingose kalbose jie gali būti rašomi vis kitaip, tačiau dažniausiai komentarams žymėti yra naudojamos tam tikros komandos arba tam tikra simbolių seka (dažniausiai tai du pasvirę kairėn brūkšniai eilutės pradžioje).
Daugumoje programavimo kalbų yra komandų, tarp kurių rašomos kitos komandos (pvz. komandos žyminčios procedūros pradžią ir pabaigą). Kai kuriose kalbose kitos komandos tiesiog rašomos tarp motininių komandų, pradedant kiekvieną vis iš naujos eilutės (pvz. Visual Basic…). Kitose jos rašomos specialiose struktūrose (pvz. Pascal…), įsiterpusių tarp dviejų komandų. Dar kitose tarp dviejų simbolių, įsiterpusių tarp dviejų komandų (C++, Java…).
Dar vienas svarbus dalykas – tai komandos ir jos parametrų užrašymo stilius. Skirtingos programavimo kalbose stiliai šiek tiek dažniausiai skiriasi, tačiau beveik visada pirmiausia yra rašoma komanda, o jei reikia, šalia jos ir reikalingi parametrai. Parametrai nuo komandos dažniausiai atskiriami tarpu arba kokiais nors skliausteliais. Tarpusavyje parametrai dažniausiai atskiriami arba tarpais arba kableliais. Dažniausiai visi parametrai rašomi taip kokie jie yra, tačiau būna viena išimtis – tekstai. Daugumoje programavimo kalbų jie rašomi tarp dvigubų arba viengubų kabučių.
Paskutinis dalykas, kurį būtų verta žinoti, kalbant apie pasirinktos programavimo kalbos sintaksę, greičiausiai, būtų loginės ir matematinės operacijos. Dauguma programavimo kalbų naudoja labai panašią sintaksę, todėl mokytis tenka mažai mokant bent vieną kalbą.
Prieš tai buvusi dalis:
Kita dalis: programavimo pagrindai (2 dalis)
39 Komentarai
§haDe
Sakyčiau pirmą pradėt su Flash, nes ten greitai galima išmokti.
TYCOONC
paprasciausia yra ismokt pascali, tada pereit prie delphi. o jei lb rimtaj norit – prie C++. cia nuo reikalo priklauso.pvz hl2 buvo sukurtas an C++, ir neblogas game gavosi, a? ;):P
auris
(u) Tai C++ ir buvo pagrinde sukurtas žaidimams, todėl dauguma garsių žaidimų yra sukurta su šia kalba.
Aš asmeniškai prieš porą savaičių pradėjau mokytis su Visual Basic, ji visai nesudėtinga, bei žaidimus irgi galima kurt (smart)
g0tic
as kaip ir dauguma pradejau progamuoti nuo paskalio, poto perejau prie c/c++. na man asmeniskai c++ patogiau ir maloniau dirbti nei su paskaliu, tik biski nervina del tu didziuju mazuju raidziu 🙂
vwgolf3
norit sukurt kaska i travian koke programa reiktu naudot?
auris
Gali bandyt su PHP
Eisenheim
Siaip su sintakse cia teisingai buvo pasakyta, mane is pradziu irgi gasdindavo vien pagalvojus apie tai, kiek ivairiu komandu reiks ismokt. Is tikruju viskas tikrai yra zymiai paprasciau. Svarbiausia yra suprasti kaip visa tai veikia ir kaip pats kompiuteris supranta jusu komandas. Tuoment jau ivairius metodus ir be knygos galesit parasyt. Bent man tai patogiausia kalba yra Java, aisku rimti programeriai zaidimuose kiek teko girdet, naudoja pagrinde c++, bet man Java tikrai paprastesne kalba pasirode. Ir irankiai kurimo, tokie kaip „Netbeans“ labai palengvina programavimo darba, net klaidas kai kurias istaiso 😉 Aisku nebandziau programint su Visual c++, bet siaip universiteto propaguojama c++ builder nemazai nervu ateme 😀
Invisible
Man pasakyk kodėl PERL priskirta prie labai sudėtingų? argumentuok 🙂 Noriu pasiginčyt
Dark_Meiun
na seip jei darai c++ kaip funkcines kalbos pavyzdi tai bent jau kodo fragmenta paimk ish funkcinio porgamavimo ne klasiu, chia tik seip pastebejimas, yra dar pora niuansu bet straipsnis gan geras, norintiems pradet
Invisible
Nemaišykit funkcinio programavimo su procedūrinio. Straipsnyje buvo procedūrinio programavimo pavyzdys. Čia irgi pastebėjimo papildymas 🙂
Mek
auris: c++ nebuvo sukurta specialiai žaidimams… bet kad žaidimuose dažniausiai ji dabar sutinkama tai yra faktas – bet tai labiau dėl susiglosčiusių istorinių priežaščių… 🙂
vwgolf3: su bet kuria kalba, prie kurios pirmame paveikslėlyje „Tinklalapiams“ stulpelyje yra pliusiukas, gali kurti Traviano kloną 🙂
Invisible: kadangi PHP priskyriau prie vidutinių kalbų, o Perl man dėl savo kintamųjų sistemose bei kai kurių advanced gudrybių (pvz. kaip sakinys push @scores, $_ foreach 32, 45, 16, 5;) atrodo sudėtingesnė… nors iki c++ lygio jai „šiek tiek“ trūksta… Na čia tokia subjektyvi mano nuomonė 🙂
Dark_Meiun ir Invisible: na nevisai tą aš norėjau tuo pavyzdžiu pasakyt (tiesiog, kad kai kuriose programavimo kalbose yra tam tikros „starto“ funkcijos)… bet šiaip jūs teisūs, nebuvo čia funkcinio programavimo pavyzdžio; Rodyti visokius LISP ir pan. kalbas aš šį kartą nesiryžau – per mažai apie jas nutuokiu.
padekman
as kolkas naudoju flash ir man tai patinka , ja patarciau visiem pradedantiesiem
DEATHANGEL666
Asembler kalba labiau tinka mikroprocesoriu ar mikrovaldikliu kurimui su ja zaidimu neprikursi, moku sios kalbos pradmenis ir galiu pasakyti kad cia patas auksciausias lygis programavimo.
edgax
Na pats pradėjau su LOGO ir visiems ja patariu. Ji man kaip zaidimas :D. Labai lengva, galima zaidimuka pakurti.
kodyro
nz man tj lengviausia php atrodo 😀 nes pats moku
M4nTox
As Windows BAT naudoju ir moku(!) Nes labai lengva
Millenium
tai vadinama: low level programming
iso
FreePascal’is yra lengviausias ismokti. Tada pereini ant delphi, kad galetum jau kurt objektinius uzdavinius (windows langus). is esmes jie vienodi, tik freepascalis and dos lango, o delphis ant windows programu. tada jau soki ant sudetingesniu. dabar galvoju kur pasukt: C++/C# ar java…
iso
The-Godfather
O kokią programą pasiūlysit pradedant mokytis kuriti tinklapius(be programos)? Nes PHP man atrodo per sudėtinga… 🙁
Dar aišku yra HTML kalba, bet ar ji lengvesnė? + kur teksto rast apie tinklapių kūrimą nuo „basic“ lygio, gali būti ir angliškai. Ačiū