Перейти к содержимому
  • 0
Medvedkoo

Как удобнее всего разрабатывать для Opencomputers?

Вопрос

Здравствуйте, товарищи. Подскажите, пожалуйста.

 

Ведь в игре кодить - не самое ламповое (ну, может ламповое, но не очень удобное) дело. Как вы справляетесь с этим?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

Разрабатывать удобнее в одиночной игре с параметром bufferChanges=false конфига OpenComputers.cfg. Каждому диску OpenComputers соответствует папка вида .minecraft/saves/SAVENAME/opencomputers/DISK-UUID/, файлы в этих папках доступны для редактирования любым подвернувшимся под руку текстовым редактором. А чем редактировать код Lua, уже не раз обсуждалось:

https://yandex.ru/search/?text=редактор lua site%3Acomputercraft.ru

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А если разрабатываешь прям на сервере то на компьютере через lua пошагово выполняешь нужные действия параллельно в любой текстовый редактор записывая их. Потом компануешь все в программу, копируешь и через СКМ (колесико мыши) вставляешь и тестируешь. Но такое удобно только если программа маленькая. В разы удобнее делать так, как выше написали, там просто все время одну и ту же программу запускаешь, смотришь результат, не понравилось, редактируешь и снова запускаешь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
29 минут назад, Asior сказал:

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

Кстати, да. Не только на сервере. Для проверки возможностей компонентов или нюансов их взаимодействия с миром, команды удобно набирать непосредственно в интерпретаторе Lua.

 

К сожалению, нет простого способа скопировать команду из Майнкрафта в буфер обмена. Поэтому при большом количестве команд я набираю их в текстовом редакторе, а потом копирую нужные и вставляю в консоли компьютеров и роботов. Далее в том же текстовом редакторе составляются однострочные скрипты, которые для проверки их работоспособности копируются в майн. При необходимости они корректируются в том же текстовом редакторе и снова копируются в майн. Но рано или поздно наступает момент, когда длинный однострочный код становится слишком тяжёлым для восприятия. Тогда уже создаются файлы программ.

 

Ещё я рекомендую использовать символические ссылки. Когда проект большой, и файлы программ распределены между несколькими роботами и компьютерами, то после длительного перерыва в разработке бывает трудно вспомнить, в каком сохранении игры и на каких дисках хранятся нужные файлы. Символические ссылки упрощают работу. Все файлы проекта можно разместить в одной общей папке с понятным названием. А в папках, соответствующих дискам OpenComputers, создаются символические ссылки на требуемые файлы проекта. Особенно удобно, если один и тот же файл используется в нескольких роботах, его достаточно обновить лишь один раз в текстовом редакторе. Также символические ссылки позволяют дать удобные имена папкам дисков для быстрого доступа к ним.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, Asior сказал:

А если разрабатываешь прям на сервере то на компьютере через lua пошагово выполняешь нужные действия параллельно в любой текстовый редактор записывая их. Потом компануешь все в программу, копируешь и через СКМ (колесико мыши) вставляешь и тестируешь. 

а можно немного по другому.

У меня дома есть поднятый ftp и http сервер. 

Пишу код в редакторе, сохраняю, захожу майн - кнопка F5 и код программы уже обновлён. Но в одиночке всё же удобнее.

 

local event = require("event") 

local function update(_, _, _, code)
	if code == 63 then 
		os.execute("wget -fq http://address/test.lua /home")
	end
end

event.listen("key_down", update)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, BrightYC сказал:

У меня дома есть поднятый ftp и http сервер.

Да, удобная штука. Но у большинства пользователей домашний комп спрятан за NAT провайдера, а ради скриптов в Майнкрафте не все готовы потратиться на аренду белого IP или VPS. Какие есть идеи по выносу портов за NAT?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, eu_tomat сказал:

Какие есть идеи по выносу портов за NAT?

Никакие. Такие сервисы существуют, но они платные, а если и бесплатные - то жутко ограничены. Для этого в любом случае придётся какой-то внешний сервер искать. Хорошо, если у тебя есть товарищ у которого можно откусить кусочек машинки.

Изменено пользователем BrightYC

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, eu_tomat сказал:

Какие есть идеи по выносу портов за NAT?

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

https://ngrok.com/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я тоже качал программки напрямую с HTTP-сервера на локальном компе. А для отправки на сервер при наличии NAT можно заиспользовать какой-нибудь Stem. Сетап простой.

 

На линуксе:

  • Вотчить файлы через inotifywait. Если хочется обновлять не при сохранении, а по команде вручную — тоже не проблема.
  • (Возможно, прогнать линтеры или ещё что-нибудь.)
  • Отправлять в стем файлы через ncat.

На опенкомпе:

  • Читать сообщения стема через либу.
  • Стопать программу.
  • Обновлять файлы.
  • Запускать программу — в процессе, чтобы легко было стопать.

Разумеется, можно ещё озаботиться и сделать живую перезагрузку, чтобы между обновлениями не терять стейт, но это уже не так просто.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...