从零开始实现放置游戏(十七)——完结篇(附DEMO地址)
大家好,时隔2年多,我来填坑啦!
之前用的技术、设计思路都不成熟,所以直接干掉重做了。
由于从头教学实在太啰嗦,精力也有限,咱们还是直接上源码吧。
DEMO地址:
http://212.129.154.59:5173/
(大家快看呀,服务器11月底就要过期了)
源码地址:
由于之前网盘过期了,文件全被删除了。所以这次换了个网盘,但想下载好像必须要先注册。
服务端源码网盘地址:https://www.jianguoyun.com/p/DVowJU4QzuztCxjimpcFIAA
客户端源码网盘地址:https://www.jianguoyun.com/p/DVXcwEkQzuztCxjnmpcFIAA
也可以加Q群329989095,在群文件里下载
总体设计
这次直接前后端分离, 后端服务采用 SpringBoot +WebSocket, 前端页面使用 Vuejs3。
把WOW的一些设计去掉了,因为游戏设计环环相扣,模仿了A,就要模仿B,最后变成大型端游。
实现功能
1.一个简单的类似JWT的功能,用来登录验证
2.在线砍怪、升级、爆装
3.道具的装备、出售、丢弃
4.在线聊天
5.地图切换
6.重复登入的处理
启动方式
服务端:
1. 先使用maven进行打包, 即使用mvn package命令, 或用IDEA的maven快捷按钮
2. 打包后是一个ZIP包, 解压后是一个lib文件夹和jar包, 启动jar包即可
3. 启动命令示例:java -server -noverify -Xmx4g -Xms4g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:G1HeapRegionSize=16m -XX:ParallelGCThreads=8 -XX:ConcGCThreads=8 -Xloggc:/data/logs/idlemfm-web/gc.log -XX:GCLogFileSize=10M -XX:NumberOfGCLogFiles=10 -XX:+UseGCLogFileRotation -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+DisableExplicitGC -Dspring.profiles.active=beta -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -jar /data/idlemfm-web/idlemfm-web.jar
客户端:
1.需要先安装node.js
2.在项目目录下执行 npm install 安装相关包
3.本地启动执行命令 npm run dev
4.打包到tomcat下运行, 执行命令npm run build, 将dist文件夹内的文件部署到tomcat即可
外部依赖:
mysql, redis 这两个东西配置好后,在服务器端的配置文件里改一下连接URL, 建表脚本在源码里有
完本感言
终于把这个坑填完啦!
程序的主体框架代码逻辑很清晰,大家想做什么功能往上加就是了。
游戏的设计过程就是不断的取舍,市面上有很多游戏的想法、设计很棒可以拿来参考,但放在一起可能就是互相矛盾的。
比如这里做了地图切换,而大部分放置挂机游戏是推关的模式,主线关卡推到某一关会有一个固定的收益,实现上就简单多了,但似乎又有些枯燥。
其实还是取决于自己心里最终想把它做成什么样。
感谢大家的关注,欢迎来群里交流。如果有想一起做游戏的朋友来找我合作啊。
放一张截图:

