Hobby-kódolás

Hobby szinten szeretnék programozni, leginkább 2D (interaktív) animációt, képernyővédőt (aztán ahogy majd haladok esetleg valami nagyon alapszintű 2D játék - bár grafikában sem vagyok otthon, de valószínűleg vannak szabadon felhasználható grafikák is) vagy valami hasonlót. Tehát szinte abszolút nulláról kell induljak. Nem akarok ebbe a demoscene körbe beremerülni, tehát nem szeretném a kész munkát publikálni, csak hobby-ból, poénból, saját magam szórakoztatására írnék egy-két dolgot. Régebben érdeklődtem a 3D programozás iránt meg minden hasonló, de az akkor túl nagy falatnak bizonyult. Igazság szerint nyáron szeretném így elkezdeni a dolgokat. Milyen programozási nyelvet érdemes használni vagy van esetleg valami kész program vagy script az ilyesmire? Hol találok erre konkrét példaprogramokat (ha forráskód is van hozzá az még jobb)? Konkrét elképzeléseim sincsenek. Az alapoktól kezdeném aztán szép lassan felépíteném magamnak az egész dolgot. Tehát először csak egy mozgó négyzet vagy valami hasonló aztán több mozgó objektum, amik opcionálisan reagálhatnak például az egér mozgására stb.
Ki hogy kezdte el ezeket? Mennyire vagytok jártasak benne? (Mellesleg alapszintű Pascal és Delphi ismeretekkel rendelkezem, semmi C++, Assembly vagy hasonló. Bár a demoscene körökben úgy tudom, hogy az utóbbi használatos) Tényleg csak szórakozás szinten szeretném ezt "űzni". Érdekel a dolog, tudom időbe fog telni, amíg eljutok odáig.

Előre is köszi. :)

Hozzászólások

Szerintem, ha el akarsz kezdeni programozást tanulni, akkor ne ilyennel kezd. Nem tudom milyen szinten vagy, de első körben konzolos programokat: Fibonacci-számsor, prímszám kereső, stb. programokat próbálj írni.
Ha ezek mennek, akkor mondjuk az SDL-t próbáld ki.

++
Csak fokozatosan!
Kezdetnek konzolos programok, aztán ha az jól megy akkor valamilyen UI toolkit, lehetőleg olyan amivel később tovább lehet lépni a grafika/játékfejlesztés felé.
Szerintem ilyen célra a Qt a legjobb, C++-ban vagy Pythonban. Nagyon jó doksi van hozzá és rengeteg példaprogram (főleg ha C++-ban csinálod).

Ez a két nyelv tipikusan az, amikkel a középiskola után soha többé nem találkoztam.
Volt pár ismerős arc a mostani BME állásbörzén és én is szétnéztem. Az ott látottak alapján a C, C++, Java, C#, PHP, Python és Perl a népszerű, a látottak alapján kb. ilyen sorrendben.

Laikusként úgy vélem, hogy egyáltalán nem mindegy, hogy milyen paradigmával ismerkedik meg először az ember: gimnáziumban nekem az algoritmikus leírás után LOGÓt meg Pascalt tanítottak, és többek között ennek is tulajdonítom, hogy az objektum orientált szemlélet mint olyan ma 23 évesen változatlanul egy fura állatfaj számomra, és jellemzően nem használom ki a lehetőségeit. Persze ettől még lehet, hogy valaki képes ráérezni önállóan egy másik paradigmára, nekem nem sikerült.

int getRandomNumber() { return 4; }  // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű.  xkcd

Delphi az OOP. (Jó, nem tisztán). De majd mindjárt írok egy félszót a sokak által lesajnált Delphi vs C#/WinForms kapcsolatáról.

Egyébként meg először tanulja meg az ember a legalapvetőbb dolgokat (vezérlési szerkezetek, függvényhívások, alapvető algoritmusok), utána jöhet az OOP. Akihez ezeknek nem teljesen mindegy, hogy Pascal vagy Java, az még csak véletlenül se akarjon programozni. Soha. Semmilyen körülmények között.

----------------
Lvl86 Troll

+1024, csak fokozatosan.

Nyiss a binugzodon egy terminálablakot:

$python
>>>

máris kapsz egy python-parancsértelmezőt. Olvasd el a helpet, memorizálj interaktív üzemmódban is működő parancsokat. Írasd ki vele, hogy "helló világ" --> >>>print "hello vilag, Zolika vagyok xD"
Számológépnek is egész jól működik, csak ne felejtsd el az egész számokat is 1.00 és 2.00, stb. alakban megadni, ha például osztani akarsz, mert ellenkező esetben az eredménynek is csak az egészrészét számolja ki. A csillaggal tudsz szorozni, a perjellel pedig osztani. Hatványozást találd ki magad. Ha a pí pontos értékét akarod használni, akkor >>>import math után egy bármilyen műveletben a math.pi fogja jelenteni. Stb. Stb.

A kis Python konzolos kirándulás után máris írhatsz egyszerű Python-szkripteket. Rengeteg online tanulóanyag található, első körben:
http://pythontutorial.pergamen.hu/downloads/html/tut/

Ja meg ez még nagyon jó, igazából én ennek az átlapozásával kezdeném a helyedben (vigyázz, a link rögtön letölti a tömörített fájlt.)

van erősebb is, a jobbhorog, ami egy python forráskód, látszatra azt írja ki hogy "hello world", de a whitspacek miatt valójában azt írja "hi! i'm a virus"

nem ismerem annyira a python-t hogy ezt tényleg ki lehet-e használni, de amikor meghallottam hogy valójában egy whitespace leszármazott nyelv, le is tettem róla :)

Nem értelek :)
"van erősebb is, a jobbhorog, ami egy python forráskód, látszatra azt írja ki hogy "hello world", de a whitspacek miatt valójában azt írja "hi! i'm a virus" "
Én ebből arra következtettem, hogy te már látták ilyesmit. Én C64-en láttam (és néha - gonoszkodom, tehát vagyok alapon) alkalmaztam hasonló trükköket anno. Már nem emlékszem pontosan, de a trükk annyi volt, hogy : vagy REM után speciális karaktereket lehetett beszúrni (visszalépés, törlés stb.), ami listázáskor "érvényesült", azaz egy 10 SYS 5200 sorból könnyedén lehetett egy 10 NEW sort varázsolni, képernyőt törölni stb, csak a fantázia szabott határt :D
Hogy Pythonon mi az ábra, azt nem tudom. Olvasgattam már róla, egy helló világot össze is dobtam, csak kicsit megrémisztett ez a behúzásokon alapuló struktúra, vagy mineknevezzem :D

Ne kattints ide!

ott a másik bekezdés is, azaz csak annyit tudok hogy ha mással nem de copypasteval biztos meg lehet zavarni a másikat (vagy figyelmetlenségből saját magát), pl:

 if obvioluslyfalse:
  print("i will do not run next line");
  format("c:");

a 3. sor ahonnan copypastezol a tab-space-ek miatt úgy látszik mintha a 2. szintjén lenne, de valójában balrább van... azaz mivel van tab-space megkülönböztetés _biztos_ lehet belőle probléma, az az amit nem tudok hogy akik használják a pythont ilyenre mennyire figyelnek, én még az eltérő újsorjelekkel is folyton szívok :)

alapvetően mivel az indentálást az előző sorhoz képest nézi és így nem lehet keverni a tabot a space-szel, egyetlen megjelenítővel nem lehet ilyen probléma, legalábbis gondolom, azaz "nem tudom hogy ezt tényleg ki lehet-e használni"

Esetleg Flash, vagy Silverlight is szóba jöhet. Flash-t ismerem, ott az egyszerű scripteléstől elkezdve szépen lehet haladni a teljesen csak programozott munkákig.

Ha felmerült a Flash meg a Silverlight, akkor esetleg felmerülhet a Javascript+HTML+CSS is. Ha gyors siker kell, akkor mindenképp… Nem natúrban, hanem valami libraryvel.
Hátránya, hogy 3d programozás ebből jó eséllyel még egy darabig nem lesz.

int getRandomNumber() { return 4; }  // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű.  xkcd

Köszi az ötleteket mindenkinek, remélem más is hasznát veszi a topikban megjelenő tanácsoknak, linkeknek. :)

A Qt-t javasolnám, mindenképp érdemes megnézned.

ha pascalozni tudsz, freepascal + SDL. kezdetnek boven eleg.

"Milyen programozási nyelvet érdemes használni vagy van esetleg valami kész program vagy script az ilyesmire?"

Az ég világon teljesen mindegy. Amivel a legkevesebb szívás van. További előny: ha C szerű szintaxisa van, mert a nyelvek kb. 50%-a azt másolja.

----------------
Lvl86 Troll

Ne programnyelveken kezd elsőre gondolkodni hanem algoritmusokon, a mérnökies gondolkodásmód elsajátításán, az analitikus szemléleten.

Ha a Pascal/Object Pascal (Delphi) van nálad olyan szinten hogy konzolos programokat tudj írni akkor egyelőre maradj annál, és tanuld meg alkalmazni az alapvető algoritmusokat (egyes irodalmak programozási tételeknek hívja a nevezetes, elemi algoritmusokat).

Mi ebből tanultunk: http://jegyzet.sze.hu/index.php?felt=algoritmusok&fajl=keres
Szedd le az [elektronikus jegyzet (pdf) ] -t. Tele van megoldott problémákkal és minden fejezet végén egy sor érdekes feladat van. Van hozzá a weboldalon megoldásgyűjtemény C és Pascal nyelven (asszem).

--
fantázisdús aláírás v1.09