Готовы смотреть тридцатиминутное видео об основах программирования в Dual Universe? Нет? Тогда смиритесь с тем, что кто-то другой будет править этим миром или, как минимум, большинством окружающих вас там устройств. Да? Тогда вы быстро поймете, что не все так страшно. А еще это может быть просто красиво.

Посмотрите как в режиме отладки выглядят связи навигационного компьютера корабля с другими элементами конструкции:

25 комментариев

avatar
ИМХО, баланс в этой игре станет основной головной болью разработчиков и игроков — игроки стремятся найти наиболее «продуктивные» сборки используя любые доступные возможности — имбовые модули, «дыры» в механиках. В итоге, при всем теоретическом разнообразии, основная масса творений игроков становится весь однообразной. А еще им надо быть поаккуратнее с ИИ-модулями (дроны, турельки и т.п.) — если они получатся «нагибаторскими», то игровой процесс будет очень сильно испорчен.
  • 0
avatar
Интересно что они выбрали LUA и текст в качестве инструмента, а не, скажем, Google Blocky, ведь последний куда более привлекателен для более широкого сообщества. Да и в целом, инструменты визуального программирования на порядки удобнее для решения маленьких задачек, коими и можно считать задачки создания логики для тумблеров и лампочек.
  • +3
avatar
Спасибо за ссылку. Видел похожее, считаю крутым подходом.
В любом случае играть в код не прикольно, игра как-то должна отличаться от работы.
А как может быть интересно использовать код в ММО, особенно если можно будет создавать «защиненные от просмотра программы» на уровне механик…
  • +1
avatar
Тоже подумал о том, почему бы им не сделать редактор визуально-игровым. Но все же это пре-альфа-версия.
Комментарий отредактирован 2017-11-27 18:29:37 пользователем Atron
  • +1
avatar
А я против визуально-игрового метода. Программисту проще и быстрее написать кодом, чем тыкать кучу блоков и настраивать каждый из них.
  • 0
avatar
но ведь не все люди — программисты?
  • +2
avatar
Не все люди — музыканты, но в ММО зачем-то добавляют ноты и музыкальные инструменты. Хотя, пользуется ими от силы целый процент игроков.
  • 0
avatar
ну в том же АА не требовалось быть музыкантом, чтоб играть, и по-моему, это верный подход
  • +2
avatar
Одно другое не исключает. :)
Тот же Google Blocky работает поверх текста и может транслировать свои части почти в любой язык программирования.
Для большинства простых задач этого и правда хватает. Считай это WAYSIWG редактором для кода.
Для более тонких вещей можно и текст пописать.
  • 0
avatar
Или так.

На самом деле, мне непонятно, а зачем это всё в игре? Делать квест-комнаты с паззлами, а оно нужно в ММО?

Для тех простых примеров, что они показали в видео, программирование вообще не нужно. Достаточно простой схемы из нескольких логических элементов, генератора, триггера и блока для хранения текста.
  • +2
avatar
Для простой комнаты может и не нужно, а вот, к примеру, гостиницы или админ постройки с подземными этажами для особистов вполне может понадобиться. Системы безопасности, права доступа и прочее. Да и полуторакилометровый космический линкор, для нормального управления в одно или десяток рыл, потребует не одну простынку кода.
  • +2
avatar
Лучше бы JavaScript сделали, его практически все знают (из программистов, по крайней мере)
  • 0
avatar
Я не знаю JS и знать даже не стремлюсь. :)
JS медленный и не годится в embed для игровых проектов. Может быть еще через пару эволюционных скачков и только со строгой типизацией + OAT…
LUA, в этом плане, не превзойден по паре показателей: скорость исполнения + простота найма кадров.
AngelScript проигрывает LUA только в простоте найма кадров, но не в скорости и не в удобстве интеграции.
А еще там рядом есть очень простые DuckType или ChaiScript. Еще есть D для эльфов и прочих эстетов. Или Python если хочется вывернуть игру наизнанку и наградить ее тормозами на кванте скрипта. :)

