QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3245|回复: 32

我想写个网络游戏……[有demo啦~快来啊~]

[复制链接]
发表于 2005-2-3 16:25:12 | 显示全部楼层 |阅读模式
我想写个网络游戏,具体的想法请看下面的这个帖子:
http://bbs.gameres.com/showthread.asp?threadid=22369

这两天我做了点设计,对于服务器端,主要的游戏循环如下:
[code:1]
while(running){//网络消息得使用一个循环队列来管理buffer以提高对网络速度变化的适应能力
        poll();
        for(every_connection){
                if(want_read && could_read){
                        read();
                        if(read_completed){
                                set_msg_flag_for_解析器();
                                set_want_read_flag(false);
                        }
                }
                if(want_write && could_write){
                        write();
                        if(write_completed){
                                set_want_write_flag(false);
                        }
                }
        }
        for(every_listener){
                if(acceptable){
                        accept(); set_poll_data();
                        new_connection();
                }
        }
        for(every_空间区域_of_OcTree){
                进行所有物体的各坐标轴碰撞组检测();//参见《游戏编程精粹2》第2章第7篇《递归逐维分组:一种快速的碰撞检测算法》
                for(every_碰撞组){
                        for(every_simobj){
                                检测并生成所有关于当前对象的碰撞事件();//?实现?优化?
                                处理所有关于当前对象的碰撞事件();//?物理碰撞的模拟运算
                        }
                }
        }
        for(every_simobj){
                if(msg_flag_setted){
                        处理消息();
                        set_want_read_flag(true);
                }
                if(有外界送来的需要传送的数据 && !want_write){//那些由仿真对象自己产生的要发出的消息在产生时就会被发出,这里的“外界送来的需要传送的数据”指的是外部发生的事件、广播事件等
                        将数据送入buffer();
                        set_want_write_flag(true);
                }
        }
        for(every_simobj){
                update();//更新所有被动状态属性
        }
}
[/code:1]
客户端暂时还没考虑好~不过一开始不准备做得太复杂,效果也不用太好,所以一开始准备用SDL~
另外还有个服务器端的数据解构的示意图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2005-2-3 17:01:42 | 显示全部楼层
欢迎大家一起讨论合作~~~~~
另外,目标平台:
server:linux
client:linux & windows
如果顺利的话最好实现用户认证、服务器互连等特性,当然这都是后话了~
回复

使用道具 举报

 楼主| 发表于 2005-2-4 15:21:48 | 显示全部楼层
晕啊~没人感兴趣吗?
回复

使用道具 举报

发表于 2005-2-4 16:13:00 | 显示全部楼层
我不懂这个,呵呵
从头开始写吗?还是有现成的引擎?
回复

使用道具 举报

 楼主| 发表于 2005-2-4 16:21:14 | 显示全部楼层
呵呵~
是从头开始写~
不过这次我不指望一开始就能做出个多么出色的游戏来~对我来说,能在寒假结束前做出一个可以正常运行的东东来我就很满意了~
回复

使用道具 举报

发表于 2005-2-4 16:28:18 | 显示全部楼层
加油啊
回复

使用道具 举报

 楼主| 发表于 2005-2-4 16:47:16 | 显示全部楼层
谢谢鼓励~
回复

使用道具 举报

发表于 2005-2-4 18:36:02 | 显示全部楼层
支持!加油!!
回复

使用道具 举报

发表于 2005-2-4 20:42:38 | 显示全部楼层
加油啊
回复

使用道具 举报

 楼主| 发表于 2005-2-6 14:29:07 | 显示全部楼层
现在有个物理问题……
比如有两个物体,我知道他们碰撞时的质量、位置(三维座标),空间姿态(分别绕xyz三个轴旋转的角度),速度(三维向量)、加速度(三维向量),另外还有包围球的尺寸、模型的三角形顶点数据(如果是3D游戏的话)、图片的位图数据(如果是2D游戏的话),在检测到它们发生了碰撞时,我希望知道碰撞过程中这两个物体各自受到的冲量(三维向量),但是不知道该怎么判断……我想对碰撞时对旋转的影响进行模拟会很困难,但是即使不考虑对旋转的影响我也不知道该怎么算……
我想做的游戏里会有可运动的飞船、炮弹、空间站等物体,需要模拟它们的运动和碰撞,而且要能模拟出那种……怎么说呢,比如说两个飞船,如果相对速度不大时发生碰撞不会有什么大问题,但是如果相对速度很大就会完全撞毁……

只要算出碰撞的两个物体在碰撞前后各自的动量改变量就好办了,但是到底改变多少还要看有多少动能的损失……我现在思维僵在这想不下去了……
回复

使用道具 举报

 楼主| 发表于 2005-2-15 20:31:03 | 显示全部楼层

最新Demo!

最新Demo!
需要: SDL+OpenGL(不过并不一定要装显卡的3D驱动;-)
我是用Kdevelop、C++开发的,但是项目文件打包后有1Mb多,所以上传不上来
操作,键盘上的三个方向键,左是向左旋转,右是向右旋转,上是开动引擎……
这个只是个demo,千万表install阿~

Readme:
SpaceHunterDemo
        --a demo of spacehunter

    这是一个小游戏的小小demo,这个demo演示了运动模拟、碰撞模拟等一些基本元素,还有我的设计的拙劣(如果你看我的源代码的话;-)。
    刚才所说的小游戏是我所想要做的一个游戏,基本的描述是……
            2D网络游戏(C/S结构),基于SDL+OpenGl,以Linux平台为主;
            游戏中,玩家扮演一名科幻时代的pilot,在茫茫宇宙、空港、空间基地与星球所构成的世界中的生活和冒险,(一名或多名)玩家可以控制一艘飞船,飞船可以安装和升级各种设备(包括推进系统、武器系统、电子系统如雷达之类、生命维持系统等),当然前提是能够买到或者……抢到…… ^_^!
    我希望能够把这个游戏做出来,给企鹅们添加一点快乐,也添加一种交流的渠道;-)。当然这需要很多人的努力,所以为了给自己一点鼓励,更重要的是为了让大家看到进展,所以我做了这个demo……嘿嘿~happy hacking~


                                                sjinny<[email protected]>
                                                2005年2月15日星期二  01:06:47


News:
2005年2月15日星期二  01:09:28
    重于把增加了场景管理的最新版调试通了,故特完善文档以为庆贺~ :->


Todo:
碰撞检测
仿真系统

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2005-2-17 21:21:50 | 显示全部楼层
我顶……
回复

使用道具 举报

 楼主| 发表于 2005-2-20 18:00:27 | 显示全部楼层
我顶~~~~~~~~~~~~
回复

使用道具 举报

发表于 2005-2-20 19:45:47 | 显示全部楼层
configure: error: cannot find install-sh or install.sh
回复

使用道具 举报

发表于 2005-2-20 19:47:49 | 显示全部楼层
加油,努力
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-5 19:42 , Processed in 0.054652 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表