Gamedev perfect_genius
2 747

Идея интуитивного способа программирования — Visual Maker

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

В закладки
Аудио

Конкретнее: простой графический редактор типа Paint, в нём можно создавать объекты (пиксельные, векторные, буквы-цифры) и удалять. Также перемещать, поворачивать, масштабировать с нужной скоростью. Увидев повтор в этих действиях, редактор предложит автоматизировать их повторение. Например, увидев создание объекта, потом его удаление и потом снова создание, редактор предложит повторять этот процесс, т.е. объект будет мерцать. В более сложных случаях, когда выявленную закономерность можно объяснить несколькими способами, редактор спросит напрямую или же исследует неоднозначности сам в фоновом режиме, не отвлекая человека.

Это нейросети? Нет, пока нет. Я не смог понять как они работают, поэтому делая Visual Maker попытаюсь к ним подступиться, приоткрыть чёрный ящик.

Вот как выглядит создание простой игры типа Space Invaders:

Рекомендую в первый раз смотреть отключив субтитры (они быстрые, чтобы читать на паузах)

В этой демонстрации прототипа идеи очень многое не реализовано - планирую добавить цвет, загрузку своих изображений и звука, поддержку устройств ввода (сейчас только стрелки клавиатуры), хекс-редактор, текст, а в будущем дойти и до 3D.

Если хотите попробовать прототип, то знайте, что багов в нём больше, чем в играх Bethesda. Самый мешающий - при перемещении объекта мышкой и одновременно с нажатой клавишей-стрелкой - не задерживайте движение в начале и не отпускайте клавишу сразу. Также на видеокартах от Intel курсор может быть смещён по оси Y.

Мои параметры: NVIDIA, экран 1366 х 768 (диагональ 15.5), вертикальная синхронизация под частоту экрана (60 кадров в секунду), поэтому элементы могут выглядеть мелкими (есть масштабирование колёсиком), а анимации ускорены (нажмите на корпусе вашей ПК кнопку Turbo). Если что-то пошло не так, то пока лучшее решение - перезапустить программу и повторить свои действия.

Задуманный интерфейс на данный момент:

-F1 - управляет временем: остановка, перемотка, редактор застывшего момента...

В редакторе момента задействуются кнопки мыши:

-левая - создание и удаление объекта (точка, линия, круг, квадрат...), его свойства.

-правая - перемещение, размер, поворот...

-средняя с колёсиком - управляют видом самого редактора: масштаб, положение, 2D/3D...

Функции каждой кнопки зависят от одиночного нажатия, двойного нажатия, нажатия и задержании, нажатия и перемещения курсора.

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

Какую 2D-игру хотели бы попробовать создать в ВизМейкере?
Pong
Arcanoid
Жизнь
Тетрис
Змейка
Lode Runner
Сапёр
Asteroids
Танчики
Это какая-то хрень, иди лучше убейся.
Марио
Показать результаты
Переголосовать
Проголосовать

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "perfect_genius", "author_type": "self", "tags": [], "comments": 98, "likes": 30, "favorites": 34, "is_advertisement": false, "subsite_label": "gamedev", "id": 37812, "is_wide": false, "is_ugc": true, "date": "Sat, 26 Jan 2019 22:07:45 +0300" }
{ "id": 37812, "author_id": 15662, "diff_limit": 1000, "urls": {"diff":"\/comments\/37812\/get","add":"\/comments\/37812\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/37812"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "last_count_and_date": null }

98 комментариев 98 комм.

Популярные

По порядку

Написать комментарий...
6

Я не программист, но объясните мне, как таким образом программировать, например, физику объекта?

Ответить
2

Показываешь пиксельными шарадами интерпретатору форму в 3-х проекциях. Очень быстро опускаешь и очень быстро поднимаешь - это говорит, что он тяжёлый. Показываешь летящий в обхект пиксель, показываешь как он проминает объект - это говорит, что объект мягкий, а пиксель - нет.
Охуенно, короче. Вот это я понимаю, упрощение разработки. Сидеть и рисовать пиксели в надежде, что интерпретатор поймёт тебя - куда лучше, чем написать условные 10 строк.

Ответить
1

Охренеть О_о
Я реально в потрясении, это выглядит невероятно. Хоть и не с первого раза понятно что происходит, но интересно.
Спасибо, буду изучать.

Ответить
0

И к чему это?

Ответить
0

Рад, что уловили суть идеи : )

