游戏服务器开发指南(目录)

从零搭建游戏服务器,编译过程和环境部署教程详解 现代的电子游戏,不管是端游还是手游,网络游戏还是单机游戏,或多或少都会需要一些网络功能。从验证正版,到登录注册,再到多人交互,实时对战,都需要服务器端的支持。 游戏服务器端,是一个长期运行的程序,还要服务于多个不定时,不定点的网络请求。主机测评及技术分享来和小伙伴们讲讲,一个游戏服务器从游戏逻辑方面可以分为几个模块? 注册和登录 网络协议 数据库 玩法逻辑 其他通用模块 注册和登录 这点和网站后台开发有点不同,因为游戏帐户的注册都是由第三方平台提供SDK的,游戏开发过程中只要开发登录逻辑即 阅读详情

本目录用于游戏服务器开发指南系列,分门别类存放文章的链接地址,方便读者快速索引。目录按不同的主题组织,如网络通信、数据存储等,每个主题会包含若干篇文章。个人计划是平均每周写一篇,写作基于平时工作中产生的灵感,因此不一定会按照主题的排列顺序来。

网络通信

游戏服务器开发指南(一):设置合适的Socket选项

游戏服务器开发指南(二):优化包体传输

并发

游戏服务器开发指南(三):设计高效的线程模型

游戏服务器开发指南(四):降低同步的开销

游戏服务器开发指南(五):避免死锁

通用程序设计

游戏服务器开发指南(六):条件判断永远放在状态变更前

数据存储

常见模块设计思路

设计模式

热更新

分布式

架构设计

性能优化

日志

揭秘游戏服务器,不看后悔!!! 目录 前言 1、常见游戏模块 2、开发语言与项目构建发布 3、JAVA游戏服务器,需要掌握的技术 4、总结 前言 《摩尔庄园》前段时间上线, 持续超出市场预期,相信也有不错的收益。游戏好玩,所有玩家看到了前端,但是做一款游戏,离不开后台游戏服务器的支持,服务器都要做什么,服务器的架构是什么,需要哪些技术,一系列的问题有没有思考过?下面讲下作为做服务器开发中需要做的事。 1、常见游戏模块 游戏玩法 游戏开发中常见的玩法模块,一般的游戏都会包含这些玩法 新手引导、任务系统... 阅读详情

相关推荐

探索KBEngine:MMO游戏服务端引擎的开源之旅

在数字游戏世界中,一个高效稳定的游戏引擎是连接玩家与虚拟世界的桥梁。KBEngine作为一款成熟的网络游戏服务器框架,以其高性能、高可定制性的特点,在业界获得了广泛的关注和认可。本章我们将探索KBEngine的起源、核心功能以及与其他引擎相比的优势。

weixin_33814090的博客 1115

Gobot 游戏服务器测试机器人安装与使用指南

Gobot 游戏服务器测试机器人安装与使用指南 1. 目录结构及介绍 Gobot 作为一个强大的游戏服务器测试工具,其项目目录结构组织有序,便于开发者快速上手。以下是主要的目录和文件介绍: LICENSE: 包含软件使用的MIT许可证信息。 README.md: 项目的主要读我文件,提供了简要介绍、快速安装步骤以及一些基本功能描述。 README_CN.md: 针对中文用户的本地化读我文件,提供...

gitblog_00042的博客 1129

麒麟信安3.3-6C电网版虚拟机安装避坑指南:从ISO下载到SSH配置全流程

本文提供麒麟信安3.3-6C电网版虚拟机的详细安装与配置指南。针对电力行业仿真测试需求,重点解析从ISO镜像获取、虚拟机环境准备、安装过程中的三大“雷区”(如多管理员密码逻辑、分区方案、网络配置)到首次启动后的网络、SSH及root策略配置的全流程避坑要点,帮助技术人员高效、安全地完成部署。

rainy的博客 854

Colyseus Schema 开源项目快速入门指南

