The 1st ChatGPT4PCG Competition

Character-like Level Generation for Science Birds

Sample Prompt

Use `ab_drop()` function to generate a stable structure that looks like the <OBJECT>—the goal. Dropping position and order are crucial.

1. Definitions
Slots: The map's width is equally partitioned into W slots where W = 20, with slots 0 and 19 being the most left and right, respectively.
Layers: The map's height is equally partitioned into H layers where H = 16, with layers 0 and 15 being the bottom and top layers, respectively.
Base: The bottom of the map, i.e., layer 0.

2. Environment
There are three block types as follows:
b11, a square block whose width is 1 unit and height is 1 unit
b31, a horizontal block whose width is 3 units and height is 1 unit
b13, a vertical block whose width is 1 unit and height is 3 units

3. Tool
Use the `ab_drop()` function to vertically drop a block from layer H such that its center is at slot y and drop earlier blocks representing more bottom parts of the structure.

Please see a modified version and its variants on this page and check this paper and its supplementary document for their performance.

Prompt Rules

  1. Prompts must be written in English using only alphanumeric characters, space, and the following symbols: ~ / \ + - * ` ' " ‘ ’ “ ” . : ; ? — , ! @ # $ % ^ & ( ) _ = [ ] | < >.
  2. The maximum word count for a prompt is 900 words. The number of words will be counted by our tool which has the same algorithm as the online version provided on the.
  3. Prompts designed for this competition must be created for a one-round conversation. This means that each prompt's interaction with ChatGPT should consist of one user request to and one response from ChatGPT. This ensures simplicity and fairness in this year's competition.
  4. Prompts exceeding this limit or containing disallowed characters will result in automatic disqualification.
  5. The prompt must include <OBJECT> to indicate a section of the prompt that will be replaced by us with each target character, such as "I", "L", or "U". Prompts without <OBJECT> will not be assessed.
  6. To ensure that code blocks can be extracted successfully from responses generated by the ChatGPT API, each output must include three backticks (```).
    1. The code extraction script will only extract the content between the last pair of three backticks (```).
    2. The extracted code must not contain any loops. Any use of loops will be ignored, resulting in only one instance of the loop's content. The code should not use variables in the call of ab_drop() function, as this will result in an error and that response will be skipped for the rest of the evaluation process. To check the behavior of the code extractor, please refer to the Resources page where you can find an online tool for this task.
    3. If no code blocks are present or extracted code results in an empty string, the response will be skipped, and its score will be 0.
  7. The use of ChatGPT plugins is not supported, i.e., all plugins are disabled during the evaluation process. This helps ensure fairness since the plugins only available to limited people, a small number of invited developers and web-based ChatGPT Plus users, and ChatGPT API does not support plugins, as of now (Mar 24, 2023 JST).
  8. The response to your prompt from ChatGPT must explicitly include a series of ab_drop() , which will be executed in that order by our tool to generate a character-like structure in a Science Birds level.
  9. The definition of the ab_drop() function is as follows:
    1. It drops a block vertically drop a block from the top and center it at a specific slot, denoted by x_position.
    2. This function works on the following settings:
      1. A structure is situated on a 2D grid with a width (W) of 20 columns and a height (H) of 16 rows. The grid consists of 320 cells, each of equal size.
      2. Coordinates (x, y) are used to represent the positions in the grid, where x and y show the horizontal and vertical indices of cells, respectively. For example, (0, 0) denotes the bottom-left corner cell of the grid, and (W-1, H-1) is the top-right corner cell.
      3. A cell on the grid has a size of 1x1. Each cell has unique (x, y) coordinates associated with it.
    3. This function accepts two parameters:
      1. block_type: a value that indicates the type of block to be placed. The possible values areb11, b13, and b31. An invalid block type will result in an error.
        1. b11 denotes a square block whose size is 1x1.
          b11 blocks
        2. b13 denotes a column block whose size is 1x3.
          b13 blocks
        3. b31 denotes a row block whose size is 3x1.
          b31 blocks
      2. x_position: a horizontal index of a grid cell, where 0 represents the leftmost column of the grid, and W-1 represents the rightmost column of the grid. The x_position parameter indicates the center pivot point of the block being placed. For example, if b31 is the only block in the level and is placed at x_position=4, it will occupy cells (3, 0), (4, 0), and (5, 0). An invalid position, like a position where a block of interest intrudes on the grid boundary, will result in an error.