Клиент-серверная многопользовательская ролевая игра с открытым городом по подобию GTA SA RP, построенная на Unity и C#. Игроки создают персонажа, перемещаются по общему игровому миру в реальном времени, управляют транспортом, взаимодействуют с экономикой города, NPC и друг с другом. Проект объединяет в себе полноценный игровой цикл «ролевого сервера»: авторизация и создание персонажа, развитие, заработок, покупка недвижимости и транспорта, банковская система, боевая механика и сопутствующая инфраструктура (карта, чат, локализация, сохранение прогресса).
В основу сетевого слоя положена библиотека FishNet с авторитетной серверной моделью: все значимые действия (нанесение урона, покупки, перевод права владения транспортом, спавн объектов) проходят через серверные вызовы ServerRpc, а результат рассылается клиентам через ObserversRpc/TargetRpc. Это гарантирует, что списание денег, изменение здоровья и брони, выдача оружия и другие критичные операции выполняются и проверяются на сервере, а не на стороне клиента.
Реализованные системы и механики:
- Хранение данных. Слой работы с базой данных на MS SQL Server: универсальный доступ через рефлексию (маппинг строк таблиц в C#-модели), асинхронное выполнение запросов, периодическое автосохранение позиции, оружия и состояния персонажа. Прогресс полностью восстанавливается при повторном входе.
- Лобби и персонаж. Регистрация/вход, создание персонажа (выбор модели мужского/женского персонажа), спавн в мире с восстановлением последних координат либо в точке по умолчанию.
- Экономика и банк. Наличные и безналичные средства, депозиты с ограничениями по суммам, кредитная система трёх типов (на жильё, на авто, страховка) с первоначальным взносом, остатком долга и графиком платежей, выдача зарплаты и награды за миссии.
- Недвижимость. Покупка и аренда квартир с привязкой к аккаунту игрока.
- Транспорт. Управление автомобилем с физикой и звуком, вход/выход, синхронизация движения между клиентами, передача права владения сетевым транспортом, заправочные станции с покупкой топлива.
- Боевая система. Подбор и переключение оружия, стрельба с баллистикой пуль и трассерами, расчёт урона по зонам тела, броня и здоровье, эффекты крови и физический рэгдолл при гибели персонажей и NPC.
NPC и ИИ. Поведение неигровых персонажей через конечный автомат состояний (патрулирование, испуг и бегство, агрессия и атака, гибель с рэгдоллом) с обходом препятствий.
- Городские активности. Система работы, миссии, кафе и механика голода, автошкола с теоретическим экзаменом (вопросы, варианты ответов, подсчёт правильных и выдача водительского удостоверения).
- Интерфейс и навигация. Игровой HUD (деньги, здоровье, броня, голод, патроны), многоканальный чат, карта города с миникартой и GPS-навигацией, набор оконных экранов на UI Toolkit.
- Локализация. Собственная система мультиязычности (русский/английский) со словарём строк и подстановкой переводов во весь интерфейс.
- Загрузка контента. Использование Addressables для управления игровыми ресурсами и префабами.
Получен работоспособный многопользовательский RP-проект с открытым городом, в котором одновременно подключённые игроки взаимодействуют в едином синхронизированном мире. Реализован замкнутый игровой цикл: вход в игру → создание персонажа → перемещение по городу пешком и на транспорте → заработок через работу и миссии → траты в экономике (банк, кредиты, недвижимость, заправки, питание, обучение в автошколе) → боевые взаимодействия — с сохранением всего прогресса на сервере между сессиями. Критичная игровая логика вынесена на авторитетный сервер, что обеспечивает целостность экономики и боевой механики; набор взаимосвязанных систем (финансы, транспорт, недвижимость, оружие, NPC, городские активности) объединён в цельную и расширяемую архитектуру, готовую к добавлению новых механик и контента.