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群(348477824)。

欢迎大家进群相互交流学习,同时也欢迎各位朋友对该框架供出自己的一份心力。

时间: 2024-10-26 17:28:29

plain framework 1(简约框架)一款主要用于网络(游戏)开发的C/C++框架 即将开源发布的相关文章

unity3D 游戏开发之工程代码框架设计思路MVC

unity3D 游戏开发之工程代码框架设计思路MVC 设计目的 1.使工程结构更规范. 2.提高代码可读性,封装性,拓展性 3.提高工作效率. 正文内容: 1.Frame的组成结 (1)视图层(View) (2) 控制层(Control) (3)数据层(Model) 整个Frame是由这三个部分组成,每一层管理属于自己的逻辑,核心思想是游戏逻辑和UI 逻辑独立开.目前遇到的项目工程大多数View和Control逻辑都写在一起,这样后期修改 和维护效率会很低,因为耦合性很高而View又是经常要修改

基于J2EE平台下SSH2+JBPM4.4+ExtJs4.1 框架整合&项目实战(HR项目开发、SSH2作为框架)

对这个课程有兴趣的朋友可以加我的QQ2059055336和我联系 课程讲师:ANDY 课程分类:Java 适合人群:中级 课时数量:46课时 用到技术:Extjs.SSH2.Mvc 涉及项目:HR项目用户管理.Extjs树形结构.流程接口 更新程度:完成 课程包含了以下主要的技术面:前端采用Extjs4.x:后台使用目前中小型开发较为常用的SSH2作为框架,囊括了JBPM4.4工作流引擎.课程经由基础学习向高阶跨进,一步一步介绍了前后台的关系,以及前后台的整合.JBPM的整合等等,都是属于目前较

plain framework 1 一款主要用于网络(游戏)开发的C/C++框架 安装篇

上次介绍了一下plain framework的基础相关资料,今天该框架正式开源发布.项目的地址托管于github上,我相信大多数朋友都应该知道.今天要介绍的是该框架的目录基本结构,以及分别在linux以及windows平台上安装的例子.为了让初学或者技术不是太扎实的朋友也能快速上手,我在这里一步步从开发环境的搭建讲述到第一个比较完整的示例(网关服务器),每一步都是今日从空白的系统开始及时操作,由简入深,如果大家不太明白请到交流群询问.(新的系统centos7.0及以上我的脚本暂时无法通过环境安装

开发者必须mark的一款2D移动游戏开发工具

摘要:灸热的夏季渐行渐远,凉爽的秋季迈着轻盈的脚步悄悄来到我们身边.站在初秋的窗前,凝望着远山.白云,总会心生很多遐想,总会有百感交集的情愫浮上心头.我想我是喜欢这个季节的."早上好"."今天又堵车了",伴随着同事们的说话声,突然意识到,额.我神游了--咳咳.步入正题,小编今天跟大家分享一款轻轻松松便能够实现2D画面动态光影的开发工具--Sprite Lamp. 何为Sprite Lamp? 开门见山,Sprite Lamp是一款能够帮助游戏开发者将2D画面与动态光

【译】什么是游戏开发实体系统框架(一)

什么是游戏开发实体系统框架(一) 原文链接:http://www.richardlord.net/blog/what-is-an-entity-framework 原文很长,译文将分开几部分,此为第一部分. 上周我发布了Ash(一个Actionscript 游戏开发的实体系统框架),后来很多朋友问我说:“什么是实体系统框架(entity system framework)?”.下面是我对此做出的非常长的解答(译者注:确实有些啰嗦...): 实体系统目前已经越来越流行,比如众所周知的Unity.较

spring boot框架学习6-spring boot的web开发(2)

本章节主要内容: 通过前面的学习,我们了解并快速完成了spring boot第一个应用.spring boot企业级框架,那么spring boot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定义消息转换器呢?怎么自定义spring mvc的配置呢?这些我们在公司都需要用的.这些怎么解决呢?在接下来的小节详细讲解这些.好了,现在开启spring boot的web开发第一节 本节主要: 1:InternalResourceViewResolver讲解 2:自动配置静态

spring boot框架学习7-spring boot的web开发(3)-自定义消息转换器

本章节主要内容: 通过前面的学习,我们了解并快速完成了spring boot第一个应用.spring boot企业级框架,那么spring boot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定义消息转换器呢?怎么自定义spring mvc的配置呢?这些我们在公司都需要用的.这些怎么解决呢?在接下来的小节详细讲解这些.好了,现在开启spring boot的web开发第一节 本节主要: 1:自定义消息转换器 本文是<凯哥陪你学系列-框架学习之spring boot框架

plain framework 1 参考手册 入门指引之简介

简介 简介 能做什么? LINUX WINDOWS 简介 简约框架(plain framework)是一款基于C/C++开发的,跨平台(windows/linux)应用的基础框架,开发者可以利用此框架快速的开发出需要的系统应用,如通信服务器,游戏服务器/客户端等的核心. 能做什么? 框架集成了数据库的操作.脚本的操作(lua).线程的操作.网络的封装,丰富的的接口使得能够满足绝大多数的应用开发.该框架主要针对网络应用,特别是游戏开发(服务端/客户端). 你也可以扩展框架以便实现更多的功能. 如果

程序设计模式浅析(plain framework商业版设计模式)

程序设计其实对程序开发者来说十分重要,但是在工作中往往我们却忽略了这一块,因为我们所用的都是现有的模式.一个设计模式的好坏,往往能够体现出程序的专业性,还有整个项目的可持续性.这就是为什么有些公司,在经历了若干年后忽然重写整套代码的原因,因为他们会发现在越来越多的需求的情况下,以前那些设计模式完全不能满足了,或者说程序的复杂度和维护成本实在太高.最近我又看到了一个公司的项目设计,文档中写的还算优秀,可是整体的框架设计总觉得还有差强人意.那么我们又该怎样来设计我们的程序,怎么减少维护代码的成本,怎