原创 LPEG庫簡介

LPEG是一個供lua使用的基於 Parsing Expression Grammars 的模式匹配庫,這篇文章只是講其如何使用,並不涉及底層如何實現。 LPEG 的函數主要分爲三類,第一類是創建Pattern的構造函數,第二類是 Cap

原创 重視工具腳本的健壯性

flsg在最近遇到過兩個問題,第一個問題是內網更新後端表格的腳本,在把策劃目錄表格複製轉碼到程序目錄時,時不時的會出現大規模複製錯誤,文件混亂的問題。檢查腳本文件,發現邏輯也很清晰,先svn更新策劃表格,然後將整個策劃目錄轉碼並複製到程序

原创 linux下top文檔瀏覽

命令行參數 top -hv | -bcHisS -d ++delay++ -n ++interations++ -p ++pid++ [,pid…] -b : Batch mode top只執行有限次數,由 -n 指定或者直到被kill

原创 遊戲服務器日誌雜談

簡介 我們遊戲服務器是使用異步請求的方式來執行玩家的每一項操作,現在的日誌系統主要記錄了服務器接受到的網絡消息已經發出的網絡消息,最近在修正bug時發現了現在log策略的一些缺陷,導致定位問題困難。 返回值 玩家的每個請求都有失敗的可能,

原创 回調函數與狀態清理

最近公司有個同事在做模型移動時發現了一個奇怪的bug,就是移動完成之後再移動帶下一個點不會生效,而且這個bug可以穩定重現。但是他搞了兩天都沒找到原因,我便抽了個時間幫他看了看。 最後發現是回調函數和狀態清理沒有處理好,moveover函

原创 遊戲項目中的資源加載管理

簡介 資源加載時的恢復與暫停以及緩存 資源加載的相關處理 資源路徑 優先級處理 發佈事件 資源加載未完成與完成時的處理 總結 簡介 資源加載主要需要注意以下幾點: 資源加載時的緩存,停止,恢復 資源加載時的處理 資源加載未完

原创 gdb 調試string

更透徹的理解還需要看stl得具體實現 #include <assert.h> #include <iostream> #include <string> #include <vector> using namespace std; i

原创 在使用actor模型的遊戲後端框架中添加單元測試

一直在思考如何在flsg這個使用Actor模型的後端頁遊框架中加入單元測試。   單元測試 首先,我們要定義單元和測試這兩個概念。通常單元都是指以類爲單位, flsg中也不例外,但是由於flsg使用actor模型,我們可以將一個actor

原创 win7 64bits opencv2.4.6+vs2012配置

一、到opencv官網下載opencv2.4.6 windows版本,運行解壓到D:\\opencv\\opencv 二、打開vs2012,創建控制檯項目 平臺改爲x64; 包含目錄中添加D:\opencv\opencv\build

原创 enable_shared_from_this

簡介 當在項目中使用shared_ptr來管理對象時,會面臨一個很尷尬的問題,如何從對象中獲取指向它的shared_ptr? 直觀的寫法如下? return shared_ptr<T>(this); 但是這麼寫會造成對同一個對象創

原创 c++ stl容器 vector詳解

一、簡介      順序容器是擁有單一類型的一個有序集合,vector ,list(雙向鏈表),queue(隊列);      關聯容器支持查詢一個元素是否存在,也就是對元素進行排序的容器,map(映射),set(集合)。map 每個元素

原创 AS3.0 中的 變量回收機制

簡介 簡單地來說,AS3.0 中的變量回收機制可以用一句話概括,當對象在程序中不能被訪問到時,其就會被垃圾回收所標記,但不會被立即回收。當程序所佔空間達到極限時,可回收的對象纔會被回收。 策略: Incremental Mark and

原创 服務器開發過程中關於計時器的處理

簡介 遊戲服務器開發過程中經常會需要使用計時器來觸發相應的事件,這篇文章主要是將什麼時候需要使用計時器,什麼不是不需要使用計時器,以及對於用一個例子來說明一些關於計時器的處理。 需求描述 我需要開發一個活動,該活動分爲三個階段,第一階段爲

原创 flash中幀動畫的處理

簡介 遊戲中使用的幀動畫源文件是一張大圖和一份xml描述文件,大圖是美術用打包工具將模型動作的每一幀去除空白區域後粘在一起形成的,xml描述文件描述了每一幀在大圖中的位置及大小,以及被切除的空白部分的信息,具體如下圖: 上圖以B爲定點

原创 sproto parse方法解析

一 簡介 sproto是雲風設計的一個客戶端服務端通訊協議,設計思想可以看雲風的blog, 其實現中提供了一個sproto.parse 方法, 可以將sproto的schema描述文件轉變爲二進制字符,這樣,項目中只需要使用轉變後的二進制