从零开始写游戏引擎(一) - 工程创建以及目录设置还有版本控制

一句话提要

好的开始等于成功了一半。

创建目录结构

工程文件夹下最好分为下面几个目录

Docs - 开发文档,设计文档

Assets - 角色,动作,模型和音效等

Source - 代码,工程文件或者makefile也放在这里,如果有引用第三方的lib,在里面建立一个3rdParty的目录,放在里面。

Temp - 用于防止编译生成的文件

Lib - 放置编译好的lib文件,将source编译成lib能够更好地保护源代码。

Game - 用于放置release buid,里面有游戏的可执行文件,还有所需的资源文件,拷贝到任何电脑上都能直接运行

Test(不是必须) - 放置测试文件

建议使用

#pragma comment (lib,“x.lib”)

来引入lib,不要把库的依赖放到工程设置里,这样你就不必每个lib都针对各个编译选项设置一遍。

Visual Studio中配置工程

版本VS2013

VS项目配置下常用的几个宏

$(IntDir) - 为中间文件指定的相对于项目目录的目录路径。它解析为“中间目录”属性的值。

$(ProjectDir) - 项目的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。

$(ProjectPath) - 项目的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。

$(ProjectName) - 项目的基本名称。

$(OutDir) - 输出文件目录的路径,相对于项目目录。这解析为“输出目录”属性的值。

$(SolutionDir) - 解决方案的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。

$(SolutionPath) - 解决方案的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。

$(SolutionName) - 解决方案的基本名称。

用VS打开项目,在项目上右击->属性->配置属性->常规

这样就可以按照之前的设计编译了。

版本控制

版本控制就用git吧,托管到github。

在个人主页上点击Responsitories选项卡的New,然后输入名字,描述。点确认就可以了。

接着在电脑上初始化一下。cmd进入终端,执行下面的命令

#初始化git
git init
#添加远程库,用[email protected]开头的这个,基于ssh,以后每次push不用输入用户名和密码
git remote add -f origin [email protected]****.git
#从远程库中拉下readme之类的东西,更新到最新版本
git pull origin master
#添加要上传的文件
git add *.
#初始commit
git commit -am "init"
#初始上传
git push  

这样项目就托管好了。

参考

Game Code Complete 4th

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 14:39:47

从零开始写游戏引擎(一) - 工程创建以及目录设置还有版本控制的相关文章

从零開始写游戏引擎(一) - project创建以及文件夹设置还有版本号控制

一句话提要 好的開始等于成功了一半. 创建文件夹结构 project文件夹下最好分为以下几个文件夹 Docs - 开发文档,设计文档 Assets - 角色,动作,模型和音效等 Source - 代码,project文件或者makefile也放在这里,假设有引用第三方的lib,在里面建立一个3rdParty的文件夹,放在里面. Temp - 用于防止编译生成的文件 Lib - 放置编译好的lib文件,将source编译成lib能够更好地保护源码. Game - 用于放置release buid,

Python游戏引擎开发(二):创建窗口以及重绘界面

开发本地应用之前,我们得先有个窗口,用于显示界面.其次我们还得实现重绘机制,使游戏不停地刷新,达到动态化的目的.所以我们的引擎开发的第一个阶段就是创建窗口和重绘界面. 以下是之前的文章: Python游戏引擎开发(一):序 Qt的渲染机制 在上一章<序>中我们讲到本次开发用到了PyQt,也就是Qt的Python版.在开始实现引擎功能之前我们要先了解一下Qt,这里先了解渲染机制. 在Qt中,绘画用到的类叫做QPainter,顾名思义,就是个画家类吧.在这个类中,提供了非常多的方法用于操控这个&q

【转载】U3D 游戏引擎之游戏架构脚本该如何来写

原文:http://tech.ddvip.com/2013-02/1359996528190113.html Unity3D 游戏引擎之游戏架构脚本该如何来写 2013-02-05 00:48:48     发表评论 这篇文章MOMO主要想大家说明一下我在Unity3D游戏开发中是如何写游戏脚本的,对于Unity3D这套游戏引擎来说入门极快,可是要想做好却非常的难.这篇文章的目的是让哪些已经上手Unity3D游戏引擎的朋友学会如何更好的写游戏脚本,当然本文这紧紧是我这么多年对游戏开发的认知,你也

