Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411512 Posts in 69376 Topics- by 58430 Members - Latest Member: Jesse Webb

April 26, 2024, 07:24:07 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsThe Understory (previously "Spectre Shock")
Pages: 1 2 [3] 4 5 6
Print
Author Topic: The Understory (previously "Spectre Shock")  (Read 38643 times)
richy486
Level 0
**



View Profile WWW
« Reply #40 on: July 04, 2011, 06:26:41 PM »

Looks amazing, surprised that this hasn't been done before
Logged

J. Kyle Pittman
Level 6
*


PostCount++;


View Profile WWW
« Reply #41 on: July 07, 2011, 01:29:45 AM »

tl;dr: I ramble about world generation and Metroidvanias.

I had a bit of an epiphany earlier tonight and I realized that my efforts with world generation were approaching something that I hadn't quite put my finger on (at least not recently). If I subdivide the world into regions, I can give each region a unique theme or flavor and more clearly delineate progress through the world.

To illustrate this, I've colored the map by region in my visualization/driver/test program. The brighter cells indicates the room in which the player would find the "key" to unlock the next region. (In some cases, this might be an actual key, but whenever possible, it should be a new ability that lets the player access the next area...think high jump in Metroid, mist form in Symphony of the Night, etc.)



Of course, once I made this connection and was able to visualize the regions more clearly, I realized the balance is way off, so now I need to revise the algorithm to subdivide the world into more evenly sized chunks.

I'm thinking this will also allow me to pursue some earlier ideas I had for progress and flow which should hopefully give the world a more intuitive, handcrafted, designed feel...after all, isn't that really the goal of procedural content generation?

My Word!

Since I feel like rambling about design a little more, it's worth mentioning that I was looking at maps of Metroidvania games for reference a while back when I was trying to come up with an algorithm for world generation. This one map of SotN in particular made a big impression:



It's easy to see how each region connects to every other region, and on a high level, you could draw a graph in which each region is represented by a node in the graph and edges are drawn between connected regions.

That concept was sort of where my world generation algorithm got started, but somewhere between conception and implementation, this goal got muddled and lost, and then accidentally rediscovered.

Back when I first started planning these algorithms, I didn't have anything playable, and it was harder to gauge how big the world should be relative to each individual "dungeon" area. (In light of recent changes, "room" might be a more appropriate term than "dungeon," but I'm sticking with my original vocabulary for now.) I was originally imagining that the individual dungeons would be larger, but I kind of like the size they're being generated at now, and in fact, I might even want to reel them in a bit more in the future. Having each dungeon represent a concise, isolated gameplay space allows me to draw parallels to Metroidvanias more closely. It's easy to compare these areas to individual rooms in SotN, and from there, I can also draw a comparison between the world layouts of each game. At that point, the worlds I'm generating no longer seem oppressively massive, nor does so much of the space seem potentially wasted. At the moment, the only unique feature of each region of the world is that one cell contains the key to the next region, but when I think about the world in Metroidvania terms, it's easy to imagine that I could fill some of the "wasted" space with safe rooms/save points, secret rooms, maybe even teleport rooms for faster travel across the larger floors.

I also realized as I was going over this stuff again that my current algorithm creates a very linear progression. Each region contains a key which allows entry to the next region, and the next region is connected only to the current one. Besides the obvious flaw of having only way to traverse the world from any one point to any other point, it's also less interesting to have each region be immediately adjacent to the next. I'd like to mix this up a bit so that, for instance, the final region of a floor might be immediately adjacent to the first, but it's inaccessible until the entire floor has been traversed. From the start, one has my goals has been that the player should always see the lock before they find the key, and mixing up the region order in this way would just help take that concept to the next level.

One of the more interesting developments to arise from all this is that I'm no longer sure whether I need or want to divide the world into multiple floors, as illustrated in my previous post. Having multiple floors is more of a roguelike trope, and the design for this game is starting to feel like more of a first-person Legend of Zelda with only very specific, cherry-picked elements of roguelikes, Shock-likes, and Metroidvanias. I do still like the idea of progressing lower and lower into a set of increasingly dark and twisted dungeon themes (I'll save that for another rambling design thread), but I can probably accomplish the same without actually fragmenting the world. It's definitely something to sleep on.

Okay, that's enough rambling. I'm going to go play some SotN now.  Roll Eyes
Logged

J. Kyle Pittman
Level 6
*


PostCount++;


View Profile WWW
« Reply #42 on: July 12, 2011, 09:05:33 PM »

Per my previous post, I've put some work into balancing out the size of each region.

Here are a few samples of different worlds created with the same parameters:

Logged

Qbopper
Level 0
**



View Profile
« Reply #43 on: July 13, 2011, 07:25:49 AM »

Holy god, this looks amazing.
Logged
J. Kyle Pittman
Level 6
*


PostCount++;


View Profile WWW
« Reply #44 on: July 16, 2011, 12:06:07 AM »

Mostly finished world generation. Coffee

More examples:



Still gotta add some loops/shortcuts, but the critical path planning works.
Logged

J. Kyle Pittman
Level 6
*


PostCount++;


View Profile WWW
« Reply #45 on: July 19, 2011, 06:21:08 PM »

I need a new name. "Spectre Shock" is too working title and not really indicative of the tone I'm envisioning...sounds too much like a horror game. And most everything else I'm coming up with sounds too "ADVENTURE OF THE QUEST LEGEND" sort of generic.

I kind of like "Understory" but I'm worried it's too close to Cave Story.
Logged

Player 3
Level 10
*****


View Profile
« Reply #46 on: July 19, 2011, 06:27:11 PM »

How about Adventure of the Quest Legend? You could always go for a parody of those things.
Logged
Giaddon
Level 0
***


View Profile
« Reply #47 on: July 20, 2011, 11:42:21 AM »

Just checked out the current build -- very cool! I really like the music and artwork. Not much to do yet, but that's understandable.

Also: is the first sign supposed to be a joke? The only thing it tells you is that you can read signs with the use key, but you have to have already figured that out to read the message. If it's not meant to be silly, I'd change that.
Logged

J. Kyle Pittman
Level 6
*


PostCount++;


View Profile WWW
« Reply #48 on: July 20, 2011, 12:01:56 PM »

@Player 3: Ha, yeah, that could work, I suppose. I'd probably want the whole game to work as parody in that case, though, which isn't exactly what I've been envisioning.

@Giaddon: Not really a joke, just placeholder content (pretty much all my content is placeholder at the moment). I implemented signs and needed something arbitrary to display on them. Eventually they'll be used to introduce new mechanics and that sort of thing.

That reminds me, I've been meaning to take an informal poll on this: Does anyone have a preference on whether the game should pause when reading signs? I'm not sold one way or the other. Initially they didn't, now they do, but I'm wondering if I should change it back. Maybe an answer will be clear once I implement more in-game HUD and UI stuff...
Logged

Player 3
Level 10
*****


View Profile
« Reply #49 on: July 20, 2011, 12:14:38 PM »

I never noticed it paused whenever you read a sign. Keeping it real-time would probably be for the challenge. There could even be monsters near a sign to show this.

The CRT display emulation was so compelling, maybe there could be a way to make it happen in Flash too. Researching into this right now, I am.
Logged
Thomas Finch
Level 8
***


@slowcircuit


View Profile WWW
« Reply #50 on: July 20, 2011, 12:19:27 PM »

The visuals of this game seem like how people in the 80's imagined games would look like in the future. I love it.
Logged

J. Kyle Pittman
Level 6
*


PostCount++;


View Profile WWW
« Reply #51 on: July 20, 2011, 11:26:45 PM »



Implemented travel widgets. These can be used to travel from one dungeon to the next. I haven't yet integrated the world layout with the dungeon generation, so every dungeon branches in all four directions and you get a completely random dungeon each time you travel, but it demonstrates the concept well enough.

I feel like the transition is a little too rough at the moment, since there can be a bit of a hitch and a flicker as the new level is generated. It needs to either be entirely seamless or else there will probably need to be some sort of a loading screen. Best case scenario, I could move the bulk of the level generation to a separate thread and do an old school Resident Evil "walking through the door" transitional animation while it runs. But that might be overkill.

I'm almost definitely going to have to add a compass as well as a world map; it's starting to feel really easy to lose sense of direction. Of course, more unique texturing, decorations, etc. will go some distance towards maintaining direction, but a compass would still be nice.
« Last Edit: July 20, 2011, 11:43:44 PM by Pirate Hearts » Logged

Attacklife
Level 0
*

Yes Indeedy.


View Profile
« Reply #52 on: July 21, 2011, 03:12:20 AM »

Pirate Hearts

I tried this game out yesterday, and I have to say... This is really awesome. The look and feel of this game is immense. I cannot wait to see it finished. Also your patching and menu systems are neato burrito. I think more games need to be implemented as completely as yours is already. Keep doin your thang.
Logged
J. Kyle Pittman
Level 6
*


PostCount++;


View Profile WWW
« Reply #53 on: July 24, 2011, 02:39:30 PM »

Couple of updates today:

  • Josh Whelchel (soundofjw on TIGS) wrote me an awesome demo track to replace my placeholder MIDI tune.
  • I made some long-overdue updates to my audio system which should improve perf a bit. As a test of stereo sound, the signpost will ping every couple of seconds until you read it.
  • I implemented actual world traversal. You can leave a dungeon and come back and it will be the same one you just left. There's no state preservation yet, though, so all the doors will be closed, the snake will be alive, and so on.

Next up: ...world map, maybe? Not yet sure whether I want this to be on the HUD all the time or whether it should be another overlay like the dungeon map or whether it should be part of a separate UI. Probably a minimap on the HUD and a full map on a separate UI would work...that's sort of a time-tested staple (see Legend of Zelda, Super Metroid, etc.)
Logged

J. Kyle Pittman
Level 6
*


PostCount++;


View Profile WWW
« Reply #54 on: July 25, 2011, 06:17:52 PM »

So I just found out today that my engine will sometimes crash if automatic updating is enabled and my web site is down (which it is tonight because the server is being migrated). Fun times. Haven't yet been able to get a repro in debug mode, so I'm not sure I can patch it.

Anyway, whenever I can update again, THIS will happen:



The map overlay now gets revealed as you walk around. And it gets saved when you leave and re-enter a dungeon. Really helps to give more of a feeling of exploration.
Logged

SolarLune
Level 10
*****


It's been eons


View Profile WWW
« Reply #55 on: July 25, 2011, 10:29:20 PM »

Nice. Great job with that. This game's looking very interesting - kind of like a 3D ASCII game. LOL
Logged

J. Kyle Pittman
Level 6
*


PostCount++;


View Profile WWW
« Reply #56 on: July 30, 2011, 01:53:49 PM »

Took me a while to get around to patching in the last change I mentioned (map revealing) because I kept finding bugs in the implementation. But it's finally in! Plus a few other things:

July 30 Update:
 - Adjusted dungeon size based on number of adjacent dungeons
 - Added map revealing
 - Added start location (no more starting outside the level)
 - Fixed a memory leak on shutdown
 - Added option to upload anonymous stats on every session, not only the first one
 - Added a hashed computer name to stats logging (allows me to identify multiple logs from the same users without compromising anonymity)
Logged

Landshark RAWR
Level 10
*****



View Profile
« Reply #57 on: July 31, 2011, 10:10:06 AM »

The name could be an acronym for CRT (Cave Rage Time for example)
Logged

Player 3
Level 10
*****


View Profile
« Reply #58 on: July 31, 2011, 10:24:51 AM »

And this update keeps erasing the Spectre Shock from the drive.
Logged
J. Kyle Pittman
Level 6
*


PostCount++;


View Profile WWW
« Reply #59 on: July 31, 2011, 11:00:22 AM »

And this update keeps erasing the Spectre Shock from the drive.

Yikes. Never seen that one before. I'm not doing any verification or error checking after the new version gets downloaded, so I have occasionally run into problems where the executable will contain error text ("404 Not Found", etc.) if I messed up the URL or something, but to complete erase it? No idea what's happening there.  Concerned
Logged

Pages: 1 2 [3] 4 5 6
Print
Jump to:  

Theme orange-lt created by panic