Spieleentwicklung nur in C. Ist es möglich? [geschlossen]

18

Ich bin ein Student im ersten Jahr in Indien und möchte ein kleines Spiel als ein Projekt dieses Semesters machen.

Ich bin ziemlich gut in C und lerne es schnell, aber ich wollte fragen, ob ich ein Spiel vollständig in C entwickeln möchte (kein C ++ oder C #).

Was ich suche, ist ein einfaches Top-View-Fahrspiel. Es wird nichts Besonderes sein und selbst die visuellen Dinge werden von einfachen Charakteren angetrieben. Beispielsweise kann ein benutzergesteuertes Auto durch ▓ und Straßenkanten durch Reihen von | dargestellt werden. Was denkst du?

Ishan Sharma
quelle
8
SDL ist in C geschrieben. OpenGL ist C. Was brauchst du mehr?
Die kommunistische Ente
2
Auch Quake ist alles in C.
The Communist Duck
Tun Sie sich selbst einen Gefallen und nutzen Sie die Allegro-Bibliotheken;) alleg.sourceforge.net
o0 '.
1
RollerCoaster Tycoon wurde fast in reiner Montage hergestellt, warum also nicht?
Ramon Zarazua B.

Antworten:

23

Das Schreiben von Spielen in C ist möglich. Beispielsweise ist Quake II nur in C geschrieben, so dass das Schreiben anderer Spiele in C überhaupt kein Problem sein sollte. Es kann die bessere Wahl sein, wenn Sie in C kompetenter und komfortabler sind als in C ++.

martiert
quelle
2
@Ishan Sharma: Tatsächlich ist noch viel Spiel (Engine) -Entwicklung in C oder zumindest sehr C: ish C ++. Nichts sagt, dass Ihr C ++ - Spiel besser (oder besser geschrieben) sein wird, nur weil es C ++ ist.
ungültig
6
@void: Das stimmt nur, wenn der betreffende Programmierer keine Ahnung hat, wie er C ++ effektiv einsetzen kann. C ++ - Programme, bei denen der Schreiber über grundlegende Kenntnisse der Objektorientierung verfügt, sind weitaus sicherer und zuverlässiger als entsprechende C-Programme.
DeadMG
8
@DeadMG [Zitieren benötigt]
Bob Somers
6
@ Bob Somers: Einfach. Vergleichen Sie std::stringmit char*. std::stringBereinigt in jeder Situation immer den eigenen Speicher und weist jedes Mal die richtige Menge zu. char*, vergessen Sie möglicherweise, den Speicher freizugeben oder zu verdoppeln, oder weisen Sie nicht genügend Speicher zu. Hoppla. Grundlegende Logik sagt , dass C ++ Programme sind besser und sicherer als C - Programme.
DeadMG
12
@DeadMG Ein guter Programmierer kann guten, sicheren Code in jeder Sprache schreiben. Umgekehrt kann ein schlechter Programmierer schrecklichen, unsicheren Code in jeder Sprache schreiben. Ein armer Zimmermann gibt seinen Werkzeugen die Schuld.
Bob Somers
11

Ich arbeite an einer AAA-MMORPG-Codebasis, die reines C ist, also ja.

coderanger
quelle
5
Ich denke, das bringt dich zu Cryptic. Verwenden Sie eine Skriptsprache?
Dan Olson
3
Wir haben eine interne Ausdruckssprache, die von Designern für praktisch alles verwendet wird, und wir verwenden eine Mischung aus Python und Lua für einige Dinge (Offline-Verarbeitung, Kartenreduzierung für Spiel-DBS für Statistiken), aber keine echte Skriptsprache im Spiel selbst.
Coderanger
6

Ja, das ist durchaus möglich. Viele APIs auf Betriebssystemebene wie POSIX und Windows, DirectX und OpenGL verfügen über C-kompatible Schnittstellen.

DeadMG
quelle
6

Fabien Sanglard hat in C einen Artikel über seine 3D-Engine geschrieben. Dieser Artikel hat auf reddit eine interessante Debatte ausgelöst.