Поэтому, точно не JS. :)
  • 0
avatar
Что за OAT? Опциональная типизация не помешала бы, да.
  • 0
avatar
OAT [Of Ahead Time] Compilation — это компиляция «наперед», представляющая из себя предварительную сборку скрипта в низкоуровневый код целевой платформы непосредственно перед его исполнением.
Только в комбинации строгой типизации и OAT можно будет получить достойное быстродействие, лишь немного отстающее по скорости от реализаций на языках низкого уровня.
  • 0
avatar
А, слышал, вообще-то оно называется Ahead-of-Time (AOT). В Джаве оно тоже используется. Меня устраивает и быстродействие динамических языков, с текущими мощностями компьютеров. Зато удобнее и быстрее разработка, а это во многих случаях важнее.
Комментарий отредактирован 2017-11-27 22:26:08 пользователем Eley
  • 0
avatar
вообще-то оно называется Ahead-of-Time (AOT).
Кто бы в этом еще разобрался, что есть что на самом деле. :)
OAT якобы введено сотрудниками гугла для проекта андроид, якобы чтобы было непохоже на AOT. Однако, сейчас уже ясно что этот термин значит немного другое, нежели AOT. Я к OAT привык т.к. очень много возился в свое время под капотом андроида.

Мне кажется, в этой заметке будут властвовать программисты всех мастей. :)
  • 0
avatar
Включил навыки гугления:

stackoverflow.com/questions/28435860/what-does-oat-mean

OAT is a file format produced by compiling a DEX file with ahead-of-time compilation (AOT)

It’s Of Ahead Time, a silly reordering of Ahead Of Time. We went with that because then we say that process of converting .dex files to .oat files would be called quakerizing and that would be really funny.
  • +3
avatar
«Интересно что они выбрали LUA и текст в качестве инструмента»
Видимо в память о WOW ^_^
«В любом случае играть в код не прикольно, игра как-то должна отличаться от работы.»
Мне нравиться играть в код, иногда больше, чем в игры. Поэтому кодом будут заниматься призванные технори, остальные будут у них этот код покупать. Не нужно превращать интересные вещи в механику для стада.
Комментарий отредактирован 2017-11-27 22:15:36 пользователем angro
  • 0
avatar
Не нужно превращать интересные вещи в механику для стада.
Что за неуместный элитизм?
  • +2
avatar
То есть все интересные механики в играх должны быть доступны только для избранных?
Кстати, а зачем в такой схеме нужны технОри? Зачем далеко ходить, пусть код продает разработчик в игровом магазине!
Кстати [2], тут есть интересная механика цитирования.
  • +3
avatar
Как-то примитивно, рисуешь текст и получаешь его ИД. ООП уже давно как используется, неужели трудно вернуть объект текста, который потом легче изменять и удалять, чем путать людей ИДшками?

Таймеры было бы проще добавить в список слотов и сделать у них событие tick и настройку задержки.

Так и не рассказали, как переменные делать.
Комментарий отредактирован 2017-11-27 19:05:45 пользователем Eley
  • +1
avatar
«неужели трудно вернуть объект текста», хахаха я хочу посмотреть как ты будешь это объяснять всея нагибаторам, понятие ид проще для не подготовленного мозга.
Комментарий отредактирован 2017-11-27 22:23:45 пользователем angro
  • 0
avatar
Объяснить text.delete(), имхо, проще, чем deleteText(id). Что ещё за ИД, я хочу просто взять текст и удалить его.
  • +1
avatar
Как человек, чей опыт программирования ограничен игрой Shenzhen I/O, я пока доволен предварительным состоянием показанного. Только «фильтры», которые на самом деле события, сбивают с толку, но к этому можно будет привыкнуть. :)
  • +2
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.