Механизм реализации

Космос

Сцена космоса находится: res://blokoj/kosmo/scenoj/space.tscn. В сцене сразу есть центральная звезда, камера (res://blokoj/kosmo/scenoj/main_camera.tscn) и управление (UI). Остальные объекты, появляющиеся в космосе создаются автоматически в зависисмости от данных, пришедших с сервера. В сцене звезды (res://blokoj/kosmo/scenoj/star.tscn) находится освещение (WorldEnveronment).

Объекты

Все объекты создаются на основании полученных данных с сервера. Список объектов храниться в Global.objektoj. Запрос объектов с сервера происходит в моменты:

  • смены мира
  • космоса на станцию
  • станции на космос
  • куба в космосе (на 24.11.2020 не реализовано).

Стрельба

Сцена универсального лазера - res://blokoj/kosmosxipoj/scenoj/moduloj/laser.tscn. У первого боевого лазера скрипт такой-же.

Визуализация стрельбы и результаты заложены в скрипте лазера.

За разрушения лазером отвечает Godot-сервер.

Для выстрела необходимо цель взять в прицел. Отправляется задача (если проекта ещё нет, то открывается проект) на сервер с соответствующей категорией. С сервера приходит по подписке постановка цели. Если расстояние до цели больше, чем разрешено, то цель снимается Godot-сервером. Следующий шаг - стреляем по цели. Отправляется на сервер задача со стрельбой. Godot-сервер анализирует результат выстрела.

Если успешный выстрел:

  1. Если не добывающий лазер, то отправляем на сервер разрушение цели на уровен повреждения
  2. Если выстрел добывающий лазером не по астероиду:

2.1. Отправляется на сервер разрушение цели на уровен повреждения, уменьшенное в два раза

  1. Выстрел по астероиду добывающим лазером, отправляем на сервер изменения:

3.1. Убавляем минерала астероиду

3.2. Добавляем (при отсутствии создаём) на склад (е) корабля ресурс

3.3. Уменьшаем астероиду объём

По результату снятия прицеливания приходит закрытие задачи прицеливания и если более целей нет, то закрытие проекта стрельбы

Модели кораблей

У каждого корабля должны быть элементы:

  1. Кабина с местом для хранения (куда сесть аватару)
  2. Кузов с местом для хранения (либо общий груз, либо специализированный как боеприпасы для примера)
  3. Двигател(ь/и)

Модели кораблей создаются в реальном размере без масштабирования.