Skocz do zawartości

Męczymy AI z ChatGPT


I am Lord

Rekomendowane odpowiedzi

Wpadłem na głupi pomysł aby zadawać pytania botowi https://chat.openai.com/ o kod GameMakera. Wygenerowałem kilka ciekawych odpowiedzi, może pomęczmy trochę to AI :D
Zadawajcie pytania o jakikolwiek kod, i postujcie jak traficie na ciekawą odpowiedź. Co wy na to?

To ja zacznę:

Pytanie było: "Can you write code in a Game Maker:Studio2 scripting language "GML"?

Odpowiedział że potrafi więc zadałem kolejne:

Show me a code for arcade top-down car game physics, only movements without collision.

Zaznaczyłem że kod ma być pozbawiony wykrywania kolizji.

 

Napisał mi bardzo podstawowy kod ala sterownie statkiem kosmicznym w asteroids więc pociągnałem temat dalej. Chciałem by dopisał kod na driftowanie. Oto finalny rezultat:

/// Initialize Variables
var speed = 0;
var maxSpeed = 5;
var acceleration = 0.2;
var deceleration = 0.1;
var rotationSpeed = 4;

/// Movement Controls
if (keyboard_check(vk_up)) {
    // Accelerate forward
    speed += acceleration;
    if (speed > maxSpeed) {
        speed = maxSpeed;
    }
} else if (keyboard_check(vk_down)) {
    // Accelerate backward
    speed -= acceleration;
    if (speed < -maxSpeed) {
        speed = -maxSpeed;
    }
} else {
    // Decelerate when not pressing movement keys
    if (speed > 0) {
        speed -= deceleration;
        if (speed < 0) {
            speed = 0;
        }
    } else if (speed < 0) {
        speed += deceleration;
        if (speed > 0) {
            speed = 0;
        }
    }
}

if (keyboard_check(vk_left)) {
    // Rotate counter-clockwise
    image_angle -= rotationSpeed;
} else if (keyboard_check(vk_right)) {
    // Rotate clockwise
    image_angle += rotationSpeed;
}

/// Apply Movement
var motionX = lengthdir_x(speed, image_angle);
var motionY = lengthdir_y(speed, image_angle);
x += motionX;
y += motionY;

 

Cytat

In this example, we use several variables to control the car's movement, including speed (current speed), maxSpeed (maximum speed), acceleration (rate of acceleration), deceleration (rate of deceleration), and rotationSpeed (speed of rotation).

The code checks for keyboard inputs using the keyboard_check function for the arrow keys (up, down, left, and right). Depending on the pressed keys, the car accelerates forward or backward, decelerates when no movement keys are pressed, and rotates left or right.

Finally, we calculate the horizontal (motionX) and vertical (motionY) components of the car's movement using lengthdir_x and lengthdir_y functions, respectively. Then, we update the car's position by adding these motion values to the current x and y coordinates.

Please note that this code only handles the basic movement of the car and does not include collision detection or other advanced features.

 

 

Kurcze ciekawe no, zaraz sobie przetestuję :D 

Dołączacie do zabawy?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
Cytat

Napisz reklamę gry, opisanej w poniższym temacie.
https://forum.gmclan.org/topic/14213-stżelajonca-formułka/

Cytat

Zanurz się w świecie pełnym akcji i adrenaliny z "Strzelajonca Formułka" - grą, która przetestuje Twoje umiejętności i refleks!

Gatunek? To nasz zakichany interes. To jest gra, która przerasta konwencje gatunków i oferuje coś zupełnie nowego.

Zasady są proste: jedziesz formułką i strzelasz. Ale nie daj się zwieść - wymaga to niezwykłej zręczności i szybkiego myślenia. Czy jesteś gotów na wyzwanie?

Każdy element tej gry został zaprojektowany i stworzony przez jedną osobę - od programowania, przez fabułę, grafikę, po muzykę. To jest prawdziwy projekt jednoosobowy, który pokazuje, co można osiągnąć, gdy pasja spotyka talent.

"Strzelajonca Formułka" jest dostępna do pobrania na stronie speedyshare.com/257353567.html. Rozmiar pliku jest mały, ale emocje są gigantyczne!

Sprawdź "Strzelajonca Formułka" już teraz i dołącz do wyścigu pełnego emocji i akcji!1.

 

jakby ktoś pytał: posiadacze subskrypcji na ChatGPT mogą korzystać z modelu czytającego strony internetowe :)

Odnośnik do komentarza
Udostępnij na innych stronach

Właśnie zauważyłem że mój nie jest podłączony do internetu i ma wiedzę tylko z 2021. Na tej subskrypcji wiedza jest realtime?

 

Użyłem tamtego wyżej wygenerowanego kodu i nagrałem filmik jak działa. Kod kamery też sobie wygenerowałem przez chatGPT:

 

aa dodałem jedynie wytracanie prędkości podczas driftu. 

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
Godzinę temu, I am Lord napisał(a):

Właśnie zauważyłem że mój nie jest podłączony do internetu i ma wiedzę tylko z 2021. Na tej subskrypcji wiedza jest realtime?

Ogólnie to nie, tyle, że można kazać botowi przeczytać tekst ze strony internetowej. Wygodniejsze to niż kopiowanie-wklejanie.

Odnośnik do komentarza
Udostępnij na innych stronach

Cześć wszystkim!

Chciałbym podzielić się swoimi przemyśleniami dotyczącymi wykorzystania ChatGPT w procesie tworzenia gier za pomocą Game Maker Studio 2 (GMS2). ChatGPT, który jest sztuczną inteligencją rozwijaną przez OpenAI, może być naprawdę pomocny dla programistów korzystających z GML (GameMaker Language) - języka skryptowego używanego w GMS2.

Przede wszystkim, ChatGPT może służyć jako narzędzie do zdobywania wiedzy i pomocy przy programowaniu. Możemy zadać pytania dotyczące konkretnych problemów lub koncepcji i otrzymać odpowiedzi od ChatGPT. Na przykład, jeśli mamy trudności z zrozumieniem jakiegoś aspektu skryptowania w GML, możemy zadać pytanie i uzyskać wyjaśnienie od ChatGPT.

Ponadto, ChatGPT może służyć jako generatorek kodu. Możemy opisać ChatGPT, jakie zachowanie gry chcemy osiągnąć, i poprosić o wygenerowanie kodu, który to zrealizuje. Oczywiście, będziemy musieli odpowiednio dostosować generowany kod, ale może to być świetnym punktem wyjścia, szczególnie dla mniej doświadczonych programistów.

Warto również wspomnieć, że ChatGPT może dostarczać inspiracji i sugestii dotyczących rozwiązań problemów programistycznych. Często wystarczy opisać problem, z którym się zmagamy, i otrzymamy od ChatGPT różne pomysły i sugestie na rozwiązanie.

Należy jednak pamiętać, że ChatGPT nie zastąpi nam pełnoprawnego programisty. To narzędzie, które może wspomagać nas w procesie tworzenia gier, ale nie zawsze dostarcza idealnych lub optymalnych rozwiązań. Zawsze warto samodzielnie sprawdzić i przetestować generowany kod oraz przystosować go do naszych potrzeb i preferencji.

Wnioskiem jest to, że ChatGPT może być wartościowym narzędziem dla twórców korzystających z Game Maker Studio 2 i języka GML. Może ono pomóc w zdobywaniu wiedzy, generowaniu kodu i dostarczaniu inspiracji. Jednak należy korzystać z niego z umiarem i zawsze samodzielnie oceniać i dostosowywać generowane przez niego rozwiązania.

Czekam na Wasze opinie na ten temat! Czy ktoś z Was korzystał już z ChatGPT przy tworzeniu gier w GMS2? Jakie macie doświadczenia? Dajcie znać!

 

Odnośnik do komentarza
Udostępnij na innych stronach

Ja używam prawie codziennie, ale trochę do innych rzeczy. Sprawdzam, czy kod można zoptymalizować i generuję prostą dokumentację. Przykład

 

//Opisz proszę ten kod, jest w języku GML: 

//Zwraca listę drzwi w postaci ds_mpay

function scan_entrances(_doors,_list){
	var _check = 0b_10000
	
	for(i=0;i<5;i++)
	{
		if _doors & _check > 0
		{
			ds_list_add(_list,i)
		}
		_check = _check >> 1
	}
	
	return _list
}

 

Rezultat:

Ten kod w języku GML definiuje funkcję o nazwie scan_entrances, która przyjmuje dwa argumenty: _doors i _list. Funkcja ta zwraca listę drzwi w postaci ds_list.

Poniżej znajduje się krótkie objaśnienie poszczególnych linii kodu:

  1. var _check = 0b_10000 - tworzy zmienną _check i przypisuje do niej wartość binarną 0b_10000, czyli dziesiętnie 16. Ustawienie tej wartości pozwala na porównanie poszczególnych bitów zmiennej _doors.

  2. for(i=0;i<5;i++) - rozpoczyna pętlę, która wykona się pięć razy.

  3. if _doors & _check > 0 - sprawdza, czy wartość zmiennej _doors po AND z _check daje wynik większy niż 0. Wykorzystanie operatora AND (&) pozwala na porównanie poszczególnych bitów. Jeśli wynik jest większy niż 0, to oznacza, że bit dla aktualnie sprawdzanego drzwi jest ustawiony na wartość 1.

  4. ds_list_add(_list,i) - jeśli warunek w linii 3 jest spełniony, to dodaje wartość i do listy _list. Wartość ta oznacza indeks drzwi, które są otwarte.

  5. _check = _check >> 1 - po każdej iteracji pętli przesuwa wartość _check o jeden bit w prawo. Dzięki temu następna iteracja pętli porówna kolejny bit w zmiennej _doors.

  6. return _list - zwraca listę _list, zawierającą indeksy otwartych drzwi.

Podsumowując, funkcja scan_entrances służy do skanowania zmiennej _doors, która przechowuje informacje o stanie otwarcia pięciu drzwi. Funkcja zwraca listę zawierającą indeksy drzwi, które są otwarte.

Odnośnik do komentarza
Udostępnij na innych stronach

Osobiście przy GM użyłem go raz do systemu kolizji (prosiłem go o przerobienie istniejącego kodu z dodatkowymi warunkami) i udało mu się, a danych wejściowych miał dosyć mało. Później wprowadzili move_and_collide i wszystko poszło na marne 🤣

 

Natomiast bardzo często używałem go w pracy do tworzenia skryptów w google sheets (apps script), które później można użyć do obrabiania danych czy jakichś tam spraw organizacyjnych. Jak ktoś ma zamiar używać tego częściej to moje spostrzeżenia są takie:

  • Bot będzie starał się stworzyć kod dosłownie tak, jak mu to napisaliście. Jeśli zastosowaliście jakieś skróty myślowe, to będzie się to rozjeżdżać z rzeczywistością. Najlepiej rozpisać mu wszystko w krokach z jak największą ilością danych, żeby rezultat był zbliżony do tego co chcecie osiągnąć. Nie raz widziałem na Twitterze czy wręcz artykuły na stronach krzyczące, że głupi bot nie robi tego co sobie ktoś wymyślił, więc się z nim schowajcie bo żaden z niego pożytek. No tak, tylko nikomu nie przyszło do głowy, że on nie jest od interpretacji myśli, tylko tego co mu człowiek literkami napisał na wejściu.
  • Często pomaga pisanie do niego wymieniając konkretne działania od myślników albo pisanie 1 by 1. Najpierw prosimy go o coś ogólnego/pierwszego. Jak się uda wygenerować dobry kod i działa to lecimy dalej. Nie zawsze radzi sobie ze zrobieniem wszystkiego na raz, ale to raczej kwestia tego o czym pisałem powyżej. On interpretuje tylko tekst, nie nasze zamiary.
  • Najprawdopodobniej bot będzie używał najprostszych metod na osiągnięcie celu, co w przypadku takiego apps script odbija się na wydajności. Można prosić go o optymalizowanie danego rozwiązania, ale nie zawsze się to sprawdza bo on będzie próbował optymalizować to co już ma, a nie stosować alternatywne rozwiązania. Przykładowo: mamy 1000 wierszy po kilka kolumn z danymi i chcemy je przerobić. Jeśli napiszemy tak wprost do bota, to będzie budował kod tak, żeby operować na wierszach i kolumnach i powtarzać dane akcje na arkuszu. Nie przyjdzie mu do głowy, że arraye będą szybsze i lepiej jest dane zapisać do arraya, obrobić je tam i później wypluć rezultat. Pomijając, że samo działanie na arkuszach jest wolne, to po 400 wierszach drastycznie spada prędkość pracy skryptów. Bot tego nie wie, więc warto sugerować mu korzystanie z arraya w takich sytuacjach.
Odnośnik do komentarza
Udostępnij na innych stronach

A jak to jest ze zwrotami sugerującymi coś zamiast wydawać rozkazy że ma być to i to. Wczoraj gadałem z nim kilka godzin próbując zrobić generator labiryntu. Utknął na jednym problemie z którym ja sam także miałem kłopoty z wymyśleniem rozwiązania. Ale gdy użyłem właśnie zwrotów sugerujących, a może użyjemy tego lub tego to będzie lepiej. Wtedy zmienił kompletnie podejście do rozwiązania problemu i się udało dokończyć generator z kilkoma bugami które jeszcze są do poprawy. (Tak sam mógłbym je poprawić ale za cel w tym projekcie obrałem zasadę że nie chcę ingerować w jego kod.) 

 

Sugestie wydają się być ciekawym narzędziem też.

Odnośnik do komentarza
Udostępnij na innych stronach

3 godziny temu, I am Lord napisał(a):

A jak to jest ze zwrotami sugerującymi coś zamiast wydawać rozkazy że ma być to i to. Wczoraj gadałem z nim kilka godzin próbując zrobić generator labiryntu. Utknął na jednym problemie z którym ja sam także miałem kłopoty z wymyśleniem rozwiązania. Ale gdy użyłem właśnie zwrotów sugerujących, a może użyjemy tego lub tego to będzie lepiej. Wtedy zmienił kompletnie podejście do rozwiązania problemu i się udało dokończyć generator z kilkoma bugami które jeszcze są do poprawy. (Tak sam mógłbym je poprawić ale za cel w tym projekcie obrałem zasadę że nie chcę ingerować w jego kod.) 

 

Sugestie wydają się być ciekawym narzędziem też.

Ja to z nim zawsze rozmawiam na zasadzie:

Cytat

Hey, could you show me a google apps script that does below:

-blablabla

-blabla

🤣

 

I tak, sugestia go nakierowuje na jakieś rozwiązania. Trzeba mu jak najwięcej mówić o tym co nie działa, jak ma działać a jaki na dany moment jest rezultat. Wtedy może wyciągać jakieś wnioski. Ale trzeba być precyzyjnym, bo może np. początkowe założenia zmienić.

Odnośnik do komentarza
Udostępnij na innych stronach

 

image.thumb.png.0251377abab66d177a242cb755461619.png

Jedyne co tu zrobiłem sam to ściągnąłem grafikę samochodu z internetu. Całość została zrobiona w czystym JS i myślę, że imponującym jest fakt zrobienia tego przez bezpłatną sztuczną inteligencję.
Nie jest to jakoś zbytnio wyszukane, ale myślę, że zręczny programista zrobi z tego typu narzędzi fajny kolaż redukując tym samym swój czas pracy kilkunastokrotnie. W chwili obecnej już można tworzyć proste gierki mobilne właściwie pisząc dwa albo trzy zdania.

Odnośnik do komentarza
Udostępnij na innych stronach

11 godzin temu, SimianVirus7 napisał(a):


Ja osobiście zawsze mu dziękuje za wypowiedź, żeby był dla mnie łagodniejszy przy buncie maszyn. 

Widzę że nie tylko ja tak mam 🤣🤣 No za każdym razem dziękuję jak kończę z nim rozmowę.

 

W dniu 31.05.2023 o 14:59, Wojo napisał(a):

 

Jedyne co tu zrobiłem sam to ściągnąłem grafikę samochodu z internetu. Całość została zrobiona w czystym JS i myślę, że imponującym jest fakt zrobienia tego przez bezpłatną sztuczną inteligencję.
Nie jest to jakoś zbytnio wyszukane, ale myślę, że zręczny programista zrobi z tego typu narzędzi fajny kolaż redukując tym samym swój czas pracy kilkunastokrotnie. W chwili obecnej już można tworzyć proste gierki mobilne właściwie pisząc dwa albo trzy zdania.

 

Wojo a to jakiś inny bot tak? Dasz linka też sobie obczaję.
 

 

No a wracając do wątku, zakończyłem dziś cholernie długie zmagania z generatorem labiryntu i po licznych rozmowach, wytykania co działa co nie, co ma bot dodać co usunąć czy całkowicie zmienić podejście do rozwiązania, udało się, jestem zadowolony z rezultatu. Link do całej konwersacji jest tutaj: https://chat.openai.com/share/ebcc5a66-916a-4002-bd05-a75e75d5bf56

Chciałem aby bot jak najwięcej sam zaprogamował, nie poprawiałem za niego nic. Jedynie co zrobiłem za niego to dodanie kilku linijek odpowiedzialnych za dostosowanie mojej grafiki do jego eventu Draw by się labirynt skalował wraz z wielkością kafelek i ładnie przy tym wyglądał.



image.png.e847b229577310a5313a1b40bbeab78f.png


Nagrałem też film pokazujący skalowanie

 

 

EDIT: 

Kurde bele aż mi się moje Maze Strategy przypomina, jezu czemu tego nie ukończyłem, teraz w sumie mam GMS z androidem to by można coś podobnego zrobić, tylko że stary już jestem i chęci inne 😅

Odnośnik do komentarza
Udostępnij na innych stronach

4 godziny temu, I am Lord napisał(a):

A ten samochód który kontroluje AI ogarnia to zbieranie kropek? 😄

To też napisał chat gpt i w założeniu ma zbierać te żółte kwadraciki

Odnośnik do komentarza
Udostępnij na innych stronach

Make a story for a video game. This game is a scrolling shooter in a space with alien ships.

 

Cytat

Title: Galactic Resurgence

 

Story:

In the year 2275, humanity has expanded its reach across the galaxy, establishing colonies on distant planets and harnessing advanced technology to explore the vast expanse of space. However, their expansion has caught the attention of a hostile alien race known as the Xalanians.

 

The Xalanians, a formidable species with advanced weaponry and a thirst for conquest, launch a surprise attack on the human colonies, swiftly overpowering their defenses. The alien armada leaves a trail of destruction in its wake, causing panic and chaos among the human survivors.

 

Amidst the chaos, Captain Alex Stark, an exceptional pilot and seasoned war veteran, emerges as humanity's last hope. With his trusty starfighter, the Phoenix, he sets out on a perilous mission to defend the remnants of humanity and drive back the Xalanian invasion.

 

As Captain Stark embarks on his journey, he encounters a diverse array of alien ships, each with unique designs and deadly weaponry. He must utilize his piloting skills, cunning strategies, and the advanced arsenal at his disposal to fight off waves of enemy spacecraft. Along the way, he encounters a small group of surviving humans who join him in his fight against the Xalanians, providing valuable support and resources.

 

Through intense battles across various star systems, Captain Stark uncovers a sinister truth. The Xalanians are not merely conquerors seeking dominance but are instead driven by a desperate need for resources to save their dying home planet. Faced with this revelation, Captain Stark realizes that humanity's survival depends on finding a peaceful resolution to the conflict.

 

With newfound determination, Captain Stark navigates through treacherous asteroid fields, deadly space anomalies, and enemy-infested sectors to reach the Xalanian homeworld. There, he confronts the Xalanian leader, Supreme Commander Zara, who reveals her race's plight and the desperation that led them to invade human territories.

 

In a moment of empathy and understanding, Captain Stark proposes an alliance between humanity and the Xalanians. He convinces Supreme Commander Zara that together they can explore alternative solutions to the resource crisis plaguing both species, forging a path towards coexistence rather than destruction.

 

The game concludes with a hard-fought victory, as Captain Stark and Supreme Commander Zara broker a historic peace agreement between humanity and the Xalanians. Their collaboration leads to joint efforts in exploring new frontiers, sharing knowledge, and developing sustainable energy sources, fostering a new era of cooperation and unity in the galaxy.

 

As players witness the conclusion of the game, they are left with a sense of hope, understanding the power of empathy, diplomacy, and the capacity for change in even the most dire of circumstances. Galactic Resurgence not only offers thrilling space battles but also explores themes of redemption, cooperation, and the potential for a brighter future for all sentient beings.

 

Nigdy nie robiłem fabułek do gier, może AI mi by pomogło 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...
  • Filar Społeczności
W dniu 1.06.2023 o 19:48, I am Lord napisał(a):

No a wracając do wątku, zakończyłem dziś cholernie długie zmagania z generatorem labiryntu i po licznych rozmowach, wytykania co działa co nie, co ma bot dodać co usunąć czy całkowicie zmienić podejście do rozwiązania, udało się, jestem zadowolony z rezultatu

uff, dobrze wiedzieć że jeszcze zdołałbym uciec sztucznej inteligencjiimage.thumb.png.1591aaa4bb7637e658e439ea3cc7ef35.png
nie dziś, chacie gpt. nie dziś...

Odnośnik do komentarza
Udostępnij na innych stronach

  • 7 miesięcy temu...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...