一句话提要

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

创建文件夹结构

project文件夹下最好分为以下几个文件夹

Docs - 开发文档,设计文档

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

Source - 代码,project文件或者makefile也放在这里,假设有引用第三方的lib,在里面建立一个3rdParty的文件夹,放在里面。

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

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

Game - 用于放置release buid,里面有游戏的可运行文件,还有所需的资源文件。复制到不论什么电脑上都能直接运行

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

建议使用

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

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

Visual Studio中配置project

版本号VS2013

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

$(IntDir) - 为中间文件指定的相对于项目文件夹的文件夹路径。

它解析为“中间文件夹”属性的值。

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

$(ProjectPath) - 项目的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。
$(ProjectName) - 项目的基本名称。
$(OutDir) - 输出文件文件夹的路径,相对于项目文件夹。这解析为“输出文件夹”属性的值。

$(SolutionDir) - 解决方式的文件夹(定义形式:驱动器 + 路径);包含尾部的反斜杠“\”。
$(SolutionPath) - 解决方式的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。
$(SolutionName) - 解决方式的基本名称。

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

这样就能够依照之前的设计编译了。

版本号控制

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

在个人主页上点击Responsitories选项卡的New,然后输入名字,描写叙述。

点确认就能够了。

接着在电脑上初始化一下。cmd进入终端。运行以下的命令
#初始化git
git init
#加入远程库。用git@开头的这个,基于ssh。以后每次push不用输入username和password
git remote add -f origin git@github.com****.git
#从远程库中拉下readme之类的东西。更新到最新版本号
git pull origin master
#加入要上传的文件
git add *.
#初始commit
git commit -am "init"
#初始上传
git push

这样项目就托管好了。

參考

Game Code Complete 4th

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

  1. 《从零開始搭建游戏server》项目公布到Linux环境

    前言: 之前我们提及了怎样使用Maven来创建.管理和打包项目,也简单过了一遍Linux中搭建Java开发环境的步骤,如今我们就開始将我们之前开发的项目demo公布到Linux环境下.并让它正常执行起 ...

  2. [Golang] 从零開始写Socket Server(3): 对长、短连接的处理策略(模拟心跳)

    通过前两章,我们成功是写出了一套凑合能用的Server和Client,并在二者之间实现了通过协议交流.这么一来,一个简易的socket通讯框架已经初具雏形了,那么我们接下来做的.就是想办法让这个框架更 ...

  3. [Golang] 从零開始写Socket Server(4):将执行參数放入配置文件(XML/YAML)

    为了将我们写好的Server公布到server上.就要将我们的代码进行build打包.这样假设以后想要改动一些代码的话.须要又一次给代码进行编译打包并上传到server上.     显然,这么做过于繁 ...

  4. [Golang] 从零開始写Socket Server(2): 自己定义通讯协议

    在上一章我们做出来一个最基础的demo后,已经能够初步实现Server和Client之间的信息交流了~ 这一章我会介绍一下怎么在Server和Client之间实现一个简单的通讯协议.从而增强整个信息交 ...

  5. 从零開始怎么写android native service?

    从零開始怎么写android native service Android service对于从事android开发的人都不是一个陌生的东西,非常多人可能会认为服务非常easy. 服务是简单,由于复杂 ...

  6. 从零開始学习OpenCL开发(一)架构

    多谢大家关注 转载本文请注明:http://blog.csdn.net/leonwei/article/details/8880012 本文将作为我<从零開始做OpenCL开发>系列文章的 ...

  7. 关东升的《从零開始学Swift》即将出版

    大家好: 苹果2015WWDC大会公布了Swift2.0,它较之前的版本号Swift1.x有非常大的变化.所以我即将出版<从零開始学Swift><从零開始学Swift>将在&l ...

  8. 从零開始开发Android版2048 (一)初始化界面

    自学Android一个月多了,一直在工作之余零零散散地看一些东西.感觉经常使用的东西都有些了解了,可是一開始写代码总会出各种奇葩的问题.感觉还是代码写得太少.这样继续杂乱地学习下去进度也太慢了,并且学 ...

  9. # 从零開始搭建Hadoop2.7.1的分布式集群

    Hadoop 2.7.1 (2015-7-6更新),Hadoop的环境配置不是特别的复杂,可是确实有非常多细节须要注意.不然会造成很多配置错误的情况.尽量保证一次配置正确防止重复改动. 网上教程有非常 ...

随机推荐

  1. 0=='aa'的结果是true

    来源于一道面试题: PHP的类型转换规则 1.如果是一个数字与一个字符串进行比较,那么会把字符串转换为数字再比较 2.字符串的转换规则,若字符串以数字开头,则取开头数字作为转换按结果,若无,则取0

  2. 0x59 单调队列优化DP

    倍增DP太难啦心情好再回去做 poj1821 先让工匠按s排序,f[i][j]表示枚举到第i个工匠涂了j个木板(注意第j个木板不一定要涂) 那么f[i][j]可以直接继承f[i-1][j]和f[i][ ...

  3. hdoj--3072--Intelligence System(scc+缩点+数据去重)

    Intelligence System Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  4. day63-webservice 09.jquery调用ajax

    WebService可以有很多种调用方式,除了之前说的,还可以有jquery.拿原生的Ajax做调用,拿jquery怎么调用啊?原生的能调,jquery指定也能调.原生的Ajax是通过网页直接点HTM ...

  5. php处理传值为空

    if(isset($_GET['id'])){}else{}isset($_GET['id'])==null

  6. python 飞机大战 实例

    飞机大战 #coding=utf-8 import pygame from pygame.locals import * import time import random class Base(ob ...

  7. 访问修饰符相关注意点(protected子类友好)

    注意:protected表示只有在子类和同包中可以访问. 需要注意的是,在其他包中,若是创建了父类的对象,但是父类对象访问不了自己类里面用protected修饰的属性,只能由子类访问父类的protec ...

  8. SQL查询中选取某个字段的前几个字符的方法

    在统计某种数据名称是否存在规律时,可以通过group by进行统计,但是有时候存在钱几个字符相同,后面字符不同的情形.这样可以通过按照前几个字符串进行统计,SqlServer和Oracle中都可以使用 ...

  9. Ajax+Struts做登录判断

    Action类里: /* * 登录 */ public ActionForward doLogin(ActionMapping mapping,ActionForm form,HttpServletR ...

  10. html5和css3的笔记

    h5+c3 W3C盒子模型和ie盒子模型 文档<!DOCTYPE html>加上的话,所有浏览器都按照W3C的盒子模型,否则ie会按照ie的盒子模型,它的content包括了padding ...