English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1428) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.15.2/QtWebKit5.602.1 (2024.12.02. 21:02)
OS for MC680x0 | OS for PPC | OS for Sparc64 | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés
Σ: 1 post

TCH  (statz) Főfasz
#1, Főfasz (10466)
5050 | #3697 | ^ | Idézet | Mon, 28 Sep 2015 22:05:07 +02
188.36.*.* Linux x86 Opera Classic Hungary *.catv.pool.telekom.hu
@OrkenWhite:
Szerintetek NES-t programozni C-ben hülyeség? Mert épp cikket olvastam róla.
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.
@OrkenWhite:
Amikor a HVG azt mondta a winfosten memóriabajára, hogy vegyünk a gépbe még több RAM-ot...
Az csak a régi nóta...
@Ádám:
De hát a felhő a legbiztonságosabb és legjobb hely!
Naná, ha meghaltál, akkor ott a legjobb és legbiztonságosabb - hárfázgatni egy felhő peremén...
@Ádám:
A használatát főleg bűnözőknek és törvényszegőknek ajánljuk!
Bűnözőnek meg az számít, akinek nem engedtük meg, hogy áthágja a törvényeket.


English | Magyar
JS ki | CSS ki | Ékezetek ki | HiContrast
Lapozó:  (0 - 1428) 
<== | ==>
Ugrás a végére | Összes megjelenítése | Utolsó oldal
OpenOpera patches | Opera-SSL patches | Opera 12.15 source (Git repository) | Opera 12.15 source (Torrent) | Opera internal pages | Otter Browser Linux x64 - Qt5.15.2/QtWebKit5.602.1 (2024.12.02. 21:02)
OS for MC680x0 | OS for PPC | OS for Sparc64 | besztofbégéaefcé | CSÉNDZSLOG | WebToolz | DDG Shit Filter | Google Shit Filter | Progz | Fast CSS Box | Browser | OS | Agent | Statisztika | BBCode
Monospace font-family: Courier New | Browser default monospace
Email értesítő / Email notification ===> 
Keresés

Név: (max 255 byte)

Email: (max 255 byte) Nem kötelező!

Üzenet: (max 65536 kar.) 65536-0=65536




crap_vkn v4.34.0 by TCH
Thx to saxus for the escaped string decoder function (PHP), the realIP function (PHP) & the SQL handle layer (PHP), to thookerov for the int_divide function (PHP), to Jeff Anderson for the getSelText function (JS), to Alex King for the insertAtCursor function (JS), Flood3r for the new CSS styles, Pety for the spamprotection idea and some design and comfort ideas, MaxMind for the IP2Country database, famfamfam for the flags of countries and an unknown PHP programmer for the removeAccents function.



Kecskebaszók ide!