青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Fork me on GitHub
隨筆 - 215  文章 - 13  trackbacks - 0
<2016年11月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910


專注即時通訊及網游服務端編程
------------------------------------
Openresty 官方模塊
Openresty 標準模塊(Opm)
Openresty 三方模塊
------------------------------------
本博收藏大部分文章為轉載,并在文章開頭給出了原文出處,如有再轉,敬請保留相關信息,這是大家對原創作者勞動成果的自覺尊重?。∪鐬槟鷰聿槐悖堄诒静┫铝粞裕x謝配合。

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

相冊

Awesome

Blog

Book

GitHub

Link

搜索

  •  

積分與排名

  • 積分 - 220943
  • 排名 - 117

最新評論

閱讀排行榜

https://www.zhihu.com/question/20405300?sort=created&page=1
慶亮,廣州明朝,關注erlang/c/hadoop,輕微代…
Lonng、知乎用戶、liberal 等人贊同
@龐巍偉@貓糧 等同學的回答基本上都是點中關鍵點了,但是部分內容需要糾正下。

作為算是第一批Erlang應用于webgame(說是始作俑者也不為過)的家伙,補充點當年的實際決策情況,順便糾正幾個錯誤的認識,也算是自黑了不少:

PS:
1. 以下內容都是實際在09-10年工作期間的真實情況,但是會盡量少八卦
2. 選擇什么并不一定重要,做出選擇才重要
3. 文中如果戳中某些人痛點請不要罵娘
4. 目前還在游戲行業,頁游、手游領域都有涉及,Erlang也一路堅持了下來,大愛!
5. 沒深入研究過Erlang的同學,請不要瞎評論了,負點責任好嗎?搞得好像自己是個神,不管什么語言寫兩行就知道精髓了
6. 這不是個語言爭論的回復,請勿討論誰更好,但是歡迎討論各個語言的優劣勢以及如何揚長避短

  1. 頁游07-09,草根的春天
國內頁游從07年其實就有崛起之勢,特別是“五分鐘”團隊推出“偷菜”之后,大眾對游戲的態度慢慢開始改變,由抵制、打擊變為合理的接受。 然而由于webgame門檻低、前期市場規模小、天生基于web,造成了早期的webgame很多都是基于PHP、Java、ASP這些在傳統端游開發者看起來很不靠譜的編程語言(在珠三角以PHP最為主流),例如縱橫天下、熱血三國、商業大亨、彈彈堂、明朝時代等;順便提下漢森的《傾城》,Java前后端,在當時的視覺效果真的很好,可惜內部出了問題,源碼泄露、私服泛濫。

明朝時代截圖:


09年我來到《明朝時代》團隊時,覺得:我靠,太cool了,PHP居然能夠寫游戲?。。?居然!!!
===
呵呵,很多同學可能就會覺得“那是你沒見識,游戲的技術早就成熟了,你居然還在佩服這種低級玩意”;對,當時的確是沒有見識;但是更多的是當年作為一個新手(只有PHP自學的經驗)對技術的渴望 --- 技術追求的狂熱是被不應該被語言所限制的,就像愛情不分種族。但是不少同學最覺得只有學習C++才是有追求的【不喜勿噴,你可能不是,但是你看看周圍吧,多數的C++同學是這么思考的,等會我還會提個關于C++的八卦】。

這個時期頁游的特點:技術門檻底、SLG橫行、品質離端游差距巨大;由于這些原因,端游方面的人才基本都不愿意去搞頁游,非常能夠理解這樣的想法,因為感覺起來是一種技術倒退;不過就市場來說,產品需求至上,技術是否先進不能代表一切【理性思考方式之一:不要用觀點A的正確來證明B的錯誤】。


2. 09-10,我們遇到了問題,認識了Erlang,選擇了Erlang

