用SFML 和C++编写小游戏
一、准备
先定个小目标--独立设计并编写一个小游戏。目标虽小,过程当艰辛。初步目测实现过程需大概1年的时间。
从头用C++编写游戏有点小门槛,比如需要了解C++基本知识、数学及物理基本概念、图形库、游戏引擎。需逐个格物后整合(类似大厨炒菜)请服务员(游戏平台)送到客户(桌面用户、移动用户等)面前。
tips:小游戏能发布到市场上更是需要大量的资金和时间、人力投入,是否有产出,产出大于投入更是没谱。
二、过程
我选择的一本书是《C++ Game Development By Example》,初瞄一眼觉得还行,我的阅读记录可见https://github.com/dsdyuan/learn.git 。
先从配环境着手,然后根据书的例子依样画瓢,自此开启C++ Game新篇章。
2.1、环境
OS:Win10专业版环境中VirtualBox6.0.14 ,OS 为Fedora 5.3.11-300.fc31.x86_64
IDE:Eclipse IDE for C/C++ Developers Version: 2019-09 R (4.13.0)
Game engine:SFML 2.5.1
Language:C++ 标准库为 std=c++17
注意eclipse配置SFML需要包括头文件和库文件,具体如下图。
2.2、例子
a、最简单的窗口例子。(例子程序最好是自个敲,如觉得码字太慢就直接git吧 git clone https://github.com/dsdyuan/C-Game-Development-By-Example.git)
b、查看静态图例子。
c、逐步增加元素(背景、前景、角色、键盘左右方向控制前进和后退),具体见 https://github.com/dsdyuan/C-Game-Development-By-Example.git
d、根据脚手架+加肉方式让游戏鲜活起来(比如音效、动画)。
三、实践
用此框架编制大富翁。
四、问题
a、自己作引擎行吗?
b、左手法则、右手法则非常形象,非常利于概念的理解,自己是否应该多用直观办法表达或借用隐喻的方法呢?
c、如何做整体资源管理?
五、哲学
a、不会就模仿,持续模仿,直至领会应用。虽是个苯方法,但坚持下去就能见效。
b、中外结合
博学之,审问之,慎思之,明辨之,笃行之。有弗学,学之弗能,弗措也;有弗问,问之弗知,弗措也;有弗思,思之弗得,弗措也;有弗辨,辨之弗明,弗措也;有弗行,行之弗笃,弗措也。人一能之,己百之,人十能之,己千之。果能此道矣,虽愚必明,虽柔必强。 (《小戴礼记、小宋礼记》)
六、引用
6.1、https://www.eclipse.org/
6.2、https://github.com/PacktPublishing/CPP-Game-Development-By-Example.git