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
banneris
bet asembleris tai ten isvis…
MX 36 PT 45
ir kaskas panasaus…
ProzacR
Nusisneki. C++ yra bendros paskirties kalba. Su ja kuria ir zaidimu ir kosminiu aparatu valdymo programas.
O nenoriu taves liudint del tavo VB mokslu bet Microsoft jau nebekuria Visual Basic, jis yra tokia pat atgyvena kaip kad Windows 98.
Dabar yra visual basic .NET bet jis skirtas tik interneto puslapiam kurti.
ProzacR
Mek nezinau pagal ka tu sudarinejei savo lentele „sudetingumas“, bet Perl ir Paskal tai aiskiai pakrikstyjai per daug sudetingomis. Ju abieju sudetingumas mazdaug is tos sereijos kai pas tave skiltyje „zemas“.
Scout
Stai kodel specializuojuos tik 3d animatoriaus srityje. Reikia tik pramokti naudotis jau suprogramuota programa 😀 (pvz maya arba 3dsmax).
Programavimas sucks
P.S. Nuostabus straipsnis
Mek
ProzacR, turbūt Microsoft Office nenaudoji, kad taip klaidingai teigi dėl VB… beto tas daiktas ir naujausiuose Autocaduose dar tėra naudojamas… 🙂
O apie VB.NET irgi nusišnekėjai, kad puslapiams kurti. Tai kalba kuri nieko C# savo taikymo galimybėmis nenusileidžia, o C# paskutiniu metu tampa vis populiaresnė langinių multiplatforminių programų kūrimo srityje (vis dažniau ją galima pamatyti kaip kalba kuria parašyti žaidimų redaktoriai… nors dar visgi gana kol kas retai taip būna…).
Dėl Perl mano atsakymas yra komentaruose. Dėl Pascal – asmeninė mano patirtis… tiesa paremta Borland Pascal 5.x versija… Pamenu, kai kartą reikėjo man kažkam parašyti programėlę su juo, kur reikėjo nuspręsti ar failas toks yra ar nėra. Kai pamačiau kaip tai padaroma su ta Pascal versija, pradėjau jos lengva kalba nebelaikyti (tiesa pasakius su C++ net kažkaip lengviau šį dalyką realizuot)… Žinoma, gali būti dabar pasikeitę viskas – juk programavimo kalbos kartais labai greitai evoliucionuoja… bet peržiūrėti patikrinti tokią krūvą kalbų, prieš rašant tokio tipo rašinį, tikrai labai ilgai užtruktų… O paieškos kažkokios panašios lentelės man buvo nesėkmingos. Todėl padariau ją tokią, kokią matai… gal ir nevisai teisingą…
gor
is kur zinai kad su C++ half life 2 buvo sukurtas?(s)
Everiz
čia galima netyčia nugirst ar pan, pvz aš šitai irgi žinojau 😛
O dėl programavimo tai, pradėkit nuo pascal (nes irgi reikia laiko kol viską įsisavini), tada pereikit prie c++ ar JAVA 🙂 arba galima išmokti PHP, HTML, JAVA jei linkstat prie internetinio programavimo 🙂
Wolfpack
Siulau eit zaist zaidimus o ne kurt nes ju ir taip pilna, kam reikalinga dar didesne kruva bugovu nesamoniu?
gor
O kaip variliukas kuriamas? kokiomis programomis as ne hakeris tai nezinau dar duomiuosi programavimu tiktai:-]
Mek
gor apie varikliukus bus kažkurioje kitoje dalyje 🙂
gor
aisku laukiu laukiu tada:-)
Eisenheim
Teisingai, kam darytis maista paciam, jei mcdonalds uz kampo 😀
Wolfpack
Nu jai tau zaidimai tokie pat givybiskai svarbus kaip maistas tai tinka sis paliginimas.
ProzacR
Mek ne nei autocad nei MS office nenaudoju.
O tai ka nori pasakyt kad jei mokesi VB tai geriau mokesi autocadu dirbt?
Tai gerai jei taip bet vistiek kaip savarankiska programavimo kalba VB yra mirus.
Del C# as niueko nesakiau, o ka tu, MEk, matei su VB.NET be intero puslapiu sukurta?
Del Perl ka tu pamijai komentaruose nieko nematau!?
O butent Pacal mokyklose vaikus moko tik del to kad ji yra lengva kalba.
Jei paskal kaip pagal tave butu tokio pat sudetingumo kaip Delphi tai visus mokytu Delphi nes tai zymiai patobulintas Pascal variantas.
Ir nusisneki kad kalbos keiciasi taip smarkiai kad is lengvos pasidarytu sunki. Jei pasikeicia tai kelios smulkmenos ir tai dazmiausiai papildymai, o ne pakeitimai.
ProzacR
Nes VISI siuolaikiniai garsus zaidimai kurti su C++.
Kai kurie senesni kaip Quake 1/2 ir CS1.6 kurti su C.
(!)
Mek
Na taip, tu teisus kaip savarankiška ji jau mirus (nors benaršydamas internete aptikau Gambas kalbą, kuri iš esmės ir yra VB tik linuxams -> ). Visgi VB yra labiausiai paplitusi tarp kalbų, kurios išplėčia programas. Vadinasi, jomis pasinaudojus galima pridėti į savo pasirinktas programas reikiamą funkcionalumą (vadinasi, galima sutaupyti laiko atliekant kai kuriuos uždavinius).
Nueik į SF.net svetainę ir atlik paiešką pagal raktinį žodį VB.NET. Nors visų nerasi variantų, tačiau pamatysi nemažai – kas leis susidaryti tikslesnę nuomonę apie šią kalbą. O jei užklydus į kokį CodeProject.com, galima rasti dar daugiau… Pats asmeniškai su ja esu parašęs , bei keleta mažų kitų programėlių.
Mek
11 komentaras nuo viršaus
Kiek teko man domėtis, ankščiau mokyklose buvo galima didesnė kalbų įvairovė, bet kadangi kažkokie politikai nusprendei, kad Pascal geriau, todėl ten ir Pascal. Tiesa, dar kažką girdėjau kad galima mokinti C++, bei Logo kalbų. Kai kurios mokyklos tai daro… bet dauguma ne – nes paprasčiausiai mokytojai tų kitų kalbų (išskyrus Pascal) dažnai nemoka ar nėra suinteresuoti kažką kito daryti.
Aš nesakau, kad ji sunkėja, gali būti kad lengvėja (pvz. kaip C#, vb.net su kiekviena nauja laida). Bet kai aš dirbau su Pascal susidarė man tokia nuomonė ir tiek. Dabar gali būti tai pasikeitę ir ta mano patirtis gali būti klaidinga. Šiaip ar taip subjektyvi čia mano nuomonė – neturėtum ją priimti už gryną pinigą. Juk dėl tos pačios nuomonės galima ginčytis, kodėl Flash prie labai lengvų kalbų ikišau nors ji nevisai tokia jau lengva… 🙂
daskinis
gal kas zinot kaip programuoti nes as bandau sukurti zaidima:)
PCargas
Pavyzdziui as niekada dar nesu programaves, bet labai noreciau, nuo ko man geriausiai butu pradeti, nuo kokios programis, is kur ta programa man siustis?