Найти в Дзене

Space Engineers - готовимся писать скрипты

Начиная с этой статьи начнём разбираться с ответом на один из самых популярных вопросов игроков: "Как писать скрипты в Space Engineers?". Демонстрационное видео в конце статьи. Space Engineers - игра на космическую тематику. Довольная спорная с точки зрения геймплея, но, на мой взгляд, одна из лучших на текущее время программистских игр. А все благодаря тому, что в игре доступен так называемый "Программируемый блок", позволяющий писать собственные скрипты на языке C-шарп. От сюда следует, что для начала необходимо скачать, установить, и настроить подходящую IDE для удобства написания кода. Конечно, можно обойтись и встроенным текстовым полем прямо в игре. Но будем честны сами с собой - это не вариант для скрипта длиннее пяти строк. Visual Studio Именно в этой IDE мы будем вести разработку скрипта. Качаем установочник с официального сайта Microsoft: https://visualstudio.microsoft.com/ru/ Выбираем версию Community - она бесплатна для некоммерческого использования. А мы, как минимум, не и
Начиная с этой статьи начнём разбираться с ответом на один из самых популярных вопросов игроков: "Как писать скрипты в Space Engineers?".
Демонстрационное видео в конце статьи.

Space Engineers - игра на космическую тематику. Довольная спорная с точки зрения геймплея, но, на мой взгляд, одна из лучших на текущее время программистских игр. А все благодаря тому, что в игре доступен так называемый "Программируемый блок", позволяющий писать собственные скрипты на языке C-шарп.

От сюда следует, что для начала необходимо скачать, установить, и настроить подходящую IDE для удобства написания кода. Конечно, можно обойтись и встроенным текстовым полем прямо в игре. Но будем честны сами с собой - это не вариант для скрипта длиннее пяти строк.

Visual Studio

Именно в этой IDE мы будем вести разработку скрипта. Качаем установочник с официального сайта Microsoft: https://visualstudio.microsoft.com/ru/

Выбираем версию Community - она бесплатна для некоммерческого использования. А мы, как минимум, не имеем права продавать скрипты, согласно пользовательскому соглашению с разработчиками игры. Устанавливаем, запускаем.

В появившемся окне мастера выбираем создание проекта, далее из большого списка типов проектов выбираем "Приложение Windows Forms (.NET Framework)". По сути, тип проекта нам не важен - мы не пишем программу для Windows. Но данную строку вы найдете со стопроцентной вероятностью.

В следующем окне указываем имя проекта. Любое... "Test", как по мне, отличное имя для начала. Укажите расположение - место, где сохранится файл с кодом и "каркас" проекта. Имя решения и платформу оставьте по умолчанию. Нажмите кнопку "Создать".

-2

Вам откроется проект. Можете нажать F5. Visual Studio скомпилирует программу и запустит ее. Насладитесь, закройте. Шаг не обязательный, тем более, что больше она нам не понадобится.

Закройте вкладку "Form1.cs [Конструктор]". На скрине справа расположен "Обозреватель решений". Кликните правой кнопкой мыши по строке "Ссылки". В появившемся контекстном меню выберите "Добавить ссылку".

В окне "Менеджер ссылок" выберите слева вкладку "Обзор".

-3

На моём скрине уже есть некоторые записи. У вас же их не будет. Затем нажмите кнопку "Обзор". В появившемся диалоговом окне проводника пройдите по пути:
D:\Games\Steam\steamapps\common\SpaceEngineers\Bin64

Я для наглядности не маскирую свой путь к папке, в которую установлен Steam. Но помните, у вас путь будет отличаться.

Далее вам, удерживая зажатой кнопку "Ctrl", необходимо выбрать следующие файлы:

  • Sandbox.Common.dll
  • Sandbox.Game.dll
  • SpaceEngineers.Game.dll
  • SpaceEngineers.ObjectBuilders.dll
  • VRage.dll
  • VRage.Game.dll
  • VRage.Library.dll
  • VRage.Math.dll
  • VRage.Mod.Io.dll

И нажать "ОК".

Не путайте файлы *.dll и *.xml

Это библиотеки. Они необходимы нам для импортирования пространств имен, классов, интерфейсов и так далее. Все для того, чтобы в Visual Studio работало автоматическое дополнение кода и проверка синтаксиса.

Далее в обозревателе решений кликаем правой кнопкой мыши по проекту Test --> Добавить --> Класс. Как на скрине ниже.

-4

В появившемся диалоге добавляемый элемент уже будет выбран, как Класс. Осталось нажать кнопку "Добавить". Можно было вместо имени "Class1.cs" указать любое свое. Я не стал.

Вот, что мы получили:

-5

Теперь выделите весь автоматически созданный код и удалите его. На его место вставьте:

using System;
using System.Text;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using VRageMath;
using VRage.Game;
using VRage.Game.GUI.TextPanel;
using Sandbox.ModAPI.Interfaces;
using Sandbox.ModAPI.Ingame;
using Sandbox.Game.EntityComponents;
using VRage.Game.Components;
using VRage.Collections;
using VRage.Game.ObjectBuilders.Definitions;
using VRage.Game.ModAPI.Ingame;
using SpaceEngineers.Game.ModAPI.Ingame;
namespace Template
{
public sealed class Program : MyGridProgram
{
#region Copy
public Program()
{

}
public void Main(string argument, UpdateType updateSource)
{

}
public void Save()
{

}
#endregion
}
}

Всё, что находится между тегами "region Copy" и "endregion" - ваш будущий скрипт. Его и надо будет копировать в игровой редактор (исключая сами теги).

Что все это значит, и как дальше жить, расскажу в следующей статье.

#csharp #spaceengineers