В настоящее время я работаю над космической песочницей, в которой в значительной степени будет реализована возможность индивидуального программирования ваших систем. Я хочу реализовать это таким образом, чтобы
- доступным,
- мощный (минимальный уровень будет полнотой по Тьюрингу)
- быстро в коде.
Текстовые языки, как правило, удовлетворяют только двум последним требованиям, и, хотя не составляет труда разработать визуальный язык, который удовлетворяет первым двум, визуальные языки трудны для программирования из-за необходимости интенсивного использования мыши. В то время как есть несколько очень доступных текстовых языков, я хочу, чтобы у непрограммистов была возможность облегчить программирование.
game-design
software-engineering
Dimitriye98
источник
источник
Ответы:
Действительно, единственный способ получить все функции - это реализовать несколько интерфейсов. Доступный и мощный - это часто два конца спектра. Самый простой способ сделать это - внедрить мощную систему с дополнительным интерфейсом, позволяющим новичкам взаимодействовать с системой интуитивно понятным способом.
Если учесть систему, которая позволяет начинающим программировать визуально, возможно, что-то похожее на инструменты программирования Lego Mindstorms :
Где есть компоненты перетаскивания. Компоненты имеют входы и выходы. Компоненты могут быть простые вещи , как
AND
, илиOR
ворота, или более сложными , как тест на окружающих врагов.В идеале визуальное представление должно составлять сценарий письменного языка в фоновом режиме. Это предлагает мощный инструмент для изучения языка тоже. Если новичок может визуально «написать» свою программу, то прочитайте код, который он создает, и он с большей вероятностью поймет это и сможет изменить полученный код. В конечном итоге возможность писать более мощный код, чем позволяют визуальные инструменты. Это отвечает требованию облегчить пользователям программирование.
Основой системы, конечно же, является письменность. Визуальные инструменты просто дают пользователям быстрый способ запрограммировать что-то простое и позволяют новичкам начать работу.
Письменный язык позволяет продвинутым пользователям делать сложные вещи. И вы даже можете позволить пользователям создавать свои собственные компоненты, создавая собственные сценарии. Затем они могут повторно использовать созданные компоненты в быстром и удобном интерфейсе для быстрого программирования.
Удачи! Похоже, веселый проект.
источник
Возможно, вы захотите взглянуть на блочные Google , они сочетают визуальные элементы с узнаваемыми терминами программирования, сохраняя при этом довольно приличный уровень доступности.
Вы можете взглянуть на демо Maze для вдохновения, многие из моих друзей, не являющихся программистами, были в состоянии пройти большую часть пути через головоломки, используя его, удовлетворяя, по крайней мере, некоторым из ваших действующих критериев.
источник
Я удивлен, что это не упоминалось ранее, но MIT Scratch из использует блочный интерфейс, который быстро кодирует. Он позволяет пользователям создавать свои собственные функции и может удивительно усложнять язык, который был создан, чтобы научить детей, как код.
Stencyl - еще один пример блочного кодирования, который делает нечто более похожее на то, что вы хотите. Кодирование с такими блоками намного эффективнее и требует меньше времени, чем интерфейсы визуального программирования, подобные тем, которые используются в Lego NXT. Stencyl позволяет пользователям кодировать либо в ActionScript, либо в блоках.
Я извиняюсь за отсутствие фотографий, у меня пока недостаточно репутации, чтобы размещать изображения.
источник
Язык программирования BPEL имеет визуальное представление и множество инструментов, которые работают с ним. Это язык рабочего процесса, а не язык программирования, но он завершен. Он многословен, но его легко написать как программистам, так и деловым людям, и его легко перевести из визуальной в текстовую форму. Я не думаю, что это станет хорошим языком игры, но это может послужить источником вдохновения. А учитывая количество двигателей и инструментов BPEL, должна быть возможность повторно использовать некоторые идеи и / или код.
BPEL-подобный язык не будет ощущаться как программирование, больше похоже на системы маршрутизации и соединения. Таким образом, вы можете подключить систему прицеливания к системе оружия с некоторой логикой между ними.
источник
Рассмотрим этот подход:
Это самый быстрый способ, которым я могу придумать, чтобы получить все конфеты без особой боли. Вы получаете нубов click'n'drag, а также фанатов vim на борту. И если вы сохраняете простую механику (например, Trigger -> Condition -> Action), вам не нужно тратить человеческие годы на разработку пользовательского интерфейса для мощного и при этом простого в использовании графического редактора сценариев.
Несколько примеров, чтобы прояснить, что я имею в виду:
источник