原创 把項目從VS2005升級到VS2013

小斯同學花了幾周的時間,終於把我們的服務端和客戶端從vs2005升級到vs2013了。真是不得不給個贊。升級的過程中遇到了各種問題,小斯同學跋山涉水、越過艱難險阻終於成功讓我們用上了高大上的宇宙第一IDE——vs2013。所以這裏我順帶把他

原创 Lua使用os.date函數也要小心

前段時間,在給我們遊戲服務器寫lua的腳本的時候,發現了一個奇怪的現象,一段lua代碼只要一執行就把服務器給搞掛了,仔細分析了一下,發現這段lua代碼並沒有執行什麼特別的操作,甚至都沒有跟我們服務器的C++層交互,僅僅只是使用lua自身的一

原创 Lua陷阱(基礎篇)

最近這段時間雖然很忙,但是去年有很多想要說,想要寫的東西都沒有拿出來。一個考慮是自己思考不成熟的內容,拿出來會對大家產生誤導,但是我發現越是深挖就越發覺自己理解的淺顯和片面,就越不敢拿出來和大家交流了。後來我想通了,人非聖賢,怎麼可能句句真

原创 使用浮點數的方法擴充整數範圍

lua 源碼中有很多巧妙的構思和設計,今天我又發現一處讓我不禁拍案叫絕。作者把一個 8 位的整型數通過模仿浮點數的格式擴充了整數的表示範圍。先來看這段巧妙的代碼:/* ** converts an integer to a "floatin

原创 2014年GoogleIO首頁計時

GoogleIO大會現在可以開始註冊了,雖然比宣佈的要晚一天,但是依然讓人期待,雖然像我這樣的中國大陸區的程序員無法前往舊金山一睹google的風采,但是我們還是可以瞻仰一下googleIO頁面的嘛:https://www.google.c

原创 當我設計遊戲服務器時,我在想些什麼?(2)

半年前我參與了一個手遊項目,第一次能夠主導整個遊戲的設計,這篇文章單說服務器的架構,客戶端就不提了。對於服務端,我想從之前的端遊服務器改過來肯定是走不通的(詳見:),因爲手遊的開發週期比端遊短很多,上面那一套架構開發了5年不止,當然,期間推

原创 常見SQL注入

id=1 and 1=1 id=1 and 1=2 id=1 and db_name()>0 id=1 and user>0 id=1 and (select count(*) from xx)>0 id=1 and (select cou

原创 quick-cocos2dx實現戰爭迷霧

因爲在和策劃討論的時候發現遊戲需要一個戰爭迷霧的效果,本來想到一般rts遊戲的那種,但是手遊不需要那麼好的效果,之前我玩過一款《熱戰聯盟》,然後還看到一個《文明變革2》的手遊,出現了戰爭迷霧的效果,猜測了一下製作的方法,應該是用不同的雲霧圖

原创 我的友情鏈接

熊毅aifreedom王垠雲風Matrix67leadingyu阮一峯的網絡日誌似是而非依雲卑鄙的t.k.遙遠的街市考據癖zrong

原创 js中bind、call、apply函數的用法

最近一直在用 js 寫遊戲服務器,我也接觸 js 時間不長,大學的時候用 js 做過一個 H3C 的 web 的項目,然後在騰訊實習的時候用 js 寫過一些奇怪的程序,自己也用 js 寫過幾個的網站。但真正大規模的使用 js 這還是第一次。

原创 線性同餘生成隨機數的一點思考

今天下午 pk 和我討論了一個問題,他看到在另一個項目組的 lua 代碼裏有一段使用線性同餘產生隨機數的代碼,但是那個項目組的同事告訴他這個函數生成的隨機數是分佈不均的。於是他想到了我前兩天給他講的關於 lua 裏 % 這個取餘數的符號跟

原创 最大子序列積

今天跟項目經理聊完天,正好不要再操心項目的事情了,閒來沒事就去看了下leetcode,發現又多了一題:https://oj.leetcode.com/problems/maximum-product-subarray/因爲朋友面試的時候正好

原创 js中bind、call、apply函數的用法

最近一直在用 js 寫遊戲服務器,我也接觸 js 時間不長,大學的時候用 js 做過一個 H3C 的 web 的項目,然後在騰訊實習的時候用 js 寫過一些奇怪的程序,自己也用 js 寫過幾個的網站。但真正大規模的使用 js 這還是第一次。

原创 當我設計遊戲服務器時,我在想些什麼?(4)

我興高采烈的把我的架構圖發給一個有經驗的前輩看,他指出來,也許不需要這麼多邏輯進程。聽他這麼說,我想到這麼早就把邏輯強行拆開給設計帶來了不必要的複雜度,也沒有讓架構更加優美,甚至這種拆分可能是不必要的,過早的邏輯拆分就跟提前優化代碼一樣,都

原创 當我設計遊戲服務器時,我在想些什麼?(1)

機緣巧合的機會,我有幸能夠從頭開始設計一個遊戲的服務器。中間遇到很多歡聲笑語和悲傷淚水,這裏分享一下。我之前所在項目組的遊戲服務器架構如下圖:這款遊戲是一款MMO的端遊,GateWay網關的任務是接受客戶端的連接,然後通過分發策略,把玩家丟