Ответить
0

Мне интересно что тебя привело к этой идее.
И ещё интереснее твой опыт в разработке.

Ответить
0

Однажды придумал игру и понадобилось двигать кружок с помощью стика геймпада. Я не мог! Айфон совершил революцию с телефонами, Маск запустил свою ракету, учёные изобрели ручку для левшей, а я не мог двигать нарисованным кружком на экране без изучения программирования или игровых движков с их чудовищными интерфейсами (в те времена движки, названия которых начинаются на "Un", не были такими популярными и удобными, как сейчас).
А ещё рисовал сетку - выделял квадратик и заполнял его копиями весь экран, компьютер молча наблюдал за этим процессом. Что за чёрт, компьютер?! Ты помощник человека или нет? У тебя много ядер и гигабайты памяти, оперируешь огромными потоками информации, подсказываешь как можно завершить слово, но не можешь углядеть повторы в моих действиях?! Для этого же не нужен искусственный интеллект!
В моей игре всё должно было быть из блоков как в Террарии, но каждая со своей физикой, т.е. движки и конструкторы тех времён не подходили по производительности. А ещё юношеский максимализм + перфекционизм заставили изучать ассемблер, чтобы мои программы были идеально оптимальными : )
Этого было мало и я опустился ещё на уровень ниже - как работает процессор на физическом уровне. Писал свою виртуальную машину и дебаггер, чтобы понять, как можно программирование сделать наглядным-понятным и избавиться от багов и других проблем этой индустрии. Оказалось, что удобнее оптимизировать уже готовое работающее, чем собирать программу с нуля из "атомов-кирпичиков", и надо бы научить компьютер создавать программы. С детства интересовался работой мозга, и вдруг дошло, что главная его цель - находить повторы во всём.

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

Ответить
1

Видимо, этот самый максимализм так и не выветрился.
Вместо ассемблера надо было учить плюсы, тогда бы ты представлял себе что такое ООП и почему это самая популярная парадигма. Проблемы в виде пропущенных скобок не особо актуальны уже через пару недель/месяцев в зависимости от обучаемости, а самым упёртым в деле забывания синтаксиса помогают IDE.
Так что с точки зрения разработчика идея выглядит бессмысленной. И не потому что я ебанутый ретроград, а потому что это действительно куда менее удобно, чем чёткие команды копуктеру. Ещё раз повторюсь. В разработке важно, чтобы твой код был читаем (причина популярности python). А тут сторонний человек в итоге ни черта не поймёт. Это просто сто баллов минусом сразу.

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

И да, когда Маск запустил ракету, движки на Un уже давно существовали. И на Cry тоже. И на Hav и так далее.

Ответить
0

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

Зачем видеть код? Человек запускает программу, что-то хочет изменить - меняет.

Ответить
0

А как он узнает что конкретно надо изменить, ало? Проследив действия? А если они непрозрачны типа HTTP-запросов и парсинга контента? Как он будет узнавать на каком конкретно этапе ошибка?

Ответить
0

А если они непрозрачны типа HTTP-запросов и парсинга контента?

Они будут прозрачными и не только они, всё.
Просто я не рассказал о других режимах просмотра.

Ответить
0

В разработке важно, чтобы твой код был читаем (причина популярности python)

Это питон то читаем?

Ответить
0

Да, лол.

Ответить
0

Прочитал интерпретатору как "Императору". Я представил туториалы по этой схеме. Прыжок можно и в 1-2 строки написать. Идея провальная, как это дебагить потом? Или там был сарказм? -_-)