在2009年大概是8、9月的樣子,我們看到一款游戲叫做《戰斧》(2.5D即時戰斗網頁游戲《戰斧OL》精美截圖曝光),這是一款09年的基于Flash的網頁ARPG,當時我們看到demo視頻的時候以為是一款客戶端(再次原諒我的淺薄,當時真的沒有想到網頁上可以做出來實時戰斗游戲),當時的心情是:我靠,太cool了(=_=!),我們TMD還在搞什么鳥的SLG,技術太落后了?。?!



2009年10月,《明朝時代》由于技術改進,引入了Ejabberd(erlang著名的開源聊天服務套件)作為游戲的聊天服務器,但是在使用過程中遇到了些技術問題,高潮來了:我們在不懂Erlang的情況下,嘗試修改Ejabberd的源碼,居然解決了我們的性能需求!當時我一方面佩服我當時的老大,一方面驚異于Erlang的神奇:要是C++端,有個10W行代碼,你敢隨便改嗎?

2009年11月,ECUG在杭州召開,我們幾個PHP都跑去膜拜各路大神,順便請教一下他們在Erlang方面的看法。 期間結識了 @余鋒 (不用介紹了吧) 立濤 @趙東煒 金尹 (這兩位是《Erlang程序設計》的譯者) @許式偉 (許總當年還沒有找到golang) 老范(erlbattle - 惡狼戰役->基于Erlang語言的實時技術學習平臺[Erl Base actual time technic learnning env.]) 侯明園、李杰、崔博、Python大媽(一開始沒認出來)一大批牛人以及周愛民老師。云風當時路過了下,沒有機會深入請教。



這次技術會議應該是我目前為止收貨最大的一次,當時聽了余老大的PPT基本一遍就記住了(不是懂了),后來請教了以上諸位牛人的建議(當然主要還是余老大給的信心),各位也坦言用Erlang必然會遇到些問題,但是說實話,哪門子語言對于我們來說不會遇到問題呢?因此考慮了如下幾點之后,我們選擇了Erlang作為服務端語言:
a. Erlang的入門真的很簡單(有同學說不簡單,那我沒辦法)
b. 不懂C++,Java呢又覺得臃腫
c. PHP當時有團隊驗證搞ARPG不太適合(c擴展方式我們也搞不定)
d. 網頁游戲當時“唯快不破”【當時的市場決定的】
e. 熱更新對于在測試、技術能力上偏弱的一幫人來說,吸引力太大
f. 1:1模型對于編程復雜度的降低有非常直接的幫助【呵呵,麻煩沒有實踐過的同學不要瞎批評好嗎?有時真的不太懂,你都沒有搞過,怎么就敢理直氣壯】
g. 天生分布式【誰用誰知道】

-----
根據 @bhuztez 的指正,用M:N的說法的確更合適,1:1其實是粒度的不同產生的說法,例如一個玩家一個網絡進程,就是1:1,但是一個玩家一個進程就不合適了,這個時候可能是1:N了。

八卦一:技術會議本身是開放的,大家有意見討論是正常的;ECUG杭州期間,Erlang主題的時候(忘記是哪位的主題了),兩位C++同學一開始是各自向演講者提問的,后來兩位直接爭起來了;隨著接觸C++同學越來越多,發現C++同學較為容易鄙視其他C++同學的做法,總是認為自己的做法才是符合C++的精髓;結果呢,高手本來就少,還很容易有鄙視鏈。 這個也是我對C++感覺心累的原因之一(我C++沒學好,就不去評論C++本身了)。

3. 10年,踩坑、填坑Erlang

2010.1.1 我們團隊4個人沒有放假,過來公司寫代碼,因為實在太興奮了---對于沒有寫過ARPG的人來說,這實在太讓人激動了!
我們參考了RabbitMQ的代碼結構和網絡部分把框架搭建起來了,基本上是三天左右,這期間還一邊在看書;使用了google protobuff作為通訊協議,順便修正了部分protobuff第三庫的一些bug,花了一周多時間;然后陸續花了2、3周的時間去做了幾個簡單功能,創建角色、登陸、場景、組隊、怪物、戰斗,我們把這個游戲demo稱為mgee(mingchao game engine of erlang version,哈哈,好掉渣的英語,當時以為自己能搞個引擎,其實是無知者無畏),至于流傳到了多少地方應該沒法統計了,有幾個三本學校開Erlang課程用的就是mgee作為基礎。

