Code Monkey home page Code Monkey logo

character-simulator's Introduction

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)!

๐Ÿ‡จ๐Ÿ‡ณไธญๆ–‡

How to operate?

walk: W/S/A/D

jump: Space

view: left mouse button

Switch person perspective: V

Trigger Interaction: F

Features

  • First and Third Person Perspective Switch.
  • High-Performance Collision Detection.
  • Third-Person Camera Occlusion Handling.
  • Interactive Box Detection.
  • 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

โ”œโ”€โ”€ 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
โ”‚   โ”œโ”€โ”€ typings     # Type declarations
โ”‚   โ”œโ”€โ”€ 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. qrcode.jpg

Project Setup

npm install

Compile and Hot-Reload for Development

npm run dev

Type-Check, Compile and Minify for Production

npm run build

character-simulator's People

Contributors

steve245270533 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.