GPTRPG V.0.1: RPG Preparations


I wasn't sure how to name this update, so excuse me for lack of consistency further on. This is the first update of the game that I decided to treat more seriously than the proof of concept version.  It focuses more on update to Godot 4 and introduction of various rpg mechanics, particularly inventory system. For more details about this version of the game, please read on.

GPTRPG V.0.1: GPT Preparations (Taking it seriously)

Description

Migriting project to Godot 4, unlocking many new possibilities.

Implementation of basic RPG functionalities and preparation for world generation on a bigger scale. Process optmisation, memory savings mechanics, flexible world generation, item container mechanics as expected in common RPG titles (inventory, shop, chest) as well as items appearing in over world. items, mobs, dialogues each have their own dictionary files to ease access and allow more complex process of choosing an unit. Player has access to more RPG actions, like block or dash and interacts with world by interact button. Added settings to further customise gameplay, including option designed for mobile users, that replace keyboard shortcuts with on-screen buttons.

Basic RPG mechanics, prepared for more complex usage to come. Groundwork for the basic game functionalities.

Many features are still temporary and less sofisticated. They work only to showcase the concept. No need for proffecional asssets yet.

Features

  • Dialogue:
    • Conversation modes:
      • greeting: always goes to normal. separate for meet, return, quest, bitter, grateful
      • normal: branch off to other modes.
      • quest: get quest informations
      • info: get informations
    • Conversation mode optional stages:
      • npc begins
      • player chooses
      • player answers
      • npc responds
    • Dialog tags
      • relationship change, interaction cost
      • switch dialog mode, including loop
    • AI:
      • generating prompt and displaying it on textedit menu
      • load new dialog by textedit menu.
    • ready dialogues saved in dictionary file
  • Ground:
    • Random ground objects:
      • trees. on spawn, adjust collision with ramps
      • ramps - small hill
    • Land mapping
      • Dont spawn land if theres one already
      • Bordered map
    • Ground types:
      • basic: plains, mountains, forest
      • mob: lair, village
      • special: tower with item reward
    • Optimization:
      • Visible on screen enabler (stop processess, like animations)
      • Limited render range (fov)
      • limited number of blocks spawned ahead of player
  • Player:
    • Actions: walk, jump, sprint, attack, block, dash
    • Camera movement and rotation with player
    • available first person camera. (hide player head, when camera is close)
    • Interact button appearing near interactable objects (open chest, talk to npc, take item)
  • Mobs:
    • Spawn random mobs from dict file with random initial position and direction
    • Movement:
      • Hunt target (enemies)
      • Wander inside land borders
      • Turn away from walls
    • NPC interactions:
      • talk
      • shop
      • progress quest
    • NPC logos for quest and merchand
    • Fight with enemies
    • Boss enemies (more HP, bigger, higher danger lv)
  • Gameplay mechanics:
    • Fight
      • Damage target when in range
      • Enemies hunt player when in range
      • limited HP pool. Death when HP = 0
      • enemy stats from dictionary: XP, HP, dangerLv, etc
    • Quest:
      • Types: bring item, defeat enemies
      • random quest target from item / enemy dict
      • spawning quest giver spawns quest land from closest undiscovered
      • activating quest activates quest target
      • reward in money
      • Dialogue for start, complete and fail
      • Journal:
        • Display active quests,
        • Choose active quest
  • Items:
    • Initial money count multiplied by 10
    • 3d model:
      • detectable by player available to take
      • as reward on top of tower
    • Container
      • modes: chest, shop, inventory
      • displays mob items in grindcontainer in stacks of limited size
      • selected item displayed prominantly, enabling iteractions on it
      • interactions: buy, take, use
      • money only in chests
    • Types from item_dict:
      • Quest item
      • Hp potion
      • Money
      • Ball
  • UI elements:
    • Automaticly scale all UI elements to screen size. Separate function for font sizes.
    • Start menu: start, credits, settings buttons
    • Game over screen
    • Settings:
      • visual: fov, number of blocks ahead
      • gameplay: load dialog, mobile
      • sound volume
      • max map size
      • return to menu
    • Gameplay: HP, money, basic mini map
    • Debug: fps, current location
    • Dialogue (dialog lines, choice table, manual dialog textEdit)
    • Quest UI:
      • Journal
      • Active quest
      • Compass to quest goal
  • Mobile:
    • player action buttons
    • pause buttons: inventory, settings, journal
    • all key binded actions clickable
  • Audio:
    • audio files (BGM, walk, attack, heal, player damage, enemy damage, quest complete)
    • separate audio players for UI and mobs with one slider in settings
  • Models:
    • Items: (money, shield, ball, potion)
    • Ground: (Ground, Ramp, Platform)
    • Objects: (Barrier, Tree)
    • Actors (Player, Enemy, Npc)
  • Animations:
    • Actors (Player, Enemy, Npc)

Issues

Mobile:

  • buttons on mobile scale wrong
  • Menu scales from after going to view
  • Cancel button in inv doesn’t disable inv toggle
  • Textures load incorrectly

Animation:

  • Weird enemy with limb movement during attack

Mobs:

  • When application minimized on movement, player get stuck on movement until next app minimize
  • Sometimes mobs get stuck on auto walk (I tried)
  • Enemies can damage you on pause

Ground:

  • Trees collide with barrier

UI:

  • Sometimes interact button stays after walking away

Files

GPT RPG v.0.1.exe 101 MB
Nov 04, 2023

Get GPT RPG

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.