到了2010.2月X號,我忘記了,反正后天就是年30了,mgee作為demo已經完成了使命,我們壓測了一下發現只有500的承載能力,這個促使我們去了解跟多的游戲架構知識。

2010.3月,春節回來,我們團隊到處找人請假,當時征途團隊的技術負責人過來一次過廣州,但是比較可惜沒能有機會當面請教;后來呢,在網上找到一些資料,講的是征途、天龍、魔獸世界等游戲的架構(有些是作者猜的),附上一些圖給大家看下我們當年看到的資料:

天龍服務端架構思路:
bigworld:



QQ游戲大廳:

基于這樣的資料和我們自己的經驗,我們做了《明朝傳奇》,在線最高到了3100。這期間我們搞明白了1:1該怎么用,mnesia該怎么用,哪些東西是Erlang可以搞得定的(除了怪物尋路,其他邏輯都是基于Erlang),最終明白了一個道理:用不用的好看你個人,語言的約束對群體有效,對個體不一定有效(類似統計與概率),我們從來不鼓吹別人去用Erlang(大家為什么用Erlang,我們只能算是開了頭,不是鼓吹者),我們只是告訴你,用Erlang也可以用得好。

4. 2011-2012年,Erlang服務端框架簡化

當時幾個事情促使了我們再往前一步:
a. 明朝傳奇的代碼我們搞的太復雜,開發和運行效率都不夠高,代碼難以掌握
b. 當時光環的 @達達來討論如何一機多服,給我們帶來了思路上的很大沖擊:成本控制
c. 頂端的Erlang不好培養

基于上面的原因,我們希望新的erlang服務端框架有如下特征:
a. 簡單、簡單到發指, @謝廷寶 當時大寶推薦了一種服務端設計的簡單標準:有語言經驗的人就能看得懂(并非100%掌握),也就是說看到API知道怎么寫功能。 這里可能有人會吐槽了,你把框架搞的這么強,那些新人能學到什么? 呵呵,源碼在內部是100%開放,每周都有內部分享來分析現有的實現的優缺點,每個人都可以在經過審查后修改核心實現,為什么會限制新人呢?總有些人討論問題喜歡偷換概念,也喜歡指責別人自己做不到的事情。

b. 性能高,上面龐巍偉同學提到的2000在線是不對的,當時捷游的夢幻飛仙過了4700(不分線、回合);而我們的《仙落凡塵》則是不分線ARPG的情況下到了4300(4399 1服),就當時的CPU和內存使用情況來說,1/3的資源不到。(當時沒有辦法了,游戲地圖設計的不夠大,玩家進入游戲后實在太擠了)

在原則a的指導下,新人花三天看書、3天寫點入門代碼,1周的確是可以去寫點簡單的功能的。(在珠三角的同學歡迎當面來討論驗證)但是如果你要求1周就能多么熟悉、深入,這誰也做不到。

4. 2013-2015,Erlang在內部算是真正的落地

真要讓一門技術變為解決方案,光靠堅持不夠,我們在內部也做了一些事情來幫助Erlang在內部至少可以形成簡單的生態群:
a. 成立虛擬的Erlang框架引擎組,負責在各個項目組之間同步優秀代碼、統一基礎框架、剝離業務抽象邏輯【由于這邊的文化氛圍,推進起來相對容易】
b. 剝離公用非游戲專用服務,例如mlog(通用日志服務)、mbd(通用大數據服務)、mchat(通用聊天監控服務)、mservice(通用托管服務),提供給各部門各項目使用

這樣,配合少量開源庫,基本上能夠做到快速穩定高效,也不會那么容易遇到技術瓶頸,技術的應用方向也不會太狹隘。

