Как стать автором
Обновить

GPT-4 написал простую игру на JavaScript, в которой «можно грабить караваны»

Время на прочтение3 мин
Количество просмотров23K

Основатель стартапа Neural Love Денис Ширяев проверил возможности GPT-4. Он попросил модель написать простую игру на JavaScript по описанию, которое стало мемом.

В начале двухтысячных некий Кирилл отправил письмо в российскую студию MiST Land South с просьбой создать и выпустить игру в жанре «3D-экшон», в которой можно «играть лесными эльфами, охраной дворца и злодеями» и «грабить корованы». Ширяев использовал текст письма в качестве запроса к GPT-4.

Оригинальный текст письма с авторской орфографией и пунктуацией

Здраствуйте. Я, Кирилл. Хотел бы чтобы вы сделали игру, 3Д-экшон суть такова… Пользователь может играть лесными эльфами, охраной дворца и злодеем. И если пользователь играет эльфами то эльфы в лесу, домики деревяные набигают солдаты дворца и злодеи. Можно грабить корованы… И эльфу раз лесные то сделать так что там густой лес… А движок можно поставить так что вдали деревья картинкой, когда подходиш ни преобразовываются в 3-хмерные деревья. Можно покупать и т. п. возможности как в Daggerfall. И враги 3-хмерные тоже, и труп тоже 3д. Можно прыгать и т. п. Если играть за охрану дворца то надо слушаться командира, и защищать дворец от злого (имя я не придумал) и шпионов, партизанов эльфов, и ходит на набеги на когото из этих (эльфов, злого…). Ну а если за злого… то значит шпионы или партизаны эльфов иногда нападают, пользователь сам себе командир может делать что сам захочет прикажет своим войскам с ним самим напасть на дворец и пойдет в атаку. Всего в игре 4 зоны. То есть карта и на ней есть 4 зоны, 1 — зона людей (нейтрал), 2- зона императора (где дворец), 3-зона эльфов, 4 — зона злого… (в горах, там есть старый форт…)

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

P.S. Я джва года хочу такую игру.

На основе оригинального текста нейросеть написала 2D-игру на JavaScript. Игра получилась в разы проще, чем в просьбе, но в ней фигурирует караван и четыре игровые зоны разных цветов. Пользователю необходимо управлять зелёной точкой с помощью стрелок и стрелять с помощью пробела. Игроку надо поразить караван, и после этого точка будет перемещена в случайное место на карте. В верхнем левом углу есть счётчик, который никак не обновляется.

Код игры
<!DOCTYPE html>
<html>
<head>
  <style>
    canvas{border:1px solid}
  </style>
</head>
<body>
  <canvas id="c" width="800" height="800"></canvas>
   <script>
    const C=document.getElementById('c'),X=C.getContext('2d'),K=[],P=[{n:'W',x:100,y:100,c:'green'},{n:'G',x:300,y:100,c:'blue'},{n:'V',x:500,y:100,c:'red'}],Z=[{n:'N',x:0,y:0,w:200,h:800,c:'gray'},{n:'P',x:200,y:0,w:200,h:800,c:'yellow'},{n:'E',x:400,y:0,w:200,h:800,c:'green'},{n:'D',x:600,y:0,w:200,h:800,c:'red'}],Cv={x:600,y:700,dir:1},robbed=false,emoji=['🐪','🐘','🐎'],arrows=[];function D(){X.clearRect(0,0,C.width,C.height);Z.forEach(z=>{X.fillStyle=z.c;X.fillRect(z.x,z.y,z.w,z.h)});P.forEach(p=>{X.fillStyle=p.c;X.beginPath();X.arc(p.x,p.y,10,0,6.28);X.fill()});emoji.forEach((e,i)=>{X.font='30px sans-serif';X.fillText(e,Cv.x+i*40,Cv.y)});X.fillStyle='black';X.font='20px sans-serif';X.fillText('Robbed: '+(robbed?'Yes':'No'),10,30);arrows.forEach(a=>{X.fillStyle='black';X.beginPath();X.arc(a.x,a.y,5,0,6.28);X.fill()})}function M(){if(K[37])P[0].x-=4;if(K[38])P[0].y-=4;if(K[39])P[0].x+=4;if(K[40])P[0].y+=4;if(!robbed&&P[0].x>=400&&P[0].x<=600&&P[0].y>=0&&P[0].y<=800){let dx=P[0].x-Cv.x,dy=P[0].y-Cv.y,dist=Math.sqrt(dx*dx+dy*dy);if(dist<=30)robbed=true}}function CvM(){Cv.x+=Cv.dir*2;if(Cv.x>=760){Cv.x=760;Cv.dir=-1}else if(Cv.x<=40){Cv.x=40;Cv.dir=1}}function shootArrow(){arrows.push({x:P[0].x,y:P[0].y,vx:10,vy:0})}function updateArrows(){arrows.forEach(a=>{a.x+=a.vx;a.y+=a.vy;let dx=a.x-Cv.x,dy=a.y-Cv.y,dist=Math.sqrt(dx*dx+dy*dy);if(dist<=30){Cv.x=Math.random()*760;Cv.y=Math.random()*760;arrows=[]}})}document.addEventListener('keydown',e=>{K[e.keyCode]=1;if(e.keyCode==32)shootArrow()});document.addEventListener('keyup',e=>K[e.keyCode]=0);setInterval(()=>{M();CvM();updateArrows();D()},1000/30);
  </script>
</body>
</html>

Код игры и интерактивная демонстрация доступны на платформе CodePen. Сам Ширяев отметил, что последние достижения в сфере ИИ по масштабу можно сравнить с «переизобретением электричества».

На этой неделе OpenAI представила модель машинного обучения GPT-4, которая теперь может работать не только с текстом, но и с изображениями. Нейросеть может подписывать изображения, понимать их контекст и подробно описывать. Также GPT-4 распознаёт нарисованные от руки образы.

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 36: ↑35 и ↓1+34
Комментарии49

Другие новости

Истории

Работа

React разработчик
59 вакансий
Data Scientist
60 вакансий

Ближайшие события