U3D 游戏引擎之游戏架构脚本该如何来写

这篇文章MOMO主要想大家说明一下我在Unity3D游戏开发中是如何写游戏脚本的,对于Unity3D这套游戏引擎来说入门极快,可是要想做好却非常的难.这篇文章的目的是让哪些已经上手Unity3D游戏引擎的朋友学会如何更好的写游戏脚本,当然本文这紧紧是我这么多年对游戏开发的认知,你也可以有你自己的看法.首先我们看看游戏主要是由哪几部分组成的,如下图所示,任何平台下的任何游戏核心都是由:数据.逻辑.渲染三大部分组成. 当你写过>=2个平台下的游戏时你会发现其实游戏开发很“容易”,为什么“容易”呢?因

Cocos2d-x游戏开发之lua工程创建

操作系统:OS X 10.85 Cocos2d-x 版本: 2.2.1 使用Cocos2d-x 可以创建lua工程,已经使用cpp创建的工程也可以继承lua进行开发,但是lua并不支持mac工程(因为一些框架的问题). 支持的工程文件如下: 所有使用创建工程create.py language 为cpp的工程,后集成lua及其工具的时候,要注意这一点. 撒 现在进入cocos2d-x 目录之下,通过cd 进入文件目录 进入之后,如果忘记了命令,可以直接运行 create_project.py 如

刺猬大作战(游戏引擎用Free Pascal写成,GUI用C++写成,使用SDL和Qt4)

游戏特性[编辑] 游戏引擎用Free Pascal写成,GUI用C++写成,使用SDL和Qt4[2]. 0.9.12开始支持实时动态缩放游戏画面. 个性化[编辑] 刺猬大作战有着高度定制性 游戏模式:游戏方式可以发生很大变化,比如棒球模式中,所有刺猬都有保护膜无法损伤,只能击入水中退场 可以制作语音,游戏已经包括如海盗,唱诗风格等五种风格,使用开放的ogg格式 纸娃娃系统,不只可以为每个队员命名,还可以用头饰分辨每个人,已有超过90种头部装饰分辨每个刺猬 支持定制团队背景和离场的动画效果 武器[

写自己的游戏 - 用颜色来区分不同的log输出(cocos2d-x) 同样适用于其他游戏引擎

游戏脚本化开发已经成为一种主流的趋势,伴随着产生大量的人才需求.近两年,各个游戏公司对于lua程序员的需求明显是增长额有点过分了,真的是太不正常了.抛开市场化需求的东西不谈,我们谈一些技术,一些琐碎的,可有可无,非重点的技术.近几天我都在写客户端的开发框架,目的就是让LUA程序员可以使用一款自己喜欢的编辑器,版本控制工具以及部分内部工具就可以随心所欲的开发逻辑模块,这对我来说也算是满有挑战性的,不过我喜欢,反正我都是写给自己玩,又不用别人去要求什么,所以随心所欲吧,尽量做到最好. 对于cocos

Lua游戏引擎Love试用

今天使用Love引擎,测试了一下其基本的一些特性. 由于是底层封装了opengl的库进行图形显示,效率当然还是非常高的,而且lua本身的运行效率也很高,这个架构就特别时候游戏原型的开发,如何哪里运算速度跟不上时,再写成C的库供lua调用,就显得十分方便. 不过不爽的问题也很明显,这个游戏引擎的文档真的很烂,0.9版的文档不知为何删去了大半,好多都要看以前的博客才能知道大概的用法. lua和C的交互 先提一些基本的问题,例如Lua如何和C++交互.这里有篇不错的博客写了这个问题.[Lua脚本在C+

转:高层游戏引擎——基于OGRE所实现的高层游戏引擎框架

高层游戏引擎——基于OGRE所实现的高层游戏引擎框架 这是意念自己的毕业论文,在一个具体的实践之中,意念主要负责的是物件和GUI之外的其他游戏系统.意念才学疏陋,望众位前辈不吝赐教.由于代码质量不高.环境很难于配置.资源包过大等问题,意念暂先不提供代码和程序,未来有时间的时候组织一下这些曾经的代码,再向外发布. 文过三月,也有些新的想法,以后会慢慢跟大家聊的,欢迎拍砖哦^_^. 关键字与术语: 游戏. 游戏引擎 .高层引擎.规则 .场景.物件.Terrain(地形).解释器 .Applicati