5. 一點總結

a. 用了Erlang接近5年,越是深入越是覺得Erlang神奇,集中點還是Erlang的設計哲學,這里推薦一篇文章: Erlang的調度原理(譯文)來了解下。
b. 我從c/php/erlang一路走過來,算是對編譯型、腳本、函數式語言有個比較橫向的了解,推薦時間較寬裕的同學深入學學Erlang,不一樣的哲學會極大的豐富你的世界觀,影響你的方法論(好吧,看起來有點雞湯了)
c. 像分布式、熱更新等都是非常重要的基礎設施,真正的高手自然不需要,但是你是否需要這些還是可以判斷的(多數人并非天才)
d. 感謝 @余鋒 這樣的人一直在堅持,總有人會讓你覺得感動,感動于他們的堅持、分享,世界并非非黑即白,而是多姿多彩。Erlang、C++、C、PHP、Scala都是一部分。
e. 你或者你們團隊用不用Erlang,要看你或者你們團隊的經驗、產品需要、職業發展、成本等來綜合考慮,并不是一句話能夠說明的清楚的。而我只是想說一般來說,堅持能解決大部分問題,沒有多少所謂的彎路,Erlang和C++等語言誰好誰壞也不是一句話能定論的。

6. 其他補充


a. 當年的游戲服務端demo:qingliangcn/mgee · GitHub
posted on 2016-03-14 17:12 思月行云 閱讀(2291) 評論(0)  編輯 收藏 引用 所屬分類: Erlang
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久综合九色九九| 亚洲主播在线观看| 久久人人97超碰精品888| 亚洲福利视频在线| 在线视频一区观看| 亚洲精品资源美女情侣酒店| 欧美高清视频在线 | 亚洲欧美日韩国产另类专区| 1024国产精品| 亚洲国产影院| 亚洲欧美日本国产有色| 一区二区三区国产盗摄| 亚洲欧美一区二区激情| 亚洲一区二区精品在线观看| 亚洲宅男天堂在线观看无病毒| 亚洲欧美日韩精品| 久久国产天堂福利天堂| 欧美成在线观看| 亚洲精品一区二区在线| 在线午夜精品自拍| 小黄鸭精品aⅴ导航网站入口| 久久久蜜桃精品| 欧美高清在线视频| 国产精品日韩欧美一区| 亚洲国产成人午夜在线一区| 国产精品国产三级国产aⅴ无密码| 欧美一区二区三区婷婷月色| 欧美视频在线一区| 在线观看91精品国产入口| 亚洲视频视频在线| 亚洲第一福利在线观看| 欧美在线黄色| 国产色婷婷国产综合在线理论片a| 中日韩美女免费视频网址在线观看| 亚洲激情黄色| 欧美一级欧美一级在线播放| 欧美日韩一区二区三区四区五区| 日韩系列欧美系列| 久久久久久9999| 精品成人一区二区| 久久久99爱| 亚洲视频电影在线| 欧美高清不卡| 99re66热这里只有精品3直播| 亚洲激情视频在线| 欧美日韩亚洲另类| 美女精品在线观看| 乱码第一页成人| 韩国v欧美v日本v亚洲v| 欧美一级黄色网| 久久国产视频网站| 亚洲伦理久久| 亚洲精选大片| 国产精品一区久久久久| 欧美激情一区三区| 欧美色中文字幕| 久久精品二区亚洲w码| 久久中文精品| 欧美怡红院视频一区二区三区| 久久免费精品日本久久中文字幕| 韩国v欧美v日本v亚洲v| 亚洲精品一品区二品区三品区| 欧美午夜精品久久久久久浪潮| 亚洲自拍电影| 欧美激情网友自拍| 久久久精品五月天| 欧美美女福利视频| 欧美成人免费全部| 国产视频一区欧美| 久久野战av| 亚洲国产精品99久久久久久久久| 欧美性大战xxxxx久久久| 亚洲第一在线综合网站| 免费在线播放第一区高清av| 久久在线视频| 免费成人av| 国产色产综合产在线视频| 99精品视频免费观看| 亚洲每日更新| 欧美激情二区三区| 久久一区精品| 国产性做久久久久久| 亚洲欧美日韩第一区| 欧美一级理论片| 国产精品视频久久一区| 日韩一区二区久久| 亚洲性视频h| 国产专区欧美精品| 久久久久综合网| 亚洲国产精品精华液2区45| 日韩视频在线你懂得| 久久深夜福利免费观看| 久久蜜桃资源一区二区老牛| 亚洲精品自在久久| 国产精品爽黄69| 亚洲视频一区二区在线观看| 夜夜嗨av一区二区三区四季av| 欧美刺激性大交免费视频| 亚洲国产精品成人| 午夜久久一区| 亚洲精品一区二区三区婷婷月 | 亚洲网站在线看| 亚洲精品免费网站| 国产女主播一区二区三区| 国产精品久久久久久久午夜片| 欧美日韩小视频| 国产精品一二三| 国产女人水真多18毛片18精品视频| 亚洲精品免费在线| 亚洲免费一在线| 亚洲精品综合精品自拍| 欧美久久精品午夜青青大伊人| 亚洲第一网站| 亚洲特级毛片| 国产精品无码专区在线观看| 亚洲欧美bt| 欧美日韩亚洲一区二| 亚洲图片欧洲图片av| 毛片av中文字幕一区二区| 亚洲日本成人网| 最新中文字幕亚洲| 9色精品在线| 欧美一区二区免费视频| 9久re热视频在线精品| 久久久久久久久久久久久女国产乱| 亚洲视频中文| 欧美国产日韩亚洲一区| 久久综合影视| 国产欧美大片| 亚洲另类自拍| 亚洲精品欧美精品| 久久免费偷拍视频| 久久久国产亚洲精品| 国产精品理论片| 亚洲精品视频免费在线观看| 亚洲国产综合视频在线观看| 久久精品视频网| 久久精品亚洲| 国产日韩欧美中文| 亚洲欧美在线网| 久久精品五月婷婷| 国产在线拍偷自揄拍精品| 亚洲欧美日韩成人| 性欧美1819性猛交| 国产精品丝袜91| 性欧美xxxx视频在线观看| 欧美一级一区| 国产午夜精品一区二区三区视频 | 久久岛国电影| 久久人人爽人人| 一区在线电影| 美女性感视频久久久| 亚洲国产欧美久久| 亚洲巨乳在线| 欧美日韩在线播放一区二区| 亚洲视频精选| 久久亚洲视频| 日韩一级黄色大片| 国产精品高精视频免费| 性欧美暴力猛交69hd| 美女国产一区| 久久手机精品视频| 欧美日韩在线免费| 在线视频你懂得一区| 欧美专区在线观看| 亚洲第一精品电影| 欧美日韩不卡视频| 午夜激情亚洲| 欧美激情精品久久久久久免费印度| 亚洲美女视频| 国产伦精品一区二区三区免费迷| 久久亚洲综合色| 在线视频你懂得一区| 免费久久精品视频| 亚洲伊人一本大道中文字幕| 激情欧美丁香| 国产精品爱啪在线线免费观看| 久久久国产成人精品| 亚洲美女在线看| 免费成人性网站| 午夜精品影院| 一本色道久久综合亚洲精品按摩| 国产婷婷色一区二区三区| 欧美精品粉嫩高潮一区二区 | 久久久久久网站| 一区二区三区欧美亚洲| 国产真实久久| 国产精品系列在线播放| 欧美精品在欧美一区二区少妇| 欧美自拍偷拍午夜视频| 一本色道久久88精品综合| 免费在线亚洲| 久久国产精品免费一区| 亚洲视频一区二区免费在线观看| 在线看片成人| 狠狠干综合网| 国产伦精品一区| 国产精品九九| 国产精品久久久久久户外露出| 欧美激情在线播放|