三体吧 关注:494,349贴子:7,464,522

“史诗”级宇宙科幻大型多人在线网络游戏:《黑暗森林》

只看楼主收藏回复

之前有不少大佬编制模拟黑暗森林的程序,我也来凑个热闹。但是与“文明分类、物竞天择”的思想不同,楼主直接采用用户操控文明,一举解决了“人工智能文明决策系统僵硬”的问题。同时也供广大吧友茶余饭后消遣之用


IP属地:江西1楼2019-05-27 11:39回复
    游戏整体理念参考《三体I》中的思想,将尽量大的信息量压缩在精简的规则系统中。游戏规则将在稍后放出。


    IP属地:江西2楼2019-05-27 11:40
    收起回复
      2025-07-27 11:52:17
      广告
      不感兴趣
      开通SVIP免广告
      (这是游戏核心算法的一部分,控制舰队搜索敌方单位)


      IP属地:江西3楼2019-05-27 11:41
      回复
        eclipsejava玩家呀


        IP属地:上海来自Android客户端6楼2019-05-27 12:58
        收起回复
          收藏了,有进度了记得at我


          IP属地:广东来自Android客户端7楼2019-05-27 14:09
          回复
            有游戏?


            来自Android客户端8楼2019-05-27 14:13
            回复
              @[url]http://某叶怕怕[/url],目前游戏“核心算法”(话说这是我在体吧看到的一篇文的名字)已经全线竣工,C/S结构(客户端/服务器结构)的通信也可以运行,但是仍然存在很多问题和Bug。最关键的,在于服务器和客户端的操作都使用命令行,难看也就罢了,美其名曰“简洁冷峻”,关键java的命令行程序不能双击运行。。。而且输出会打断指令输入
              不过,楼主当年第一代黑暗森林游戏的时候,客户端用上了swing(小声:通过swing做了个输入输出分开的命令行。。。),这次在学习Unity3D,相信不久的将来就能用上。


              IP属地:江西9楼2019-05-27 21:18
              回复



                这是目前游戏“界面”的样子,未来肯定会有极大的改观。。。
                第一、第三张是客户端,中间是服务器。


                IP属地:江西10楼2019-05-27 21:24
                收起回复
                  2025-07-27 11:46:17
                  广告
                  不感兴趣
                  开通SVIP免广告
                  为了做到“把复杂的游戏内涵压缩在尽量简单的规则中”楼主在规则的设定上下了一番功夫。先总结如下
                  (用方括号[]括起来的是java有关的内容,不影响阅读):
                  游戏基本单位——文明单位(Civilization_Unit):
                  文明单位是游戏的基础,[是下面两个关键单位的父类,它是“抽象”的,所以本身并不可以创生]。它有三大基本属性:科技(technology),资源(resource)和人口(population),简称“TRP”。这三个简单的[双精度浮点]变量以一种复杂的方式互相关联,具体方式在以后会讲到。总之,这三个属性是游戏的核心。


                  IP属地:江西11楼2019-05-27 21:33
                  收起回复
                    游戏的关键单位——星球(Planet):
                    星球是玩家的“基地”,[是文明单位的子类,所以]也具有“TRP”三个属性。每一刻(tick),资源会消耗,消耗量正比于人口,科技也会发展,发展量也正比于人口。当资源小于等于零,星球会进入休眠,资源不会消耗,科技也不会发展(科技支援——一个以后会讲到的机制——除外)。


                    IP属地:江西12楼2019-05-27 21:38
                    回复
                      @某叶怕怕


                      IP属地:江西13楼2019-05-27 21:39
                      收起回复
                        顶 话说父类之类的玩意是你这个有点像JAVA工程案例教程。。。


                        IP属地:北京来自Android客户端14楼2019-05-27 22:22
                        回复
                          要是老哥你搞出来了那一定得支持啊


                          IP属地:浙江来自Android客户端15楼2019-05-28 00:02
                          回复
                            谢楼主,,收藏了


                            IP属地:河北来自Android客户端16楼2019-05-28 18:47
                            回复
                              2025-07-27 11:40:17
                              广告
                              不感兴趣
                              开通SVIP免广告
                              游戏的另一个关键单位——舰队(Fleet):
                              舰队[是文明单位的另一个子类,所以]也具有TRP(科技、资源、人口)三大属性。同时,舰队具有星球所不具有的一大特点:可以移动。(星球是不可移动的),舰队的移动用xyz三个方向的[双精度浮点]分量表示。每一个tick,游戏将xyz三个坐标分别加上三个速度分量。
                              当舰队的速度(矢量)改变时,系统会计算改变所需要的速度变化量(delta-v),这个变化量乘上舰队的人口就是所需的冲量(假设无论科技等等,舰队的质量正比于人口)。这个冲量再乘上一个常数,就是舰队变轨所需要的资源。这个资源将在舰队的资源中减去。如果舰队资源不够,[方法会抛出一个FleetTransferException],舰队不会尝试变轨并保持原轨道。


                              IP属地:江西17楼2019-05-28 20:00
                              收起回复