plain framework 1(简约框架)一款主要用于网络(游戏)开发的C/C++框架 即将开源发布
在我们的日常开发中,我们往往会遇到这种情况,当我们换了一个开发环境时很可能会重新利用一套新的框架进行开发。由于不同框架有着不同的接口,所以我们不得不花时间再次熟悉这些接口,这将造成开发时间上的重复,而对于一个程序来说又经历了一段重复造轮子的过程。在游戏开发领域,我介入的时间并不太长,大约三年时间。抱着对于游戏的热爱和激情,在这几年时间里也是一个苦苦摸索的过程。我们国人有着这么一个通病,那就是所谓的“闭关自守”,我发现有些开发者是拥有了一套代码之后便利用这套代码可以玩转整个游戏界。我能了解这些朋友的心情,而且的确也是这么一个现象,因为市场的需要,我们不得不利用可以利用的一切资源,否则没有“时间”。而且自己拥有这套代码之后,身价也随着提高,这也是实现自身价值的重要途径之一。可是凡是有利则有弊,当我们“闭关自守”的时候,我们就会失去某些东西,那就是交流,没有交流我们的进步便会显得十分吃力。从10年开始,我开始研究天龙服务器的构架,那个时候虽然没有源码,服务端/客户端最多只能看到lua,而且后来这些都加了密。之后几年又看了包括天龙在内的畅游、麒麟、金山的一些构架设计,最令我欣赏的是金山西山居的朋友们,代码之规范早已超越了曾经的毒霸、翻译软件。13年末,由于第一个游戏项目快要接近尾声,这段时间闲了下来,我也开始不断整理思路,利用曾经的代码重写了天龙/武侠世界的核心代码。对我来说重写是学习的过程,自然也就存在许多的问题。过后plain framework就诞生了……
诞生缘由
虽然在上面我也说了一些plain framework的一些来由,但是最终诞生的原因却不得不好好谈一下。我在工作中主要是进行服务器开发,早就想弄一套属于自己的底层框架,但是总认为这个需要时间。而就在这时,项目的压力使得我为了实现此目的的心情更加的迫切。所以第一个框架完完全全是针对服务器的,那个时候我取名为plain server(简约服务器),实现了该框架后,随之而来我便又重整了思路,想将客户端的一些需求也整合进来,所以这才更名为plain framework(支持跨平台)。
开发标准
因为框架是完完全全利用C/C++开发的,就不得不提一下C/C++的标准了。现在最新的标准是C99/C++11,似乎也有许多朋友采用该标准进行开发,因为其语法够简洁的原因。但是也有其问题,那就是编译器版本兼容的问题,只有最新的编译器才能支持。plain framework为了适应不同编译器的支持,特别是针对vs系列的支持,采用了伪C99/C++98的标准。
那么什么是伪C99/C++98标准呢,其实就是在这里用到了C99的一些好的标准,而实际还是最原始的标准,这样就算再旧的版本也能支持编译了。
参考手册
一个框架必须要有参考手册,参考手册的编写也务求简洁明了,但是这是一个比较繁琐的过程,作为该框架的参考手册正在编写过程中。在编写的过程中,在开源框架之后在我的博客内大家可以留意一下,这些参考资料会先同步到博客之上。如需尝鲜的朋友们,切不要错过。
详细的描述、丰富的示例将让大家快速掌握框架:
成员招募
如果你也对开源知识比较感兴趣,如果也对网络应用或者网络游戏感兴趣,如果你也对该框架感兴趣,你可以加入我们的QQ群()。
欢迎大家进群相互交流学习,同时也欢迎各位朋友对该框架供出自己的一份心力。
plain framework 1(简约框架)一款主要用于网络(游戏)开发的C/C++框架 即将开源发布的更多相关文章
- plain framework 1 一款主要用于网络(游戏)开发的C/C++开源框架 安装篇 updated
上次介绍了一下plain framework的基础相关资料,今天该框架正式开源发布.项目的地址托管于github上,我相信大多数朋友都应该知道.今天要介绍的是该框架的目录基本结构,以及分别在linux ...
- plain framework 1 参考手册 入门指引之简介
简介 简介 能做什么? LINUX WINDOWS 简介 简约框架(plain framework)是一款基于C/C++开发的,跨平台(windows/linux)应用的基础框架,开发者可以利用此框架 ...
- 程序设计模式浅析(plain framework商业版设计模式)
程序设计其实对程序开发者来说十分重要,但是在工作中往往我们却忽略了这一块,因为我们所用的都是现有的模式.一个设计模式的好坏,往往能够体现出程序的专业性,还有整个项目的可持续性.这就是为什么有些公司,在 ...
- plain framework 1 参考手册 入门指引之 模块
模块 总述 基础 数据库 引擎 事件 文件 网络 性能 脚本 系统 工具 总述 上图为plain framework(简称简约框架)所有的模块,包括基础.数据库.引擎.事件.文件.网络.性能.脚本.系 ...
- plain framework的实际应用和扩展
首先在这里庆祝香港回归祖国的怀抱25周年,想起那年还是一个小学生戴着红领巾和胸章激动不已,实现祖国的统一是每个中华儿女从小的梦想!趁着这欢庆的日子,突然想要写些什么,其实最近也在做一些事,由于工作繁忙 ...
- plain framework 商业版 开发总结2 项目管理器
任何事情都有三个阶段,分析.制作.质检的过程.在程序中就分为设计.编码.调试(测试)三个阶段,其中设计最为重要,设计的不好会导致编码和调试重复,甚至最后又回到了设计的过程.为了不会重复返工,所以设计的 ...
- plain framework 1 1.0.3更新 优化编译部分、网络压缩和加密
有些东西总是姗姗来迟,就好比这新年的钟声,我们盼望着新年同时也不太旧的一年过去.每当这个时候,我们都会总结一下在过去的一年中我们收获了什么,再计划新的一年我们要实现什么.PF并不是一个十分优秀的框架, ...
- plain framework 1 版本更新 1.0.2 增加打包插件
由于个别因素,该框架的文档没有及时的更新到博客上,但是离线的文档已经完成.本次更新对框架来说显得比较重要,因为在文档的编写过程中经过再次的阅读代码修复了不少错误,最主要的是统一了整个框架的标准风格.对 ...
- plain framework 1 参考手册 入门指引之 代码风格
代码风格 介绍 介绍 框架自身采用了google的C++风格,作者也鼓励在你的应用中使用此风格,有关此风格你可以查阅相关资料了解.下面是一段plain framework中的代码,以便大家参考: 你可 ...
随机推荐
- Web 上传图片加水印
上传图片加水印 需要使用控件FileUpload 上传按钮Image控件展示上传的图片,页面中拖入三个控件 <form id="form1" runat="serv ...
- 【C#】ConcurrentBag<T> 方法
转载自MSDN. ConcurrentBag<T> 类型公开以下成员. 方法 显示: 继承 保护 名称 说明 Add 将对象添加到 ConcurrentBag<T> ...
- spring aop配置出错
Multiple annotations found at this line: - schema_reference.4: Failed to read schema document 'http: ...
- JSON总结(java篇)
JSON总结(java篇一) JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于 ...
- Java基础学习 -- 接口
interface是一种特殊的class 接口是纯抽象类 所有的成员函数都是抽象函数: 所有的成员变量都是public static final; 接口是为了方便类的调用 一个类如果要去实现某个接口, ...
- Elasticsearch初步使用(安装、Head配置、分词器配置)
目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 1.ElasticSearch简单说明 a.ElasticSearch是一个基于Lu ...
- 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十)态势标绘模块
config.xml文件的配置如下: <widget label="态势标绘" icon="assets/images/impact_area_over.png&q ...
- 网络分析之networkx(转载)
图的类型 Graph类是无向图的基类,无向图能有自己的属性或参数,不包含重边,允许有回路,节点可以是任何hash的python对象,节点和边可以保存key/value属性对.该类的构造函数为Graph ...
- AD RMS 配置指南 附结合SharePoint使用
本文的 RMS配置 是独立安装的配置手册,如果要和SharePoint结合使用可以作为参考指南. SharePoint安装可参考 点击链接 同样可提供给Office使用,当然Exchange也可以使用 ...
- 用Kotlin开发Android应用(III):扩展函数和默认值
这是关于Kotlin的第三篇. 原文标题:Kotlin for Android (III): Extension functions and default values 原文链接:http://an ...