Sprachen sind nur Werkzeuge ... Setzen Sie sie also mit Bedacht ein. Um ein gutes Spiel zu erstellen, kann es einfacher sein, XNA oder Unity3D zu verwenden. C zu beherrschen ist ein guter erster Schritt, aber Sie müssen C ++, D, Python, Lua ... lernen. C ++ ist eine sehr schwierige Sprache. Also benutze es vorsichtig.

Ellis
quelle
3

C ist großartig für die Spieleentwicklung.

Ich arbeite an einem 3D-Plattformer und hatte noch nie Probleme mit der Sprache. Die einzigen Probleme sind Kollisionserkennung und Schattierung, ich weiß nur nichts über sie, sie würden immer noch in jeder anderen Sprache auftreten.

In der Tat finde ich es viel einfacher als Sprachen wie C # und Java. Ich durchlaufe Entitäten immer mit Zeigern ( ein Beispiel aus meinem Code ) und habe freadviel Zeit beim Laden der Karte gespart.

Wenn Sie Objektorientierung und Modularität wünschen, können Sie Strukturen von Funktionszeigern erstellen.

Triang3l
quelle
1

Ohne Zweifel. Viele in der Spieleentwicklung nützliche Bibliotheken (wie SDL, PhysFS usw.) verfügen über C-APIs, was sehr hilfreich ist.

Möglicherweise möchten Sie eine Skriptsprache wie lua einbetten, wenn Sie eine erweiterbare, übergeordnete Programmierung durchführen möchten. Viele Leute beginnen, die Anziehungskraft bei der Programmierung eines C-Frameworks zu bemerken, das lua für Dinge wie KI, Ereignisse usw. verwendet.

Viel Glück.

James
quelle
1

Eine einfache Antwort auf diese Frage lautet: Sie können ein einfaches textbasiertes Spiel wie dieses in jeder Programmiersprache ausführen. Sogar Pascal, Basic oder x86 Assembler:]

(und brauche nichts anderes)

Notabene
quelle
0

Ja, das ist möglich, aber möglicherweise nicht die wünschenswerteste Vorgehensweise. Eine Reihe von Leuten erkennt heutzutage, dass C und C ++ für eine Reihe von Aufgaben nicht ideal sind, und eine übergeordnete Spielelogik fällt oft in diese Kategorie.

Wenn Sie auf C anstelle von C ++ bestehen (was für mich keinen Sinn macht, für jeden aber einen eigenen), ist es am besten, wenn Sie Lua in Verbindung mit C verwenden.

Für Ihre College-Projekte, die C erfordern, ist dies keine Option, aber für Freizeitprojekte ist es eine gute Möglichkeit zu lernen.

Dan Olson
quelle
Lua ist gut in der Entwicklung, aber vor der Veröffentlichung sollte alles in eine Muttersprache portiert werden, um eine höhere Leistung zu erzielen.
Triang3l,
@ Triang3l da stimme ich überhaupt nicht zu. Was Sie beschreiben, ist vorzeitige Optimierung. Die Verwendung einer Muttersprache garantiert NICHT, dass Ihr Code schneller ist. Der richtige Weg, dies zu tun, besteht darin, Ihren Code zu profilieren, Engpässe zu finden und diesen Code zu verbessern. Es gibt viele Beispiele, in denen Entwickler versuchten, ihren eigenen C-Code zu schreiben, um Java-Code zu ersetzen, und der C-Code deutlich langsamer wurde, oder in denen Entwickler versuchten, C-Code durch deutlich langsameren Assembly-Code zu ersetzen. Unterschätzen Sie nicht die Entwickler einer Hochsprache und die Laufzeitumgebung dafür.
User1657170
0

Natürlich kannst du. Viele Spiele wurden in C programmiert (DOOM kommt in den Sinn). SDL ist eine in C geschriebene Spielprogrammierungsbibliothek.

Natürlich mag es etwas schwieriger sein, C ++ für ein großes Projekt zu verwenden, aber es ist möglich.

rzrscm
quelle
0

Ich denke, es ist möglich, komplette c-Spiele zu machen. Ich habe in meinem Projekt im 2. Semester mit dem Turbo C-Compiler ein Spiel erstellt (ähnlich dem Space Impact von Nokia 1110 Mobile). Ich denke, Sie können es so versuchen (als Student im ersten Jahr), ohne andere zu kennen.

Sabbir
quelle