Home » 技术人生 » 页游C++登陆器 » 网页游戏登陆器总体设计

网页游戏登陆器总体设计

这一次,我接到的任务是用C++做一款网页游戏登陆器。

页游登陆器?作为一名专业的ActionScript3程序员,第一反应是,为什么不用AIR去做?《英雄联盟》的游戏登陆程序,就是用AIR做的!

尽管我很热爱AS,也很期待AIR可以发挥更多作用,但是这一次,页游登陆器,显然不能使用AIR,因为它必须在安装有AIR的机器上才能运行,总不能让玩家都来安装个AIR吧?

如果把AIR运行时,打包进微端登陆器,则必然导致微端文件大小增大。

思虑再三,C++登陆器,成为最佳选择!小巧快速,可独立运行!

以下是我构思的几种实现思路:

思路一   纯AIR制作

         内嵌AIR运行时,制作并发布EXE安装程序。游戏登陆界面直接通过Flex搭建,游戏直接通过loader进行加载后运行。甚至可以可操做本地文件系统,来创建游戏资源文件的缓存目录和版本管理,可以灵活控制本地缓存资源与游戏程序交互,无缝对接,可极大提高游戏的加载速度。当然,这需要游戏程序本身进行逻辑配合,增加了游戏逻辑复杂性。

         优点:我们页游本身是AS3开发,开发语言和开发工具再熟悉不过了,产出效率自然高!

          缺点:发布后文件大,需要安装,容易被破解。

思路二    C++制作

        C++程序,小巧快速,可独立运行!采用C++开发页游登陆器,页游两种实现方案:

        1、C++程序内嵌浏览器控件,并默认指向一个登陆Html页面。所谓的微端登陆器,就相当于一个定制的浏览器,外观华丽,功能简单的浏览器。

        2、C++程序绘制登陆界面、选服界面、通过activeX控件加载并运行游戏。这个思路现实起来,感觉工作量大,复杂度高。所以我最终选择了第一种方案,这也是市面绝大多数登陆器的实现方法。

       例如:

005731121002710567

《秦美人》的登陆器,就是一个封装了一个“浏览器”控件的程序+一个微端登陆Html页面。其登陆Html页面网址如下:

      http://q.37wan.com/game/loginexe.php

开发框架的选择

C++世界里,我不是很了解,刚开始的时候,装了个VS2010,然后新建了个VC++,然后使用VC++做了个登陆器,开发时只觉语法得怎么跟C#那么像,后来才发现自己用的VC++.NET进行的开发,所以必须在装有.NET FRAMEWORK的机器上才能跑起来,等于白做了。

后来了解一下,可以使用MFC框架进行开发,而不需依赖.NET FRAMEWORK。但是倒腾了半天,发现上手还是有点难度的。于是放弃了,开始寻求其他方案。

十分幸运的,让我发现了Borland公司发明的VCL框架!于是乎,下载了C++ builder 2010,费了老大劲,才安装成功。通过一个星期的努力尝试,终于把登陆器雏形开发完成。

开发过程中遇到的问题,总结如下:

1、不规则窗体的制作,并实现拖拽

2、TWebBrower控件,如何屏蔽滚动条,屏蔽右键,隐藏边框

3、如何多窗体进行切换

4、C++与Javascript如何进行交互

5、最小化,隐藏到系统托盘

6、清理浏览器缓存

7、自定义组件,实现多图按钮

8、位图变成资源,并平铺绘制到Tpanel控件上

9、利用UPX对发布后的EXE进行压缩

10、为发布后的EXE添加官方的数字签名

    分享到: