仅在C语言中进行游戏开发。可能吗?[关闭]


18

我是印度的大一学生,并且希望在本学期的项目中做一个小游戏。

我非常擅长C语言,并且学习迅速,但是我想问问是否要完全使用C语言开发游戏(不使用C ++或C#),但我想使用它们,但是对于大学项目,我们有严格的要求,只能使用C语言。

我正在寻找的是一个简单的顶视图驾驶游戏。它不会有任何花哨的东西,即使视觉上的东西也将由简单的字符来驱动。例如,用户控制的汽车可以由▓表示,道路边缘可以由一系列|表示。你怎么看?



8
SDL用C编写。OpenGL是C。您还需要什么?
共产主义鸭子

2
另外,地震时都在做C.
共产党鸭

帮自己一个忙,请使用Allegro库;)alleg.sourceforge.net
o0'。

1
过山车大亨(RollerCoaster Tycoon)几乎是完全组装而成的,那为什么不呢?
拉蒙·扎拉祖阿·B

Answers:


23

可以用C编写游戏。例如,《雷神之锤II》完全是用C编写的,因此用C编写其他游戏完全没有问题。如果您比C ++更熟练和更熟练地使用C,则可能是更好的选择。


2
@Ishan Sharma:实际上,许多游戏(引擎)开发仍是用C编写的,至少是非常C:ish C ++的。没有人说您的C ++游戏会因为C ++而变得更好(甚至写得更好)。
无效

6
@void:仅当所涉及的程序员不知道如何有效使用C ++时,这才是正确的。在编写者基本了解面向对象的情况下编写的C ++程序比等效的C程序更加安全和可靠。
DeadMG

8
@DeadMG [需要引用]
Bob Somers

6
@鲍勃·萨默斯:很简单。比较std::stringchar*std::string在任何情况下都始终清理它自己的内存,每次分配正确的数量。char*,您可能会忘记释放,或者两次释放,或者没有分配足够的内存。哎呀 基本的逻辑说,C ++程序比C程序更好,更安全。
DeadMG

12
@DeadMG一个好的程序员可以用任何语言编写好的,安全的代码。相反,糟糕的程序员可以用任何语言编写糟糕的,不安全的代码。一个可怜的木匠指责他的工具。
Bob Somers

11

我使用的是纯C的AAA MMORPG代码库,所以可以。


5
我想这会让您进入Cryptic。您是否使用任何一种脚本语言?
丹·奥尔森

3
我们有一种内部表达语言,设计人员基本上可以使用它,所有内容都使用Python和Lua混合使用(离线处理,游戏DBS上的map-reduce统计数据),但游戏本身没有Real Scripting Language。
coderanger 2011年

6

是的,这完全有可能。许多OS级API(例如POSIX和Windows,DirectX和OpenGL)都具有C兼容接口。


6

Fabien Sanglard在C中撰写了一篇有关其3d引擎的文章。关于reddit,这篇文章引起了一场有趣的辩论。

语言只是工具...因此,请明智地使用它们。要创建一个好的游戏,使用XNA或Unity3D会更容易。精通C是很好的第一步,但是您必须学习C ++,D,python,lua ... C ++是一种非常难的语言。因此,请小心使用。


3

C非常适合游戏开发。

我正在开发3D平台游戏,而我的语言从未遇到任何问题。唯一的问题是碰撞检测和阴影,我对它们一无所知,它们仍然会以任何其他语言出现。

实际上,我发现它比C#和Java这样的语言容易得多。我总是使用指针对实体进行迭代(代码示例),并fread节省了制作地图加载器的大量时间。

如果需要面向对象和模块化,则可以构造函数指针的结构。


1

毫无疑问。许多对游戏开发有用的库(例如SDL,PhysFS等)都具有C API,这很有帮助。

如果您希望进行任何可扩展的高级编程,则不妨考虑嵌入诸如lua之类的脚本语言。许多人开始意识到在编程将lua用于AI,事件等事物的C框架时的吸引力。

祝好运。


1

这个问题的简单答案是:您可以在每种编程语言中进行基于文本的简单游戏。甚至Pascal,Basic或x86汇编程序:]

(并且不需要其他任何东西)


0

是的,有可能,但是这可能不是最理想的行动。如今,许多人意识到C和C ++都不适合执行许多任务,而高级游戏逻辑通常属于此类。

如果您坚持使用C而不是C ++(这对我来说没有意义,但对每个人来说都没有意义),那么最好将Lua与C结合使用。

对于您需要C的大学项目,这不是一个选择,但是对于业余时间项目,这将是学习的好方法。


Lua擅长开发,但是在发布之前,所有内容都应移植到本机语言以提高性能。
Triang3l 2012年

@ Triang3l我完全不同意。您描述的是过早的优化。使用母语不保证您的代码更快。正确的方法是分析代码,发现瓶颈并改进该代码。在很多示例中,开发人员试图编写自己的C代码来替换Java代码,而C代码变得非常慢,或者开发人员试图以明显慢的Assembly代码来替换C代码。不要低估高级语言的开发人员以及它的运行时环境。
user1657170

0

当然可以。许多游戏已经用C编程(想到了DOOM)。SDL是用C编写的游戏编程库。

当然,这可能比在大型项目中使用C ++困难一些,但是有可能。


0

我认为有可能制作出完整的C游戏。我在第二学期的项目中使用turbo c编译器制作了一个游戏(类似于nokia 1110 mobile的“太空冲击”)。我认为您可以在不认识任何其他人的情况下尝试这种方式(作为大一学生)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.