聽著名服務端主程講座有感

2021-09-23 21:15:01 字數 654 閱讀 4373

前些日子,乙個著名頁遊服務端主稱做了一次演講,有幸在台下聆聽了這位主程的演講。已經過去一段時間了,偶爾還是會跟同事們講起聽到了什麼,學會了什麼,故做一次總結。

講座持續了近兩個小時,講了做伺服器構架方面的方方面面,我不能一一陳述,就講我感受最深的兩點記下來於各位分享

1: 伺服器端最影響效能的乙個功能就是區域廣播; 就是玩家在行走或者打鬥的過程中要將自己的狀態廣播給周圍的玩家,通常這個範圍是電腦螢幕大小的區域,因為各個玩家螢幕大小相異,故這個範圍要略大於普通電腦螢幕。

實現這個有兩種方法:

1. 遍歷本地圖的所有玩家,目標玩家和本玩家的距離,如果在範圍內,則廣播給相應的玩家。

2. 將地圖劃分稱乙個乙個小格仔,確保九個格仔的面積大於電腦螢幕的面積,玩家在走動或者打鬥是即使重新整理自己的所在的區域,並將自己的狀態廣播給本身所在的格仔內和周圍的八個格仔內的所有玩家。

2.  影響服務端效能的另乙個主要的功能就是怪物的ai,怪物的ai是靠定時器即使重新整理的,以便根據自身的情況即使改變自己的狀態,比如是巡邏、攻擊、追擊、返回等,幾乎一款遊戲有很多的怪物,怪物的行為不一值,所以需要新增的定時器也很多;我們優化的方向是當怪物巡邏時,我們將定時器的間隔設定的長一些,當怪物收到攻擊之後,我們將怪物ai的定時器設定的短些。

初此之外,還講到了許多其他的東西,比如網路組包、定時器的實現等,下次再談吧。

python中使用epoll開發服務端程式

python import socket,logging import select,errno logger logging.getlogger network server def initlog logger.setlevel logging.debug fh logging.filehand...

python中使用epoll開發服務端程式

python import socket,logging import select,errno logger logging.getlogger network server def initlog logger.setlevel logging.debug fh logging.filehand...

Python網路程式設計服務端程式和客戶端程式

一 服務端程式 匯入模組 import socket 建立例項 sk socket.socket 定義需要繫結的ip和埠 ip port 127.0.0.1 8888 繫結監聽 sk.bind ip port 最大連線數 sk.listen 5 提示資訊 print 正在進行等待接收收據.接收資料 ...