{"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 комментариев
Написать комментарий...
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
perfect_genius
Автор

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

Ответить
Развернуть ветку
Alex Bondarev

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

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

Например?

Ответить
Развернуть ветку
Alex Bondarev

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

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

Ответить
Развернуть ветку
perfect_genius
Автор

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

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

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

Ответить
Развернуть ветку
Boris Krichigin

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

Ответить
Развернуть ветку
perfect_genius
Автор

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

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