Ответить
0

Нет. Не было. Чувак реально почему-то думает, что это удобнее обычного погроммирования.

Ответить
0

Видишь баг - перематываешь назад и не даёшь багу случиться.
В игре на демонстрации как-раз возникает баг - пульку заставляем возвращаться обратно, а также следовать за пулялкой. В итоге можно обнаружить, что пустив пульку и двинув пулялку - пулька переместится к пулялке и продолжит полёт. Человек этого не хочет, значит баг, значит надо исправлять, значит отмотать время назад на момент движения пулялки и заблокировать перемещение пульки к пулялке. Баг исправлен.
А вот баги, которые человек проглядел - буду делать список ограничений человека, по которому программа проходится и ищет возможные нежелательные ситуации, например типа "пункт 5: человек не может видеть объект белого цвета на белом фоне".

Ответить
0

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

Ответить
0

Ладно с ней, с физикой. Что делать, если тебе нужно определить класс объекта, а потом настроить тысячу таких объектов чуть различающихся парой параметров? Каждый раз "показывать" компьютеру, как должен работать такой объект, чтобы он "понял", что он такой же как остальные?

Ответить
0

тысячу таких объектов чуть различающихся парой параметров

Например?

Ответить
2

Ок: у нас куча деревьев на игровой карте. Ближайшие к точке старта собираются в один клик и дают одну древесину. Дальние в 10 кликов и дают тоже 1 древесину. Между ними градиент этих чисел. Часть деревьев можно собрать только спец инструментом. Из тех, что требуют 5 и больше кликов с шансом 15% должны выпадать листочки. Всего у нас 10 видов деревьев по кликоёмкости, в каждом виде по 5 разных анимаций каждого дерева. На карте нужно разместить 1000 таких деревьев. В будущем я хочу добавить еще одну карту с теми же деревьями, но увеличить их кликоёмкость, поменять ресурс или шанс его выпадения. Кроме инструмента я хочу завязать возможность сбора на игровое время и добавить пару деревьев, которые тоже собираются, но потом вырастают в том же месте.
Итого уникальных 50 обычных деревьев + 10 спецдеревьев на первую карту (60). Столько же таких же (но немного других) на вторую карту + особые вырастающие.
В "классическом" случае у нас будет класс дерево с парой описанных типов поведения и десяток настроенных объектов, где будут настроены ноды отличающиеся от дефолтных.

Описывать абстрактные понятия с помощью визуального редактора - вери хард. Такая идея имеет смысл как небольшой узкоспециализированный инструмент в дополнение к классическому программированию.

Ответить
1

Задача не выглядит невыполнимой, внесу её в список целей.
идея имеет смысл как небольшой узкоспециализированный инструмент в дополнение к классическому программированию.

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

Ответить
0

Навскидку пришла в голову куча персонажей в файтингах. Где может быть класс pawn для игрока и для AI отдельно, и вариации персонажей на основе этих классов.

Ответить
0

Но ведь каждого персонажа всё равно вручную прорабатывать.

Ответить
2

Это ж только визуализация, при чём только пиксельная. Никакой логики из этого сделать нельзя. Это станет понятно, например, после первой попытки реализовать сохранение / загрузку.

Ответить
–1

Сразу видно вы мега-гига-дупер-супер-пупер-жупер-мастер логики и системного мышления.

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

Ответить
7

А спрайты, конечно, сильно помогут при загрузке / сохранении.

Ответить
0

Ну да. А загрузка и рендеринг спрайтов сами работают магическим образом

Ответить
0

Рофл. Спрайты не меняют того, что проще убиться, чем написать один оператор if-else таким способом.

Ответить
0

