从零开始搭建游戏服务器第二天

2023-10-27

1、搭建开发环境;

    因为游戏服务器大多部署在linux系统下,所以这里选择的是Centos 7作为开发环境的镜像 ,预期以后的编译和调试也会在这个镜像上面进行开发;用镜像的方式开发有一个好处是可以随时打包带走,避免到一台新的机器上又要重新搭建开发环境;

    需要安装的有Erlang19.1,MySql5.6,PHP5.6;搭建的时候遇到一些问题,不过借助网上大神的博客也都已经解决了,总体来说,开发环境已经基本上搭建好了;

2、编辑器选择;

    之前经常遇到人问用什么编辑器开发Erlang,我这里选择的是IDEA,基本上来说还是比较顺手的;

    因为协议和配置表需要进行导出,所以到处的脚本用的是PHP写的,采用的编辑器是PhpStorm;

    其余的编辑工作,作为Vimer,当然是选用Vim了;

3、Erlang一些开源库的选择;

    emysql -- 连接和操作MySql;

    cowboy -- 主要用来做后台和一些Web服务;

    lager -- 日志和调试打印相关;

    ranch -- 好像是Eralng的动态连接池,之前在项目中有接触过,但是没有详细了解过,这次好好学习一下;

4、开发脚本的编写;

    作为开发期的脚本,基本上包括但不限于:起服、停服、编译、热更;

5、后记;

    目前已经基本上完成了服务器的方向制定,也算是一个开始;

    下一步准备进行协议和配置表导出脚本的编写;

    愿你有坚持到底的决心,也有从头再来的勇气,共勉;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从零开始搭建游戏服务器第二天 的相关文章

  • 如何在 Erlang 中将 XML 转换为元组列表?

    我正在尝试从 XML 创建键 值对元组 我想从任何嵌套的 XML 中列出一个列表 这似乎是一件很常见的事情 但我找不到任何例子 例如
  • 有没有办法对默认记录值进行查找?

    给定一个记录 record something id integer name string email undefined string undefined 有没有办法获取字段的默认值 在本例中得到的事实是 something email
  • 终止连接到 erlang 端口的进程

    我想写一个某种主管 我正在尝试实现关闭外部程序的功能 外部进程通过端口连接到 erlang 的代码 我不知道如何通过发送信号或其他任何方式来关闭该程序 关闭端口不是解决方案 因为我已经检查过许多程序不会在 SIGPIPE 上退出 您有任何想
  • 我们如何有效地处理 mnesia 记录的时间相关约束?

    我正在将记录写入mnesia 该记录应该保存在那里 仅在允许的时间 24 小时 内 24小时后 在用户修改其中的一部分之前 系统应该自动删除它们 例如 用户获得免费通话时间 用于语音通话 他们应该在给定时间内使用它们 如果他们不使用它 24
  • 在erlang中打印数字的每个数字的问题

    我正在尝试编写一个程序 该程序将读入一个数字 然后将该数字的每个数字输出到列表中 然而 在我尝试使用数字 8 和 9 之前 大多数事情看起来都很好 该程序仅输出 b t反而 如果输入的数字包含8或9 同时还有其他数字 例如283 就可以正常
  • Erlang 参与者与 OOP 对象有何不同?

    假设我有一个 Erlang actor 定义如下 counter Num gt receive From increment gt From self new value Num 1 counter Num 1 end 同样 我有一个 Ru
  • Erlang 如何并发处理访问邮箱

    关于如何使用erlang邮箱的信息有很多 但很少找到一篇论文或文档描述erlang如何在VM内部同时实际访问邮箱 据我了解 Erlang VM 必须执行锁定或 CAS 操作以确保消息完整性 erlang幕后有没有什么精巧的方法 我假设您所说
  • 检查 Erlang 中的活动计时器

    有没有一种简单的方法来获取所有当前等待的计时器的列表erlang send after erlang apply after等在Erlang中 出于调试目的 您可以使用dbg 首先创建一个 ets 表来存储所有计时器引用 1 gt ets
  • 在 Erlang 中展平嵌套列表的列表

    我正在做练习Erlang编程 问题是 编写一个函数 给定一个嵌套列表的列表 该函数将返回一个平面列表 例子 flatten 1 2 3 4 5 6 1 2 3 4 5 6 提示 使用concatenate解决flatten 这是我的conc
  • 如何通过 SSL 从 Phoenix Web App 连接到 PostgreSQL?

    When trying to run Elixir Phoenix Web Application using PostgreSQL Database hosted 3rd party Database as a Service Azure
  • 设置 Emacs 进行 Erlang 编程

    Emacs 是 Erlang 编程的首选 IDE 有很多好的模式 distel erlware mode 默认的 erlang 模式 但是您对设置 Emacs 进行专业 Erlang 开发有何建议 按照中所述设置 erlang mode自述
  • 使用自定义 mysql 模式的模块扩展 ejabberd?

    代替ejabberd sql https github com processone ejabberd blob master sql mysql sql L95 我正在使用自定义 MySQL 架构 由于遗留原因 我将对某些活动执行一些数据
  • Erlang gen_tcp 连接问题

    简单的问题 这段代码 client gt SomeHostInNet localhost to make it runnable on one machine ok Sock gen tcp connect SomeHostInNet 56
  • Cowboy 中的 http 处理程序和 websocket 处理程序之间的通信

    我想在 Cowboy 中创建一个 websocket 应用程序 它从另一个 Cowboy 处理程序获取数据 假设我想结合牛仔的 Echo get 示例 https github com ninenines cowboy tree maste
  • 如何确定ETS表的确切内存大小?

    给定一个包含数据的 ETS 表 info 1 函数返回该表的各种属性 包括size该值特定于行数而不是物理大小 有没有办法计算 ETS 表占用的内存量 以字节为单位 ets new mytable bag named table compr
  • Erlang:将元素“添加到元组之前”

    是否可以编写一个与此函数等效的更快的函数 prepend X Tuple gt list to tuple X tuple to list Tuple 在我看来 这种事情是不被鼓励的 如果您想要一个列表 请使用一个 Erlang 入门 ht
  • gen_server中的数据在supervisor重启后还会保留吗?

    我有一个启动许多 gen server 的主管 每个 gen server 都有大量的数据加载 这需要花费大量的时间 我想知道当错误发生时 存储在 gen server 状态及其进程字典中的数据是否会保留以供下次启动 这样我就不需要再次初始
  • Erlang:有“epmd”的 API 吗?

    有没有办法查询 epmd 守护进程管理的名称表 The nodes 函数在这方面不是很有帮助 注意 我正在寻找 APIaside解析通过 stdout 生成的输出 要查询 epmd 可见的节点 请调用 EpmdModule net kern
  • 如何在 gen_servers 中进行选择性接收?

    我将大部分应用程序移植到 OTP 行为 但我陷入困境 我不知道如何使用 gen server 进行选择性接收 如果没有任何回调函数子句与消息匹配 则不会将消息放回邮箱 而是会出错 现在 无论我走到哪里 人们都称赞选择性接收 无论我走到哪里
  • 是什么让 Erlang 适合软实时应用程序? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 一些背景 我正在致力于构建一种用于数字媒体编程的编程语言 它应该支持使用非共享消息传递和软实时的并发性 即尽最大努力计算音频 视频而不会丢失样本

随机推荐

  • GPIO 有3种状态, 上拉,下拉,不拉

    GPIO 有3种状态 上拉 下拉 不拉 当GPIO处于output模式 一般选择no pull 引脚能够正确地输出输出高电平低电平信号 当GPIO处于input模式 需要根据默认的输入值来确定配置模式 如果默认输入的值为1时 最好配置为pu
  • 解决java.lang.NoClassDefFoundError错误

    本文目录 1 问题背景 2 NoClassDefFoundError错误发生的原因 3 NoClassDefFoundError和ClassNotFoundException区别 4 如何解决NoClassDefFoundError错误 5
  • 【免费】油管无字幕视频如何转录成文本

    啊哈 周末做了个好玩的 之前我做了个小工具 把 youtube 无字幕视频转录成音频 再提取文本 交给 ChatGPT 或者 http Claude ai 摘录出大纲 并组织成 markdown 文档 本来只自己用 因需要部署代码 现在我把
  • 【EI/SCOPUS征稿】第五届IEEE机器人与智能制造技术国际会议 (ISRIMT 2023)

    第五届IEEE机器人与智能制造技术国际会议 ISRIMT 2023 2023 5th International Symposium on Robotics Intelligent Manufacturing Technology 重要信息
  • 智能指针的原理、使用和实现

    1 智能指针的作用 C 程序设计中使用堆内存是非常频繁的操作 堆内存的申请和释放都由程序员自己管理 程序员自己管理堆内存可以提高了程序的效率 但是整体来说堆内存的管理是麻烦的 C 11中引入了智能指针的概念 方便管理堆内存 使用普通指针 容
  • uniapp:APP开发,后台保活

    前言 在ios中 软件切换至后台 手机息屏 过了十来秒软件就会被系统挂起 APP内的任务就不能继续执行 在android中 默认情况下 软件在后台运行的时候 触发某些特定条件的情况下 会被杀掉进程 解决方案 以下方案均测试息屏后台运行两小时
  • 谭安林:大数据在智能外呼系统的应用

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由云加社区技术沙龙发表于云 社区专栏 谭安林 腾讯高级工程师 2015年加入腾讯 8年互联网从业经历 从事大数据平台与产品开发相关工作 先后参与广告 金融等领域产品项目 目前负责
  • vue-gojs-初学笔记-从简单完整案例剖析开始

    第一章 认识GOJS
  • matlab 实现dtmf 信号检测代码,DTMF信号的产生与检测算法研究与MATLAB实现.rar

    摘 要 双音多频信号 DTMF Dual Tone Multi Frequency 是电话系统中电话机与交换机之间的一种用户信令 通常用于发送被叫号码 由于其抗干扰性强和高速传输的优点 除了应用于电话系统 还被在全世界范围内广泛使用在各种按
  • chatgpt基于Qt实现的To-Do List小项目(内附源码),码农将何去何从....

    笔者前言 OpenAI前一段发布聊天机器人模型ChatGPT 迅速出圈全网 chatgpt的出现 让LLMs走进了普通人的视野 同时 也让传统的AI助手变成了原始人 chatgpt向我们展示了LLM目前的天花板 而且这个天花板还相当高 在突
  • 基本的线程机制

    一 线程概念 并发编程使我们可以将程序划分成多个分离的 独立运行的任务 通过使用多线程机制 这些独立任务中的每一个都将由执行线程来驱动 一个线程就是在进程中的一个单一的顺序控制流 因此 单个进程可以拥有多个并发执行的任务 但是你的程序是的每
  • PostgreSQL:流复制环境清除 pg_xlog 日志

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 今天一流复制 Streaming Replication 数据库一目录空间告警 经查是 pg xlog 目录 WAL 日志文件过多 已超过阀值 pg xlog 是数据库重做
  • springboot整合LogstashTcpSocketAppender日志保存到ELK

    1 安装elasticsearch 2 安装kibana 3 安装logstash 配置logstash springboot logstash conf文件如下 input tcp mode gt server host gt 127 0
  • CMAKE 中 add_definitions的用法.

    1 官方的说明 Adds D define flags to the compilation of source files add definitions DFOO DBAR Adds definitions to the compile
  • 树莓派安装MJPG-streamer

    文章目录 一 简介 1 MJPG streamer方案的实现 2 JPEG MJPG格式简介 二 测试USB摄像头 1 开启摄像头服务 2 显示USB设备 3 查看设备文件 三 安装 1 更新源 2 安装必要的库 3 下载安装文件 4 编译
  • IPsec中IKE与ISAKMP过程分析(主模式-消息1)

    IPsec协议族中IKE Internet Key Exchange 是一种基于ISAKMP的协议 它为建立IPSec安全通信隧道提供了一种无痕密钥交换的机制 简单来说 IKE就是ISAKMP的扩展 为ISAKMP提供了更加高效 灵活和安全
  • ERP系统31.83版本发布,解决企业供应链管理难题

    近日 ERP系统31 83版本正式发布 无处不在的互联网 正在改变企业与用户的连接方式 一旦享受过什么叫实时 就再也无法忍受延迟 一旦感受过什么叫便捷 就再也无法忍受繁琐 企业如何全方位提高服务效率和用户体验 此次升级的智邦国际ERP系统3
  • [git] 小乌龟工具TortoiseGit记住账号密码 ——简单版操作指南

    如何让小乌龟 记住用户名和密码的操作指南 问题描述 步骤1 步骤2 问题描述 在小乌龟的使用过程中 每次push或者pull都要重复输入账号密码 非常麻烦 如果能记住账号密码就好了 这样就省去了时间 那么 怎么设置记住密码 步骤1 打开自己
  • JS中的类相关操作

    1 类相关操作 注意是 通过style属性来修改元素的样式 每修改一个样式 浏览器就需要重新渲染一次页面 这样的执行的性能是比较差的 而且这种形式当我们修改多个样式时 也不太方便 解决方案是 通过修改的class类名的方式 来达到效果 可以
  • 从零开始搭建游戏服务器第二天

    1 搭建开发环境 因为游戏服务器大多部署在linux系统下 所以这里选择的是Centos 7作为开发环境的镜像 预期以后的编译和调试也会在这个镜像上面进行开发 用镜像的方式开发有一个好处是可以随时打包带走 避免到一台新的机器上又要重新搭建开