-
Notifications
You must be signed in to change notification settings - Fork 550
Procedural Generation #37561
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: Bleeding-Edge
Are you sure you want to change the base?
Procedural Generation #37561
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couple of things. Purely stylistic choice but I don't like the space in modules/procedural mapping
, much like I would like our client procs.dm
to be renamed with an underscore. This is probably not that important though.
// IF YOU ADD NEW A NEW RUIN TYPE | ||
// PLEASE MAKE SURE YOU ADD IT TO THE BELOW LIST AND PROC! | ||
|
||
#define RUINTYPE_LIST_ALL list(\ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not use a global list ? In fact I'm pretty sure it'd be a lot more efficient to have one global list (or a static
list on a datum) shared by all procs than just instantiate a new list everytime you need it. You don't appear to even use this ?
var/list/ruin_templates = list() | ||
if(used_ruin) | ||
var/turf/ruin_turf = locate( | ||
rand( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A bit ugly. Why not have intermediate variables ?
var/ruin_turf_x = rand(11, 100-used_ruin.width-6 - 11) // Why not -17 ?
var/ruin_turf_y = (100-used_ruin.width-6 - 11)
var/turf/ruin_turf = locate(ruin_turf_x, ruin_turf_y, world.maxz)
junglebros, not like this... |
What this does
Adds a Procedural Generation mechanic, heavily ported from Shiptest. This is the first of many PRs to flesh out the system, but the goal here is to offer more opportunities for exploration by traveling to procgenned planetoids for various loot, research, or vaults. These z-levels will be accessed either via the gateway or via the research shuttle after using a new scanner in R&D which will consume copious amounts of power to produce a new map. Future exploration method will involve either custom shuttles or a new Exploration Shuttle. Opening this now as draft as I am seeking additional sprites for unique turfs, fauna, and features as well as ruins to place.
Images
All images below represent the current state of procgen; I plan to tweak these extensively before this is ready.
Desert

Beach

Xeno

Snow (very WIP)

Lava

Grass

Jungle

Tasks
Generators:
blocked by WELCOME TO THE JUNGLE #37475)blocked by WELCOME TO THE JUNGLE #37475)Misc:
NEED SUPPORT:
Why it's good
It's fun!
How it was tested
TBD
Changelog
🆑