[Перевод] От идеи до реализации: создание игры с помощью нейросетей
В эпоху быстро развивающихся технологий и искусственного интеллекта мы стоим на пороге новой эры творчества. Инструменты, такие как Midjourney, DALL•E 3 и GPT-4, предоставляют уникальные возможности для творцов различных направлений. Было решено исследовать этот потенциал, создав игру «Angry Pumpkins» в качестве эксперимента. Весь код был написан с помощью GPT-4, в то время как для графической части были использованы Midjourney и DALLE.
Итак, давайте рассмотрим промты, которые использовались:
Графика
Заглавный экран (DALL·E 3 от GPT-4)
«Photo of a horizontal vibrant home screen for a video game titled 'Angry Pumpkins'. The design is inspired by the 'Angry Birds' game aesthetic but different. Halloween elements like haunted houses, gravestones, and bats dominate the background. The game logo is prominently displayed at the center-top, with stylized pumpkin characters looking angry and ready for action on either side. A 'Play' button is located at the bottom center, surrounded by eerie mist.»
Фоны (Midjourney)
Было использовано одно изображение для фона (с несколькими корректировками):
«Angry birds skyline in iPhone screenshot, Halloween Edition, graveyard, in the style of light aquamarine and orange, neo-traditionalist, kerem beyit, earthworks, wood, Xbox 360 graphics, light pink and navy --ar 8:5»
И другое:
»2d platform, stone bricks, Halloween, 2d video game terrain, 2d platformer, Halloween scenario, similar to angry birds, metal slug Halloween, screenshot, in-game asset --ar 8:5»
Персонажи (Midjourney)
«Halloween pumpkin, in-game sprite but Halloween edition, simple sprite, 2d, white background»
«Green Halloween monster, silly, amusing, in-game sprite but Halloween edition, simple sprite, 2d, white background»
Объекты (Midjourney)
Созданы различные «таблицы стилей спрайтов», а затем обрезан и удалён фон с помощью Photoshop/Photopea. Для мелких деталей были использованы корректировки Midjourney.
«Wooden box. Item assets sprites. White background. In-game sprites»
«Skeleton bone. Large skeleton bone. Item assets sprites. White background. In-game sprites»
«Rectangular stone. Item assets sprites. White background. In-game sprites»
«Wooden box. Large skeleton bone. Item assets sprites. White background. In-game sprites»
«Item assets sprites. Wooden planks. White background. In-game sprites. Similar to Angry Birds style»
Программирование (GPT-4)
Полный исходный код здесь
В процессе работы было добавлено много деталей, таких как различные эффекты частиц, разные типы объектов и т. д. И до сих пор мы еще не находимся в точке, где GPT-4 может генерировать целую игру просто с помощью промта. Но у меня нет сомнений, что в будущем мы сможем создавать видеоигры уровня AAA, просто попросив об этом.
Возвращаясь к настоящему, трюк в том, чтобы запрашивать у GPT-4 вещи итеративно. На самом деле, это очень похоже на то, как человек бы программировал: начиная с простой функциональной основы и постепенно улучшая и расширяя код.
Вот несколько примеров:
И далее продолжайте запрашивать все больше и больше. И каждый раз, когда что-то идет не так, четко объясните ошибку и позвольте ей это исправить:
«Now, I ask you: do you know how the birds are launched in Angry Birds? What the finger does on the screen? Exactly. Add this to the game, using the mouse.»
«I have this error, please, fix it: Uncaught ReferenceError: Constraint is not defined»
«I would like to make a torch with particle effects. Can it be done with p5.js? Make one, please.»
«Now, make the monsters circular, and be very careful: apply the same technique that already exists for the rectangular ones regarding scaling and collision area, and don’t mess it up like before.»
Следующая часть заняла больше всего времени:
«There’s something off with the logic that calculates when there’s a strong impact on a bug. If the impact is direct, it works well, but not if it’s indirect. For example, if I place a rectangle over two bugs and drop a box on the rectangle, even though the bugs should be affected by the impact, they don’t notice it. What can we do to ensure they also get affected when things fall on top of a body they are under?»
Итог:
Игра была создана за 10–13 часов и насчитывает 600 строк кода. Целью было поставить эксперимент и проверить как пользователь, который не обладает серьезными знаниями программирования, сможет справиться с подобной задачей. А также насколько хорошо справятся с этим нейросети.
Ссылка на игру