{"id":3824,"url":"\/distributions\/3824\/click?bit=1&hash=a0d33ab5520cacbcd921c07a49fc8ac5b78623b57936b992ce15c804b99210d4","title":"\u041a\u0430\u043a\u0443\u044e \u0440\u0435\u043a\u043b\u0430\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0434\u0430\u0442\u044c \u043d\u0430 DTF \u0438 \u043a\u0442\u043e \u0435\u0451 \u0443\u0432\u0438\u0434\u0438\u0442","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"75ec9ef4-cad0-549d-bbed-1482dc44e8ee","isPaidAndBannersEnabled":false}
Gamedev
perfect_genius

Идея интуитивного способа программирования — 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
Танчики
Это какая-то хрень, иди лучше убейся.
Марио
Показать результаты
Переголосовать
Проголосовать
0
98 комментариев
Написать комментарий...
No More Natum

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

Ответить
Развернуть ветку
perfect_genius
Автор
как оно в принципе может работать

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

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

Ответить
Развернуть ветку
Олег Котов

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

Ответить
Развернуть ветку
Читать все 98 комментариев
null