Да, визуализация, но на котором человек без знания программирования уже может сделать несколько простых игр уровня самых первых игр индустрии. И каждая следующая добавленная фича будет увеличивать доступные возможности в геометрической прогрессии.
Пиксели - чтобы начинать с простого к сложному, да и банально стоит 20-кратное масштабирование при запуске, можете покрутить колёсиком и вернуть 1:1
А что там с сохранением/загрузкой? С текстовым/хекс-редактором можно будет проводить любые манипуляции с данными и файлами.

Ответить
0

Т.е. вы предлагаете игроку, когда он хочет сохранить прогресс, чтобы завтра продолжить с того же места, поставить игру на паузу, открыть игрулю в хекс-редакторе, ручками вбить туда все необходимые значения и со счастливым лицом идти спать?

Ответить
0

Всё можно сохранять по умолчанию, открывается тот же экран, который закрывали.

Ответить
0

Т.е. слот под сохранение будет всегда ровно 1, а таблицы рекордов — для слабаков?

Ответить
0

Я короче из диалога с ним понял, что он вообще не представляет как работает современная разработка. Просто несёт чушь с умным видом.

Ответить
0

Вариант - F2 будет отвечать за работу с файлами, будем сохранять проекты-процессы. Задачка сложная, надо будет подумать.

Ответить
1

Это как законы ньютона переизобретать :)

Ответить
0

Эйнштейн-же смог.
В ответ скажете "Но ты же не Эйнштейн"? : )

Ответить
2

Нет, я намекал, что вы детский трехколесный велосипед переизобретаете. Логические языки программирования не вчера придумали (И не позавчера).

Ответить
1

More like monitor learning in off mode.

Ответить
17

Вспомнил, снова пригорело

Ответить
14

Не хватает варианта "Похоже на хрень, но респект за старания".

В более сложных случаях, когда выявленную закономерность можно объяснить несколькими способами, редактор спросит напрямую или же исследует неоднозначности сам в фоновом режиме, не отвлекая человека.

Вот вы ж понимаете что такая штука крайне подвержена проблемам. Это почти как программирование чёрного ящика. Вы вроде как задаёте ввод и вывод, и кто-то (софт в данном случае) генерирует логику на основе этих данных. Но только тут ещё и тяжело передать эти параметры ввода/вывода однозначным образом.

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

Ответить
1

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

В моей голове всё выглядит так, что правой кнопкой нажимая на объект, мы как создаём основные алгоритмы (движимый ли, имеет ли ии, вес) и каждый из них является папкой-основой для дальнейшего прописывания деталей и возможностью создать шаблон. Эдакий "ярлык" на нужные строки кода, если можно так выразится, с возможностью открыть место где это всё именно прописано и дописать нужное, так же указав это как один из шаблонов.

Полёт мысли офк, но все мы понимаем, что с прописыванием кода надо реально что-то делать для сокращения времени работы с ним и увеличения ориентирования в собственно-посаженном лесом.

ВООООТ

Ответить
1

Чтобы не делать "лес", нужно учить паттерны и best practices того языка, на котором пишешь. Ничего сложного же, и к тому же сокращение размера кода при сохранении его функциональности - это целое увлекательное приключение

Ответить
1

Вот я к тому, что приключение в целом надо сокращать и оптимизировать, дабы минимизировать сам факт возникновения проблем, багов, конфликтов и прочего. Но це мечты

Ответить
0

Мне нравится рефакторить свой код на досуге.

Ответить
0

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

Ответить
0

Верите ли вы, что нейросети наступают, и что они рано или поздно доберутся до кода?

Ответить
0

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

Ответить
0

Может тогда возможно будет хотя бы приделать к ним интерфейс или конструктор интерфейса, чтобы ими могли пользоваться простые смертные?

Ответить
0

Если бы это было так просто, DS не был бы самой востребованной профессией в IT.

Ответить
0

тяжело передать эти параметры ввода/вывода однозначным образом.

В видео в каком моменте тяжело? Хочу, чтобы элемент что-то делал после чего-то. Делаю это чего-то и после делаю с элементом то, что хотел бы, чтобы делала программа. Повторяю это пару раз, проверяю, что оно делает что хотел.

