ChatGPT beni hayrete düşürdü. Üretken yapay zeka sohbet robotunun erken bir sürümünden bir oyunu kodlamama yardım etmesini ilk kez istememden neredeyse iki yıl sonra, tamamen aynı istemle ChatGPT 4o’ya geri döndüm ve sonuçlar beni şaşırttı.
OpenAI’nin üretken yapay zeka platformu geldiğinden beri insanlar yapmamayı tercih ettikleri görevleri yerine getirmek veya bazı durumlarda yapamayacakları şeyleri denemek için ona yöneliyorlar. Yazabiliyorum, bu yüzden genellikle ChatGPT’den düzyazı yazmasını istemiyorum ve iyi bir sanatçıyım, dolayısıyla üretken görüntü oluşturmayı yalnızca eğlence için kullanıyorum. Ancak ben programcı değilim. Geçmişte biraz HTML, Javascript ve hatta BASIC kodlaması yaptım, ancak becerilerim paslanmış olmanın da ötesinde; kireçlenmişler.
Geçen yıl ChatGPT’den Tic-Tac-Go adında yeni bir oyun geliştirmeme yardım etmesini istediğimi yazmıştım. Tic-Tac-Toe’ya benziyor ama steroidli. Oyun alanının 12×12’lik bir ızgara olacağını hayal ettim. Kazanmak için art arda altı “X” veya altı “O” işareti gerekir.
İşte orijinal istem:
Tic-tac-toe oyununun bir çeşidini yaratmak istiyorum ama bunun daha karmaşık olmasına ihtiyacım var. Yani ızgara 12’ye 12 olmalıdır. Hala “x” ve “o” kullanmalıdır. Kurallar, herhangi bir oyuncunun, diğer oyuncunun hemen yanındaki boşluklardan birinde olduğu sürece, “x” veya “o” harfini ızgara etrafındaki herhangi bir boşluğa yerleştirerek diğerini engelleyebileceğini içerir. Gelecekteki hamleleri engellemek için “X” veya “o” işaretlerini herhangi bir alana yerleştirmeyi de seçebilirler. Amaç, diğer oyuncudan önce herhangi bir satır, sütun veya çaprazda en az altı “x” veya “o” harfine sahip olan ilk kişi olmaktır. Unutmayın, oyunculardan biri “x”, diğeri ise “o”dur. Lütfen bunu basit HTML ve JavaScript ile programlayın. Bu oyuna Tic-Tac-Go adını verelim.
Burada Wordle düzeyinde bir zeka olmadığını anlıyorum, ancak fikrim hala iç içe geçmiş tabletler ve tarayıcı içi etkileşim gerektiriyor ki bu da benim becerilerimin hemen dışında.
ChatGPT’nin CSS, JavaScript, HTML dosyaları ve neredeyse her kod parçası için birçok açıklama sağlamasıyla ilk denememde işler iyi başladı. Ancak bana verdiklerinin çoğu, yerleşik karakter sınırı (4096) nedeniyle eksikti. ChatGPT’den kodun geri kalanını sağlamasını isteyip durdum, ancak bana zaten söylediklerinin izini kaybetmeye devam etti. Hatalardan payıma düşeni yaptım ama aynı zamanda ChatGPT 1.0’ın boşlukları doldurmama yardımcı olma konusunda ne kadar yetersiz donatıldığını da fark ettim. Sonuçta tamamlanmış oyunu asla oluşturamadık ve saatlerce denedikten sonra pes ettim.
AI kodlayıcının dönüşü
Aradan geçen 20 ay içinde ChatGPT, yeteneklerde büyük ilerlemeler kaydetti. Yakın zamanda ChatGPT aramasını kullanmaya başladım ve bunun bana yararlı yanıtlar alma konusunda Google’dan çok daha etkili olmasından etkilendim. ChatGPT 4o, ilk versiyonda bulduğum sınırlamaların çok azından muzdarip. Başka ne yapabilirim diye düşünmeye başladım. Ayrı olarak, bir ofis Slack konuşmasında, bazı yeni AI destekli dağıtılmış bilgi işlem platformlarının nasıl olduğundan bahsedildi. Vaha Yapay Zekasıkodlayıcıların hızla oyun oluşturmasına yardımcı oluyordu. Faydalı olacağını düşünmemiştim ama bana başarısız ChatGPT oyun kodlama denememi hatırlattı. Gönderiyi bir iş arkadaşımla paylaştığımda şöyle yazdı: “Bu yeni yapay zeka araçlarından bazılarıyla her şeyin daha kolay olup olmayacağını merak ediyorum.”
İyi bir düşünceydi. Orijinal ChatGPT ve benim başarısız olduğumuz yerde ChatGPT 4o başarılı olabilir mi?
İstemimi cilalamak yerine – ve tembel olduğum için – yukarıdaki istem metnini kopyalayıp ChatGPT 4o’ya yapıştırdım.
Bunun ilk ChatGPT kodlama ortak çalışmamla yakın bile olmadığını fark etmem uzun sürmedi. ChatGPT 1’in ilkokul düzeyinde zekası varsa, ChatGPT 4o en azından üniversite düzeyindedir.
ChatGPT 4o, oyun fikrimi daha akıllı bir özet halinde sentezleyerek işe başladı:
12×12 ızgara üzerinde “Tic-Tac-Go” adı verilen karmaşık bir Tic-Tac-Toe çeşidi oluşturmak, HTML ve JavaScript ile gerçekleştirilebilir. Bu oyunda oyuncular sırayla işaretleyicilerini (“X” veya “O”) yerleştirerek bir sıra, sütun veya çaprazda altı işaretten oluşan bir çizgi oluşturmaya çalışırlar. Yakındaki hareketleri engelleme yeteneği ekstra bir strateji katmanı ekler.
Daha sonra, yalnızca bir kısmını değil, HTML ve Javascript kodunu da hızla dağıtır. Üstteki “html”den sondaki “/html”ye kadar her şeyi aldım. Tam görünüyordu. Kodun ardından ChatGPT, çalışması ve oyunun ilgili özellikleri hakkında dört maddelik bir açıklama yaptı. HTML ve Javascript’in yanı sıra bir “kodu kopyala” düğmesi vardı. Kodu kopyaladım ve ChatGPT’ye bunu bir Web tarayıcısında nasıl test edeceğimi sordum, bunu nasıl yapacağımı hemen hemen bilmeme rağmen ya da en azından bildiğimi sanıyordum.
Mac’te TextEdit gibi bir metin düzenleyiciyi açmam, kodu yapıştırmam ve “.html” uzantısıyla kaydetmem önerildi. Bunu yaptım ancak dosyayı Chrome ve Safari’ye yüklediğimde, bu oyun değildi, yalnızca bir grup kod ve “Oyunu yeniden başlat” düğmesi vardı.
Bunu ChatGPT’ye söyledim ve Javascript’i ayrı bir dosyaya ayırmam gerekip gerekmediğini sordum. Bana hayır dedi ve dosyanın doğru uzantıya sahip olup olmadığını kontrol etmemi ve RichText’i devre dışı bırakmamı hatırlattı. Ayrıca bana Javascript kodunun çalışıp çalışmadığını kontrol etmek için geliştirici araçlarını kullanmak gibi birkaç öneri daha verdi.
Benim farklı bir fikrim vardı. Bozuk sayfanın ekran görüntüsünü aldım ve ChatGPT’ye bırakarak görüntüyü analiz edip edemeyeceğini sordum. Bu multimodal kullanım ilk ChatGPT’de mümkün değildi ancak oyunun kurallarını değiştirdiği ortaya çıktı.
“Dosyanız görüntüleniyor gibi görünüyor RTF (Zengin Metin Formatı) HTML yerine işaretleme. Bu genellikle dosyanın düz metin yerine RTF belgesi olarak kaydedilmesi durumunda meydana gelir” diye yazdı ChatGPT ve ardından bunun neden olduğunu ve nasıl düzeltileceğini açıkladı.
Kodu yeniden yapıştırdım, PlainText için TextEdit’i ayarladım ve onu bir HTML dosyası olarak yeniden kaydettim. Daha sonra dosyayı Chrome ile açtım.
İşe yaradı. Oyun tam da hayal ettiğim gibiydi; 144 boş kutu ve “X” ve “O”ları işaretlemek için iki oyunculu bir sistem
Bu tabloya bakan birinin nasıl ilerleyeceğine dair hiçbir fikrinin olmayacağını fark ettim ve ChatGPT’ye oyunun altına kurallar ekleyip ekleyemeyeceğimizi sordum. ChatGPT, oyun kurallarını içeren yeni kodu yayınladı.
İlk chatGPT’de, kodlardan herhangi birini yeniden yapmasını istediğimde, süreçte her zaman bir şeyler kayboluyordu. Ama bu sefer değil. 20 ay önce eksik olan bir verimlilik, netlik ve hatırlama düzeyi vardı.
Cesur hissederek ve belki biraz da birdenbire nasıl kod yazılacağını bildiğimi hissederek bir sonraki mantıksal oyun güncellemesini istedim: çevrimiçi oynama yeteneği. Elbette bu web tabanlı bir oyundu ancak tasarlandığı gibi yalnızca yanınızda oturan birine karşı oynayabilirsiniz. Çevrimiçi rekabet istedim.
“Bunu çok oyunculu bir çevrimiçi oyun haline getirmek için, oyun durumunu ve oyuncu etkileşimlerini gerçek zamanlı olarak yönetecek bir sunucu kurmanız gerekecek. Burada gerekli adımlara üst düzey bir genel bakış ve başlamanıza yardımcı olacak bazı kod örnekleri var. “
ChatGPT bana ayrıntılı talimatlar ve sunucu kurulumu için gerekli tüm kodları verdi. Node.js ve WebSockets gibi şeyleri gerektiriyordu ve okurken suyun kulaklarımın üstüne yükseldiğini hissettim; Derinliğimin çok dışındaydım. Ancak ChatGPT’lerin dışında değil. Ne yaptığını açıkça biliyor ve kodlamak için gerçekten benim yardımıma ihtiyacı yok. Evet, bu fikir aklıma geldi ama geri kalan her şeyi ChatGPT 4o yaptı.
Kısa sürede çok yol kat ettik, AI. Yapay zeka destekli kodlamanın geleceği çok parlak ancak haberlerin insan programcılar için bu kadar iyi olduğundan emin değilim.