【HLSDK系列】HL引擎入門篇
如果你打算拿HL的源碼(也就是HLSDK)來改出一個自己的遊戲,那你就非常有必要理解一些HL引擎的工作方式。
HL引擎分成兩個部分,服務端和客戶端。服務端管理所有玩家的狀態和遊戲規則,客戶端負責顯示UI和特效…之類的。
我們一般不對引擎本身(hw.dll sw.dll swds.dll)做什麽手腳,因為我們沒有源碼,但是HL引擎開放了一些服務端和客戶端的接口,
讓我們可以定制自己的服務端和客戶端,做成自己的遊戲。
服務端接口和客戶端接口都作為一個單獨的DLL模塊,我們可以自己修改這兩個DLL,因為我們有源碼!(就是HLSDK)
服務端模塊放在 dlls\ 目錄裏,客戶端模塊放在 cl_dlls\ 目錄裏,這兩個目錄名字對應 HLSDK 裏的項目名字。
HLSDK\dlls 項目編譯出來就是 mp.dll 或者 hl.dll ,cl_dlls 項目編譯出來就是 client.dll
我們可以認為開發 mp.dll 就是開發服務端,client.dll 就是客戶端。只需要修改這兩個模塊,就能做出讓你心滿意足的作品。
我的文章裏提到的服務端都是指 mp.dll ,客戶端都是指 client.dll
【HLSDK系列】HL引擎入門篇
相關推薦
【HLSDK系列】HL引擎入門篇
入門 理解 我的文章 模塊 兩個 工作 什麽 服務端 為我 如果你打算拿HL的源碼(也就是HLSDK)來改出一個自己的遊戲,那你就非常有必要理解一些HL引擎的工作方式。 HL引擎分成兩個部分,服務端和客戶端。服務端管理所有玩家的狀態和遊戲規則,客戶端負責顯示UI和特效…之類
【HLSDK系列】服務端 UpdateClientData 函數
del 完全 dll viewmodel 代碼 lag ase mod water 首先說明下,這個函數是寫在 mp.dll 裏的。 服務器會給每個客戶端發送一些數據,其中兩大數據種類就是 clientdata_t 和 entity_state_t 這裏要說的是 clien
【HLSDK系列】服務端 AddToFullPack 函數
客戶端 global 客戶 const start max pre 參數 glob 服務端會給客戶端發送一些數據,其中兩大種類數據是 clientdata_t 和 entity_state_t 這裏我們說說 entity_state_t 這個結構體。 你在丟在地上的槍、C4
【HLSDK系列】怎麽增加一種新實體
sta fun class 使用 pen 關聯 creat bsp cnblogs 你平常肯定接觸到很多比如 info_player_start hostage info_target 之類的實體,這裏就解釋一下怎麽創建一種新的實體。 首先建立一個新的 .h 文件(當然你寫
【HLSDK系列】服務端實體 edict_t 和 控制類
武器 .cpp 成員 常用 blog 生成 指針 但是 dll 我們來了解一下引擎是怎麽管理實體的吧!我們這裏就說說服務端的實體(edict_t) 服務端用 edict_t 這個結構體來保存一個實體,可以說一個 edict_t 就是一個 服務端實體,下文簡稱實體。 我們在
【HLSDK系列】groupinfo的基本用法
全部 int solid src mask str 返回 正常 服務 如果你經常寫AMXX,你應該會知道有個 pev->groupinfo 變量,但我猜大部分人都不會用這個變量,這個變量涉及很多實體處理功能,下面列舉幾個最常用的。 ① 玩家與非玩家實體之間的碰撞檢測
【來龍去脈系列】機器學習入門必讀
導讀:在本篇文章中,將對機器學習做個概要的介紹。本文的目的是能讓即便完全不瞭解機器學習的人也能瞭解機器學習,並且上手相關的實踐。當然,本文也面對一般讀者,不會對閱讀有相關的前提要求。 在進入正題前,我想讀者心中可能會有一個疑惑:機器學習有什麼重要性,以至於要閱讀完這篇非常長的文章呢? 我並
【webpack系列】webpack4.x入門配置基礎(一)
一、前言 webpack在不斷的迭代優化,目前已經到了4.29.6。在webpack4這個版本中,做了很多優化,引入了很多特性,將獲得更多模組型別,.mjs支援,更好的預設值,更為簡潔的模式設定,更加智慧的chunk,新增的splitChunks來自定義分隔程式碼塊等等。升級待4,在打包速度,程式碼體積,數
【SqlServer系列】淺談SQL Server事務與鎖(上篇)
架構 tab 要求 允許 ble 1.2 定義 由於 數據庫引擎 一 概述 在數據庫方面,對於非DBA的程序員來說,事務與鎖是一大難點,針對該難點,本篇文章試圖采用圖文的方式來與大家一起探討。 “淺談SQL Server 事務與鎖”這個專題共分
【51課代表推薦系列】Excel專場優惠篇,購課滿99元即送超值禮包!
代碼 管理系 aec process 校園 系統 數據透視表 完全 vpd 無論身在職場還是未出校園,處理數據怎麽都離不開辦公軟件。如何告別繁瑣的操作,把工作效率提升10倍?今天51課代表要為大家推薦最值得掌握的辦公技能——Excel! 此次專場福利:凡購買以下課程滿4
【SpringCloud】(2)---SpringCloud入門篇
開發 span zipkin 集成 調用服務 data 但是 優點 難度 SpringCloud理解篇 一、微服務概述 1、什麽是微服務 目前的微服務並沒有一個統一的標準,一般是以業務來劃分將傳統的一站式應用,拆分成一個個的服務,徹底去耦合,一個微服
【dubbo系列】dubbo與Sentinel整合篇
在阿里巴巴中介軟體公眾號瞭解的Sentinel框架,sentinel字面意思為哨兵,開始以為是redis的sentinel哨兵,瞭解後才發現並不是。微服務流行,相信很多團隊拆分服務,進行服務和服務之間呼叫,Sentinel是分散式架構體系中流量控制框架,主要以流量為切入點,熔斷降級,系統保護等功能額,來保護系
【Cocos2d-x】物理引擎使用入門
相關概念 什麼是物理引擎? 科學模型:科學研究中對事物的合理簡化。 物理引擎是一個計算機程式模擬牛頓力學模型,使用質量、速度、摩擦力和空氣阻力等變數。 可以用來預測這種不同情況下的效果。它主要用在科學模擬和電子遊戲中。 一般,物理引擎只負責物理計算,而不進行畫面渲染。
【圖形學與遊戲程式設計】開發筆記-入門篇3:圖形繪製
(本系列文章由pancy12138編寫,轉載請註明出處:http://blog.csdn.net/pancy12138) 這篇文章將會開始講解最基本的圖形繪製方法,也就是說。這一次的教程將為大家展示一個3D圖形是怎麼被一步步的處理並最終顯示出來的。當然,大家應該還記得入門篇
【圖形學與遊戲程式設計】開發筆記-入門篇3:d3d,opengl以及GPU
首先是遊戲程式為什麼需要單獨的運算器。大家如果學過演算法的話,應該都聽聞過時間複雜度這個東西,也就是O(n),O(n^2) 這些,那麼接下來我們大致的估算一下一個遊戲每秒需要運算的n的次數。首先我們將遊戲的演算法分為三種,其一是幾何體級別的演算法,n的次數與之前我們說的幾何體的頂點以及索引數量有關係,其二是光
【大白話系列】MySQL 學習總結 之 初步瞭解 InnoDB 儲存引擎的架構設計
一、儲存引擎 上節我們最後說到,SQL 的執行計劃是執行器元件呼叫儲存引擎的介面來完成的。 那我們可以理解為:MySQL 這個資料庫管理系統是依靠儲存引擎與存放資料的磁碟檔案進行互動的。 那麼 MySQL 有哪些儲存引擎呢? 主要有 MyISAM、InnoDB、Memory等等。而現在網際網路中,基本都是使用
【tomcat系列】詳解tomcat架構(上篇)
java中,常用的web伺服器一般由tomcat,weblogic,jetty,undertwo等,但從使用者使用廣泛度來說,tomcat使用者量相對比較大一些,當然這也基於它開源和免費的特點。 從軟體架構的發展角度來看,軟體架構大致經歷瞭如下幾個階段(當然,我們這篇文章不是主講架構的,因此只是簡單提一下架構
【webpack 系列】基礎篇
## Webpack 基礎篇 ### 基本概念 `Webpack` 是一個現代 `JavaScript` 應用程式的靜態模組打包器。當 `webpack` 處理應用程式時,它會遞迴地構建一個依賴關係圖,其中包含應用程式需要的每個模組,然後將所有這些模組打包成一個或多個 `bundle`。 ### 四個核心
【webpack 系列】進階篇
本文將繼續引入更多的 `webpack` 配置,建議先閱讀[【webpack 系列】基礎篇](https://www.cnblogs.com/alsy/p/12594946.html)的內容。如果發現文中有任何錯誤,請在評論區指正。本文所有程式碼都可在 [github](https://github.com/
【扯皮系列】一篇與眾不同的 String、StringBuilder 和 StringBuffer 詳解
## 碎碎念 這是一道老生常談的問題了,字串是不僅是 Java 中非常重要的一個物件,它在其他語言中也存在。比如 **C++、Visual Basic、C# 等**。字串使用 String 來表示,字串一旦被創建出來就不會被修改,當你想修改 StringBuffer 或者是 StringBuilder,出於