原创 NanoHttpd 單文件

 原鏈接:https://github.com/gseguin/NanoHTTPd/blob/master/src/NanoHTTPd.java import java.io.BufferedReader; import java.i

原创 new web game server

做壓力測試時,發現服務器性能還是很有問題,目前的瓶頸主要在兩個地方: 1 mysql;服務器是8核cpu,壓力大時mysql的cpu佔用率達到100%左右,我的理解是把一個cpu佔滿了。     php-fpm-slow.log裏面可以看

原创 u3d遊戲客戶端架構(---)

主要是mvc架構, M層爲數據層,兩個用途:1保存數據;2發送數據更新信息; V層爲視圖層,兩個用途:1接受用戶從界面上的操作;2根據M層的數據顯示相應的界面; C層爲控制層,兩個用途:1處理和界面無關的代碼邏輯;2接受和處理網絡數據;

原创 協程在遊戲服務器開發中的應用

之前在客戶端開發中,就發現了協程在代碼中的方便之處。比如我在獲取一個資源時,不使用協程的情況下,只能使用回調函數,代碼大致如下: void ProcessPic(string picName) { Pictrue pic = getPi

原创 mysql++ build recode

編譯mysql++時,報如下錯誤: ./ssx/genv2.cpp: In function ‘bool generate_ssqls2(const char*, const ParseV2*)’: ./ssx/genv2.cpp:70

原创 【轉載】 風格之爭:Coroutine模型 vs 非阻塞/異步IO(callback)

原帖地址: http://www.kuqin.com/system-analysis/20110910/264592.html 我們在設計一個服務器的軟件架構的時候,通常會考慮幾種架構:多進程,多線程,非阻塞/異步IO(callbac

原创 unity 2d 和 NGUI layer

在使用unity2d開發遊戲的時候,使用了NGUI作爲界面,本來二者配合得還挺好,但是一個使用場景出現了問題,就是一個ngui的sprite需要放置在unity2d sprite後面顯示,也就是用ngui得sprite作爲背景,結果發現替

原创 Game Server Build Record

language: c++ libararies: boost, pantheios memory manager: redis ------------------------- 分割線 ----------------------

原创 NeoAxis 學習筆記 3

動畫操作   在class Dynamic創建函數OnPostCreate()中初始化: protected override void OnPostCreate( bool loaded ) {     ...     CreateAn

原创 boost asio 需要使用智能指針而不能使用普通指針的原因

當使用asio做服務器時,需要一個會話管理器來管理所有的會話,類似下面這樣: class SessionMgr { private: boost::shared_mutex _rw_mtx; boost::unordered_ma

原创 web game server architecture

黑色的線代表socket長連接,橙色的線代表socket短連接,藍色的線代表數據處理流程 1客戶端發送數據包到boost ASIO server, 2server先將包發送到preprocess模塊處理;這個模塊是和遊戲邏輯關聯的,比

原创 遊戲中分層狀態機的實現

狀態機的實現方式有很多種,一般都使用比較簡單的switch case方式來實現對事件的處理和狀態的轉移,如下所示: void ProcessEvent(Event event) { switch(state) { case St

原创 轉載 linux/unix 段錯誤捕獲【續】

原文地址 http://blog.chinaunix.net/uid-26009500-id-1585783.html 一、出錯代碼在動態鏈接庫內時,原方法的輸出       有些情況下,我們會採用動態鏈接庫,如果出錯代碼行恰巧在動態

原创 設計模式在遊戲客戶端中的應用(一)

mvc不講了。說一個非常有用的:策略模式。 策略模式的思想在設計模式裏面寫的非常清楚,概括下來就是將行爲和行爲的實現分離。在head 設計模式這本書裏面講的例子也非常容易理解,基本上可以直接搬到遊戲中來。 如圖: 在遊戲中,玩家,怪

原创 jsoncpp 配置

由於需要將項目能夠在某平臺上跑起來,所以需要對服務器進行重新編譯,將boost庫版本降下來,比較悲催。 平臺是SUSE LINUX 10.1 首先是編譯jsoncpp,步驟如下: 1. 下載scons-2.2.0.zip,解壓得到sco