roalyr / pglowrpg Goto Github PK
View Code? Open in Web Editor NEWProcedurally Generated Living Open World RPG
License: GNU General Public License v3.0
Procedurally Generated Living Open World RPG
License: GNU General Public License v3.0
Pass down special attributes with descendants (could be diminished).
Briefly describe what and whom character knows, prior to the beginning of the gameplay. Let it be optional, but otherwise comprehensive if not extensive.
To edit options within the game and write the respective .toml file for persistence.
Without editing the presets, allow values to be within ranges stated in world constants. Generate the .toml for such preset and put it into save folder too.
Character / Group / Population purpose generation (like an initial or main quest) so as to not to let characters be aimless on general scale. Also an initial quest for the player to quickly involve them into game-play.
Speech constructions which depend on mood, culture, character, etc. For variety.
Something to guide characters throughout their life and narration. Could be fate-assisted or affected.
Let some complex tasks (such as "go to forest and hunt") which could be rather boring or time consuming be optionally executed by the character on their own with only general description of the process (unless something happens in meanwhile). Basically macro commands.
Optional if possible?
Ask player about his attitude upon events. Those prompts could then change character's personality and make it more in line with player's style.
Let them all suffer as well.
No idea why, but why not? Could be involved in mysticisms, mini-games, etc?
Current noise is lacking in high frequency, this affects river generation too, especially on bigger maps.
https://www.16personalities.com/personality-types
Seems like a good starting point for sentient beings personality generator.
PS: Feel free to post your test results if you feel like.
To affect population-level behavior.
Small issue. The application needs the ./save
directory to already exist when attempting to write to e.g. ./save/island_small_15092020
.
I ran these commands in the terminal:
$ git clone https://github.com/roalyr/pglowrpg.git
$ cd pglowrpg/
$ cargo run
I then hit the enter key twice to select the default preset and seed, getting this terminal output:
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
Procedurally Generated Living Open World RPG
@Roal-Yr 2020
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
Select a preset by entering its name.
Press Enter to use the preset from worldgen options.
Available presets (see ./presets/world folder) are listed below:
continent_medium, island_small,
>>
Default seed is from preset, enter 'r' to make it random.
>>
Selected preset "island_small"
The amount of worlds to generate is: "1"
Using seed "15092020"
Preparing topography map...
Preparing temperature map...
Preparing watermask map...
Preparing river map...
Accessory maps written
...10%
...20%
...30%
...40%
...50%
...60%
...70%
...80%
...90%
...100%
Preparing biome map...
Preparing georegion map...
No such file or directory (os error 2): ./save/island_small_15092020
When I created the ./save
directory, I was able to run the application the same way with no issue. My operating system is Linux Mint 19.2 Cinnamon.
See if all the folders (and files?) are there.
A possible way to make up for lack of GUI - make small png renders and store them in a save folder (pixel art templates, ASCII art?).
Not just for the world maps, but also for the local places and events / characters.
Add mountains to the bioregion layer.
Figure out how to treat water bodies (same region on georegions layer and on bioregions layer):
For instance, there is a lake. It is determined by flood-filling a specific biome as well as flood-filling specific watermask patch (which overlap, naturally).
Biome data can be omitted in narration... Or it can be mentioned as something like Lake X water area
, while georegion data will be just stating Lake X
. In the end result it could be written awkwardly as This is Lake X water area in the Lake X region
.
Characters have facial expressions to show (to some extent) their emotions.
Drastic change of expression can be delivered as priority messages.
Modify water body biomes according to location (deserts), size and depth (possibly link with #31).
What if global waterlevel is very shallow?
Possible solution: modify each water body with its personal depth value?
Allow characters to create different level groups for different purposes (teams, guilds, etc).
This can be rather complex, and it implies storing the memories of every being somewhere (if we imply they should be tied to the souls). But it may allow for interesting interaction, such as those who retained their memories from previous life(s).
It also implies defining the system of common sense and judgement for characters.
Attempt to balance everything in order to prevent straightforward gameplay development and grind. Let even the lousiest things have their unique advantages.
We can't go without martial / magical (or pseudo-magical) skills, can we?
Randomize them for every new world (seed-based).
Determines ability to avoid fatalities, influence luck-based or random processes. All in all, while character's death should be final, or when something detrimental happens, let there be either a way out or some hidden advantage, depending on luck.
As for fate - it may be tricky, but it could be made into a plot-affecting tool. No ideas so far.
Events that affect population-wide behavior.
A narration-affecting parameter (like, haunted place, or cozy, etc.)
Dungeon system (everything is a dungeon).
Aside from dungeons themselves, could be different sorts of caves, mazes, mystic realms, anything that could be described as a node tree.
For everything. Already is required, since there are unique regions, as well as nameless worlds.
Something that causes characters to be confused, shocked, scared, interested, etc. A way for random world events to affect characters.
The complexity of interactions can not be fully expressed without addressing out-of place occurrences and events which may affect characters in unusual ways, or something subtle, which player is usually used to overlook in NPCs, deeming them to be "too plain" to understand what is going on.
Most likely this will be a huge match case sort-of-thing, which will look up for different kinds of conditions combinations and providing output sequences according to situation.
It absolutely requires in-game opcode system to be up, running and polished enough, as well as documented well enough.
Keeping the structure as simple as match casing and opcode sequence outputting as well as keeping it out of source code might be beneficial for involving contributions, because this is literally writing down life experiences.
The above implies that it should also be an optional system that works on top of the hard-coded base (some common and general cases should be hard-coded, I believe), and which can be easily rectified if screwed up.
Hello, I have rust and all the things i need to have to run it but I don't know how! Help me please!
For characters to join commotion in a crucial moment (fight, rescue, events, etc).
No idea how to implement, but it requires event structure.
For funny and interesting outcomes, as well as a way to find some trouble for oneself.
A world which can be interacted with at certain conditions. Based on the general world topology and features (a cheap way of implementation), may be less demanding in terms of computations. Could be inhabited with ghosts, demons, gods, etc.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.