программирование это в первую очередь создание алгоритма в голове

Далее сделаю ввод букв-цифр, и вот с ними можно будет делать сортировки, например пузырьком. Да и вообще любой алгоритм, по идее.

уже визуальные языки программирования для самых маленьких.

Они же всё ещё текстовые.

Ответить
6

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

Есть более удобные инструменты
при начальном обучении программированию

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

Ответить
0

Есть более удобные инструменты

В каких из них можно за одно движение объектом назначить ему его направление, скорость, условия начала его движения и конца? В планах сделать ещё и определение ускорения, чтобы человек мог либо изначально плавно менял скорость, либо в начале и конце.

идея была сделать инструмент, не требующий программирования

Может, автор лучше знает какую идею он хотел? :D
Идея была сделать безтекстовое программирование. Алгоритм - это просто определённая последовательность действий. В демонстрации это:
-Переместить пульку туда, где находится пулялка, когда пулька заканчивает движение.
-Перемещать пульку туда же когда перемещается пулялка.
-Не перемещать пульку, если уже пущена (на данный момент не реализована перемотка времени назад, поэтому это первый логичный баг - она перемещается к пулялке даже пущенной, а также анимация не останавливается, т.к. не сделал ещё остановку)

Ответить
1

Алгоритм - это просто определённая последовательность действий.

А программированние -- это не алгоритмы :)

Ответить
0

Есть декомпозиция задачи.

Ответить
1

Ну идея конечно интересная, но я вижу это разве что как вспомогательный инструмент для не очень широкого спектра задач, т.к. элементарные операции для этого способа "программирования" не определены
Без Тьюринг-полноты сделать инструмент широкого назначения представляется мне крайне маловероятным

Ответить
0

Элементарные операции - создание/уничтожение, перемещение, поворот и масштаб. Вам этого мало? :D

Ответить
5

Представил производительность сколько-нибудь сложных штук написанных таким способом. Удачи в поисках суперкомпьютера.

Ответить
0

Это больше для создания-прототипирования, чем производительность. Т.е. если в этом будет удобнее быстро проверить идею, убедиться в её годности и потом уже писать на серьёзном производительном языке, то это уже будет успех.
А так в планах - перевод в LLVM.

Ответить
4

Вот на что это похоже:
Не хотим кодить. Сажаем 7 летнего ребёнка, умеющего печатать и отдаём команды устно. А он на основе этих команд и ваших психов/криков пытается что-то внятное написать. Но при этом вообще не понимает, что этот больной взрослый от него хочет.

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

Ответить
0

С нейросетями вот так и мучаются? Вот бедненькие программисты, тогда точно надо что-то с этим делать.

Ответить
0

Понимаешь, в случае с нейросетями, алгоритм сначала кодится, а потом уже кормится датасетами. То есть ты пилишь валидацию, всё такое, и только потом уже начинаешь кричать на неё и заставлять делать дела.

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

Ответить
2

Неявная задача алгоритма.

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

Ответить
0

Не зная, что происходит внутри чёрного ящика.

Ответить
0

Валидацию всё равно пилить надо.

Ответить
2

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

Но по факту эта цепочка алгоритма может оказаться или не эффективной, или "случайно" рабочей, или рабочей только в специфичных условиях (то есть, в других условиях, с человеческой точки зрения, логически прохожих, эта же цепочка алгоритма будет работать совершенно некорректно, или откажется работать вовсе).

К тому же, при необходимости правки или отладки, сделать это будет весьма проблематично, т.к. код писал не username.

В общем, волшебства не бывает.
Вернее бывает, но создаём мы его как правило сами, последовательным трудом.

Ответить
0

Да, работы много ожидается. Мне нравится решать интересные задачки, поэтому не терпится встретиться с ними.
В крайнем случае будет режим низкоуровневого вида, чтобы точнее разобраться что же там происходит.

Ответить
2

