Sviluppo del gioco solo in C. È possibile? [chiuso]


18

Sono uno studente universitario del primo anno in India e voglio fare un piccolo gioco come progetto per questo semestre.

Sono abbastanza bravo in C e lo sto imparando rapidamente ma volevo chiedere se sviluppare un gioco interamente in C (no C ++ o C #) mi piacerebbe usarli ma per progetti universitari, abbiamo severi requisiti di usare solo C.

Quello che sto cercando è un semplice gioco di guida con vista dall'alto. Non avrà nulla di speciale e anche le cose visive saranno potenziate da personaggi semplici. Ad esempio, un'auto controllata dall'utente può essere rappresentata da ▓ e dai bordi della strada da una serie di | Cosa pensi?



8
SDL è scritto in C. OpenGL è C. Di cosa hai bisogno?
The Communist Duck,

2
Inoltre, Quake è finito in C.
The Communist Duck,

Fatevi un favore e usate le librerie Allegro;) alleg.sourceforge.net
o0 '.

1
RollerCoaster Tycoon è stato realizzato quasi in puro assemblaggio, quindi perché no?
Ramon Zarazua B.

Risposte:


23

È possibile scrivere giochi in C. Ad esempio, Quake II è scritto esclusivamente in C, quindi scrivere altri giochi in C non dovrebbe essere affatto un problema. Potrebbe essere la scelta migliore se sei più esperto e a tuo agio in C che in C ++.


2
@Ishan Sharma: In realtà, lo sviluppo di molti giochi (motori) è ancora in C, o almeno in C: ish C ++. Nulla dice che il tuo gioco C ++ sarà migliore (o anche meglio scritto) solo perché è C ++.
Annullato il

6
@void: questo è vero solo se il programmatore in questione non ha idea di come utilizzare C ++ in modo efficace. I programmi C ++ scritti in cui lo scrittore ha una conoscenza di base dell'orientamento agli oggetti sono molto più sicuri e affidabili rispetto ai programmi C equivalenti.
DeadMG,

8
@DeadMG [citazione necessaria]
Bob Somers,

6
@Bob Somers: facile. Confronta std::stringcon char*. std::stringpulisce sempre la propria memoria in ogni situazione, alloca la giusta quantità ogni volta. char*, potresti dimenticare di liberare o raddoppiare o non allocare memoria sufficiente. Ops. La logica di base afferma che i programmi C ++ sono migliori e più sicuri dei programmi C.
DeadMG

12
@DeadMG Un buon programmatore può scrivere codice valido e sicuro in qualsiasi lingua. Al contrario, un cattivo programmatore può scrivere codice terribile e insicuro in qualsiasi lingua. Un povero carpentiere incolpa i suoi strumenti.
Bob Somers,

11

Lavoro su una base di codice MMORPG AAA che è pura C, quindi sì.


5
Immagino che ti metta su Cryptic. Usi un linguaggio di scripting di qualsiasi tipo?
Dan Olson,

3
Abbiamo un linguaggio di espressione interno utilizzato dai progettisti praticamente per tutto, e usiamo un mix di Python e Lua per alcune cose (elaborazione offline, riduzione della mappa su DBS del gioco per le statistiche), ma nessun linguaggio di scripting reale nel gioco stesso.
coderanger,

6

Sì, è perfettamente possibile. Molte API a livello di sistema operativo come POSIX e Windows, DirectX e OpenGL hanno tutte interfacce C-compatibili.


6

Fabien Sanglard ha scritto un articolo sul suo motore 3d in C. Su reddit, questo articolo ha creato un dibattito interessante.

Le lingue sono solo strumenti ... Quindi usale saggiamente. Per creare un buon gioco, può essere più facile usare XNA o Unity3D. Padroneggiare C è un buon primo passo, ma devi imparare C ++, D, python, lua ... C ++ è una lingua molto difficile. Quindi usalo attentamente.


3

C è ottimo per lo sviluppo di giochi.

Sto lavorando su un platform 3D e non ho mai avuto problemi con la lingua. Gli unici problemi sono il rilevamento delle collisioni e l'ombreggiatura, non ne so nulla, si verificherebbero comunque in qualsiasi altra lingua.

In effetti, lo trovo molto più semplice di linguaggi come C # e Java. Ho sempre iterato su entità usando i puntatori ( un esempio dal mio codice ) e hofread risparmiato molto tempo a creare il caricatore di mappe.

Se si desidera l'orientamento e la modularità degli oggetti, è possibile creare strutture di puntatori a funzioni.


1

Senza dubbio. Molte librerie utili allo sviluppo di giochi (come SDL, PhysFS, ecc ...) hanno API C, il che aiuta molto.

Potresti voler includere un linguaggio di scripting come lua se desideri fare una programmazione estensibile e di alto livello. Molte persone stanno iniziando a vedere l'appello nella programmazione di un framework C che utilizza lua per cose come AI, eventi, ecc ...

In bocca al lupo.


1

La semplice risposta a questa domanda è: puoi fare un semplice gioco basato su testo come questo in ogni linguaggio di programmazione. Anche assemblatore pascal, basic o x86:]

(e non serve nient'altro)


0

Sì, è possibile, ma potrebbe non essere la linea d'azione più desiderabile. Al giorno d'oggi un certo numero di persone riconosce che C e C ++ non sono ideali per una serie di attività e che la logica di gioco di alto livello rientra spesso in quella categoria.

Se insisti su C invece di C ++ (il che non ha senso per me, ma per ognuno il loro), potresti essere meglio usare Lua insieme a C.

Per i tuoi progetti universitari che richiedono C questo non sarà un'opzione, ma per i progetti di tempo libero sarebbe un buon modo per imparare.


Lua è brava in fase di sviluppo, ma prima del rilascio tutto dovrebbe essere portato in una lingua madre per prestazioni più elevate.
Triang3l,

@ Triang3l Non sono affatto d'accordo. Quello che descrivi è l'ottimizzazione prematura. L'uso di una lingua madre NON garantisce che il tuo codice sia più veloce. Il modo corretto per eseguire questa operazione è creare un profilo del codice, trovare strozzature e migliorarlo. Ci sono molti esempi in cui gli sviluppatori hanno provato a scrivere il proprio codice C per sostituire il codice Java e il codice C è diventato significativamente più lento, o in cui gli sviluppatori hanno provato a sostituire il codice C con un codice Assembly significativamente più lento. Non sottovalutare gli sviluppatori di un linguaggio di alto livello e l'ambiente di runtime per esso.
user1657170

0

Certo che puoi. Molti giochi sono stati programmati in C (mi viene in mente DOOM). SDL è una libreria di programmazione di giochi scritta in C.

Certo, potrebbe essere un po 'più difficile che usare C ++ per un grande progetto, ma è possibile.


0

Penso che sia possibile realizzare un gioco c completo. Ho realizzato un gioco (che è simile all '"impatto spaziale" del Nokia 1110 mobile) nel mio progetto del 2 ° semestre usando il compilatore turbo c. Penso che tu possa provare in questo modo (come studente universitario del primo anno) senza conoscerne altri.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.