在游戏服务器开发中,跨平台不是必须的。线上游戏既有windows下的C++、.Net服务器也有linux下的C++、go、erlang服务器。但是无论如何都要保证开发环境和线上运行环境的一致,否则不同平台的问题可能引发致命的后果。

很多人希望使用windows开发,以使用其便利的开发环境,然后在linux下运行,使用其强大的运维系统。我以前也有这种想法,不过实践证明这绝对是个bad idea。为什么呢,咱们不妨看一下这种开发环境:



开发机用于程序员开发测试,而测试机用于内部压力测试,发布机则是外网测试机器。由于windows系统的单用户特点,不同用户的隔离效果并不好,开发机和发布机可能使用个人版和server版的windows,而且单机运行多组服务器程序对运维不是很友好。如果同时还要保证linux版本的运行效果,则需要另外搭建一组测试机和发布机,这都是成本。关键问题是开发流程管理起来就是两套模式,容易出错。

下面再来看一组linux的开发环境:



这种环境我也用过,感觉非常简洁容易理解,我们只需要购买一台强大的中心服务器,即可保证所有开发者共享高性能的运算能力。这种开发环境还有一个好处,就是主开发机可以使用管理员账户统一配置开发环境,新增用户不必安装各种开发工具、各种配置了。用户配置文件如.bashrc .vimrc等都可以放在svn上更新即可。发布过程也可以由管理员操作,避免误操作。这都是得益于linux的权限管理功能。

另外一些要注意的环境配置:

内网一定使用固定IP+网线直连,保证网络稳定快速。

成员之间通信使用内网通之类的软件,也是为了保证通信效率和安全。

注意svn分组管理权限,防止误操作。

代码提交之前必须要codereview,否则一个人的bug可能会迭代几个版本之后才出现,容易隐藏起来,且很难回退到正确的版本。

C++服务器linux开发环境管理的更多相关文章

  1. Linux开发板(树莓派)和服务器进行双向通信(socket)

    前言 ​ 物联网是目前嵌入开发必备的属性之一,我们常常需要把自己开发板和云端进行交互,本篇博文就记录一下. ​ 使用Socket来实现Linux开发板和服务器进行双向通信,Python中是默认集成了s ...

  2. 用Windows+VirtualBox搭建嵌入式Linux开发环境

    Windows+VirtualBox的嵌入式Linux开发环境的搭建 最近一直在学习Linux的设备驱动编写,一直是在物理机上安装的Ubuntu进行的,但是在Ubuntu12.04的系统中,已经不能用 ...

  3. 熟悉linux开发环境(实验)

    北京电子科技学院(BESTI) 实验报告 课程: 深入理解计算机系统 班级: 1353班 姓名:张若嘉 杨舒雯 学号:20135330 20135324 成绩: 指导教师:娄嘉鹏 实验日期:2015. ...

  4. 嵌入式Linux开发——内容介绍与开发环境的搭建

    嵌入式Linux开发步骤 设计自己的硬件系统 编写Bootloader 裁剪自己的Linux内核 开发移植设备驱动 构建根文件系统 开发应用程序 嵌入式Linux学习要点 熟练使用开发工具和相关指令集 ...

  5. Linux开发工具的使用

    1.   Linux开发工具的使用 Vim编译的使用 Gdb调试工具的使用 Makefile的编写 linux跟踪调试 SSH的使用 subversion的使用 1.   Linux开发工具的使用 V ...

  6. 嵌入式linux开发之工具------tftp

    我在嵌入式linux开发中用到tftp的地方主要有2个方面: 1.是在嵌入式目标板启动时,bootloader启动时通过uEnv文件,下载dtb文件和kernel文件: 2.是在嵌入式目标板启动后,通 ...

  7. 利用 WSL 在 Windows下打造高效的 Linux 开发环境

    WSL-Windows Subsystem for Linux 介绍 The Windows Subsystem for Linux lets developers run Linux environ ...

  8. 《嵌入式Linux开发实用教程》

    <嵌入式Linux开发实用教程> 基本信息 作者: 朱兆祺    李强    袁晋蓉 出版社:人民邮电出版社 ISBN:9787115334831 上架时间:2014-2-13 出版日期: ...

  9. 服务器(Linux) 安装python3

    1.python3和python2可以共存,不用删自带的python2 服务器Linux下默认系统自带python2.6的版本,这个版本被系统很多程序所依赖,所以不建议删除.如果使用最新的Python ...

随机推荐

  1. Session之考勤

    昨天初步的调侃了一下cookie,希望看官能够有更轻松愉快的学习和进一步的思考应用. 小编今天突然听到人事怨声载道,原来已多日未进行打卡考勤,虽是弹性工作,也颇有不好意思,决定明日改过,进门刷卡.灵机 ...

  2. 关于java函数参数的修改能否带出来

    结论 1. java的8个基本类型,无论是简单类型(比如int)还是类类型(比如Integer),传到形参里的变量,在函数体内修改之后是带不出来的. 2. String类型也是带不出来的. 3. 数组 ...

  3. String源码

    /* * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETA ...

  4. Redis需要你来做的算法优化

    阅读一个优秀的Server内核实现,早期的代码比后期的代码要好得多.因为在早期的代码里,你可以学习到一个黑客级别的程序猿到底在思考什么.同时,你能看到他哪里写得差劲,以及后来是怎么优化的. 如果你一心 ...

  5. java笔记9之switch

    switch语句的注意事项:        A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的        B:default可以省略吗?            可以省 ...

  6. ubuntu14.04 安装

    summary: a). the way in the internet just a sugestion, I must to do it  in my own hands, yes ! just ...

  7. Linux系统下查看某文件修改的时间戳

    Linux系统下查看某文件修改的时间戳查看文件时间戳命令:stat awk.txt File: `awk.txt' Size: 20              Blocks: 8          I ...

  8. [转] shell文本字符串处理

    第一种方法:#%*,#即截取变量前的字符(左向右截取),%表示截取后面字符(右向左截取),*匹配符 var=foodforthought.jpg ${varible##*string} 从左向右截取最 ...

  9. [转] JSON for java入门总结

    一.JSON介绍 JSON(JavaScript Object Notation),类似于XML,是一种数据交换格式,比如JAVA产生了一个数据想要给JavaScript,则除了利用XML外,还可以利 ...

  10. Activity内部Handler引起内存泄露的原因分析

    有时在Activity中使用Handler时会提示一个内存泄漏的警告,代码通常如下: public class MainActivity extends Activity { private Text ...