Quake源代碼分析(草稿).5

数值计算 --- 平方根倒数快速算法(上) 由于平方根倒数快速算法实在是太过经典,出于对code中magic number"0x5f3759df"的好奇,出于对John Carmack“what the fuck!”这一锐评的热爱,还有出于对于这一算法的原作者Greg Walsh的致敬。我写了这篇文章,作为该算法的自学笔记。 阅读详情

網絡部分補充說明:
         負責傳送網間封包Sys_SendPacket()函數,調用了sendto這個Win socket API,它的作用是:
         The sendto function is normally used on a connectionless socket to send a datagram to a specific peer socket identified by the to parameter. Even if the connectionless socket has been previously connected to a specific address, the to parameter overrides the destination address for that particular datagram only. On a connection-oriented socket, the to and tolen parameters are ignored, making sendto equivalent to
send.
          所以很明顯,使用sendto並不需要建立可靠的連接,也就是不必先調用connect,直接能夠發送datagram.

客戶端連接服務器端的步驟:

1.   客戶端執行CL_Connect_f()

如果客戶端連接的服務器不是本地機器,需要多执行SVC_GetChallenge这一步

cls.state置為CA_CONNECTING.

判斷語句如下:

cls.state=NET_IsLocalAddress(&clc.server_address)?CA_CHALLENGING: CA_CONNECTING;

2.   如果客戶端變量cls.state = CA_CONNECTING,那麼當系統執行到

CL_CheckForResend()時就會啟動

NET_OutOfBandPrint( NS_CLIENT, &clc.server_address, "getchallenge" );

發送”getchallenge”消息給服務器端

3.   服務器端接收到”getchallenge”消息就會調用SVC_GetChallenge()à

NET_OutOfBandPrint(NS_SERVER,address,"challengeResponse %i", challenge );

發送”challengeResponse”消息給客戶端

4.   客戶端接受到”challengeResponse”消息:

cls.state = CA_CHALLENGING;

5.   如果客戶端變量cls.state = CA_CHALLENGING,那麼當系統執行到

CL_CheckForResend()時就會啟動
NET_OutOfBandPrint(NS_CLIENT, &clc.server_address, "connect /"%s/"", info );

發送”connect”消息給服務器端


6.   服務器端接受收到”connect”消息啟動SVC_DirectConnect(),如果客戶身分被確認,那麼就調用函數NET_OutOfBandPrint( NS_SERVER, address, "connectResponse" );

發送”connectResponse”消息給客戶端

否則NET_OutOfBandPrint( NS_SERVER, address, "disconnect" );

發送” disconnect”消息給客戶端


7.   客戶端接收到”connectResponse”,啟動Netchan_Setup,然後調用函數CL_WritePacket()寫入一條空白消息給服務器端.

quake3源码 quake3源码,内含大量经典算法,代码质量很高,学习一下很有必要 立即下载

相关推荐

雷神之锤3 VC++完整源码(Quake 3 Arena)

3D 游戏界的大牛人 John Carmack 终于放出了 Q3 的源代码,John Carmack向我们兑现了他公开《Quake 3 Arena》游戏源代码的承诺,这不但另业界震惊,也让VC的FASN们异常兴奋,这套Quake 3 Arena Full Source Code v1.32b的源代码,不仅包含有完整版的游戏源码,另外还有各种编译工具以及Q3Radiant地图编辑器等,内容相当丰富哦。希望对有志于 3D game 的朋友带来更多帮助 代码结构很清晰.

QUAKE 3源代码评测:架构

当谈到一个巨大的代码库,我更喜欢使用XCode:SpotLight速度,Command-click查找定义和字符串高亮使得该工具比Visual Studio更强大。但是打开Quake III项目表明,代码腐烂并不总是关于代码,还涉及到这些工具:XCode 4.0无法打开Quake III XCode 2.0项目。我希望能节省时间给一些人,但也鼓励别人阅读更多的代码,成为更好的工程师。像机器人的额外的场景,以及与玩家的互动。由于我在下一个合同(翻译可能有误)前一个星期,我决定完成我的“循环ID”。

tailiangliang的专栏 5613

quake3源代码

quake3源代码,想了解quake3吗,那就赶紧下载吧,不用积分,还等什么呢?

Quake源代碼分析(草稿)

 http://blog.csdn.net/breakpointer/archive/2004/09/30/121378.aspxQuake是Id Software公司推出一款風迷全球的FPS遊戲.至今為止已經發展到了第三代,而且作為一個優良的遊戲引擎,它也被大量的運用到其他公司開發的遊戲當中.例如我們所熟知的CS,它就是在Quake2引擎上改良而來的.雖然裡面的代碼實現並不完全相同,但是整體

杨德龙的专栏 2206

Quake3完整资源和源码.part1

Quake3完整源码以及资源文件,参考“如何使用.txt”,可以用VC6 build工程,并运行游戏 由于上传限制,分成两个压缩包,这是part1

quake1源代码 directfb支持

quake1源代码,包括3种版本,windows版本的winquake,支持vc2005编译器,linux的x11 quake和directfb quake,readme有编译说明

Quake源代碼分析(草稿).4