это не обучение программированию однозначно, я загружаю в черный ящик то, что я хочу, а дальше он выдает мне какой-то результат, при этом ученик понятия не имеет как работает алгоритм внутри и все, что делает это ученик, тыкает в кнопку повтора, пока не получится нужный результат. В чем здесь обучение, мышкой кликать?
п.с. с учетом планов автора по развитию я уже представляю как он рисует взаимодействие предметов разной формы, из разного материала с другими предметами в разных средах, и ждет n-ое кол-во времени , пока его не-нейронка заново изобретет законы физики.

Ответить
0

а дальше он выдает мне какой-то результат

Не какой-то, а какой требовался. Если всё же не такой, то извините, значит это мой косяк и надо бы исправить баг : )
при этом ученик понятия не имеет как работает алгоритм внутри

Вы знаете как физически внутри процессора перемножаются числа, как работают логические операции, как операционные системы/компиляторы обращаются с памятью и оперируют нашим кодом? Даже если знаете, то много кто не знает.

Насчёт законов физики - много ли игр с достоверной физикой? Или может в программах каждый день вам приходится иметь с ними дело?

Ответить
0

Обработка свойств объекта давно есть во всех современных движках. И довольно удобная.

Ответить
1

Это ж обычный макрос. Или я чего-то не понял?

Ответить
0

Действительно, оно. Только не обычный, а визуальный.

Ответить
1

По ходу, автор просто не застал пик славы Flash (по сути он создал пару спрайтов и ключевых точек анимации).
Иначе он бы не стал такой фигней страдать.

Ответить
0

Застал и даже пробовал делать анимацию. Уже тогда поражался, почему нельзя интуитивно за одно перемещение объекта назначить ему его направление, скорость и условия начала его движения и конца.

Ответить
0

Не особо понимаю как оно в принципе может работать, но по тому, что я вижу, скорее не взлетит. Выше уже правильно расписали что по поводу проблем, что про обучение. Добавлю то, что сложные взаимодействия таким образом пилить будет если и реализуемо, то больше похоже на ад. Посмотри на те же UE4 Blueprints From Hell.

Ответить
0

как оно в принципе может работать

Пользовались ArtMoney или подобными поисковыми программами?
Если нет и не знаете, то опишу: память программы - целое полотно разнообразных безликих цифр, и какая-то одна из них является нужным нам значением, например количеством сердечек жизни. Допустим их 5, запускаем поиск-отсеивание всех пятёрок в этом полотне. Из тысячи цифр остаётся сотня. Теперь надо бы изменить количество сердечек, чтобы увидеть это изменение среди тех отсеянных цифр. Получаем урон в игре и сердечек становится 4. Снова ищем-отсеиваем среди тех пятёрок те, которые стали четвёрками. Из сотен их останется уже несколько. Снова получаем урон... Таким образом останется одна цифра (или больше). Меняем его уже в поисковике и смотрим изменение уже в игре - в игре окажется столько сердечек, сколько ввели. Нашли, можно увеличить и/или заморозить - поисковик будет всегда записывать в память игры эту цифру, пока запущена с игрой.
Похожее хочу сделать в ВизМейкере - чтобы при каждом повторе действия отсеивались несовпавшие значения-результаты разных подсистем-алгоритмов (а их можно напихать все известные человечеству).
Моя цель - чтобы не надо было повторять-отсеивать много и долго, желательно только 2-3 раза.

Ад блюпринтов решил своей блок схемой, похожей на ДРАКОН, но лучше.

Ответить
0

Удачи с оптимизацией потом.

Ответить
0

Идея хорошая, но не избавляет от прописания цепочек событий if-then, посему довести бы до ума идею. К примеру возможность выделения объекта/ов с возможностью правой кнопкой выбрать If-1 или Then-1. Тем самым указывая что If-1 делает, чтобы вызвать Then-1. Там же, правой кнопкой, иметь возможность нажать "триггер" и в итоге указывать область где он сработает для If-1.
Что касается веса, то ввести в правой кнопке нужный пункт интерактивности модели, где один из пунктов будет вес.

