美文网首页
游戏引擎:通过配表的方式来完成游戏开发

游戏引擎:通过配表的方式来完成游戏开发

作者: 安宇辛 | 来源:发表于2018-12-27 14:53 被阅读0次

    一:目标

    1.合理的节约开发周期,减少重复劳动,逐渐实现固化逻辑

    2.实现程序开发新功能,策划通过配表来完成游戏开发

    二:思路

    1.我的这套引擎逻辑  借鉴了页游的一些思路,通关配表来实现游戏开发

    2.之所以选择cocos2dx开发  是因为coco2dx 前期采用了  代码和界面的绝对分离的做法 能够最大限度的缩短开发周期

    3.要让策划看的懂,就必须固化功能,减少程序冗余,精简逻辑结构

    三:如何实现

    1.如何实现通过配表来完成开发,简单说就是怎么把配表转成代码

    2.采用什么格式来存储这些配表数据

    3.尽可能简化配表属性,同时要完美的来实现用户的多操作。如,用户捡取道具的操作,可能会触发

         1.道具栏道具增加 2道具在界面上消失 3播放捡取动画 4实现一些特殊的功能(捡取钥匙 那么们机关这个时候 就应该可以被点击)

    4.因为逻辑是配表完成的,用户的操作具有不可控性 ,那么迫切需要断点保护机制,来防止用户的一些特殊操作,如强退游戏,导致存储数据混乱

    5.怎么实现复杂的用户交互机制  比如说机关

    四:最终实现

    1.本人总结有两种方式实现 1,通过plist来实现配表 ,2 通过excel来实现

    plist

       excel 实现 目前还不是很成熟 只能处理前端的层级关系 和关联 

       有兴趣的可以去看哈xlsx2json 是一个开源的项目

        https://github.com/koalaylj/xlsx2json.git

    2.本人采用的json来存储数据  json是目前很常用的数据格式

    3.简化代码,一个引擎可以这样简单

    全部的引擎文件

       通过66来标记用户是多操作  多操作处理逻辑通过数组来同步实现

    4.断点保护,采用的是和3A大作 一样的思路 ,通关节点来存储数据,用户强退游戏后可以恢复到用户存储数据时的状态

    5.因为机关的复杂性 采用的是代码和配表相结合的机制  type 表示机关类型 

    代码段 如下

     case 3://数字  0-9

            {

                CCLOG("机关正确%s",g_organPassword.c_str());

                if(button->getTag()==0) {

                    CCLOG("我点了OK,结果:%s", itemStr.c_str());

                    if(itemStr==g_organPassword) {

                        organEvents(g_organSucceed);

                        OrganScene::gameStop();

                    }

                }else{

                     SimpleAudioEngine::getInstance()->playEffect("Sounds/click-button.mp3");

                    intko =atoi(button->getTitleText().c_str());

                    ko++;

                    if(ko>9) {

                        ko=0;

                    }

                    std::stringnumeral =StringUtils::format("%d",ko);

                    itemStr.replace(button->getTag()-1,1, numeral);

                    button->setTitleText(cocos2d::StringUtils::format("%d",ko));

                }

            }

                break;

    五:成效  

    一个密室逃脱类的游戏 开发周期只需要五天  三天开发 两天测试 然后直接上线

    六:下期预告

    通过rapidjson来实现在coco2dx中来实现数据的存储和编辑

    相关文章

      网友评论

          本文标题:游戏引擎:通过配表的方式来完成游戏开发

          本文链接:https://www.haomeiwen.com/subject/itprlqtx.html