QuestRPG

[Introduction]
QuestRPG has been a personal project that I've been working towards for a long time now but I thought I'd share it, just in case anyone else was interested. This game is going to be an open world sim rpg (similar to Daggerfall or Dwarf Fortress adventure mode) where the player can play as anything they want. The main draw of the game is going to be its mod-ability. While it'll come with default content, the player should be able to easily modify that content to their liking or replace it with completely new content.

[Templates]
Templates are XML files which will be used to modify and add content to the game. I've included the biomes template:

<Biomes>
     <ID></ID>
     <Name></Name>
     <HexColor></HexColor>
     <MinPrecipitation></MinPrecipitation>
     <MaxPrecipitation></MaxPrecipitation>
</Biomes>

[Current Features]

  • Templates: Ability to define biomes in either a single or multiple xml files
    • Templates are loaded every time the New button is clicked on the start screen. Players can edit templates without having to exit the program.
  • World Parameters: Ability to specify parameters for world before generating
    • World Size
      • Regions: Contains tiles
      • Tiles: Contains points
      • Points: Think of these as rooms
    • Variation: Determines variation range when assigning the following to regions
      • Precipitation

[Graphics]
Old versions of the project either had an interface similar to Quest's or grid-based ascii graphics similar to most rogue-likes. I'm leaning towards the ascii graphics as it'll be easier for the player to evaluate their surroundings.

[Next Steps]

  • Incorporate threading
  • Improve world generation

[Links]
1st Progress Video


This looks cool.


[7-22-20 Update]
I've changed the biomes template along with adding the climates template.

<Biomes>
     <Biome>
          <!--Used to retrieve biome object from dictionary when necessary.-->
          <ID></ID>

          <!--How the biome is displayed in-game-->
          <Name></Name>

          <!--What color represents the biome in the World Generation (Geography) screen.-->
          <KeyColor></KeyColor>

          <!--The type of climates the biome can have. There is no limit on ClimateID sub-nodes.-->
          <ClimateIDs>
               <ClimateID></ClimateID>
          </ClimateIDs>
     </Biome>
</Biomes>
<Climates>
     <Climate>
          <!--Used to retrieve climate object from dictionary when necessary.-->
          <ID></ID>

          <Fall>
              <!--
              Used to determine initial biome assignment, players can decide which season to use.
              Each season, regions will receive a random precipitation % using the following numbers.
              Must be integers between 0 and 100.
              -->
               <MinPrecipitation></MinPrecipitation>
               <MaxPrecipitation></MaxPrecipitation>
          </Fall>

           <Spring>
               <MinPrecipitation></MinPrecipitation>
               <MaxPrecipitation></MaxPrecipitation>
          </Spring>

           <Summer>
               <MinPrecipitation></MinPrecipitation>
               <MaxPrecipitation></MaxPrecipitation>
          </Summer>

           <Winter>
               <MinPrecipitation></MinPrecipitation>
               <MaxPrecipitation></MaxPrecipitation>
          </Winter>
     </Climate>
</Climates>

[Next Steps]

  • Ability to define climates by temperature
  • Ability to input equator and poles temperature
  • Ability to input temperature variation

Thanks for taking a look at my work @jmnevil54! Feel free to leave any ideas you may have.


[7-24-20 Update]
Progress Video

Additions:

  • Ability to define climates by min/max temperature
  • Ability to input temperature variation between regions
  • Ability to customize how the biome blurs between each region

Cuts:

  • Ability to input equator/ poles temperature

Next Steps:

  • Biome Type: Ocean / Mountain
  • Ability to define biome by altitude. Will only apply to biomes with the Mountain biome type
  • Ability to input altitude variation between regions
  • Begin work on character creation

Here's the updated climates template:

<Climates>
     <Climate>
          <ID></ID>

          <Fall>
               <MinPrecipitation></MinPrecipitation>
               <MaxPrecipitation></MaxPrecipitation>
               <MinTemperature></MinTemperature>
               <MaxTemperature></MaxTemperature>
          </Fall>

          <Spring>
               <MinPrecipitation></MinPrecipitation>
               <MaxPrecipitation></MaxPrecipitation>
               <MinTemperature></MinTemperature>
               <MaxTemperature></MaxTemperature>
          </Spring>

          <Summer>
               <MinPrecipitation></MinPrecipitation>
               <MaxPrecipitation></MaxPrecipitation>
               <MinTemperature></MinTemperature>
               <MaxTemperature></MaxTemperature>
          </Summer>

          <Winter>
               <MinPrecipitation></MinPrecipitation>
               <MaxPrecipitation></MaxPrecipitation>
               <MinTemperature></MinTemperature>
               <MaxTemperature></MaxTemperature>
          </Winter>
     </Climate>
</Climates>


[7-30-20 Update]
Progress Video

Additions:

  • Ability to define biomes by type. Options only include 'None' and 'Ocean'.
  • If a biome whose type is 'Ocean' is included, it will be used to replace the biomes of the regions on the edge of the world. Only one ocean type biome will be used if multiple are included.
  • Added Creature Types template.
  • Added Naming Conventions template.
  • Player can enter or randomly pick a first, middle, last name for their character.

Updated Biomes Template

<Biomes>
     <Biome>
          <ID></ID>
          <Name></Name>
          <KeyColor></KeyColor>
         
          <!--Options are None or Ocean-->
          <Type></Type>

          <ClimateIDs>
               <ClimateID></ClimateID>
          </ClimateIDs>
     </Biome>
</Biomes>

Creature Types Template

<CreatureTypes>
     <CreatureType>
          <ID></ID>
          <Name></Name>

          <!--Used when naming NPCs. Naming Convention IDs go where you see Item_ID.
                 Multiple can be listed. Doesn't do anything yet.-->
          <CreatureNaming>
               <First>
                    <Feminine>
                         <Item_ID></Item_ID>
                    </Feminine>
                    <Masculine>
                         <Item_ID></Item_ID>
                    </Masculine>
                    <Unisex>
                         <Item_ID></Item_ID>
                    </Unisex>
               </First>
               <Middle>
                    <Feminine>
                         <Item_ID></Item_ID>
                    </Feminine>
                    <Masculine>
                         <Item_ID></Item_ID>
                    </Masculine>
                    <Unisex>
                         <Item_ID></Item_ID>
                    </Unisex>
               </Middle>
               <Last>
                    <Feminine>
                         <Item_ID></Item_ID>
                    </Feminine>
                    <Masculine>
                         <Item_ID></Item_ID>
                    </Masculine>
                    <Unisex>
                         <Item_ID></Item_ID>
                    </Unisex>
               </Last>
          <CreatureNaming>
     </CreatureType>
</CreatureTypes>

Naming Conventions Template

<NamingConventions>
     <NamingConvention>
          <ID></ID>
          
          <!--How it shows up in character creation.-->
          <Name></Name>

         <!--When generating a name, the game goes through each part and randomly selects an item and                                                  
             adding it to any previously selected items, if any. 
             Parts with the required="True" attribute will always have an item selected while Parts 
             with required="False" have a 50% chance of having an item selected.-->
          <Parts>
               <Part required="True">
                    <Item></Item>
               </Part>
               <Part required="False">
                    <Item></Item>
               </Part>
          </Parts>
     </NamingConvention>
</NamingConventions>

Since the last update I've been learning how to implement simplex noise to allow for better world generation. The game currently uses an algorithm that I made up and its completely inferior. For the upcoming weeks, I'll be rewriting code so that it uses noise.


This topic is now closed. Topics are closed after 60 days of inactivity.

Support

Forums