问题描述
我目前正在写一个基于文本的冒险游戏,并且有一个终生计数器。我想知道是否有可能在启动游戏时不使用文件就增加生命周期计数器?
我正在使用Windows 10 x64。
解决方法
这是特定于操作系统的,因为C11草案标准n1570确实提到了文件(在第7.21节中),而没有提及persisting data的其他方式。 / p>
您可以考虑使用一些database,例如sqlite库或PostGreSQL或MongoDB。可能是矫kill过正。
您可以考虑以某种文本格式(例如this draft)保留持久性数据(如RefPerSys报告中所建议的,或在JSON软件中以C ++进行编码)。 garbage collection中的概念和术语可能是相关的(例如Cheney's algorithm)。至少阅读旧的Uniprocessor Garbage Collection Techniques论文中的术语。
您可能对web services感兴趣,使用libcurl和/或libonion和/或Wt。在此之前,请阅读与HTTP相关的文档。您可以考虑使用JSONRPC或SWIG。
在Linux上,您可以考虑将共享存储器或interprocess communication的其他方式与几个processes配合使用,请参阅shm_overview(7),sem_overview(7),fifo(7),{{ 3}},unix(7)和其他poll(2)(以及syscalls(2))。然后阅读atexit(3)
在Windows上,您需要阅读Advanced Linux Programming。
您可能对documentation of the WinAPI标准和POSIX或GTK之类的跨平台库感兴趣。两者都经常在游戏软件中使用。
请注意,libSDL具有一些持久性机制(另请参见SBCL)。您可能会从其this中获得启发。您也可以用save-lisp-and-die
primitive编写游戏的一部分,并利用Ocaml的Ocaml。您可以在游戏软件中Marshal
module(或embed Python或GNU guile)使用其Lua功能。即使您不使用SBCL或Ocaml进行编码,也可以从其运行时C代码中汲取灵感。
我目前正在写一个基于文本的冒险游戏,并且有一个终生计数器。
然后(出于启发目的)在persistence上的现有游戏的源代码中查找。