webGL,websocket,nodeJS做的3D的多人在线游戏

    希望路过的朋友们能够帮帮忙……
    先说一下自己做的这个东西吧,我把它开源了并托管在github上,源代码地址在 这里 ,它大概长这个样子…… ,最左侧是聊天系统,可以缩放到左下角,聊天系统支持广播和私聊两种方式,要先输入昵称才能进入聊天室,点击右侧昵称切换到私聊,点击右侧牛头换到广播(这奇葩的操作,我是怎么想的……)支持键盘操作,比如0-9切换枪,·键弹出系统菜单,空格跳跃,wasd行走等等,源码里有详细说明。
    webGL这一块是用的Three.js这个开源库,包括模型的解析等,模型也是Three.js的例子上提供的,后台用的nodeJS,静态文件服务器跟websocket服务器没写在一起,websocket是用的nodeJS的socket.io模块,主要处理多人在线时的消息传输,先在这里感谢一下开源社区。
    这个作品一眼看上去感觉效果挺好的,刚把这个东西做出来的时候也挺开心的,但是它存在很多的问题:
    1.效率低下 。因为要解析这个比较复杂的3D模型,所以在开始初始化的时候很容易导致浏览器崩溃。而且这个东西是前段时间通宵赶工赶出来的(那段时间郁闷极了才会这么逼自己),整个系统的结构,代码的结构,操作流程等等都没有怎么去考虑,只想赶快做出这个东西,所以有很多地方不合理,就比如支持多人在线这一块,本来应该是当有用户加入的时候动态生成一个3D模型,但是当时花了好久去弄,总是生成了一个没有纹理的模型,还不支持添加的键盘操作,然后很烦躁的把代码改成了一开始就初始化5个模型(所以多人也就最多5个人了……),然后有用户加入的时候把他们显示出来,真是坑爹……
    2. 只支持chrome 。只在chrome 19+做了实验,firefox问题不大,就是后来写css3动画的时候没有考虑firefox,IE就……
    3. 存在一些已知或未知的bug 。系统健壮性比较差,服务器偶尔会崩溃。现在github上的版本有点已知的bug还没有修改。
    4. 代码结构不好 现在主要的逻辑都放在html文件里面了,还有不少的全局变量什么的,曾经想用seaJS模块化,但是失败了,因为事情比较多就没有继续尝试。
    5. 作品方向不能明确 。这是最坑爹的,我一直在考虑webGL的前景以及这个作品未来的定位,webGL实在是不够成熟,自己做这个东西以后的方向是什么,自己有时也说不清楚。大一的时候看到有学长用openGL做了类似魔兽争霸的3D的游戏(效果什么的还是差很多,但是觉得确实做的很棒),但是被学院的教授们批评的体无完肤,就是因为作品方向的问题,我想现在我也遇到了类似的问题了吧……
    所以很希望有喜欢类似的作品的朋友提出建设性的意见,或者直接拿这份源码进行进一步的开发,只要这个作品能有用途就好。
    简单说一下搭建服务器环境吧,server文件夹里面的server.js是静态文件服务器,要注意路径问题,start.js是websocket服务器,注意端口号。常规方式启动就好了,control_s.html里面的websocket服务器地址修改一下。
    因为最近校园招聘比较多,这段时间奔波于各种宣讲会和笔试之间,按照以往的经验,一个项目放下一段时间后怎么也提不起兴趣再扩展了,所以也促成自己决心开源,不能让这个作品就这么烂尾了。当然里面吸取了很多开源的精华(虽然作品不咋的),也当作回馈开源社区,以后做出更好的作品还是会选择开源的。在拿到正式工作的offer前估计是没多少时间写代码了,希望社区的对这个感兴趣的大神们能对那些问题进行优化或者有建设性的意见,小弟不胜感激!最近这段时间专心于校园招聘,最多修改一点小bug,也请多包涵。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值