Quake網絡部分總結:(1) 網絡部分被分為接收和傳送兩個部分.(2) 傳送部份被分為本地數據包傳輸和異地數據包傳輸兩個部分.(3) 本地封包傳輸由NET_SendLoopbackPacket()負責.(4) 異地封包傳輸由Sys_SendPacket()負責.(5) 數據包傳輸又可以分為單包傳輸和多包傳輸.(6) NET_SendPacket()可以傳送本地或異地不超過一個封包大小的數據包.也

breakpointer的专栏 1956

手把手教你用Verilog实现AT24C64的I2C读写(附完整仿真流程)

本文详细介绍了如何使用Verilog HDL设计AT24C64 EEPROM的I2C控制器,并配合ModelSim完成完整的仿真验证流程。内容涵盖I2C协议解析、Verilog状态机设计、AT24C64读写操作实现,以及仿真波形分析和调试技巧,为FPGA开发者提供了一套完整的EEPROM控制解决方案。

3c4x5z6v7b的博客 846

从Quake 3源代码分析AI Bot库

从Quake 3源代码分析AI Bot库 2008年1月14日,Alex J. Champandard 查看已发布的标题的AI源代码是从渠道中学习技巧的好方法。这个新专栏可以帮助您学习各种游戏背后的代码,例如上周的FEAR SDK。 地震3竞技场是一个有趣的例子,因为它是完全开源的(工具除外),这是一个世纪之交的AI引擎设计的一个很好的例子!虽然严重,代码中包含一个功能完

tailiangliang的专栏 3074

使用再生龙备份还原liunx系统(精确每一步)

再生龙镜像可自行到官网下载(ISO/ZIP格式均可),然后使用tuxboot烧录工具制作启动盘,另外准备一个U盘用来存储备份的镜像文件,即再生龙盘和存储盘是两个分开的。当然也可以用分区工具把同一个硬盘分区来使用,比较方便,先学会基本的吧,只是告诉有个捷径,省个U盘。

米可的博客! 8375

[nvidia-GB200-安装]ubuntu24.04高端GPU gb200 570.158.01驱动安装解读及gb200一键化安装脚本,复制即可安装

【代码】[nvidia-GB200]高端GPU gb200 驱动安装解读及gb200一键化安装脚本,复制即可安装。

jundao1997的专栏 874

Quake 2 开源项目指南

Quake 2 开源项目指南 概述 本指南旨在帮助开发者和爱好者深入了解GitHub上的Quake 2开源项目(jdolan/quake2),通过分析其目录结构、启动文件以及配置文件,为大家提供一份详尽的使用与安装参考。 1. 项目目录结构及介绍 Quake 2的开源版本遵循了一个典型的FPS游戏项目结构,大致如下: quake2/ ├── baseq2 # 游戏的基础数据和...

gitblog_00295的博客 1123

3. Matérn协方差模型与随机偏微分方程

对应的高斯马尔可夫随机场 (GMRF)可以通过使用某种随机偏微分方程(SPDE)明确构造,当由高斯白噪声驱动时,随机偏微分方程的解是具有 Matérn 协方差函数的高斯场(GF)

weixin_40614311的博客 1746

QUAKE系列引擎以及基于QUAKE扩展引擎的源代码分析

<br />前言:<br />一:研究quake系列引擎断断续续也已经两年有余了,一直想写点什么,但是真的到了那一步,又发现其实很难下笔,原因有三:1 文笔不流畅,特别是技术性技巧的缺乏,概念难以精确定义,无法想内心的真实表达转换为文字,郁闷啊!!2 QUAKE系列引擎的庞大结构以及各个模块的协作关系,真的想写的时候不知道如何组织,导致思路极其紊乱。3 对于QUAKE系列的深奥部分,列如bsp的编译程序部分的源码还未完全理解,这是整个QUAKE引擎的核心部分,这是QUAKE系列引擎最核心的部分,可以说,整个

痞子龙3D编程 5741

【目标检测】全局上下文感知的详解

目标检测中的全局上下文感知(Global Context Awareness)​是指模型在定位和识别目标时,能够有效利用图像中全局或大范围的上下文信息(如场景语义、目标间关系、空间布局等),而不仅仅依赖局部特征。这种能力显著提升了检测的鲁棒性,尤其是在复杂场景(如遮挡、小目标、密集目标)中表现突出。

浩瀚之水的专栏 647

通过WorkVisual连接KUKA机器人的具体方法

通过WorkVisual连接KUKA机器人的具体方法

Robot_PLC_HMI_Automation 6844

quake3源码大致流程

现在这一部分,很大意义上是游戏的初始化部分。 很大意义上是从你点击3D游戏开始出现的画面,到这个游戏结束的一个过程经历罢了 加载roq视频文件,解压缩 在刚开始的游戏画面一般是游戏公司的标志,例如id的公司标志乃是出现的那个汽车引擎的画面,代表id的引擎 或者人的神经的样子,代表 深思(deep idea) 还记得《doom启示录》里的id公司名字的来临吗?这个就是。

tailiangliang的专栏 4348

8.2 发展趋

分子泵技术正处在一个快速变革的时代,面对日益增长的应用需求和不断涌现的技术挑战,其发展呈现出多元化、智能化和高度集成化的趋势。这些发展趋势不仅代表着技术创新的方向,也预示着分子泵在未来工业体系中将要扮演的更加重要的角色。

技术工作者 115
上一篇: Quake源代碼分析(草稿).4
下一篇: 对论坛中有关数据类型转换的整理
amdk_7
博客等级 码龄22年 12粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值