C# 在.NET中,SQL是否参与了游戏开发?它有什么用途吗?

C# 在.NET中,SQL是否参与了游戏开发?它有什么用途吗?,c#,sql,C#,Sql,我是一个自学成才的初学者,我对计算机/编程的技术规格一无所知。我正在用一本C#book来学习它,我主要是想学习与游戏开发相关的一切,如果某些东西在游戏开发中没有参与/没有用处的话。我暂时不学了。我现在需要知道的是,SQL在游戏编程方面有什么用处吗?这取决于用户关闭程序后如何保存数据。有很多选择,因此SQL可能是处理它的好方法,但也可能不是。当然,这是假设您希望在游戏会话之间保存数据。有太多的选项,您可能永远不会使用SQL。 (这是轻描淡写的说法) 在游戏编程之外,如果您是开发人员,您可能需要了解

我是一个自学成才的初学者,我对计算机/编程的技术规格一无所知。我正在用一本C#book来学习它,我主要是想学习与游戏开发相关的一切,如果某些东西在游戏开发中没有参与/没有用处的话。我暂时不学了。我现在需要知道的是,SQL在游戏编程方面有什么用处吗?

这取决于用户关闭程序后如何保存数据。有很多选择,因此SQL可能是处理它的好方法,但也可能不是。当然,这是假设您希望在游戏会话之间保存数据。有太多的选项,您可能永远不会使用SQL。
(这是轻描淡写的说法)


在游戏编程之外,如果您是开发人员,您可能需要了解SQL。我建议你学一下。即使你不在游戏设计中使用它,了解这些概念也会对你有所帮助。

也许SQLite的开销很小,但除非你需要索引(快速访问)和大量存储,否则最好自己使用,因为SQL Server本身太过复杂,占用了大量的系统资源,这不是你想在比赛中与之并驾齐驱的东西

总之,我想说不,SQL通常在游戏设计中没有一席之地(不管怎样,客户端的东西)。

99%的时候,不

SQL用于快速高效地存储和检索大量数据。把数据库想象成一个文件柜(或者通常是一个装满文件柜的房间),把SQL想象成一个超高效的文件管理员

如果您的游戏需要存储和检索大量数据(例如,可能是一个高度复杂的战略游戏),那么答案可能会变为“是”,但在要研究的事项列表中,我会将其放在下面

如果您确实需要存储游戏中的设置等,您最好选择

  • 如果数据量很小,则将其存储在系统注册表中
  • 将其存储在应用程序的应用程序设置文件中
  • 将其存储在游戏可执行文件旁边的文本/二进制文件中

大多数游戏都有很高的性能要求,加载时间是可预测的,并且可以对加载数据的时间和方式进行细粒度控制。不幸的是,这不是像sql数据库这样的通用存储引擎所提供的,所以大多数游戏都使用自己的二进制文件存储


不管怎样,如果你想学习编程,一开始就专注于一件事可能是最好的,所以我的建议是继续专注于C#,当你觉得你至少可以在那里做一些基本的事情时,你可以拓宽你的视野。

在线游戏几乎总是在后端使用SQL来实现持久化世界、玩家帐户、,等等(尽管也有例外)

单人游戏或没有持久化世界的游戏几乎普遍不使用关系数据库(尽管也有例外,通常涉及SQLite)


.NET是一个无关紧要的问题,因为几乎没有任何商业游戏是用.NET编写的,如果你问的是业余游戏,那么就不可能真正说出人们在家里做了什么。

虽然很多游戏都这样做,但将设置存储在可执行文件所在的文件夹中是一种不好的做法,而且很多人都是这样,很多年了。您需要更改的内容(设置、保存游戏等)应该放在应用程序数据或注册表中。对于那些需要SQL的时候,SQLite可能是更好的解决方案。由于我们讨论的是C#,学习SQL可能没有什么用处,因为您可以用LINQ编写查询。另外,@Geno:Learn LINQ,学好它(还有lambdas)。这将节省大量的开发时间。对于原型设计,您甚至不必费心使用库并“正确地”执行它,您只需使用Linq进行所有需要排序的操作(碰撞检测、敌人查找、空间排序等等)。Sql Server Embedded(又名CE又名Compact)是一个很好的版本,可用于存储大量数据的应用程序中,因为它提供了sql数据存储和检索的效率,而无需在客户端计算机上进行额外安装或运行sql应用程序服务。@结果-通常很难回答-这将取决于对游戏标题的要求,但我要说的是,随着现代游戏的复杂性,它正变得越来越普遍头衔增加了。区分运行时工具和开发工具也是值得的。出于我刚才提到的原因,运行时可能会使用SQL,不过在控制台上,这将是一个嵌入式DB引擎,如SQLite。开发工具更可能以某种形式使用SQL进行资产管理、分析、跟踪等+1来提及SQLite,我相信它在游戏开发中有很好的用途。SQLite并不真正拥有/需要它自己的服务器,是吗?游戏设计(设计游戏;规则、机制、关卡设计、想法、角色……)和游戏编程(编程部分),或者整个过程统称为“游戏开发”——开发游戏之间的巨大差异。据此编辑。