• Register

Fifty years ago, Oyanumi Corporation's research vessel, the Aeternum disappeared with out a trace, during a test of their new Dispatar Jump Drive.

Fifty years later, a radio signal matching terrestrial origins were detected.

The signal is that of an Oyanumi Distress Beacon.

You, the Captain of the converted hauler-now-frigate Geryon, have been contracted by Oyanumi Corporation to determine the origin of the signal and uncover the truth behind the Aeternum Incident.

Can you discover the truth?

Can you survive the horrors of space?

Will you make it back home?

  • View media
  • View media
  • View media
  • View media
  • View media
  • View media
Post article RSS Articles

Great news everyone!

I've another update! Last time we met, I gave a general overview of how we currently design our levels, work the implementation of a hybrid handcraft/generated system.

In this update, I'll be covering the generated portion specifically.

To start let's talk how we initiate that sequence...

As mentioned before, most platforming levels will have a portion of their maps that may be generated. For those sections to exist, it relies on a number of conditional attributes that are present, including level type, size, space/planet, and player action. The most important one, in this development phase is player action. Some of you may be confused by that statement, so let me explain.

A player may have a number of objectives when they get to the platforming portion, which includes accessing locked doors. These locked doors serve as buffers between the handcrafted and generated sections. Therefore, when the player unlocks one of these doors, it initiates the level generator and creates that section. However, there are some problems with this approach. One of them being, if we tied such a function to the doors directly, we would need increase wait time for the doors to open, and the generator wouldn't have enough time over all to finish. Thats an immersions breaker through and through.


The solution?

Stagger the generation, and have the first section generate the moment you get to the platforming section. Example: Planet A has the main section, and four locked doors, for sections A1 - A4. The player gets to the planet by rift gate, and in the background, section A1 generates. This is before the player unlocks the A1 door. When the player does get access to A1 and unlocks it, section A2 generates, so on and so forth. This staggered approach means we can afford those extra few seconds to ensure there are no mishaps and it doesn't fail a majority of the time.

ScreenShot00144

The generator itself was a hurdle. I mean this is the fourth iteration of it! The previous one worked, but with so much progress having been made in other areas, and it's progress having become stagnant, it ultimately ceased to be operational and was incredibly outdated. We had a decision to make: attempt to salvage what we had or start from scratch.


With no time to waste, we considered a "why not both" approach. One of us, will have until the business week to see if we can salvage anything, while the other will devise a new system that is simpler and modular. In the end we opted to start from scratch. The old one was too far gone to waste any more man-hours in trying to make it work. But, this was not all a lost, because we were able to devise some similar utilizing what we learned from the previous setup. Iterative design. Love it, hate it, it's useful.

dungeongencode

The new level generator is constructed in a way that breaks down the entire process into a set of custom events and a series of functions, attached to a sequence. The main custom events are:

1. Spawning the initial cell
2. Spawning level cells
3. Spawning the level rooms
4. Check overlaps
5. Branching The functions are rather straight forward, with things like, "get previous cell," or "check overlap."


The goal is to keep the process simple, efficient, optimized, and easily readable should the main designer(s) not be available.

So here's a breakdown of the generator. At the start some variables are set, like max number of rooms and cells, max number of in-between cells (how many generates before finding a new position), etc, and then it's initiated. Upon event play, an initial cell is spawned where the generator's origin location is. That cell is saved in a reference variable, and it's up, down, left, right components are checked with a line trace to see if they are colliding with any other cells or rooms. Should they not, they are added to a component array. Level spawn cells or level level spawn room is called, and and a number of cells between 5 and 15 or rooms between 1 and 5 are spawned, following a sequence of functions that:

1. Gets the previous cell/room and components
2. Check those components to see if they overlap
3. Conditional check for overlap, True: destroy the cell and start again False: continue the process
4. Check the number of inbetweens, True: call level spawn cells/room and find new random position to branch False: continue process until number is reached
5. Continue process until total number of cells/rooms are reached.


We will continue on in the next part of this feature. If there are any questions, critiques, feedback, etc don't hesitate to drop a line!

Be sure to subscribe to our newsletter and follow on Twitter.

-G

Development Update: Level Design

Development Update: Level Design

News

This time we will be focusing on our level design of our platforming portion and I'll guide you in our thought process, covering why we did things the...

Development Update - Drones, Debugging and What We're Up To

Development Update - Drones, Debugging and What We're Up To

News 1 comment

It's been quite a while since we have revealed Never Go Home (and updates in general). If you haven't noticed, we've done a little reimagining (was formerly...

Updating and Level Generation

Updating and Level Generation

News

We've been busy developing new systems, and progressing forward.

A Long Overdue Update

A Long Overdue Update

News

Hello everyone, it's been a while. And we have a lot of things to discuss. If you have noticed, we haven't updated or spoken a word about NGHII for a...

Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.

Follow Report Profile
Icon
Never Go Home
Platforms
Windows, Mac, Linux
Developer & Publisher
Goodnight Games
Contact
Send Message
Release date
Game watch
Follow
Share
Style
Genre
Adventure
Theme
Sci-Fi
Players
Single Player
Project
Indie
Series
NGH: Never Go Home
NGH: Never Go Home Adventure
Never Go Home
Never Go Home Adventure
Twitter

Latest tweets from @goodnightgames

#screenshotsaturday watch our ships upgrade as you grab loot! Plunder Kings drops July 31st! T.co

2hours ago

The original icon for Ernie vs Evil. We tried to do a high brow pixelated thing but it didn't work out. What would… T.co

Jun 22 2018

Want to see our Plunder Kings talk at @Playcrafting ? Right here: Youtube.com #gamedev #gaming #scifi T.co

Jun 21 2018

A sneak peek at the little friends you can bring with you in Plunder Kings. If you have a need we've got a drone fo… T.co

Jun 21 2018

Out here tweaking particles. #ue4 #gamedev #touchitIdareyou T.co

Jun 20 2018

First look at the redone Alamo for Plunder Kings. July 31st on all mobile devices. Get ready to loot, murder and g… T.co

Jun 19 2018

Awww yeah getting all those assets in today. #MondayMotivation #ue4 #gamedev T.co

Jun 18 2018

RT @Playcrafting: #FF To our incredible first wave of #PlayNYC exhibitors! The gaming community wouldn't be what it is without these… T.co

Jun 17 2018

Embed Buttons
Link to Never Go Home by selecting a button and using the embed code provided more...
Never Go Home
Statistics
Visits
501 (1 today)
Last Update
Watchers
4 members
Articles
13
You may also like
Orbital Defence
Orbital Defence Adventure
CLARC
CLARC Adventure
Save The Emoji
Save The Emoji Adventure
Dafne
Dafne Adventure
Sir Space
Sir Space Adventure