游戏引擎养成《一》 环境搭建

游戏引擎养成《一》 环境搭建

# 序

从事游戏行业十余年,写过诸多的商用引擎框架,也研究过包括unity,ue,irrlicht ,away3d 等涉及到比较底层的各种时代的开源引擎。 想借此机会从零开始搭建一个完整的包含渲染,输入输出,场景管理,音频,网络,文件I/O ,内存管理,跨平台等五脏俱全的小而全的引擎。

写作过程中,我肯定会借鉴到各种开源引擎的代码,资料,更多的是总结与记录,学习与分享。所编写内容也不会涉及到公司内工作内容。


# 跨平台开发环境

如果就钟情于VS的同学,也可以很方便的自己创建一个VS工程,直接把代码拷贝进项目中,并引入几个相关类库即可往下面的篇章推进。

第一篇我们首先解决环境搭建问题,

* 首先我需要在windows 和 mac 下工作,因为公司和家里的办公环境不同, 所以我们选择Cmake ,clang 。不仅仅是为了跨平台开发,windows也是最不能满足程序员好奇心的平台了。 另外也很推荐大家熟悉下cmake , clang + llvm , swig等编译工具 ,在工作中我也用到过 cmake+ swig 来做跨平台编译的例子,我们的战斗引擎需要编译为c++ , c# , as3 三个语言版本,并在战斗服中与Go互动。 使用这类工具可以让我们事半功倍,免除许多冗余手动工作,方面,健壮。

* clang比gcc表现更优异,尤其是mac系统。


这与后面我们使用Glew 做图形渲染接口的跨平台不同,稍后我们会在再做讲解。此处仅仅是我们的编码环境跨平台。


# 具体搭建过程

Windows下

安装 VS2017(推荐), Windows SDK , Cmake ,LLVM + clang源码编译, 设置好环境变量即可。 网上文章很多,没什么难度。

需要注意的是clang的版本,在vs2017环境下且为了使用较新的c++特性,我们最好编译clang 7.0 or newer的源码,否则会报错。 编译好后将clang 加入环境变量。

使用cmake编译clang与llvm的源码工程
再使用vs生成bin

# 测试


  1. 建立项目目录,使用git进行版本管理
  2. 新建PhantomCore/main.cpp 做为测试入口文件。
  3. 补全目录如下
build为out of source tree编译cmake执行目录;sample为测试工程所在目录
创建cmakeLists.txt
cmake_minimum_required (VERSION 3.1)
set (CMAKE_C_STANDARD 11)
set (CMAKE_CXX_STANDARD 11)
project (PhantomEngine)   
include_directories("${PROJECT_SOURCE_DIR}/PhantomCore")
add_subdirectory(PhantomCore)

add_executable(PhantomCore PhantomCore/main.cpp)

3. 进入build目录执行cmake .. 可得vs工程,打开执行成功即可。

# 开局

开局我们选择了cmake来构建工程并开发,CMakeLists.txt是cmake的配置文件。 我们会持续完善它。如果没有接触过cmake的话,建议边做边查,坚持到底。 横向的知识面扩展在工作中也是极为重要的。

而且作为程序员,cmake 、vim/sublime Text 搭建的极简开发环境,会带来飞一般的感受:)


下一节游戏引擎养成《二》 引入跨平台渲染库

编辑于 2019-03-07

文章被以下专栏收录