002-游戏服务器环境搭建

游戏服务器环境搭建

游戏服务器开发的第一步是搭建合适的开发环境。一个高效、稳定的开发环境不仅能提高开发效率,还能减少因环境差异导致的问题。本章将详细介绍在Windows、Mac OS X和Linux平台上搭建Java游戏服务器开发环境的完整流程,涵盖从基础JDK安装到各种服务组件的配置。

2.1 Windows 开发环境搭建

Windows作为最广泛使用的桌面操作系统,是许多开发者的首选开发平台。在Windows上搭建Java游戏服务器开发环境相对简单直观,下面我们将逐步介绍所需工具的安装和配置。

2.1.1 安装 JDK

Java Development Kit (JDK) 是开发Java应用程序的核心组件,包含了Java运行环境(JRE)、编译器、调试器等工具。

下载JDK

访问Oracle官方网站(https://www.oracle.com/java/technologies/downloads/)或OpenJDK网站(https://adoptium.net/)
选择适合Windows系统的JDK版本(推荐JDK 11 LTS或JDK 17 LTS)
下载安装文件(.exe或.msi格式)

安装过程

双击下载的安装文件启动安装向导
接受许可协议,点击”下一步”
选择安装位置,建议保持默认路径,如C:Program FilesJavajdk-17.0.x
完成安装

配置环境变量

为了在命令行中使用Java工具,需要配置系统环境变量:

右键点击”此电脑”,选择”属性”
点击”高级系统设置”
在”系统属性”窗口中,点击”环境变量”
在”系统变量”区域,新建或编辑以下变量:

新建JAVA_HOME变量,设置值为JDK安装路径,如C:Program FilesJavajdk-17.0.x
编辑Path变量,添加%JAVA_HOME%in

验证安装

打开命令提示符(CMD),输入以下命令验证安装:

bash

java -version
javac -version

如果显示正确的版本信息,说明JDK安装成功。

apache

java version "17.0.7" 2023-04-18 LTS
Java(TM) SE Runtime Environment (build 17.0.7+8-LTS-224)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.7+8-LTS-224, mixed mode, sharing)

2.1.2 安装 Eclipse

Eclipse是一个功能强大的集成开发环境(IDE),广泛用于Java开发。虽然也有IntelliJ IDEA和Visual Studio Code等替代选择,但Eclipse因其开源特性和丰富的插件生态系统仍被许多游戏服务器开发者使用。

下载Eclipse

访问Eclipse官方网站(Eclipse Downloads | The Eclipse Foundation)
下载”Eclipse IDE for Java Developers”或”Eclipse IDE for Enterprise Java and Web Developers”
选择Windows x86_64版本

安装过程

解压下载的压缩文件到指定目录,如C:Eclipse
双击eclipse.exe启动程序
指定工作空间位置,如D:workspace

配置Eclipse

配置JDK:

点击”Window” > “Preferences”
导航到”Java” > “Installed JREs”
点击”Add”,选择”Standard VM”,点击”Next”
设置”JRE home”为之前安装的JDK路径
点击”Finish”,然后勾选新添加的JDK

设置编码格式:

点击”Window” > “Preferences”
导航到”General” > “Workspace”
在”Text file encoding”部分,选择”UTF-8″

安装游戏服务器开发相关插件:

点击”Help” > “Eclipse Marketplace”
搜索并安装以下插件:

Maven Integration for Eclipse
Buildship Gradle Integration
Spring Tools (如果使用Spring框架)
EGit (Git集成)

2.1.3 安装数据库客户端工具

游戏服务器通常需要与数据库交互,安装合适的数据库客户端工具有助于开发和调试。

MySQL客户端

下载MySQL Workbench(https://dev.mysql.com/downloads/workbench/)
运行安装程序,按照向导完成安装
启动MySQL Workbench并配置连接:

点击”+”创建新连接
输入连接名称、主机名、端口和用户凭据
测试连接并保存

MongoDB客户端

下载MongoDB Compass(MongoDB Compass Download (GUI) | MongoDB)
执行安装文件,按照向导完成安装
启动MongoDB Compass并配置连接:

输入连接字符串或手动填写连接信息
点击”Connect”

Redis客户端

下载Another Redis Desktop Manager(Releases · qishibo/AnotherRedisDesktopManager · GitHub)
解压或安装文件
启动程序并添加连接:

点击”Connect to Redis Server”
输入连接信息并保存

2.1.4 安装 SSH 工具

SSH工具用于远程连接和管理服务器,是游戏服务器开发和部署的必备工具。

PuTTY

下载PuTTY(Download PuTTY – a free SSH and telnet client for Windows)
运行安装程序,完成安装
配置SSH连接:

启动PuTTY
输入主机名、端口
设置连接类型为SSH
可选择保存会话配置

WinSCP

用于在Windows和远程服务器之间安全地传输文件:

下载WinSCP(WinSCP :: Official Site :: Download)
安装程序,按照向导完成
配置连接:

启动WinSCP
输入主机名、端口、用户名和密码
选择SFTP协议
登录并保存会话

2.1.5 安装其他工具

除了上述核心工具外,以下辅助工具也能提高游戏服务器开发效率:

Git版本控制

下载Git for Windows(Git for Windows)
运行安装程序,按照向导完成安装
基本配置:

bash

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
Maven

Maven是Java项目的构建和依赖管理工具:

下载Maven二进制包(Download Apache Maven – Maven)
解压到指定目录,如C:apache-maven
配置环境变量:

新建MAVEN_HOME变量,值为Maven安装路径
%MAVEN_HOME%in添加到Path变量

验证安装:

bash

mvn -version
Postman

Postman是API测试工具,对开发RESTful服务很有帮助:

下载Postman(Download Postman | Get Started for Free)
运行安装程序,完成安装
创建账户或以访客身份使用

JMeter

Apache JMeter是性能测试工具,用于测试游戏服务器承载能力:

下载JMeter(Apache JMeter – Download Apache JMeter)
解压到指定目录
通过binjmeter.bat启动程序

2.2 Mac OS X 开发环境搭建

Mac OS X提供了舒适的开发体验和类Unix环境,同时保持了图形界面的易用性,是许多开发者的首选平台。

2.2.1 安装 JDK

在Mac上安装JDK有多种方式,最常用的是通过Homebrew或直接安装Oracle JDK。

使用Homebrew安装OpenJDK

如果尚未安装Homebrew,在终端中执行:

bash

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装OpenJDK:

bash

brew install openjdk@17

配置环境变量,在~/.zshrc~/.bash_profile文件中添加:

bash

export JAVA_HOME=$(/usr/libexec/java_home -v 17)
export PATH=$JAVA_HOME/bin:$PATH

执行source ~/.zshrcsource ~/.bash_profile使配置生效

直接安装Oracle JDK

访问Oracle官方网站,下载Mac版JDK安装包
双击.dmg文件,按照向导完成安装
验证安装:

bash

java -version
javac -version

2.2.2 安装 Eclipse

Mac版Eclipse的安装与Windows版类似,但有一些平台特定的差异。

下载与安装

访问Eclipse官方网站,下载Mac版Eclipse
下载完成后,将Eclipse.app拖到Applications文件夹
从启动台或Applications文件夹启动Eclipse
选择工作空间位置,如~/Documents/workspace

配置Eclipse

配置JDK

点击”Eclipse” > “Preferences”
导航到”Java” > “Installed JREs”
添加并选择已安装的JDK

安装插件

点击”Help” > “Eclipse Marketplace”
安装必要的插件,如Maven、Gradle集成等

2.2.3 安装数据库客户端工具

Mac上的数据库客户端安装与Windows类似,但使用Mac特有的安装方式。

MySQL Workbench

通过Homebrew安装:

bash

brew install --cask mysql-workbench

或从MySQL官网下载Mac版安装包

启动并配置连接

MongoDB Compass

下载Mac版MongoDB Compass
将应用拖到Applications文件夹
启动并配置连接

Sequel Pro (MySQL客户端)

Sequel Pro是Mac平台上流行的MySQL客户端:

访问https://sequelpro.com/download,下载最新版本
解压并移动到Applications文件夹
启动并配置数据库连接

2.2.4 安装 SSH 工具

Mac自带Terminal应用支持SSH连接,但也可以安装其他工具增强功能。

使用Terminal

直接使用内置的Terminal应用进行SSH连接:

bash

ssh username@hostname -p port
iTerm2

iTerm2是Terminal的强大替代品:

下载iTerm2(iTerm2 – macOS Terminal Replacement)
将应用拖到Applications文件夹
使用方式与Terminal相同,但提供更多高级功能

Cyberduck

用于文件传输的SFTP客户端:

通过Homebrew安装:

bash

brew install --cask cyberduck

或从官网下载

启动并配置SFTP连接

2.2.5 安装其他工具

Git

Mac通常预装了Git,验证是否安装:

bash

git --version

如需更新,可通过Homebrew安装:

bash

brew install git

基本配置:

bash

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
Maven

通过Homebrew安装Maven:

bash

brew install maven

验证安装:

bash

mvn -version
Postman

通过Homebrew安装:

bash

brew install --cask postman

或从官网下载Mac版

从Applications文件夹启动Postman

Homebrew Cask扩展

安装其他常用开发工具:

bash

# 安装Visual Studio Code
brew install --cask visual-studio-code

# 安装Docker Desktop
brew install --cask docker

# 安装IntelliJ IDEA社区版
brew install --cask intellij-idea-ce

2.3 Linux 服务器环境搭建

Linux是游戏服务器的首选部署平台,因其稳定性、性能和安全性。本节将介绍在Linux(以Ubuntu为例)上搭建完整的游戏服务器运行环境。

2.3.1 安装 JDK

使用APT安装OpenJDK

在Ubuntu或Debian系统上:

更新软件包列表:

bash

sudo apt update

安装OpenJDK:

bash

sudo apt install openjdk-17-jdk

验证安装:

bash

java -version
javac -version
手动安装Oracle JDK

下载Linux版Oracle JDK压缩包

创建安装目录:

bash

sudo mkdir -p /usr/local/java

解压安装包:

bash

sudo tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /usr/local/java

配置环境变量,编辑/etc/profile文件,添加:

bash

export JAVA_HOME=/usr/local/java/jdk-17.0.x
export PATH=$JAVA_HOME/bin:$PATH

使配置生效:

bash

source /etc/profile

配置默认Java版本(如有多个版本):

bash

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk-17.0.x/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk-17.0.x/bin/javac" 1
sudo update-alternatives --set java /usr/local/java/jdk-17.0.x/bin/java
sudo update-alternatives --set javac /usr/local/java/jdk-17.0.x/bin/javac

2.3.2 安装 Tomcat

Tomcat是常用的Java Web服务器,适用于游戏服务器的HTTP服务部分。

下载Tomcat 9或10:

bash

wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.x/bin/apache-tomcat-9.0.x.tar.gz

创建安装目录并解压:

bash

sudo mkdir -p /opt/tomcat
sudo tar -zxvf apache-tomcat-9.0.x.tar.gz -C /opt/tomcat

设置权限:

bash

sudo chown -R $(whoami):$(whoami) /opt/tomcat
sudo chmod +x /opt/tomcat/apache-tomcat-9.0.x/bin/*.sh

创建服务配置文件/etc/systemd/system/tomcat.service

ini

[Unit]
Description=Apache Tomcat Web Server
After=network.target

[Service]
Type=forking
Environment=JAVA_HOME=/usr/local/java/jdk-17.0.x
Environment=CATALINA_HOME=/opt/tomcat/apache-tomcat-9.0.x
Environment=CATALINA_BASE=/opt/tomcat/apache-tomcat-9.0.x

ExecStart=/opt/tomcat/apache-tomcat-9.0.x/bin/startup.sh
ExecStop=/opt/tomcat/apache-tomcat-9.0.x/bin/shutdown.sh

User=tomcat
Group=tomcat
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

重载systemd,启动并启用Tomcat服务:

bash

sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat

2.3.3 安装 MySQL

MySQL是游戏服务器常用的关系型数据库,用于存储玩家数据、游戏配置等结构化数据。

使用APT安装

更新软件包列表:

bash

sudo apt update

安装MySQL服务器:

bash

sudo apt install mysql-server

安装过程中设置root密码

配置安全设置:

bash

sudo mysql_secure_installation

启动并启用MySQL服务:

bash

sudo systemctl start mysql
sudo systemctl enable mysql
初始配置

登录MySQL:

bash

sudo mysql -u root -p

创建游戏服务器数据库:

sql

CREATE DATABASE gamedb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

创建专用用户并授权:

sql

CREATE USER 'gameuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON gamedb.* TO 'gameuser'@'localhost';
FLUSH PRIVILEGES;

基本安全设置:

sql

-- 禁用匿名用户
DELETE FROM mysql.user WHERE User='';

-- 允许远程连接(仅在开发环境)
CREATE USER 'gameuser'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON gamedb.* TO 'gameuser'@'%';
FLUSH PRIVILEGES;

配置MySQL以允许远程连接(开发环境):

编辑/etc/mysql/mysql.conf.d/mysqld.cnf,将bind-address修改为:

bind-address = 0.0.0.0

重启MySQL服务:

bash

sudo systemctl restart mysql

配置防火墙允许MySQL连接:

bash

sudo ufw allow 3306/tcp

2.3.4 安装 MongoDB

MongoDB是流行的NoSQL数据库,适合存储非结构化或半结构化的游戏数据,如玩家行为日志、游戏状态等。

使用官方源安装

导入MongoDB公钥:

bash

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

创建MongoDB源列表文件:

bash

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

更新软件包列表并安装MongoDB:

bash

sudo apt update
sudo apt install -y mongodb-org

启动并启用MongoDB服务:

bash

sudo systemctl start mongod
sudo systemctl enable mongod

验证MongoDB是否正在运行:

bash

sudo systemctl status mongod
基本配置

创建管理员用户(在mongo shell中):

javascript

use admin
db.createUser(
  {
    user: "adminUser",
    pwd: "adminPassword",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

创建游戏数据库和用户:

javascript

use gamedb
db.createUser(
  {
    user: "gameuser",
    pwd: "password",
    roles: [ { role: "readWrite", db: "gamedb" } ]
  }
)

启用身份验证,编辑/etc/mongod.conf

yaml

security:
  authorization: enabled

配置网络访问(开发环境),编辑/etc/mongod.conf

yaml

net:
  port: 27017
  bindIp: 0.0.0.0

重启MongoDB服务:

bash

sudo systemctl restart mongod

配置防火墙允许MongoDB连接:

bash

sudo ufw allow 27017/tcp

2.3.5 安装 Redis

Redis是高性能的内存数据库,适用于游戏服务器中的缓存、会话管理、排行榜等场景。

使用APT安装

更新软件包列表:

bash

sudo apt update

安装Redis服务器:

bash

sudo apt install redis-server

编辑Redis配置文件/etc/redis/redis.conf

# 修改为守护进程模式
daemonize yes

# 设置密码(推荐)
requirepass yourpassword

# 允许远程连接(仅开发环境)
bind 0.0.0.0

# 启用持久化
appendonly yes

重启Redis服务:

bash

sudo systemctl restart redis-server

启用Redis服务自启动:

bash

sudo systemctl enable redis-server
基本配置和测试

连接到Redis服务器:

bash

redis-cli

身份验证:

AUTH yourpassword

基本操作测试:

SET testkey "Hello Game Server"
GET testkey

配置防火墙允许Redis连接:

bash

sudo ufw allow 6379/tcp

性能调优(适用于生产环境):

编辑/etc/sysctl.conf,添加:

vm.overcommit_memory = 1

禁用透明大页面:

bash

echo never > /sys/kernel/mm/transparent_hugepage/enabled

/etc/rc.local中添加以保持重启后设置有效:

bash

echo never > /sys/kernel/mm/transparent_hugepage/enabled

2.3.6 安装 Memcached

Memcached是分布式内存对象缓存系统,适用于高并发场景下的数据缓存。

安装过程

使用APT安装Memcached:

bash

sudo apt update
sudo apt install memcached libmemcached-tools

编辑配置文件/etc/memcached.conf

# 内存大小(MB)
-m 128

# 并发连接数
-c 1024

# 允许远程连接(仅开发环境)
-l 0.0.0.0

重启Memcached服务:

bash

sudo systemctl restart memcached

启用Memcached服务自启动:

bash

sudo systemctl enable memcached
验证和测试

检查Memcached状态:

bash

sudo systemctl status memcached

使用telnet连接并测试:

bash

telnet localhost 11211

# 在telnet中执行
set test 0 3600 5
hello
get test
quit

配置防火墙允许Memcached连接:

bash

sudo ufw allow 11211/tcp

安全建议(生产环境):

限制只允许本地连接,编辑/etc/memcached.conf

# 只监听本地连接
-l 127.0.0.1

设置防火墙阻止外部访问:

bash

sudo ufw deny 11211/tcp

2.4 总结

本章详细介绍了在Windows、Mac OS X和Linux平台上搭建Java游戏服务器开发环境的完整流程。合适的开发环境是高效开发游戏服务器的基础,它应该包括以下核心组件:

JDK:Java开发的基础,提供编译和运行Java程序的工具和环境。

IDE:如Eclipse,提供代码编辑、调试和项目管理功能,提高开发效率。

数据库系统:包括关系型数据库MySQL和NoSQL数据库MongoDB,用于存储游戏数据。

缓存系统:如Redis和Memcached,用于提高数据访问速度,减轻数据库负担。

应用服务器:如Tomcat,用于部署Web服务和RESTful API。

辅助工具:包括SSH工具、数据库客户端、版本控制系统等,辅助开发和部署过程。

对于不同的平台,我们提供了平台特定的安装和配置指南,确保开发者能够在各自熟悉的环境中高效工作。

在实际开发中,建议根据项目需求和团队习惯选择合适的工具和配置。例如,大型项目可能需要更复杂的构建工具和持续集成系统,而小型项目可能更注重开发速度和灵活性。

此外,为了确保开发环境与生产环境的一致性,建议使用容器技术如Docker来标准化环境配置,减少”在我的机器上能运行”的问题。

环境搭建完成后,下一章将介绍游戏服务器的基础架构设计,包括通信模型、线程模型和数据模型等核心概念。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容