太阳神三国杀吧 关注:38,361贴子:468,974

【考古】关于太阳神三国杀v3

只看楼主收藏回复

入坑神杀也有三四年之久了,最近对神杀v3做了一些考证,姑且发在贴吧和大家分享一下好了


IP属地:湖北1楼2023-09-26 12:41回复
    今天是9月26日,8年前的今天神杀身份版v2发布了最终版本。如今估计等不到20230926版了,就发一个神杀相关的贴子暖暖吧内氛围好了。


    IP属地:湖北2楼2023-09-26 12:45
    回复
      一、关于神杀v3
      ===================
      关于v1和v2的缘起我尚且不清楚,但是总之目前吧友们玩得到的最新版本就是所说的神杀v2版。因为某些原因神杀v2版停留在了Qt 5.5版本,对后续的开发和更新工作都有不利,因此神杀开发组Mogara内部筹划着开发一个新框架以取代老旧的神杀v2,此谓神杀v3


      IP属地:湖北3楼2023-09-26 12:49
      收起回复
        从技术角度而言,神杀v3采用的是Qt 5 + Qt Quick(相较于神杀v2采用的已过时的Qt Declarative而言),并且使用Mogara开发的卡牌游戏库Cardirector进行着卡牌游戏本身的开发;实际上神杀V3和Cardirector似乎是并行着开发的。项目开源在Github中,开发组成员也是使用Github进行协作的。


        IP属地:湖北4楼2023-09-26 12:51
        回复
          由于种种原因,神杀v3项目最终进入了停滞状态。我最近把项目clone了下来并进行编译了,下面带大家看看神杀v3(开发中)的全貌吧。


          IP属地:湖北5楼2023-09-26 12:52
          回复
            二、神杀v3的编译运行
            =======================
            应该没人对编译感兴趣,我们只看结果。
            从技术角度而言,v3相对于v2还是做了不少努力的,比如摆脱了fmod、积极使用新版本的Qt、增加了游戏大厅等等。然而开发者们仍然缺乏对整个游戏规则的详细解读,结算角度上还用着与神杀v2相近的思路。
            顺便一提,神杀v3不使用Lua。关于它的AI体系以及拓展之类的种种,我们放后面说。


            IP属地:湖北6楼2023-09-26 13:08
            回复
              这是神杀v3刚刚点进去之后的启动动画。可见它依然沿袭着QSanguosha这个名字——背负着神杀的荣耀(什

              这是神杀v3在加入服务器或者单机启动之前的待机界面。不过在开发版本中,只有加入服务器、启动服务器和单机启动三个按钮可以点击。(不能说和神杀国战非常相似只能说一模一样)


              IP属地:湖北7楼2023-09-26 13:10
              回复
                点击“启动服务器”的话,窗口就会像神杀一样进入服务器的日志界面。

                点击“加入游戏”的话,会要求提供服务器地址和用户名。

                成功加入服务器之后,就自动进入大厅了。屏幕左侧就是当前所有房间的列表了


                IP属地:湖北8楼2023-09-26 13:17
                回复
                  这是从大厅加入了房间但是房间还未启动时的场景。(单机启动的情况下会自动创建房间并加入)

                  玩家可以在这里添加电脑、设置游戏模式和人数等等。当然了,还可以聊天。
                  虽然游戏模式(Game Mode)那里写着身份和国战,但好像只能玩国战。而且国战似乎也并不完善(至少人机如此)


                  IP属地:湖北9楼2023-09-26 13:26
                  回复
                    三、神杀v3的简要分析
                    ======================
                    神杀v3不使用Lua。相比较之下,Mogara可能认为Qt Quick自带的JS引擎足以成为拓展用的语言。不过嘛,在开坑后的很长一段时间之内,各种武将还是用cpp实现的。实现思路也与神杀国战并无什么显著的区别。都是一些对于看过神杀源码的人相当熟悉的文件了。
                    但Mogara在Ai方面,选择使用了JS作为AI引擎。具体我也没有深究,总之知道AI暂且用的是JS就行了。


                    IP属地:湖北11楼2023-09-26 13:31
                    回复
                      但是又到了后来,Mogara认为JS的潜力非常大,于是他们着手将游戏逻辑也全都用Qml+JS重写。Git仓库里面的另一个分支就是qml/js重写游戏逻辑的工作分支。到这里为止神杀v3就陷入了鸽的状态。
                      也正是因为这次重构行动,直接用dev分支的代码编译出来的游戏是没法运行的。我还得先切换到上个commit才能编译运行。如图,从VERY BIG CHANGE那个分支之后,整个游戏就进入了重构-鸽的状态。


                      IP属地:湖北13楼2023-09-26 13:35
                      回复
                        不过Qml本身其实是Qt推出的用来制作UI的语言,用来制作服务端逻辑的话未免有些不妥,毕竟大多数服务器进程都是运行在没有gui的情况下的。可能mogara当时着手重构时并没有想到这点,抑或是被神杀v2启动服务器的思路限制住了。
                        既然用qml制作游戏逻辑,那么自然就有跑的起来的道理——毕竟启动服务器也要点一下那个按钮才能启动嘛。只不过这样一来,命令行启动服务器的路就被彻底堵死了(神杀v2的话其实是可以命令行开服的)


                        IP属地:湖北14楼2023-09-26 13:38
                        回复
                          最后总结一下时间线:项目的初次提交在2015-01-22,最后一次提交在2016-07-20。也就是说15年年初立项,16年暑假左右就鸽掉了。与之一同鸽掉的自然还有Cardirector,不知道原本开发组的大佬们看到这里有何感想呢?


                          IP属地:湖北15楼2023-09-26 13:40
                          回复
                            四、我与神杀v3
                            ================
                            接下来就说说关于我自己的事情好了,为啥我会注意到神杀v3,以及为何要去编译它。


                            IP属地:湖北16楼2023-09-26 13:41
                            回复