我之前進入要玩,其實很大一部分工做仍是在提高c++的編程技能、多進程通訊、遊戲邏輯 這幾方面的學習研究;整我的的視野和思惟還定位於程序開發 和 程序設計;說的簡單點,就是如何將一個程序代碼寫好,沒有機會、時間和精力 擴寬認知視野和深度。
離職後,接觸了遊戲開發和互聯網 兩大領域的面試。在遊戲開發方面,會更多涉及服務器框架,也就是端遊的框架啊,加一些腳本啊,用一些現成的框架;還好,主要可以知曉數據流的處理便可,很大的一個緣由是,面試公司通常都有本身的一套框架,進入後熟悉下就能上手,剩下的各類時間,就是堆邏輯、堆功能;另外,通常的遊戲公司受於投資的壓力,會趨向於快速開發成本,不多有研究性的態度 -- 像我之前的一些遊戲公司,直接要求玩家人數累積達到一千人、不管是否活躍,就開新服,咱們coders 哪有激情澎湃去深造 -- 也許這也是形成我在更高層面的成長較薄,累積的知識業務邏輯經驗 -- 不過,一步一個腳印兒,至少要能增值。
另外是大型互聯網公司,也主要問框架,但都會涉及容災、擴展機制。我能答上的,就是一個世界服務器 全權掌管各個場景服務器的生死;可是萬一這個單點的世界服務器宕了呢?場景服務器又如何維護玩家數據的試試有效性呢(例如按期存盤)等等,雖然如今有不少解決方案,但當時面試時,只能忽悠。
後來一段時間的研究才發現, 其實遊戲服務器框架,也是分佈式的一種,只是一直我視野較窄:如今才知道 redis、nginx 在遊戲開發方面的好處,不管是框架仍是 coding 複雜度,要是早前我只會以爲,nginx就是開發網站用的嘛,跟遊戲有什麼關係;也知道 爲何之前會有人用 php、java寫遊戲服務器,固然現在我開始選擇 golang 了;更重要的是,memcached、hadoop、openstack、redis 都已經提供了很好的分佈式、大數據、負載均衡方面的解決方案,此前公司和本身都只是在造輪子。
個人想法是,若是仍是作遊戲開發,那也要在心態認知上,將它做爲互聯網產品來作,不少實現可參考現成的解決方案,而非僅僅是作遊戲。