Александр Зуев
Sniper - Десктопный 3D-симулятор стрелкового тира
Александр Зуев
#Программирование игр

Sniper - Десктопный 3D-симулятор стрелкового тира

33 
Александр Зуев Россия, Краснодар
Поделиться: 0 0 0
Sniper - Десктопный 3D-симулятор стрелкового тира
Бюджет

500 000

Сфера

Информационные технологии и интернет

Сдано

Сентябрь 2025

Задача

Требовалось создать законченный продукт, в котором непрограммист может самостоятельно собирать стрелковые упражнения любой сложности - без правки кода, без участия разработчика и без пересборки приложения. Ключевые требования:

- Редактор уровней как в профессиональных движках: расстановка объектов мышью, перетаскивание, поворот, копирование, отмена действий, мини-карта.

- Гибкая параметризация каждого элемента сцены: дистанция до мишени, время на рубеж, количество выстрелов, штрафы, звуковое сопровождение, поведение мишеней - десятки настроек, у каждого типа объекта свои.

- Соревновательный режим на одном ПК с честным разделением экрана и полной изоляцией игроков друг от друга.

- Разнородная физика мишеней: статичные, движущиеся, вращающиеся, биатлонные с падающими створками, сбиваемые.

- Сохранение сценариев и статистики между сессиями, кроссплатформенный запуск, формирование отчетности для инструктора.

Сложность не в отдельных фичах, а в том, что все они должны работать в единой системе, где данные сценария - один источник правды и для редактора, и для игрового режима, и для отчета.

Решение

Реализован единый декларативный слой данных (Target / Param), который описывает любой объект сцены как набор типизированных параметров (range, rangefloat, bool, dropdown, категория). Этот слой стал ядром всей системы:

  • Редактор автоматически генерирует UI настроек из списка параметров объекта - добавление новой настройки не требует ни строчки UI-кода.

  • Игровой движок читает те же параметры в рантайме и применяет их к камере, таймерам, подсчету очков и звуку.

  • Модуль отчетов сериализует результаты по той же модели и выгружает их в форматированный Excel-документ.

Поверх этого ядра построены полноценный редактор сценариев (drag-and-drop, мультивыделение, привязка мишеней к объектам, undo/redo, copy/paste, авторасчет дистанций, 2D-мини-карта, превью вида от лица стрелка) и движок стрельбы (рейкаст-баллистика, зонный подсчет от центра мишени, декали от попаданий, переключение огневых рубежей по таймеру и лимиту выстрелов, штрафы за чужие мишени и промахи).

Результат

  • Собран законченный продукт из трех интегрированных подсистем (редактор, игровой движок, отчетность), работающих поверх единой модели данных.

  • Время сборки нового упражнения сократилось с ручной работы программиста до нескольких минут в визуальном редакторе - создание контента полностью перешло к пользователю.

  • Поддержано до 5 участников одновременно на разделенном экране с полной визуальной изоляцией и без искажений картинки.

  • Реализовано 5+ типов объектов сцены и 4 типа местности, переключаемых в рантайме; 6 зачетных зон с масштабонезависимым подсчетом.

  • Полноценный редактор уровня профессиональных инструментов: undo/redo, copy/paste, мультивыделение, привязки, мини-карта, превью от лица стрелка.

  • Автоматическая выгрузка протоколов в Excel превратила симулятор в рабочий инструмент с отчетностью, а не только в игру.

  • Архитектура «один источник правды» обеспечила расширяемость без затрат: новый параметр или тип мишени добавляется в модель и сразу подхватывается редактором, движком и отчетом.

https://mega.nz/file/sH1kFTKJ#SuSqSHjZmzpKSS1fx6tWIdn4O2NzMKSTXNELB2aQ6Uk

Стек технологий

  • С# С# Язык программирования
  • Unity Unity Среда разработки

Оцените кейс
Спасибо за оценку
Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

Оставить заявку