学习 Play framework 一年有余,官方文档基本翻遍,百无聊赖之下,想要做一个文字页游。
其灵感源于学生时代的一款游戏,那时智能机才刚刚兴起,每天乐不思蜀地玩着,非常有意思。
前期准备
- 预期目标
- 环境搭建
一、预期目标
内容不可能完全一致,但游戏的基本玩法和世界观应该坚持,可以适度做一些优化,短期内应该定位于架构体系和灵活扩展,以便未来能够基于此做得更好,至少可以从其他游戏借鉴更丰富的元素。
- 1.0 版本完全模仿
- 限制为 100 级(未转生满级 800 级,转生满级 900 级)
- 基础内容完整(道具、怪物、职业、任务、等级、副本、商城、货币、爆率……)
- 1.1 版本优化界面
- 限制为 200 级(开始参与更深层次的体验)
- 提供 APP 版本(主要是 Android,通过 Restful API 玩耍)
- 1.2 版本优化玩法
- 限制为 700 级(需要解除封印才能到 800 级)
- 职业技能平衡(实施自己对游戏的理解)
- 1.3 -- 2.0 版本待定
二、环境搭建
- 云服务器(可选)
- 生产环境(可选)
- Git 仓库
- 开发环境
2.1 云服务器
云服务器一般不是刚需,所以单机的话,可以跳过 这部分内容。
为了节省篇幅,这一步已转移到:Web 开发 | 云服务器。
2.2 生产环境
如果没有 云服务器,这一步 可以跳过。
- SSH
- OracleJDK
- Git(可选)
- Nginx(可选)
- Redis(主要)
- MySQL 或 Cassandra(可选)
部分软件不推荐直接以 root
用户运行,所以应该创建一个普通用户。
提示:如果你已经有了 普通用户,可以不用再创建,切换过去即可。
建立一个名为 mrzhqiang
的用户:
useradd mrzhqiang
passwd mrzhqiang
提示,你应该将上面的 mrzhqiang
替换为你喜欢的 用户名。
为了能执行更多操作,按照 /etc/sudoers
中的指引:
在 /etc/sudoers.d
目录下创建 mrzhqiang
文件:
cd /etc/sudoer.d/
touch mrzhqiang
visudo mrzhqiang
对 mrzhqiang
文件,增加以下内容:
mrzhqiang ALL=(ALL) ALL
SSH
SSH 用来远程访问云服务器,一般来说,CentOS 7.4
内置并启动了 SSH Server
,现在 Windows 10
又自带 OpenSSH Client
,符合情况的话可以 跳过 这一节。
其他情况,请参考:Linux 在 Windows 下 通过 SSH 访问。
OracleJDK
OracleJDK 提供给 Play 编译首次访问接口时的相关代码,另外 Cassandra 和 Elasticsearch 也都依赖 JDK 环境。
为了节省篇幅,这一节已转移到:Linux | Oracle JDK。
Git
Git 作为代码版本管理工具,可以让线上环境保持稳定代码,一旦出错立马回退版本。
为了节省篇幅,这一节已转移到:Linux | Git。
Nginx
服务器一般安装多个 Web 应用,在占用多个端口的情况下,使用 Nginx 来保证不同子域名映射到各个应用。
为了节省篇幅,这一节已转移到:Linux | Nginx。
Redis
不仅仅用于缓存和全局变量,Redis 其实非常强大,推荐入手《Redis 实战》这本书。
为了节省篇幅,这一节已转移到:Linux | Redis。
MySQL 或 Cassandra
MySQL 对于中小型应用来说,足够成为第一梯队选择,但它很难保证数据量上来的同时,查询速度保持稳定,特别是设计关系纠缠不清的状态下,查询明显是一件难以保证性能的事情。
为了节省篇幅,MySQL 的安装已转移到:Linux | MySQL。
使用 Cassandra 的话,你不用关心数据之间的关系,即使再大的数据量,也不会导致查询缓慢,并且具有良好的扩展性,利用集群你可以建立多个数据中心,假设有一天你的某一个数据中心失火,服务器宕机,也不至于你的网站崩溃,甚至不可访问。
为了节省篇幅,Cassandra 的安装已转移到:Linux | Cassandra。
但实际上,MySQL 还是强大得多,Cassandra 的使用者还是太少。
2.3 Git 仓库
- GitHub
- 码云
GitHub
一般我们将项目丢在 GitHub 上,可它有两个不稳定的地方:其一,服务器在国外,偶尔会访问失败;其二,最近被微软收购了,可能无法再保持中立。如果你不觉得这是缺点,那么你可以申请一个账号,然后创建 Git 仓库,这也需要你在本地机器上安装 Git 环境,才能正常开发。
申请账号页面:
输入用户名,邮箱,密码,即可创建。可能还需要邮箱验证一下,而这个用户名将是你的 GitHub 社交名字。
登陆成功页面:
在页面左侧看到上图中的按钮,点击即可进入创建仓库页面:
Repository name
仓库名字,一般来说是全小写,并且不能与 自己账号内的其他仓库名字 发生冲突。Description
仓库简介,这是可选的操作。Public or Private
公开状态/私有状态,一般来说是公开状态,私有需要付费使用,所以需要慎重考虑是否使用 GitHub。Initialize this repository with a README
初始化仓库的README.md
文件,将作为整体介绍展示出来。Add .gitignore
忽略策略,表示忽略项目中的其他文件,将不会加入到 Git 仓库,选择PlayFramework
就好。Add a license
授权许可,表示此项目的许可范围,一般是Apache License 2.0
许可,这基本是开源项目的默认方式。
这就完成了一个 Git 仓库的创建:
码云
码云 是国内的开源社区,相对 GitHub 来说,它弥补了访问速度的问题,但中立性有待时间考验,如果 码云 坚持为开发者服务,那么它将是最好的选择,因为不仅可以创建公开项目,还可以创建私有项目。
注册页面:
相对 GitHub 来说,它有明显的亲切感:
并且可以设置私有项目,这是比较吸引我的地方,但它也有国人的明显风格:
如果不是滥用 Git 仓库,纯源代码很难达到 5 个 G 的总容量限制,而私人也不可能拥有超过 1000 个项目,其他限制与 GitHub 无二,所以追求速度的话,推荐选择 码云。
提示:也可以用 GitLab 自己搭建私有的 Git 云,但它需要至少 4 Gb 的内存,请知悉。
2.4 开发环境
- Git
- OracleJDK
- IntelliJ IDEA
- 便捷工具(可选)
Git
Windows 系统安装 Git 非常简单,下载下来双击即可。
附带的 Git Bash Here
还可以作为 SSH Client
使用:
为了方便上传代码到 GitHub,需要生成一下 ssh KEY
,为了节省篇幅,具体操作不再撰述,请参考 GitHub 官方教程。
Oricle JDK
这里同样选择 JDK 1.8.0_171
版本,在 Windows 上就是双击安装,注意看是不是 64
位版本。
IntelliJ IDEA
这里参考 【Play framework 学习笔记】、新手入门 的【萌新入门体验】部分,IDEA 是必备的神器。
便捷工具
Web 开发需要一些便捷工具,用来验证各个接口。
特别是作为一个文字页游,必须要在手机上有特别好的表现,那么 Opera 是最好的选择。
而提供给 APP 端的接口,可以用 Postman 来处理,这是一个非常强大的 HTTP 工具。
最后可能还需要在 Chrome 中安装一个 Json Handler 插件。
- Opera
- Postman
- Json Handler
以上前两个都是下载安装就能玩耍的,不必靡费口舌,而对于 Chrome 插件来说,需要自备梯子,然后搜索安装即可。
总结
现在,前期的 准备工作 已经完成,接下来进入 计划工作 时期,它将包括两个方面:
其一,针对开发细节的考虑,需要明确的一下 架构体系;
其二,安排开发进度的周期,至少每周都要推进一点,开发计划 不能只是一个计划。
2019-08-27 更新:学习了 AngularJS 之后,需要将前后端分离一下。