Colyseus Schema 开源项目快速入门指南 1. 项目目录结构及介绍 Colyseus Schema 是一个专为游戏设计的增量二进制状态序列化库,支持增量更新与差分编码。以下是其基本目录结构概览及其核心组件简介: colyseus-schema/ ├── docs # 文档资料,包含类型定义和使用说明。 ├── src ...

gitblog_00058的博客 509

手把手教你用Matlab实现Copula函数:从理论到代码的完整指南

本文提供了一份在MATLAB中实现Copula函数的完整实战指南。从理解Sklar定理和常见Copula家族(如高斯、t、Clayton)的核心概念出发,详细讲解了数据预处理、边缘分布拟合、概率积分变换等关键步骤。通过具体代码示例,手把手演示了Copula模型的拟合、评估、蒙特卡洛模拟,并进阶应用于金融风险度量(如VaR计算)和条件分布分析,帮助读者掌握这一强大的多变量依赖建模工具。

y9z0a1b的博客 953

niushop靶场漏洞查找-文件上传漏洞等(超详细)

发现报错,而且这个报错十分熟悉,与我们所学的sqli报错注入特别像。这里查询到后面的url有且仅有一个,目测估计是后台。上传的图片是包含一句话木马的图片。发现获取到了webshell。实战漏洞-niushop。

qq_59020256的博客 1729

Pinus入门指南:快速构建你的第一个分布式游戏服务器 [特殊字符]

Pinus是一个基于TypeScript的快速、可扩展的分布式游戏服务器框架,专为Node.js环境设计。无论你是游戏开发新手还是经验丰富的开发者,Pinus都能帮助你轻松构建高性能的分布式游戏服务器。本文将为你提供完整的Pinus入门教程,从环境搭建到第一个服务器运行,一步步带你掌握这个强大的游戏服务器框架。 ## 为什么选择Pinus分布式游戏服务器框架? 🤔 Pinus框架提供了完整的

gitblog_01071的博客 375

【python快速编程入门(第二版)黑马程序员课后编程题】

python快速编程入门(第二版)黑马程序员课后编程题

weixin_46167259的博客 1万+

Pitaya Notes: 一份详尽指南

Pitaya Notes: 一份详尽指南 一、项目目录结构及介绍 Pitaya-Notes 是一个基于 Go 语言编写的可扩展游戏服务器框架,特别设计用于支持集群化部署。该项目的目录布局精心规划,以便开发者能够高效地理解和贡献。以下是关键的目录结构及其简介: . ├── app # 应用程序核心逻辑,包括启动和服务管理。 │ ├── app.go ...

gitblog_00046的博客 521

ST-Link V2的隐藏技能:多通道串口调试的终极指南

本文深入探讨了ST-Link V2的多通道串口调试功能,突破传统烧录工具的限制。通过详细的硬件配置、Arduino IDE设置和实战案例,展示了如何利用SWD接口实现多通道数据监控,提升STM32F103C8T6等开发板的调试效率。文章还提供了PCB布局优化和性能调优技巧,助力开发者充分发挥ST-Link V2的潜能。

weixin_29285605的博客 355

Allegro层叠中的Etch Factor-铜皮的腐蚀因子如何计算

在用Allegro进行PCB设计的时候,Cross-section中需要填入对应的信息,一般填入每层的厚度即可,如下图。当PCB需要进行仿真分析的时候,Etch-Factor这个值是必须要填写的,如下图。实际铜皮进行蚀刻的时候,Etch-Factor的值并不是标准的90度,如下图。线路层实际形状是个梯形,Etch-Factor代表的就是梯形的角度,如下图。首先输入数值,比如1,再点击Inv,最后点击tan-1,可以得到角度的值。如果tanσ=2,σ=63.4,如下图计算结果。即tanσ=1,得到σ=45。

weixin_54787054的博客 885

本机挂载中心服

为了方便开发和测试,所以除了分线服外,有必要在本机安装中心服,下面是大体步骤: 1.    更新代码: 先从SVN上分别把中心服代码和分线服代码checkout到两个不同的文件夹,假设文件夹名分别为: BINcenter, BIN; 中心服代码SVN地址:http://192.168.1.2/svn/server_code/center_lib/BIN, 分线服代码SVN地址:http:/

linking530的专栏 903

阿里云百炼全解析:一站式大模型开发平台的架构与行业实践

摘要: 阿里云百炼平台通过一站式架构革新大模型开发范式,将传统碎片化工具链整合为统一工作流,实现开发周期从月级到小时级的跃迁。其核心架构包含接入层、引擎层与资源层,关键技术突破包括MCP服务协议、多模态引擎及高性能训练优化。平台提供全生命周期开发支持,从数据准备到模型部署,并通过VPC隔离、数据加密构建企业级安全体系。已在医疗、电力等行业实现显著增效,如阿斯利康药物分析系统准确率提升至95%。未来将向多Agent协同、边缘计算等方向演进,推动AI技术深度融入产业核心。

fudaihb的博客 1990

Java游戏服务器搭建与配置指南

仓库地址:[menacher/java-game-server](https://github.com/menacher/java-game-server) 此Java游戏服务器项目遵循了一定的结构组织,以支持高性能多人在线游戏。以下是关键的目录结构及其简介: ``` . ├── game-config # 配置文件夹,存放游戏相关的配置。 ├── game-engine ...

gitblog_00278的博客 1318

【2026OD新机考】【不定滑窗】20260415-API请求日志去重分析【Py/Java/C++/C/JS/Go六种语言OD真题】【欧弟算法】全网注释最详细分类最全的华子OD真题题解

中找到所有的连续的相同元素,同时统计对应的连续相同元素对应的值的平均值。:当右指针为第一个元素(没有前一个元素),或者右指针对应的元素。某微服务系统的日志监控平台需分析API调用记录,日志含大量。相等,说明当前元素仍然属于同一个相同元素窗口,将当前元素值。中的所有元素均相等,并且计算窗口和情况即可。请实现一个函数,对给定的日志数据去重合并处理。位置,表示开启一个新的窗口,此时需要重置窗口和。,为了优化重复的请求记录,存储和后续分析需对。:对应的响应时间数组(毫秒)。重新置为当前右指针的元素值。

weixin_48157259的博客 112

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

5分钟快速掌握:Java游戏服务器开发终极指南

想要在最短时间内构建高性能的Java游戏服务器吗?iogame框架为您提供了一套完整的解决方案。作为专为现代游戏开发设计的服务器框架,它通过创新的设计理念和简洁的API,让游戏后端开发变得前所未有的高效。本文将带您从零开始,全面掌握这个革命性框架的核心用法。 ## 🚀 3大核心优势:为什么选择iogame? iogame框架经过精心设计,具备以下突出优势: **极简开发体验**:通过注解驱

gitblog_00841的博客 974

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

游戏服务器开发综述[目录]

游戏服务器开发综述 这个系列大概每天会更新一章,主要介绍如何构建一个高性能服务器(我们可能采用skynet的框架进行分析),之后, 会涉及到很多游戏服务器开发的知识,可能会开放一些源码,也可能只会提供一些.so文件。 另外,需要注意的是,我们的服务器主要是存放在ubuntu18.04版本中,如果导致在其它的版本出现无法使用的情 况,不负责哦~ 目录结构 第一章:Socket基础 第二章:高并发-微服务设计 第三章:RPC服务 第四章:游戏服务器算法 第五章:LUA教程(linux环境下) 目录结构会在之

qq_37080133的博客 379

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Python Web 在游戏服务器开发中的应用与优化

此外,结合 Redis 作为游戏状态的存储和共享工具,可以在多实例的服务器间实现状态的快速访问和同步。实时游戏需要在毫秒级别内处理大量玩家的输入和状态更新,而回合制游戏则可以在每个回合之间有更多的时间进行计算和状态更新。在实时游戏中,玩家的输入需要即时反馈,服务器端则需要在收到消息后迅速更新游戏状态并将其广播给所有连接的玩家。在具体实现时,可以利用 asyncio 的协程特性定义异步任务,这样就能在等待 I/O 操作时,继续执行其他任务,从而实现更高效的并发处理。

switch616的博客 1452

一位游戏服务器开发工程师的文章目录大全~

记录自己:handling,双非二本,修炼内功,步入大厂,敢做敢承担,收获总结。

专注游戏研发 2053

学习游戏服务器开发必看,C++游戏服务器开发常用工具介绍

C++游戏服务器开发常用工具介绍在软件开发过程中需要使用的工具类型实属众多,从需求建模到软件测试,从代码编译到工程管理,这些工具都对项目有着不可替代的作用。庄子有云,“吾生也有涯,而知也无涯,以有涯随无涯,殆已”。代入到项目开发中就是说,如果对知识点无差别的全面攻击,不仅会导致所学甚泛却无一深入的尴尬,也会占用太多的有效时间从而影响项目进度。作为一个C++游戏服务器开发者来说,我们时刻肩负着线上游...

stone15165的博客 6550

leaf游戏服务器开发系列,Leaf 游戏服务器框架简介

Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏服务器框架。Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务器。Leaf 的关注点:·良好的使用体验。Leaf 总是尽可能的提供简洁和易用的接口,尽可能的提升开发的效率·稳定性。Leaf 总是尽可能的恢复运行过程中的错误,避免崩溃·多核支持。Leaf 通过模块机制和 leaf/go 尽可能的利...

weixin_42347750的博客 1287

Go游戏服务器开发工作准备工作

目录Go游戏服务器框架选择leaf其他开发环境搭建获取leaf源码配置vscode网络问题解决 Go游戏服务器框架选择 目前,在github上leaf、cellnet、mqant、goworld等等 leaf leaf的github Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏服务器框架。Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务...

wudics的专栏 2421

Rust跨平台开发终极指南:5分钟实现游戏服务器多端部署

想要为不同架构的设备开发Rust游戏服务器?cross工具让你告别复杂的交叉编译配置,实现"零配置"跨平台开发!🚀 这款强大的Rust跨平台编译工具能够轻松编译和测试各种目标平台的Rust程序,从ARM到x86,从Linux到Windows,统统搞定。 ## 什么是cross工具? cross是一个专为Rust开发者设计的跨平台编译工具,它通过Docker或Podman容器技术,为你提供完整

gitblog_00766的博客 863

Pterodactyl游戏服务器管理面板:打造高效游戏服务器的完整指南

Pterodactyl是一款免费开源的游戏服务器管理面板,采用PHP、React和Go构建而成。它以安全为核心设计理念,将所有游戏服务器运行在隔离的Docker容器中,同时为用户提供美观直观的操作界面,是游戏服务器管理员的理想选择。 ## 🚀 Pterodactyl核心优势解析 ### 1. 强大的容器化技术 Pterodactyl采用Docker容器化技术,确保每个游戏服务器都在独立环境中

gitblog_01054的博客 1019

网易Pomelo游戏服务器框架安装与配置完全指南

**基础介绍:** 网易Pomelo是一款专为Node.js设计的高性能、可扩展的游戏服务器框架,适用于快速构建分布式游戏服务器以及实时Web应用。此框架特别适应于多人游戏,如移动游戏、社交游戏、网页游戏以及MMORPG(中型大型多人在线角色扮演游戏),同时也适用于聊天、消息推送等实时应用。Pomelo的架构旨在轻松扩展,并通过其丰富的组件、库和工具支持简化游戏服务端的开发流程。 **主要编程语...

gitblog_01215的博客 946

C++学习之游戏服务器开发git命令

C++学习之游戏服务器开发git命令

qq_27302885的博客 1232
上一篇: 游戏服务器开发指南(一):设置合适的Socket选项
下一篇: 游戏服务器开发指南(二):优化包体传输
长三月
博客等级 码龄9年 228粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值