# Survival **Repository Path**: sfidea/survival ## Basic Information - **Project Name**: Survival - **Description**: Hi,😊 欢迎您品鉴 Survive “户外生存/大逃杀/建造”类型游戏,这是一款基于 Cesium & Enable3D 引擎架构的“户外生存/大逃杀/建造”类型游戏。如果您一直从事Web/GIS/移动端前端开发工作并且厌倦了传统页面开发,那么您不妨与 Survive 一起到户外探险游玩吧。 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: https://gitee.com/mu1866/projects - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2025-09-30 - **Last Updated**: 2025-09-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [中文](README.md) | [English](README_EN.md) # Hello Survive v0.1.0 ### Survive 介绍 Hi,😊 欢迎您品鉴 Survive “户外生存/大逃杀/建造”类型游戏,这是一款基于 Cesium & Enable3D 引擎架构的“户外生存/大逃杀/建造”类型游戏。如果您一直从事Web/GIS/移动端前端开发工作并且厌倦了传统页面开发,那么您不妨与 Survive 一起到户外探险游玩吧。 ### Survive 内容 Survive “户外生存/大逃杀/建造”类型游戏的出发点是作为从事Web/GIS/移动端前端开发人员推荐用于教学和非商业项目为目的。Survive 主要以 Geographic Information System 与 Game 的结合,让开发者在 Survive 游玩的过程中熟悉使用 GIS,涵盖平时开发人员开发过程中的一些常用方法逻辑并封装💻。内容包括如:毒雾区域模块,导航路径规划模块,空投物资模块,玩家生存状态(饥饿/饥渴/毒雾)模块,动画管理模块,镜头切换管理模块,物资刷新模块,经纬度管理模块,建造模块,寻宝模块,采掘工业模块,地图模块,定时任务模块,背包模块,实时定位玩家轨迹移动模块等。希望 Survive 可以作为您 GIS 入门的首选。 ### 关于 ThreeJS & Enable3D Survive 主要是以 Cesium & Enable3D 双场景交互进行游戏互动,Enable3D 在 Survive 里作为简单的游戏场景交互进行游戏互动,如果您需要复杂的 Enable3D 游戏场景进行交互的话可以来了解下我的另一个开源游戏项目 >>> [Bullet zombie 传送门](https://gitee.com/mu1866/bullet-zombie)🚀🚀🚀 ### 关于 Bullet zombie 和 Survive🔥🔥🔥 Bullet zombie 和 Survive 这两款开源游戏项目如果您都已有所了解并接触的话,那么“它哥俩儿”诞生初期的使命就结束了...“这哥俩儿”开源游戏项目主要是为了让前端开发人员抛开传统页面开发如何更好的“在往前走一走”。游戏项目涵盖了 Web/桌面/移动/嵌入式等多端服务端开发架构以及 GIS/ThreeJS/神经网络等多种技术相互结合。避免了想“在往前走一走”的前端开发人员面临“重学”的学习开发成本。Bullet zombie 和 Survive 在这里也非常感谢大家的支持与鼓励💖💖💖 ### Survive 素材 - [kenney](https://kenney.nl/assets) - GameUI icon by game-icons (Source: [https://game-icons.net/]) CC BY 3.0. ### Survive 工具/库 🔗 - [vue](https://vuejs.org/) -front end. - [react-native](https://www.react-native.cn/) -front end. - [nest.js](https://nestjs.com/) -backend. - [enable3d.io](https://enable3d.io/) -engine. (Source: [https://github.com/enable3d/enable3d]) LGPL-3.0. - [gsap](https://gsap.com/) -core. - [amap](https://lbs.amap.com/api/javascript-api-v2/summary) -core. - [naiveui](https://www.naiveui.com/zh-CN/os-theme) -core. - [socket.io](https://socket.io/) -core. - [ioredis](https://github.com/luin/ioredis) -core. - [cesium](https://sandcastle.cesium.com/) -core. - [DataV](https://datav.aliyun.com/portal/school/atlas/area_generator) -tool. - [vConsole](https://www.npmjs.com/package/vconsole) -dev tool. - [android-studio]() -tool. - [Blender]() -tool. ### Survive Core code 目录结构 #### app front end v0.1.0 ``` 📦 ReactNative ├── 📂 config │ ├── 📂 utils │ ├── 📄 App.tsx │ ├── 📄 package.json └── 📄 README.md ``` #### backend v0.1.0 ``` 📦 Service ├── 📂 logs ├── 📂 src │ ├── 📂 TemplateApi │ │ ├── 📂 TemplateApiGameSocketRoom │ │ │ └── 📄 TemplateApiGame.room.ts │ │ ├── 📂 TemplateApiGateway │ │ │ └── 📄 TemplateApiChat.gateway.ts │ │ ├── 📄 TemplateApiPlugService │ │ ├── 📄 TemplateApi.service.ts │ │ └── 📄 TemplateApi.controller.ts │ ├── 📂 utils │ │ ├── 📄 calculateTimeRemaining.ts │ │ ├── 📄 publishSubscrib.ts │ │ ├── 📄 uploads.type.ts │ │ └── 📄 winston.config.ts │ ├── 📄 app.controller.ts │ ├── 📄 app.module.ts │ └── 📄 main.ts ├── 📂 static │ ├── 📂 game │ │ ├── 📂 ammo │ │ ├── 📂 images │ │ ├── 📂 json │ │ ├── 📂 models │ │ ├── 📄 Enable3DSceneModels.json │ │ ├── 📄 GaemCoordinates.json │ │ ├── 📄 PlayerInfo-dev.json │ │ └── 📄 Timer.json ├── 📄 config.yml ├── 📄 Dockerfile ├── 📄 package.json └── 📄 README.md ``` ### web front end v0.1.0 ``` 📂 Web ├── 📂 src │ ├── 📂 components │ │ └── 📄 index.js │ ├── 📂 config │ ├── 📂 utils │ ├── 📂 views │ │ └── 📂 cesium │ │ └── 📄 index.vue ├── 📄 Dockerfile ├── 📄 package.json └── 📄 README.md ``` ### Survive 流程时序 #### 登录流程时序 v0.1.0 ![登录流程时序](./Web/src/assets/ProcessSequence-one.png) #### 建造模块流程时序 v0.1.0 ![建造模块流程时序](./Web/src/assets/ProcessSequence-two.png) #### Cesium & Enable3D 双场景交互流程时序 v0.1.0 ![建造模块流程时序](./Web/src/assets/ProcessSequence-three.png) ### Survive 架构 #### 架构 v0.1.0 ![架构](./Web/src/assets/architecture.png) ### Survive 运行视频预览 🎬 #### 传送门 [游戏视频介绍](https://www.bilibili.com/video/BV1MFpqztELv/?vd_source=4935fce829bc1535d641a4e735b2349f) ### Survive 部分开发进度预览 📷 #### Survive Game UI System v0.1.0 ![Game-UI-system](./Web/src/assets/UI.png) #### Survive Game Map System v0.1.0 ![Game-map-system](./Web/src/assets/map.png) #### Survive Airdrop Box System v0.1.0 ![Game-airBox-system](./Web/src/assets/airBox.png) #### Survive Enable3D Scene System v0.1.0 ![Game-industry-system](./Web/src/assets/industry.png) #### Survive Real time positioning of player map movement System v0.1.0 ![Game-industry-system](./Web/src/assets/move.png) #### Survive backpack System v0.1.0 ![Game-industry-system](./Web/src/assets/backpack.png) ### Survive install #### App ``` cd ReactNative npm i npm start cat config/host.js ``` #### Service ``` cd Service npm i npm run start cat config.yml cat .env cat .env.online ``` #### Web ``` cd Web npm i npm run dev cat src/config/host.js ``` #### online App deploy ``` cd ReactNative/android ./gradlew assembleRelease ``` #### online Service deploy ``` cd Service cat Dockerfile # Linux Dockerfile docker build -t survive-v0.1.0-online-1:v0.1.0 . # develop # docker run -itd --network=host --name sur-service survive-v0.1.0-online-1:v0.1.0 docker run -itd -p 1871:1871 --name sur-service survive-v0.1.0-online-1:v0.1.0 docker images docker ps -a # online config.yml cat config.yml ``` #### online Web deploy ``` cd Web npm run build unzip dist.zip ``` ### 🌟 模块 - [x] **毒雾区域 v0.1.0** - [x] **导航路径规划 v0.1.0** - [x] **空投物资 v0.1.0** - [x] **玩家生存状态(饥饿/饥渴/毒雾) v0.1.0** - [x] **动画管理 v0.1.0** - [x] **镜头切换管理 v0.1.0** - [x] **物资刷新 v0.1.0** - [x] **经纬度管理 v0.1.0** - [x] **建造 v0.1.0** - [x] **地图 v0.1.0** - [x] **定时任务 v0.1.0** - [x] **实时定位玩家轨迹移动 v0.1.0** - [x] **背包 v0.1.0** - [x] **食物 v0.1.0** - [x] **采掘工业 v0.1.0** - [ ] **安全屋-仓库 v0.1.0** - [ ] **寻宝 v0.1.0** - [ ] **多人在线 v0.1.0** - [ ] **方方面面的你这不得优化优化啊** ### 💖 支持项目 如果这个项目对您有帮助,欢迎 **Star** 或 **Fork**!您的鼓励是我前进的动力,感谢您的认可!😊