HTML

Az élet kódjai

Csináld maga. Senki nem csinálja meg helyetted.

Friss topikok

  • Travis.CG: Frissítés: Az operáció nem teljesen sikerült. A képernyő bizonyos időnként elsötétül, csak a hátté... (2026.01.11. 11:30) Iphone képernyő és aksi csere
  • Travis.CG: @webhauser: Én nem vagyok jó programozó. Nem vennéd sok hasznomat. (2025.09.18. 10:26) T0ad 2025
  • Travis.CG: Annyiban én is hibás vagyok, hogy könnyen előjönnek belőlem negatív posztok, ezt akartam ellensúly... (2025.05.22. 19:34) Ne csak a rosszat halljátok
  • sdani: Oh... néha eszembe jut, hogy az EBI után esetleg vissza kellene menni valamennyire az akadémiai vo... (2025.03.18. 16:58) Pontos, jól behatárolt célok
  • legyen úgy: Szia, Értem és köszönöm a válaszodat! T. (2025.02.24. 18:23) Expose CTF

Élet a MoonShine berkeiben (3. rész)

2025.06.14. 10:23 Travis.CG

Valami mozgolódás támadt a Discord csatornán. KazMan és Filippp elhatározták, hogy musicdisket készítenek, és szükségük volt egy kóderre. Gondoltam itt az alkalom, hogy tovább erősítsük a csoporton belüli projekteket, ahol eddig főleg magányos projektek voltak. Azért nem lovalom bele magam nagyon, mert könnyen lehet, hogy a nagy kezdeti fellángolás kipukkad és merő érdektelenségbe fullad a projekt.

Tervezés

A musicdisknek Windowson kell futnia. A zenék trackek lesznek, ezért a lejátszásukhoz libopenmpt-t fogok használni. A megjelenítésért és az ablakok kezeléséért SDL2 fog felelni. (Hátha lesz egy Linux port később...) Animációkat, 3D-t nem terveztek, de persze ez még változhat. A beszélgetésekből úgy tűnik nekem, még nincs kiforrott koncepció. Megpróbálom minél modulárisabbra csinálni, hogy a kód fordítása nélkül lehessen módosítani.

Inspirációként átnéztem néhány musicdisket az utóbbi időből, de nem tetszenek az ott látott megoldások. Amiket láttam, abba Lua-ban készítik el a keretrendszert, shell szkriptból futtatják. Igaz, az eredmény cross-platform, de hanyag érzetet kelt.

Azt sem akarom, hogy szana-szét legyenek a fájlok, ahogy a Marine Melodies-ben. Egy zip-be kellene összecsomagolni mindent. (Amit átnevezek majd pak-ra megtévesztésként.) Így is lesz egy rakás DLL, ami ott virít az exe mellett. Az SDL-nek így is kell a vorbis, zlib, mpg123, meg még ki tudja micsoda.

Grafika

Ez a másik ok, amiért konfigurációs fájlok kellenek, ugyanis még nincs egyetlen grafikai elem sem. Van a Discordon egy ember, aki állítólag a grafikáért felel, de még egyszer sem válaszolt egyetlen kérdésre sem. Fontot viszont már kaptam, szöveget már tudok elhelyezni.

Zene

Mikor elkezdtem írni a posztot, még csak egy zene volt, de mire a végére értem, már négy. Nagyon termelékenyek ezek a zenészek.

Implementáció

Az első lépés, hogy a szükséges függőségeket felrakjuk. Ez már elég fájdalommentes a vcpkg-nek hála, tehát ezt kell először telepíteni. Utána már az IDE is felismeri az include alapján, milyen csomagot kell letölteni, és még a projektet is konfigurálja. Azért -disableMetrics opciót érdemes használni, mert nem akarom, hogy a felhasználói élményemet javítsák, jó az úgy, ahogy van.

A csomagkezelő a libopenmpt-t is tartalmazza, tehát azzal sem kell külön szenvedni. A libopenmpt egy hardverfüggetlen implementáció, ami azt jelenti, hogy a modulokat nem játsza le, csak dekódolja egy 48KHz-es PCM adatcsomagba, amivel utána az ember azt csinál, amit akar.

Összeraktam egy kezdetleges formát, hogy ismerkedjem az API-val. Gond nélkül lefordul, hiba nélkül lefut, de nem hallani semmit. Én már annak is örülök, hogy nem fagy le és nem rántja magával az egész operációs rendszert. Nem hallatszik a zene? Részletkérdés :-)

Szólj hozzá!

Címkék: programozás demoscene

A bejegyzés trackback címe:

https://cybernetic.blog.hu/api/trackback/id/tr9818884180

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása