Skip to content

socaseinpoint/samurai-pool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⛧ Dungeon Synth Shooter ⛧

WebGL2 ray marching FPS game в стиле Dungeon Synth.

TypeScript Vite WebGL2

🎮 Особенности

  • Ray Marching — рендеринг через SDF (Signed Distance Fields)
  • Quake-style движение — инерция, air control, прыжки
  • Процедурный звук — вся музыка и эффекты генерируются через Web Audio API
  • Стилистика Dungeon Synth — готический средневековый эстетик

🚀 Быстрый старт

Требования

  • Node.js 18+
  • npm или pnpm

Установка

# Клонировать репозиторий (если нужно)
cd 02-raytracer-ts

# Установить зависимости
npm install

# Запустить dev-сервер
npm run dev

Откроется браузер на http://localhost:3000

Сборка для продакшена

# Собрать проект
npm run build

# Превью сборки
npm run preview

Собранные файлы будут в папке dist/

🎹 Управление

Клавиша Действие
WASD Движение
SHIFT Бег
SPACE Прыжок
LMB Стрельба
R Перезарядка
F Полноэкранный режим
M Вкл/выкл звук

📁 Структура проекта

src/
├── core/           # Ядро игры
│   ├── Game.ts     # Главный класс
│   ├── GameLoop.ts # Игровой цикл
│   └── Input.ts    # Обработка ввода
├── player/         # Игрок
│   └── Player.ts   # Движение, камера
├── weapon/         # Оружие
│   ├── Weapon.ts   # Логика стрельбы
│   └── WeaponRenderer.ts # Отрисовка
├── enemies/        # Враги
│   └── Target.ts   # Мишени с огнём
├── audio/          # Аудио
│   └── AudioManager.ts # Процедурный звук
├── render/         # Рендеринг
│   ├── WebGLRenderer.ts # WebGL2
│   ├── Shaders.ts  # GLSL шейдеры
│   └── HUD.ts      # Интерфейс
├── world/          # Мир
│   └── Collision.ts # Коллизии
├── types/          # TypeScript типы
│   └── index.ts
├── utils/          # Утилиты
│   └── math.ts     # Векторная математика
├── main.ts         # Точка входа
└── styles.css      # Стили

🔧 Скрипты

Команда Описание
npm run dev Запуск dev-сервера с HMR
npm run build Сборка для продакшена
npm run preview Превью собранной версии
npm run lint Проверка кода ESLint

🛠️ Технологии

  • TypeScript — типизированный JavaScript
  • Vite — быстрая сборка и HMR
  • WebGL2 — аппаратный рендеринг
  • Web Audio API — процедурный звук

📝 Разработка

Добавление нового оружия

  1. Создайте конфиг в src/weapon/Weapon.ts
  2. Добавьте рендер в WeaponRenderer.ts
  3. Добавьте звук в AudioManager.ts

Изменение карты

Редактируйте SDF в src/render/Shaders.ts функция mapArena()

Настройка движения

Параметры в src/player/Player.tsDEFAULT_CONFIG

📄 Лицензия

MIT

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors