Goblinson Crusoe Level Editor

Published August 10, 2018
Advertisement

Been awhile since I updated, but I haven't been idle. Mostly, anyway. The usual hindrances to my development time apply, of course, but I have made some progress.

My big project lately has been to repurpose my terrain editor to build a level editor for Goblinson Crusoe. You can see some pictures of my initial efforts here:

ppsY06K.jpg

FBEKyM8.jpg

So far, I have implemented all of the functionality of the unfinished terrain editor (height editing, noise node graphs, etc...) as well as making a first version of spline groups to allow having multiple spline curves for use in road and river building filters. I iimplemented a color chooser for choosing the colors for main light (sun), back light, and fog/ambient colors. (Some of these changes, which are relevant to the original terrain editor, I have propagated backwards to the original project; others, though, are specific to the GC editor.) I have also implemented a slight change to the quad-planar shader the ground textures use, so that I can edit top textures separately from side textures. And of course, as with all large GC-related projects, it has initiated a round of major refactoring in the way that I load and construct levels. Next on the list is editable water, followed by spawn groups to allow spawning level objects, and saving those spawners.

The way I'm thinking about spawn groups is to populate a spawns folder with a whole set of proxy objects. These proxy objects will include the graphical model for a level object, along with a Spawner component that provides an indirection link to the actual game object to spawn. This will let me do things like replace the spawned object without having to edit every instance of that object in the level, create spawn objects that randomly select from a set of objects at level load, and so forth. That way, I can randomize the contents of a level when it is loaded, rather than having to randomize at level construction and provide multiple 'copies' of a level for randomized variants. I'm still thinking about the exact particulars of how I want to set this up.

I'm also working on a format and spec for randomly generated levels. Some set-piece levels will be static (or, at least, randomized only on certain contents) while others will be wholly randomly generated as they currently are. I hope to tweak the editor to facilitate construction of the various functions that will be used to shape and populate these random zones. That should keep me busy for another several months/years, given the sparsity of the actual time I get to spend on this. (If my wife would let me quit my job and start living off savings and retirement, it'd be a whole lot faster. For a little while, at least, until those bank balances run low. :D )

7 likes 2 comments

Comments

Servant of the Lord

Will your spline groups actually be able to depress the terrain for the rivers? That sounds really neat!

August 10, 2018 03:18 AM
JTippetts

The river filter does depress terrain. It overrides the elevation of the spline knots, and instead allows you to specify elevations for the start and end points, tessellating the spline smoothly downgrade.

ZuiMpIj.jpg

The road filter works differently, preserving elevation at the knots and smoothly interpolating in between, so it can depress terrain if needed, raise terrain, etc... to preserve the smoothness of the curve. I need to implement some analytical tools for road splines, to help ensure that roads are graded correctly to allow pathfinding; GC can only step up or down by 1 step, so if a road is too steep it becomes impassable terrain. Adjusting the knot elevations to limit the grade of the spline segments should help with that, I think.

August 10, 2018 04:08 AM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement