chatGPT — Complete Game Development Series: Part 1

Rusty Jordan
10 min readApr 10, 2023

--

In this series we will be creating a video game from idea to deployment using GameDev AI, a modified version of chatGPT I have created over the past few weeks. Follow to stay up to date in the process.

As you may know from my past posts, chatGPT is a great tool for helping with developing creative ideas, game mechanics, and storylines for video games. We have even created a few plugins using chatGPT like my Game Dev De-stresser cat pictures plugin. :0)

Anyway we are going to take this to the next level and use my GameDev AI version of chatGPT with the Unity game engine to create a complete game, from idea, to mechanics, to art, and even voice lines and sound tracks. As we go through this series please leave any thoughts, questions, or comments below.

So what tools will I be using?

1. GameDev AI — chatGPT for Game Development.

2. The AI Voice and Text Generation Toolkit — I am using the beta version that integrates Azure neural systems.

3. DreamGen’s Stable Diffusion API for image and texture generation.

4. Unity Game Engine.

Today, we will come up with an idea using GameDev AI, flesh it out, and have GameDev AI create a comprehensive list of mechanics and game objects needed. Out of the list of 20, I really like the mechanics in Frogger so I chose it, but later in the series we will modify the game to make it our own as well as be in an asteroid belt or as GameDev AI came up with:

SpaceCrossing — As a space miner, you must carefully cross a busy asteroid belt, hopping from one asteroid to another while avoiding hazards like laser beams, mines, and other spacecraft.

So lets get started, and develop an idea, create a mechanics list, and layout a few design sprints and files to develop later. Enjoy the journey, and let me know what you are making.

“Hey GameDev, I want to totally create a videogame using chatGPT and Unity Game engine. From generating ideas, to game design doc and mechanics, to writing scripts and developing functionality, etc… Please create a step by step guide for me.”

The process of creating a videogame is complex and involves a lot of work. Therefore, it is important to have patience, perseverance and dedication throughout the process. Here are some steps that can help you get started:

Step 1: Generating ideas

The first step in creating a videogame is to generate ideas. You can use ChatGPT to help you with this process. Simply give the model a prompt such as “Ideas for a videogame” and let it generate ideas. Once you have a list of ideas, narrow them down to the ones that interest you the most.

Step 2: Game Design Document (GDD)

The next step is to create a Game Design Document (GDD). This document will outline the concept, story, game mechanics, characters, and levels of your videogame. You can use ChatGPT to help you with this process as well. Simply give the model a prompt such as “Creating a Game Design Document for a videogame” and let it generate a template for you. Then, fill in the details of your game based on the ideas you generated in step 1.

Step 3: Creating game mechanics

Once you have your GDD, you can start creating the game mechanics. You can use ChatGPT to help you with this process as well. Simply give the model a prompt such as “Creating game mechanics for a videogame” and let it generate ideas for you. Then, refine and modify those ideas to fit the theme and style of your game.

Step 4: Writing scripts

The next step is to write scripts for your videogame. You can use ChatGPT to help you with this process as well. Simply give the model a prompt such as “Writing scripts for a videogame” and let it generate ideas for you. Then, modify and adapt those ideas to fit the mechanics and gameplay of your game.

Step 5: Developing functionality

Once you have your scripts, you can start developing the functionality of your videogame. This involves programming the game mechanics and functionality using Unity Game engine. You can use Unity’s built-in scripting language or use a third-party programming language such as C#.

Step 6: Testing and debugging

After you have developed the functionality of your videogame, it’s time to test and debug it. This involves playing the game and identifying any bugs, glitches or errors that need to be fixed. You can use Unity’s debugging tools to help you with this process.

Step 7: Polishing and optimizing

Once you have fixed any bugs and glitches in your videogame, it’s time to polish and optimize it. This involves improving the graphics, sound, and gameplay of your game. You can use Unity’s built-in tools to help you with this process.

Step 8: Release and promotion

After you have polished and optimized your videogame, it’s time to release it to the public. You can use Unity’s built-in tools to release your game on various platforms such as PC, mobile or console. Then, you can promote your game on social media, gaming forums, and other channels to attract players.

“Alright, let’s create lets create a simple game, like a clone of a classic video game. Please create a list of 20 ideas.”

Sure, here are 20 ideas for a simple video game, based on classic games:
-A Pac-Man clone where the player controls a character who eats dots and avoids ghosts.
-A Space Invaders clone where the player controls a spaceship and must shoot down alien invaders.
-A Pong clone where the player controls a paddle and must hit a ball back and forth with an AI opponent.
-A Tetris clone where the player must arrange falling blocks to form lines.
-A Breakout clone where the player must bounce a ball off a paddle to destroy blocks.
-A Frogger clone where the player must guide a frog across a busy street and river.
-A Donkey Kong clone where the player must climb ladders and jump over barrels to reach the top of a tower.
-A Galaga clone where the player controls a spaceship and must shoot down waves of alien ships.
-A Sonic the Hedgehog clone where the player controls a character who runs and jumps through levels.
-A Super Mario Bros clone where the player controls a character who runs and jumps through levels and collects coins.
-A Bomberman clone where the player controls a character who drops bombs to destroy obstacles and enemies.
-A Bubble Bobble clone where the player controls a character who blows bubbles to trap enemies.
-A Street Fighter clone where the player controls a character who fights against other characters in a tournament.
-A Mortal Kombat clone where the player controls a character who fights against other characters in a tournament and can perform fatalities.
-A Contra clone where the player controls a character who runs and shoots through levels.
-A Double Dragon clone where the player controls a character who fights against other characters to rescue a kidnapped person.
-A Metal Slug clone where the player controls a character who runs and shoots through levels and can ride on vehicles.
-A Mega Man clone where the player controls a character who can jump and shoot through levels and defeat bosses to gain new abilities.
-A Gradius clone where the player controls a spaceship and must shoot down enemies and collect power-ups.
-A Raiden clone where the player controls a spaceship and must shoot down enemies and collect power-ups while avoiding obstacles.
These are just a few ideas to get you started. With a little creativity and ingenuity, you can create a simple video game that is engaging and fun to play.

“I really like the idea of a frogger clone, can you flesh it out more for me?”

Sure, here is a brief game design document for a Frogger clone:

Title: Frogger Clone

Overview:

The player controls a frog who must navigate through a busy street and river to reach the other side. The player must avoid cars and trucks on the street, and logs and turtles on the river. The game is won when the player successfully navigates their frog to the other side.

Gameplay Mechanics:

The player controls the frog using the arrow keys or touch screen controls.

The frog can move up, down, left, or right, but cannot move diagonally.

The frog can hop onto logs and turtles in the river to cross, but must avoid falling into the water.

The player must avoid cars and trucks on the street. If the frog is hit by a vehicle, they lose a life and restart at the beginning.

The player has a limited amount of time to cross the street and river. If the time runs out, the frog loses a life and restarts at the beginning.

Art Style:

The game will have a retro pixel art style, similar to the original Frogger game.

The street and river will be top-down, with the player and obstacles viewed from a side angle.

Sound and Music:

The game will feature simple sound effects, such as car horns and frog croaks.

The game will have a simple, upbeat background music track.

UI and Menus:

The game will have a simple main menu with options to start the game, view high scores, and adjust settings.

The game will have a game over screen with the player’s score and options to restart or return to the main menu.

Platforms:

The game will be developed for PC and mobile platforms, using Unity game engine.

I hope this brief game design document for a Frogger clone is helpful. With this as a starting point, you can begin to design and develop the game mechanics, art assets, and programming functionality for the game.

“Please create a full list of mechanics for this game and break them down into script names needed for each.”

Sure, here is a full list of mechanics for the Frogger clone, along with some suggestions for the names of the scripts needed for each:

Movement of the frog (PlayerMovement.cs)

Movement of the cars and trucks on the street (StreetVehicleMovement.cs)

Movement of the logs and turtles in the river (RiverObstacleMovement.cs)

Frog death and respawn (PlayerDeath.cs)

Time limit for each level (LevelTimer.cs)

Checkpoints for progress in the game (Checkpoint.cs)

Scoring system for successful crossings and collecting items (Scoring.cs)

Displaying UI elements such as score, lives, and time (UIManager.cs)

Audio system for sound effects and background music (AudioManager.cs)

Main menu functionality (MainMenu.cs)

Game over screen functionality (GameOver.cs)

Additionally, here are some suggested scripts for other functionality that may be useful:

Game manager to handle game state and transitions (GameManager.cs)

Object pooling system for street vehicles, river obstacles, and collectibles (ObjectPool.cs)

Level manager to handle loading and unloading of scenes (LevelManager.cs)

Save and load system for high scores and player progress (SaveManager.cs)

These are just suggestions, and the specific needs of your game may require additional or different scripts. However, this list should give you a good starting point for the functionality you’ll need to create a Frogger clone using Unity game engine.

“I want to make the game be about a space miner trying to get across an asteroid belt but work like frogger. what would be a few cool names and brief description of it”

Here are a few possible names and brief descriptions for your Frogger-inspired space miner game:

AstroHopper — You play as a space miner hopping from asteroid to asteroid to collect valuable resources while avoiding obstacles like meteor showers and alien attacks.

StarLeap — In this game, you must guide your space miner across a treacherous asteroid belt, jumping from one asteroid to the next to avoid obstacles like space debris and laser beams.

MeteorRun — Your goal in this game is to help your space miner escape from an asteroid belt while dodging meteor showers and other hazards. Can you make it to safety?

GravityJump — This game challenges you to navigate your space miner through a field of asteroids, using the gravity of nearby objects to slingshot your way to safety.

SpaceCrossing — As a space miner, you must carefully cross a busy asteroid belt, hopping from one asteroid to another while avoiding hazards like laser beams, mines, and other spacecraft.

Hopefully, these names and brief descriptions inspire you and help you get started on your game development journey.

“Create a Design sprint list for SpaceCrossing using the mechanics list and spript and gameobjects that would be needed.”

Sure, here’s a development timeline broken down into sprints for the SpaceCrossing game, including the script names and game object names needed for each:

Sprint 1:

  1. Set up Unity project and scene
  2. Create player prefab with PlayerMovement.cs script attached
  3. Create asteroid prefabs with AsteroidMovement.cs script attached and collisions set up
  4. Create game manager prefab with GameManager.cs script attached
  5. Create UI manager prefab with UIManager.cs script attached
  6. Create audio manager prefab with AudioManager.cs script attached

Sprint 2:

  1. Create laser beam obstacle prefabs with LaserBeam.cs script attached and collisions set up
  2. Create mine obstacle prefabs with Mine.cs script attached and collisions set up
  3. Implement scoring system with Scoring.cs script attached
  4. Implement game over screen with GameOver.cs script attached
  5. Add LevelTimer.cs script to the game manager to handle time limit for each level

Sprint 3:

  1. Implement player death and respawn with PlayerDeath.cs script attached
  2. Create collectible prefabs for bonus points and power-ups
  3. Implement main menu functionality with MainMenu.cs script attached
  4. Implement SaveManager.cs script for saving and loading high scores and player progress
  5. Implement ObjectPool.cs script for asteroids, laser beams, mines, and collectibles

Sprint 4:

  1. Add gravity slingshot mechanic using GravitySlingshot.cs script
  2. Implement enemy spacecraft prefabs with EnemySpacecraft.cs script attached and collisions set up
  3. Create boss spacecraft prefabs with BossSpacecraft.cs script attached and collisions set up
  4. Create space station checkpoint prefab with Checkpoint.cs script attached
  5. Test and debug the game thoroughly

Sprint 5:

  1. Polish and fine-tune gameplay mechanics
  2. Add additional levels or game modes as time allows
  3. Implement any remaining features or functionality as needed
  4. Add sound effects and music with AudioClips and AudioSource components
  5. Release the game for PC and mobile platforms

Please note that these are just suggestions, and the specifics of the script names and game object names may vary based on your implementation. Additionally, the duration of each sprint may vary based on the scope and complexity of your game, as well as the available resources and team size.

--

--

Rusty Jordan

A professional AI prompt engineer and hobbyist game designer. And when our powers combine we... well create a chaotic mess.