Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/steve245270533/character-simulator
Character Simulator(Walk Simulator) is inspired by digital pavilions and third-person games, and is developed based on the "gallery". The technology stack uses Vue3+TypeScript+Vite
https://github.com/steve245270533/character-simulator
game threejs webgl
Last synced: about 2 months ago
JSON representation
Character Simulator(Walk Simulator) is inspired by digital pavilions and third-person games, and is developed based on the "gallery". The technology stack uses Vue3+TypeScript+Vite
- Host: GitHub
- URL: https://github.com/steve245270533/character-simulator
- Owner: Steve245270533
- License: gpl-3.0
- Created: 2023-08-08T08:22:31.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-04-14T13:15:46.000Z (9 months ago)
- Last Synced: 2024-04-14T15:22:56.881Z (9 months ago)
- Topics: game, threejs, webgl
- Language: TypeScript
- Homepage: https://steve245270533.github.io/character-simulator/
- Size: 54.7 MB
- Stars: 48
- Watchers: 5
- Forks: 17
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Character Simulator
Character Simulator(Walk Simulator) ๐ฎ is an exciting game developed using the three.js technology stack, offering players an immersive virtual world to explore. In this game, you'll experience precise collision detection between the scenery and the characters, ensuring a realistic and smooth gaming experience. Additionally, the game features a dual-person perspective switch, allowing you to seamlessly switch between the first-person and third-person views, enhancing your ability to explore the game world. To optimize performance, the camera occlusion optimization feature has been cleverly applied, providing you with smoother game visuals and animations. Moreover, "Walk Simulator" incorporates elements of NES game simulation, allowing you to relive the nostalgia of classic games. Whether you're exploring unknown worlds or taking on various gaming challenges, you'll find joy and excitement in Character Simulator(Walk Simulator)!:cn:[ไธญๆ](./README_ZH.md)
## How to operate?
walk: `W`/`S`/`A`/`D`jump: `Space`
view: `left mouse button`
Switch person perspective: `V`
Trigger Interaction: `F`
## Features
- [x] First and Third Person Perspective Switch.
- [x] High-Performance Collision Detection.
- [x] Third-Person Camera Occlusion Handling.
- [x] Interactive Box Detection.
- [x] NES Game Emulation.## Additional Note
Although this project is developed using `Vue3` and `TypeScript`, the core functionalities are still encapsulated using an object-oriented approach. Vue code is less invasive, allowing for easier migration to other technology stacks for developers.## Directory structure description
```text
โโโ src # Source code
โ โโโ application # Core game source code section
| | โโโ audio # Audio class (create positional audio)
| | โโโ character # Character class (character model control)
| | โโโ control # Keyboard control class (keyboard key state management)
| | โโโ core # Core base class (includes camera, renderer, scene, etc.)
| | โโโ emitter # Event emitter class (dispatch various events)
| | โโโ environment # Environment class (create map models, lights, scene textures)
| | โโโ interactionDetection # Interaction detection class (intersection detection between character box and interaction box triggers)
| | โโโ loader # Loader class (fbx, glb, audio, etc. loader management)
| | โโโ utils # Utility functions
| | | โโโ typeAssert.ts # Type inference utility functions
| | โโโ world # Core game class (used to manage core elements in the game world, including environment, character, interaction detection, and audio components)
| | โโโ Constants.ts # Constant definitions (define model/texture/media resource paths, event dispatch names, etc.)
โ โโโ assets # Resource folder
| | โโโ audio # Audio files
| | โโโ font # Font files
| | โโโ img # Image files
| | โโโ models # Model files
| | โโโ nes # Nes game files
| | โโโ main.css # Global stylesheet
โ โโโ components # vue็ปไปถ
| | โโโ LoadProgress.vue # Loading component
| | โโโ NesGameDialog.vue # Nes game dialog component (run Nes games)
| | โโโ NotifyTips.vue # Interaction notification component
โ โโโ App.vue # Entry page
โ โโโ main.js # Entry file (load components, global styles, initialization, etc.)
```## Donate
Open source is not easy, your support is my continuous motivation! This project is an open source project, donations are voluntary.
### How to donate?
[็ฑๅ็ตโก](https://afdian.net/a/twimark)## Project Setup
```sh
npm install
```## Compile and Hot-Reload for Development
```sh
npm run dev
```## Type-Check, Compile and Minify for Production
```sh
npm run build
```