MMORPG防掛機驗證圖像的生成

 

MMORPG防掛機驗證圖像的生成

                                                                                                                                           

需求:從字庫組中,隨機抽取四個漢字、字母或者數字爲一組,生成一個具有一定識別難度的驗證圖像;同時生成包括一個正確選項的四組備選項以供用戶選擇。

 

採用:開源代碼庫libCapt – http://code.google.com/p/libcapt/

This library generates 256x64 images with four random unicode character.

CAPTCHA is a type of challenge-response test used in computing to ensure that the response is not generated by a computer. Most captcha library is designed for website with script language like PHP or JSP. libcapt is writen by c++ language and designed to be as fast as possible. It can be used in MMORPG game server. libcapt have a gui tool(captUtil) to generate special font file(cpf file) used by libcapt. The cpf file is small and simple.

 

實現

libCapt的實現封閉不錯,使用庫帶的工具生成字體文件後,調用只要如下即可:

libCapt::Generator gen(&m_fontFile);

         gen.generateQuestion(m_question);

 

libCapt::Question中定義了驗證圖形和備選答案,可方便使用。

修改

對於MMO應用,驗證圖形生成不可過於固定,否則容易被簡單硬解。因此,需要對生成圖像的識別難度可以調整。這一目標可以通過如下幾種方法實現:

1>     調整噪點

//噪點數量

enum { NOISE_POINT_COUNTS = 100, NOISE_CURVES_COUNTS = 10};

可將其修改成配置變量;

2>     添加背景色或圖案,可離線製作一些圖案,實時隨機抽取若干,組合插值;

3>     修改字符繪製:

_drawCharacter

4>     修改

         _drawLine(imageBuf);

         _drawDots(imageBuf);

         _fillRandCurves(imageBuf);

         _blur(imageBuf);

         根據需要可以提供幾種上述繪製或模糊方案,讓策劃配置選擇。

 

示例:

 

說明:

         本文提出了基於libCapt的實現及擴展來進行MMORPG的防掛機驗證圖像的生成方法。可以快速實現並方便策劃配置,以滿足運營需要。

但是,防掛機驗證圖像並不是越難識別越好。難度加大,一是必然會需要更多的計算資源,以用於服務器計算驗證圖像;另一方面也會給普通玩家帶來較差的體驗。所以,如何真正地設計遊戲內容,讓玩家掛機行爲減少收益,纔是根本解決方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章