A Fejlesztőkörnyezet beüzemelése¶
A fejlesztőeszközök¶
Windows esetében a fejlesztéshez szükséges dolgok a c_sdk_220203.zip formájában letölthetőek. (A következőkben röviden C SDK.) Telepíteni nem szükséges, mindössze ki kell tömöríteni egy tetszőleges helyre. A csomag tartalmazza
a GNU C/C++ fordítóját,
a szükséges OpenGL és SDL2 fejléceket és binárisokat,
a Notepad++ szövegszerkesztőt.
GNU/Linux és más UNIX-szerű operációs rendszereken a gcc
, make
programokra és az SDL2 vagy SDL3 függvénykönyvtár telepítésére van szükség.
Nem kötelező Notepad++-t használni. Áttekintésképpen az alábbiakban szerepel néhány szerkesztő és fejlesztőkörnyezet.
Notepad++: https://notepad-plus-plus.org/
Visual Studio Code: https://code.visualstudio.com/
Eclipse CDT: https://projects.eclipse.org/projects/tools.cdt
Qt Creator: https://www.qt.io/product/development-tools
Code::Blocks: https://www.codeblocks.org/
Sublime Text: https://www.sublimetext.com/
A C SDK¶
A C SDK-t elegendő letölteni, és kitömöríteni. Külön telepítés nem szükséges hozzá.
Hogy ha nincs a géphez rendszergazdai jogosultság, akkor a
shell.bat
állományt érdemes használni. Ez csak egy környezeti változót állít be ahhoz, hogy agcc
ésmake
parancsok elérhetőek legyenek.Hogy ha van a géphez rendszergazdai jogosultság, akkor érdemes rendszer szintjén beállítani, hogy a fordító útvonala (ami
MinGW/bin
-re végződik) aPATH
változóban szerepeljen.
Megjegyzés
Nem kötelező konkrétan ezt használni. A részeiből a naprakész változatok külön is telepíthetőek, beállíthatóak.
Figyelem
Gyakori hiba, hogy a gépre már korábban lett telepítve C fordító, és emiatt a fordításnál hiba keletkezik amiatt, hogy a fordító nem találja az SDL2 fejléceket. Ennek a megoldásához a környezeti változókat érdemes átnézni. Parancssorból ez a
echo %PATH%
parancs kiadásával oldható meg.
Kódpéldák¶
Az előadásokhoz és gyakorlatokhoz tartozó anyagok a www.gitlab.com/imre-piller/me-courses címről érhetők el.
A repository-t időszakosan
pull
paranccsal érdemes frissíteni.Ebbe a repository-ba a Hallgatóknak nem kell feltölteni semmit.
Az észrevételeket, javaslatokat természetesen szívesen veszem, és szükség esetén korrigálom.
Jegyzékek szervezése¶
A fejlesztés kapcsán érdemes az alábbi 3 dolgot logikailag elkülöníteni:
C SDK: a fejlesztőkörnyezethez tartozó fájlok (a fordító, és az ahhoz kapcsolódó fájlok értendők bele),
me-courses: a példakódokat tartalmazó git repositority,
saját repository: értve ez alatt a Hallgató saját git repository-ját.
Előírás arra vonatkozóan nincs, hogy ezek a fájlrendszerben hol legyenek, de érdemes szem előtt tartani a következőket.
Sem a C SDK-t, sem pedig az me-courses repository tartalmát nem kellene feltölteni a saját repository-ba.
Az me-courses-ban lévő példákból ki lehet indulni, egy-egy részt át lehet másolni, de nincs értelme a saját repository részeként feltölteni azt.
Egy praktikus fájlelrendezés lehet például az alábbi:
c_sdk/
MinGW/
me-courses/
grafika/
shell.bat
Ebben a grafika a Hallgató saját jegyzékét jelölné.
Példa programok fordítása és futtatása¶
A példa programokról célszerű másolatot készíteni a saját repository-ba (azon belül is a
gyakorlatok
, vagy angoluldemos
nevű jegyzékbe).El kell indítani a
shell.bat
fájlt.Be kell lépni a parancssorban a megfelelő mappába.
Ki kell adni egy
make
parancsot.Le kell ellenőrízni, hogy létrejött-e a futtatható állomány.
Meg kell próbálni elindítani. Dupla kattintás esetén hiányzó DLL-el kapcsolatos hibaüzenetet kaphatunk. Ezt vissza lehet keresni a
MinGW/bin
jegyzékben. Parancssorból futtatva a problémának nem szabad fennállnia.
Gépes gyakorlattal kapcsolatos tudnivalók¶
A számítógépes termekben lévő számítógépeken a D meghajtóra lehet elhelyezni azokat a dolgokat, amelyekre egész félévben szükség lehet. (Az asztalon lévő dolgok időszakosan törlésre kerülhetnek.)
Mindenkinek létre kellene hoznia egy saját névre szóló jegyzéket.
Git-tel kapcsolatos tudnivalók¶
Az elkészített kódokat (beleértve a gyakorlatokat és a féléves feladatot is) egy git repozitóriumba kell elhelyezni.
Ez lehet például GitHub-on, GitLab-on vagy BitBucket-on. (Mindenki használhatja azt, amelyik szimpatikusabb.)
A repozitóriumot publikussá kell tenni, hogy egyszerűen elérhető legyen.
A Hallgató saját repozitóriumának közvetlenül, a clone
parancs kiadásával letölthetőnek kellene lennie, mint például ahogy az me-courses is:
git clone https://www.gitlab.com/imre-piller/me-courses
Kliens program¶
A git
használatához valamilyen kliens program szükséges.
Az egyik egyszerű megoldás a parancssoros git kliens.
Grafikus alkalmazást is lehet használni, hogy ha valakinek az szimpatikusabb.
A szövegszerkesztőkbe, IDE-kbe integráltan, jellemzően bővítmény formájában rendelkezésre állnak ilyenek.
Alapvető parancsok¶
git init
git clone
git status
git add
git rm
git commit
git log
git push
git pull
Megjegyzés
Gyakorlás céljából érdemes a parancsokat egy lokálisan létrehozott repozitóriumon próbálgatni.
Figyelem
Attól függetlenül, hogy valaki milyen klienst használ, a git működésével, használatával tisztában kell lennie!
A repozitórium felépítése¶
A Hallgató saját repozitóriumának a felépítése alapvetően az alábbi formában kellene, hogy kinézzen:
Magyar nyelvű változat:
/feladat
/gyakorlatok
README.md
A
feladat
jegyzékbe kerül majd a féléves feladat.A
gyakorlatok
jegyzékbe kell a gyakorlatokon megoldott kódokat feltölteni.A
README.md
állományba kerül majd a repository bemutatása, benne részletezve a féléves feladat specifikációját.
Angol nyelvű változat:
/app
/demos
README.md
A jegyzékek és fájlok nevének következeteseknek kell lenniük!
Megjegyzés
Kisebb, indokolható eltérések megengedettek, például
külön jegyzék az esetleges fejlesztéshez kapcsolódó dokumentációnak,
jegyzék a képeknek, amelyek a
README.md
-ben vannak,jegyzékek olyan saját fejlesztésű eszközöknek (például
tools
vagyutils
), amelyek sem a féléves feladathoz, sem pedig a gyakorlatokhoz nem köthetők közvetlenül,.gitignore
fájl,licensz fájl.
Figyelem
A repository-ba az alábbiakat semmiképpen sem kellene feltölteni:
a fejlesztőkörnyezetet,
a lefordított binárisokat,
a fordítás során létrejövő segéd és átmeneti fájlokat.
Asset-ek kezelése¶
Az alkalmazásokhoz (a grafikusokhoz különösképpen) szoktak tartozni különböző adatfájlok. Ilyenek például a képek, 3D-s modellek adatait tartalmazó fájlok. Ezek a program futásához szükségesek ugyan, a forráskódnak viszont nem képezik a részét, a fordításhoz nem szükségesek.
Jellemzően ezen fájlok nagyobb méretűek. Érdemes őket külön kezelni. Ez aktuálisan egy példán keresztül bemutatva a következő formában történne.
/assets/models/house.obj
/assets/models/tree.obj
/assets/textures/house.png
/assets/texture/tree.png
/assets/config.csv
A textúrák és a modellek külön jegyzékekbe kerülnek.
Az
assets
jegyzéket és tartalmát ZIP formátumban tömörítve kell feltölteni egy tárhelyre.A tárhelynek az elérhetőségét a README.md fájlban meg kell adni. Az ott szereplő leírás alapján össze kell tudni rakni a futtatható változatot.