Конечно у идеи много подводных камней в 3D проектах, но в 2D затея нормальная, как по мне. Хотя с разрушаемостью, реакцией на удар/попадание и всей "пластичностью" я хз как сделать

Ответить
1

Тогда получится обычная среда визуального программирования, только убогая.

Ответить
0

Вы описываете конструкторы игр типа Construct. Я хочу заменить интерфейсы повторением действия и подтверждением/опровержением догадки компьютера.
Лучше опишите задачку, решение которой хотели бы увидеть.
Область-триггер можно сделать и сейчас нарисовав эту область, переместив в него объект и делать с ним то, что хотели бы, чтобы делала программа при попадании в эту область. Когда появится цвет - область можно будет закрашивать в прозрачный.

Ответить
0

Мне кажется, я 1-2 года назад что-то такое уже читал на хабре вроде бы. Вы и раньше про него уже писали?

Ответить
0

Да, на Хабре несколько раз описывал в комментариях, например вот целое полотно: https://habr.com/ru/company/1cloud/blog/315230/#comment_9910818
Предложил этот материал в Песочницу - не приняли с формулировкой "реклама". Поэтому получился эксклюзив для DTF : )

Ответить
0

И на этом же хабре тебе сотня человек написали почему ты не прав. Или ты правда считаешь, что из ста типов с хабра все поголовно аутисты и шарят меньше твоего?

Ответить
0

Считаю, что они хорошо шарят только в своих областях.

Ответить
0

Например, в разработке.

Ответить
0

В разработке на конкретных языках и технологиях. Да, некоторые пытаются писать свои языки, но большинство - текстовые и мало отличаются от традиционных.

Ответить
0

На конкретных языках и технологиях.

Из этой строки ясно, что в разработке вообще. Вернее, это и раньше очевидно было, но теперь просто неоспоримо. Человек с твоим образом мышления не может быть разработчиком.

Ответить
0

Выглядит весьма забавно :)) Интуитивное программирование.

Очень интересный подход, имеет право на существование и интересно будет раскрыть его потенциал.
Конечно некоторые вещи так не запрограммируешь, по типу таблицы чисел, но определённые задачи можно сымитировать.

Автору ни в коем случае не стоит бросать идею.

Ответить
0

С появлением чисел можно будет делать с ними всё.

Ответить
0

Числа появились задолго до нашей эры.

Ответить
0

На данном этапе к такой концепции много вопросов. Но вообще программирование должно стать более верхнеуровневым. Я сейчас изучаю юнити, и несмотря на то, что даже в голове у меня есть четкий алгоритм, как его реализовать я не понимаю. Как только вижу какой-нибудь roomNavigation = GetComponent<RoomNavigation> (); мне становится плохо. Синтаксис большинства языков пока не готов к пришествию людей (таких как я), которые не могут уложить в голове все эти абстракции, инкапсуляции и рекурсии.

Ответить
0

как его реализовать я не понимаю

А здесь не будет такого сложного выбора - лишь кнопки мыши : )

Ответить
0

Синтаксис языка учится за 2 месяца максимум. Даже сложный типа С++

Ответить
0

Для тех, кто не может уложить в голове абстракции и инкапсуляции, существует язык C и процедурное программирование.
Более того, приведённая строчка из C# станет понятна даже девятикласснику после одного 40-минутного занятия. Русский язык гораздо сложнее, чем любой язык программирования, но почему-то его синтаксис никого не смущает.
А теперь самое интересное: чем программирование более высокоуровневое — тем больше в нем абстракций.

Ответить
0

Кстати, вот как можно закрасить экран (пока отключено, теперь закрашивать можно будет двойным нажатием левой кнопки):
https://im3.ezgif.com/tmp/ezgif-3-92a3e5ca7193.gif

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Уве Болл вернулся в кино
и начал экранизировать flash-игры
Подписаться на push-уведомления