从零开始实现放置游戏(十七)——完结篇(附DEMO地址)的更多相关文章
- ChatGPT 设计游戏剧情 | 基于 AI 5 天创建一个农场游戏,完结篇!
欢迎使用 AI 进行游戏开发! 在本系列中,我们将使用 AI 工具在 5 天内创建一个功能完备的农场游戏.到本系列结束时,您将了解到如何将多种 AI 工具整合到游戏开发流程中.本文将向您展示如何将 A ...
- 从零开始实现放置游戏(十)——实现战斗挂机(1)hessian服务端搭建
前面实现RMS系统时,我们让其直接访问底层数据库.后面我们在idlewow-game模块实现游戏逻辑时,将不再直接访问底层数据,而是通过hessian服务暴露接口给表现层. 本章,我们先把hessia ...
- 从零开始实现放置游戏(十三)——实现战斗挂机(4)添加websocket组件
前两张,我们已经实现了登陆界面和游戏的主界面.不过游戏主界面的数据都是在前端写死的文本,本章我们给game模块添加websocket组件,实现前后端通信,这样,前端的数据就可以从后端动态获取到了. 一 ...
- 从零开始实现放置游戏(六)——实现挂机战斗(4)导入Excel数值配置
前面我们已经实现了在后台管理系统中,对配置数据的增删查改.但每次添加只能添加一条数据,实际生产中,大量数据通过手工一条一条添加不太现实.本章我们就实现通过Excel导入配置数据的功能.这里我们还是以地 ...
- 从零开始实现放置游戏(七)——实现挂机战斗(5)RMS系统后台参数校验
前面几章实现了在RMS系统中进行数据的增删查改以及通过Excel批量导入.但仍有遗留的问题,比如在新增或编辑时,怪物的生命值.护甲等数据我们可以输入负值,这种数据是不合理且没有意义的.本章我们就实现服 ...
- 从零开始实现放置游戏(六)——实现后台管理系统(4)Excel批量导入
前面我们已经实现了在后台管理系统中,对配置数据的增删查改.但每次添加只能添加一条数据,实际生产中,大量数据通过手工一条一条添加不太现实.本章我们就实现通过Excel导入配置数据的功能.这里我们还是以地 ...
- Cocos2dx游戏开发系列笔记13:一个横版拳击游戏Demo完结篇
懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 ) 写下这些东西的同时 旁边放了两部电影 周星驰的<还魂夜> 甄子丹的<特殊身份& ...
- DTRACE简介之完结篇3
https://blogs.oracle.com/swan/entry/dtrace%E7%AE%80%E4%BB%8B_3 DTRACE简介之完结篇 By samwan on 四月 13, 2007 ...
- (视频)《快速创建网站》 4.2 完结篇 – 应用运营vs.发射卫星,遥测(Telemetry) 技术
本文是<快速创建网站>系列的第10篇(完结篇),如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文.访问本系列目录,请点击:http://devopshub.c ...
- 不就是抽个血吗,至于么-jQuery,Linux完结篇
hi 趁着周一去抽血化验,真开心...下午报告才出来,不过早上来了就开始各种晕菜,叫错名字,说错话.....至于么.. 还有在教研室的30天就可以肥家了,凯森凯森.今天不想干活(哪天想干过我就问问), ...
随机推荐
- 2022-11-25:连续出现的数字。编写一个 SQL 查询,查找所有至少连续出现三次的数字。 答案是输出1,原因是1是唯一连续出现三次的数字。 DROP TABLE IF EXISTS logs;
2022-11-25:连续出现的数字.编写一个 SQL 查询,查找所有至少连续出现三次的数字. 答案是输出1,原因是1是唯一连续出现三次的数字. DROP TABLE IF EXISTS logs; ...
- 不是单例的单例——巧用ClassLoader
本文通过如何将一个单例类实例化两次的案例,用代码实践来引入 Java 类加载器相关的概念与工作机制.理解并熟练掌握相关知识之后可以扩宽解决问题的思路,另辟蹊径,达到目的. 背景 单例模式是最常用的设计 ...
- 流计算中kafka的OffsetReset策略
朋友的公司做的是西南某边境省份网红新能源车的数据处理,由于新能源车的火爆,从年初从现在,数据量已经翻番.但与此同时,服务器却没有多少增加.无奈之下,只能暂时将kafka的数据存储时间由之前的1天改为6 ...
- 代码随想录算法训练营Day51 动态规划
代码随想录算法训练营 代码随想录算法训练营Day51 动态规划| 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费 总结 309.最佳买卖股票时机含冷冻期 题目链接:309.最佳买 ...
- kafka消费者那些事儿
前言 消息的消费一般有两种模式,推模式和拉模式.推模式是服务端主动将消息推送给消费者,而拉模式是消费者主动向服务端发起请求来拉取消息.kakfa采用的是拉模式,这样可以很好的控制消费速率.那么kafk ...
- 2023-06-02:给定一个二进制数组 nums 和一个整数 k, k位翻转 就是从 nums 中选择一个长度为 k 的 子数组, 同时把子数组中的每一个 0 都改成 1 ,把子数组中的每一个 1
2023-06-02:给定一个二进制数组 nums 和一个整数 k, k位翻转 就是从 nums 中选择一个长度为 k 的 子数组, 同时把子数组中的每一个 0 都改成 1 ,把子数组中的每一个 1 ...
- 【LeetCode】Find Pivot Index #724 Rust Solution
给定一个整数类型的数组 nums,请编写一个能够返回数组 "中心索引" 的方法.我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和.如果数 ...
- Taro项目引入Tailwindcss
前情 Tailwind CSS 是一个原子类 CSS 框架,它将基础的 CSS 全部拆分为原子级别,同时还补全各种浏览器模式前缀,兼容性也不错.它的工作原理是扫描所有 HTML 文件.JavaScri ...
- 行行AI人才直播第5期:系列课-AI理解及ChatGPT从基础到高级应用
当前,人工智能是全世界研究的重点对象,也是人们茶余饭后讨论的经典话题.自从 OpenAI 发布 ChatGPT-4 之后,似乎无论是在工作.娱乐.甚至是日常生活中,我们都能感受到AI带来的便利和改变. ...
- mysql处理delete后不释放磁盘空间
myisam:optimize table table_name innodb:alter table table.name engine='innodb' 1. 问题描述在使用mysql的时候有时候 ...