TCH (statz) | #1, Főfasz (10466) |
5050 | #3697 | ^ | Idézet | Mon, 28 Sep 2015 22:05:07 +02 |
188.36.*.* | *.catv.pool.telekom.hu |
Nem hülyeség, de nem is célszerű. Poénból, vagy kísérletezésből persze lehet, de ha tényleg csinálni akarsz valamit, akkor nem ajánlott. Igazából a C-t, vagy más nyelvet - legalábbis tisztán - egyik 8-bites gépen sem szabad erőltetni, de konzolon pláne nem. A 8 - és a 16 - bites gépekre nagyjából az az ökölszabály érvényes, hogy a sebességkritikus részeket Assemblyben kell megírni, a többit meg abban írod amiben akarod, pl.: BASIC, Pascal, C, stb... Sebességkritikusnak az számít, ami sok szarakodást, számolást igényel és folyamatosan igényli, tehát pl. egy platform játék belső "mechanikája", vagy a kirajzolás egy "dinamikus" playfield-en, a zene, stb. Nem sebességkritikus az, ami nem esik ebbe a kategóriába, azaz vagy ritkán fut, vagy nem bonyolult, vagy egyik sem; ilyen pl. a felbontás kiválasztása, a filekezelés, perifériakezelés, vagy mondjuk egy "nem annyira" RT játék számításai (pl. egy TBS-é vagy logikai játéké). Egy 8-bites mikrogépen, amire bármilyen vezérlőt (billentyűzet, pad, joy, egér, stb.) rá tudsz aggatni és amin kb. bármilyen játékot lehet játszani, ott be lehet játszani, hogy kettébontod a dolgot és külön-külön oldod meg a sebességkritikus és nem sebességkritikus részeket, de egy konzolon teljesen más a helyzet. A 8-bites konzolokra nem lehet bármilyen vezérlőt ráaggatni és ezért nem lehet rajtuk akármilyen játékot játszani, illetve lehetni lehet, csak szar lesz. Nem igazán jellemző, hogy konzolokra pl. RTS-eket írnának, bár persze vannak kivételek, de a kontroller miatt ezekkel játszani rémálom. A kontroller miatt, ezeken a platformokon maximum arcade játékokat - pl.: platform, shoot 'em up, race, stb. - lehet játszani (maximum még a logikai belefér), viszont ezeknek a játékoknak éppen az a jellemzője, hogy a belső folyamatok nagyon is sebességkritikusak és rengeteg dolog változik a képernyőn, tehát sokat kell ügyködni ott is. Továbbá, míg egy 8-bites gépnek sokféle perifériája (pl. floppy, különböző portok) lehet, addig a konzolnak a kontrolleren kívül semmi; fájlkezelés sincs rajta, mint a mikrogépen, mert ROM-ból jön minden; felbontást többnyire egyet támogat (pl. a NES az drótozottan 256x240, ha PAL, vagy 256x224, ha NTSC a gép) - ergo nem nagyon van, ami ne sebességkritikus lenne. (Kb. a kontroller állapotának kezelésével ki is fújt a lista.) Összefoglalva, NES-en - vagy bármely 8-bites konzolon - a környezet és a rajta futó játékfajták miatt, a dolgok elsöprő többsége sebességkritikus, ezért nem célszerű Assemblyn kívül bármiben megírni. Persze lehet kivételeket keresni és találni; pl.: ha írsz egy táblás logikai játékot, amiben nincs zene, csak hangeffektek, na azt meg lehet írni C-ben, mert - a ROM méretét leszámítva - semmi előnyöd nem származna abból, ha ASM-ben írnád meg. De pl. egy MegaMan szintű - vagy akár annál sokkal gagyibb - platformjátékot esélytelen, hogy meg tudsz írni úgy C-ben, hogy ne legyen egy lassú szar és ez igaz egy versenyzős, lövöldözős, vagy akármilyen RT "rapid" játékra. Sz*rk: Egy kardinális kivétel jutott eszembe még, amit meg lehet írni C-ben: a menükezelést; ott az adatok (pár byte vagy bit) vagy a kurzor (egy db sprite) mozgatása pl. nem sebességkritikus, sőt, mivel a megjelenő ablakokat/dobozokat/stb. és a bennük lévő szövegeket nem kell ide-oda mozgatni, és/vagy folyton/sokszor (újra)rajzolgatni, így akár azt is meg lehet írni C-ben...viszont ezek olyan egyszerű dolgok, hogy akár Assemblyben is meg lehet írni; maximum időt spórolsz a C verzióval. Mindenesetre pl. így egy menüvezérelt, vagy csak simán sok menüt tartalmazó játékot (pl.: adventure/RPG) már esetleg van értelme részben C-ben megírni. Ha NES-re akarsz fejleszteni - ami egy dicséretes ötlet - akkor tanuld meg a 6502 Assembly-t, ha akarod, ebben tudok neked segíteni. Azt meg nem szabad elhinni, hogy az Assembly nehéz, ami azt illeti, a C-t sokkal nehezebb megtanulni, mint egy 8-bites CPU Assembly-jét, hiszen a C egy univerzális nyelv, egy meglehetősen bonyolult logikával és kiterjedt eszközkészlettel, míg pl. a 6502 ASM egy meglehetősen egyszerű és limitált valami, tehát megtanulni, sokkal könnyebb - hogy aztán programozni azt körülményesebb benne, az egy dolog, de nem nehezebb. Az csak a régi nóta... Naná, ha meghaltál, akkor ott a legjobb és legbiztonságosabb - hárfázgatni egy felhő peremén... Bűnözőnek meg az számít, akinek nem engedtük meg, hogy áthágja a törvényeket. |