Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411607 Posts in 69388 Topics- by 58445 Members - Latest Member: gravitygat

May 08, 2024, 08:06:15 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsManifold Garden
Pages: 1 ... 52 53 [54] 55 56 ... 63
Print
Author Topic: Manifold Garden  (Read 395629 times)
Mark Mayers
Level 10
*****



View Profile WWW
« Reply #1060 on: July 14, 2016, 07:43:30 AM »

The sunset earlier was absolutely gorgeous. The entire sky looked like it was on fire.






*Also congrats on the Twitch Partnership!
Logged

Desolus Twitter: @DesolusDev Website: http://www.desolus.com DevLog: On TIG!
Jeanbide
TIGBaby
*


View Profile
« Reply #1061 on: July 14, 2016, 12:16:03 PM »

Hi William,

I discovered your game about a year ago while I was writing my architecture school's thesis on the link between architecture and video game, focusing on the case of Minecraft.

I'm very excited to experience Manifold Garden!
If you need feedbacks from an architect, I'll be glad to help on the beta version.

Keep up the good work !
Jeanbide
Logged
William Chyr
Level 8
***



View Profile WWW
« Reply #1062 on: July 31, 2016, 09:08:08 PM »

I don't know how this game slipped under my radar, but it looks simply gorgeous.  Shocked

Glad to hear that!

There are 170001.. 2 views of this thread. I'm guessing it's gonna be a big hit.

Interested in hearing your notes about Twitch partnership -- what was the minimum viewers you had? Any subscribers earning you $ yet?

Not very much subscribers yet. I think only 5 or 6? But it's a start! And I'm of course super grateful.

Not sure what you mean by minimum viewers. On average I have about 30 - 50 viewer each stream.

*Also congrats on the Twitch Partnership!

Thank you! And yes on the Braid start screen. Totally didn't see that before.

Hi William,

I discovered your game about a year ago while I was writing my architecture school's thesis on the link between architecture and video game, focusing on the case of Minecraft.

I'm very excited to experience Manifold Garden!
If you need feedbacks from an architect, I'll be glad to help on the beta version.

Keep up the good work !
Jeanbide

I would love to get your feedback! It's still taking a while for me to get the game ready. Could you send me an email? Address is on the Manifold Garden website.
Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #1063 on: August 04, 2016, 03:20:23 PM »

DevLog Update #309 - 08/04/2016

Steam Store Page, Beta Launch and Taipei Game Dev Forum


Lots of developments in the past month.

Steam



First, today the Steam store page for Manifold Garden went live! http://store.steampowered.com/app/473950

You can't purchase or pre-order the game yet, but you can add it to your wishlist!

It took a while to get the store page description right, but I'm really happy with how it turned out. I actually edited it on the stream together with the viewers, which was a really interesting experience. Was able to test out different lines and get feedback right away.

Rediscover gravity and explore an Escher-esque world of impossible architecture. Witness infinity in first-person, and master its rules to solve physics-defying puzzles. Cultivate a garden to open new paths forward, where an eternal expanse awaits.

It was hard to capture the feeling and tone of the game because it's so abstract, but I think this does a good job of representing it. I also really like the phrase "witness infinity" and also "eternal expanse".


Beta Launch



We launched a closed beta for Manifold Garden last Friday on itch.io using their refinery tools.

This first round has about 200 people. The plan is to release a new build weekly, and add in 50 new testers every month up until launch.

The coolest part of this process is that we added a bug reporting tool for playtesters. When playing the game, you simply hit "enter" to bring up the bug reporter. You can type in a bug description, and it will take a screenshot, send the report along with relevant metadata (level you're on, player position, rotation, time played, operating system, GPU, etc) directly to our trello board.



This is incredibly useful, and we already have hundreds of bug reports submitted. It will of course take us a while to get through all of them though.



Taipei Game Developers Forum



At the beginning of last month, I traveled to Taiwan to attend the Taipei Game Developers Forum, where I also gave a talk about the evolution of Manifold Garden's art style.

I had a fantastic time there. It was great getting to meet new people as well as hang out with some old friends.

Manifold Garden was also shown there. Here's what the set up looked like:



Logged

sidbarnhoorn
Level 3
***


View Profile WWW
« Reply #1064 on: August 16, 2016, 04:44:03 AM »

Congrats with your Steam Page, William! Looking forward to this game! Excellent trailer as well and music! Smiley
Logged

Siddhartha Barnhoorn
--------------------
Award winning composer

Composed music for the games Antichamber, Out There, The Stanley Parable, Planet Alpha...

Website:
http://www.sidbarnhoorn.com
Bandcamp:
https://siddharthabarnhoorn.bandcamp.com
Twitter:
https://twitter.com/SidBarnhoorn
William Chyr
Level 8
***



View Profile WWW
« Reply #1065 on: October 16, 2016, 08:34:59 PM »

DevLog Update #310 - 10/16/2016

Been super busy with development and travel these last few months.

Soon I will write an update catching up on the past few months, but for now, here's a quick update.

Been working on the UI for the opening menu. This is what it looks like so far:



I spent this weekend trying to get button remapping working. Using the control mapper that comes with Rewired.

It's been like pulling teeth this entire time, but I've got the basics integrated into the Manifold Garden menu layout now:



Had to adapt it to use TextMeshPro and also to not auto-generate the layout that I don't want.

Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #1066 on: October 17, 2016, 06:33:41 PM »

DevLog Update #311 - 10/17/2016

Basics of button remapping now integrated into Manifold Garden UI.



It took a while to figure out how to properly populate the input fields.
Logged

kuubaas
Level 0
**



View Profile
« Reply #1067 on: October 27, 2016, 04:53:01 AM »

Beautiful menus, love the peach you've gone for there. I'd play around with the black value as well to bring it out of the #000000 anonymity.

MG is a very inspiring addition to the first person puzzler genre, I love minimalistic and thorough explorations of a small number of mechanics, wrapping space being one I've dabbled in myself.

I'd love to see someone try implementing spherically wrapping space as opposed to cubical, if there even could be such a thing. Would get all bendy and hyperspherey I presume.

On my wishlist and will buy, good luck with the launch.
Logged

technical artist for no truce with the furies
quantumpotato
Quantum Potato
Level 10
*****



View Profile WWW
« Reply #1068 on: October 27, 2016, 04:58:32 PM »

I'd love to see someone try implementing spherically wrapping space as opposed to cubical, if there even could be such a thing. Would get all bendy and hyperspherey I presume.

On my wishlist and will buy, good luck with the launch.

http://milksnake.c3.cx/ Snake in non-euclidean geometry
Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #1069 on: October 27, 2016, 07:11:50 PM »

Beautiful menus, love the peach you've gone for there. I'd play around with the black value as well to bring it out of the #000000 anonymity.

Yeah, I definitely don't want it to be exactly black. Going to make that change eventually. Should be fairly straightforward by then though. Most of the complications have been with the navigation and the design of the elements.

I'd love to see someone try implementing spherically wrapping space as opposed to cubical, if there even could be such a thing. Would get all bendy and hyperspherey I presume.

I'd love to tackle that, but it's definitely beyond the scope of current project.


Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #1070 on: October 27, 2016, 08:26:20 PM »

DevLog Update #312 - 10/27/2016

Menu Progress


Posting some progress images of the menu over the course of last few months.


Here's what the menus in Manifold Garden looked like back in August:

Start menu:


New game select menu:


Settings menu:


Level select menu (for debugging):


As you can see, they looked pretty awful. They were all using the default Unity button design, which just didn't fit with the rest of the rest of the art style. Also, it was very confusing when there were only 2 buttons shown, because one would be grey and one would be white, and it wasn't very clear which button was highlighted.

In mid-September, I decided it was time to redesign this. Playtesters kept requesting features like button remapping, and being able to adjust mouse and joystick sensitivity. All of this had to be interfaced with via the UI, so I figured, might as well take the time to overhaul the system.

Here are some early drafts on paper:







Here are some early mockups in photoshop:









The opaque background one was my first design. The others were added based on people's feedback as many thought the first one looked too empty.

However, I decided to still go with it in the end. It felt bold and striking. All the others felt like compromises. Also, while they might have seemed like good ideas in theory, they didn't work that well in practice. For example, having a translucent background meant the menu looked very busy,  and if paused during game, it wasn't always a guarantee that you'd get a good background. The design with the small box in the middle had to change in size to adapt to different menu screens.

Some more tweaks for other menu screens:









Thought about other ways of showing button highlight:





Lots of people liked the dashes on the side, but to me, they didn't feel as consistent with the rest of the art style. Ended up sticking with the box outline.

Around this time, I was also starting to face a lot of problems with dropdowns. They caused a lot of problems visually with spacing that I just didn't like, and the control for them when using controller or keyboard wasn't very intuitive. You had to first select the dropdown, then go down, then select, etc.



Ended up switching to cycle buttons:



Added some more details to the cycle buttons. Notice the brief flash when you change the value.

Here's pretty close to the final layout. Also got button remapping working:



Also got the menus to adapt to different input.

Mouse:


Keyboard:


Dualshock 4 controller:


Xbox 360 controller:


Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #1071 on: October 27, 2016, 10:10:45 PM »

Loving all the menus William. Smiley
Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #1072 on: November 27, 2016, 05:21:47 PM »

DevLog Update #313 - 11/27/2016

4 Year Development Anniversary


Yikes! 4 years. Wow. Thanksgiving weekend 2016. I still remember Thanksgiving weekend in 2012, when I decided to try my hand at making a small game to learn Unity. At the time, I thought it would take 3 months ("How hard can it be to make a game!?"), and here I am 4 years later.

For me, Thanksgiving is always a time to reflect on the year. I don't usually go into personal stuff here, but this past year has been pretty rough.

Past 12 Months

There have been a lot of setbacks with work. I had hoped to finish the game by mid-2016, or at least to be at a point where I'm focusing solely on level and puzzle design. Some of you might recall I had tried working with other programmers to make the game, but for one reason or another, things didn't work out. I'm back to working by myself on the project now.

Programming has never been my strong suit (or something I particularly enjoy), so taking over the code base after it had been worked on by 3 different people, and which I had not looked at closely for almost a year, was a brutal endeavor. It seemed almost impossible to understand the code that was handling the back end level loading, saving system, and gameplay. The architecture was completely different than what it was when I stopped working on the code to focus on design.

It took about a month of me banging my head against the code, commenting every single line, going back and forth between scripts, before I understood what was going on. I'm past the hardest part though, and now have a clear idea of the underlying tech for the game. It makes fixing bugs much easier, as I can pinpoint what is wrong behind the scenes when I see a problem in the game. It's also much easier for me to work with the code directly to make my designs happen.

I'll talk more about the changes I've made to level loading and save system later in this post.

Besides work, also a lot of stuff happening in life. In June I went through a break up, and in October, a close family member passed away. During this time, I had also discovered a golf-ball sized tumor near my left collarbone. This was initially diagnosed as a swollen lymph node, which is very worrisome to find in the collarbone area.

In fact, the lymph node by the left collarbone is known as "Virchow's Node", and "The finding of an enlarged, hard node has long been regarded as strongly indicative of the presence of cancer in the abdomen". To make things even worse, a lymph node is considered abnormal if it's bigger than 2 cm. The tumor was about 4 cm.

As you can imagine, I was not very pleased to learn of this news. I had to have surgery to have the tumor taken out and tested for cancer. In the end, the tumor turned out to be benign, which was a huge relief. The entire experience took 2 months, from first discovering it, to seeing a doctor, then a specialist, then the scheduling, waiting for test results, etc. It was a particularly stressful time.

Anyway, things are looking up now. I'm thankful for the friends and family who have supported me throughout this period. Also thankful to have my health after the scare, and not have cancer. And even though Manifold Garden has taken way longer than I had expected, I'm thankful for the opportunity to work on this project. It's really a dream come true in so many ways, to be able to immerse myself completely in a world of my imagination. And even though there are a lot of aspects of game development I don't enjoy (management, low-level programming), everything has been part of a learning journey.

Onto the technical details.

Level Loading - Streaming and Stutter-Free 60 FPS

In Manifold Garden, there are multiple different areas that you can travel to. Each area is a separate scene in Unity. There are loading screens during gameplay, and no level select screens/

Here is a map of how the game world of Manifold Garden is organized. The blue circles represent worlds (main gameplay areas), and the red lines are hallways which connect the worlds via portals.



Here's what it looks like to go through a portal hallway to get from one world to another:



The hallways serve 2 purposes:

1. It provides visual contrast of going from a narrow hallway to a large open area. Putting two open areas next to another doesn't feel as interesting. The interior also has strong contrast to make the portal "look" like a portal (not seeing anything behind the portal contrast with the interior wall).

2. It provides time to prepare the next level before the player moves in (this is an old game dev trick)

For a while, the way level loading was handled was by loading all the levels at the beginning, then disabling all the scenes not needed, and then enabling / disabling them accordingly as the player travels throughout the game world.

In this image, everything with a yellow tint has been loaded.



The problem with this was that it had a really long load time at the beginning. Even with only a third of the game scenes loaded, the load time was about 30 - 40 seconds. It clearly was not going to scale for the entire game.

This meant that the levels needed to be loaded in dynamically in the game.

The first implementation of streaming loading used Unity's async loading. The only control you have over this is choosing the thread priority to be low, below normal, normal, or high.

Every time a level is loaded, it would cause a very noticeable hitch. It was a fraction of a second, but with the game running at 60 FPS, it was very noticeable, and very jarring.

For dynamic loading, only the neighbor levels are loaded.

As you can see here, the player starts in world 1. Before the game begins, we already world 2 and world 3, as well as the hallways connecting them to world 1 loaded in.

Worlds that have a black dot means they have been disabled. So when the player is in world 1, only the hallways connecting to it are enabled. The hallways are staggered the main world physically. The gameplay worlds are always at origin (0, 0, 0). The hallways are far away, like at (600, 0, 0). When players change between gameplay worlds, we are enabling the new one, disabling the old one, and just changing the player camera culling layer.



When player moves int world 2, we load its neighbors. World 1 has already been loaded, so we don't need to reload it. We load in world 4 and world 6. Note now world 1 is disabled. The only enabled levels are world 2 and its hallways.



I was getting a hitch when loading in new scenes, even using Unity's async.

At the beginning of November, I went to Unite 2016 (the Unity conference in LA) and spoke to William Armstrong (who worked on Firewatch), as well as devs from Playdead (who made Inside and Limbo).

They both had really great suggestions for smoothing out loading.

Instead of loading the entire level using async load, I load in the colliders separately. In preparing the level, the colliders are separated into groups of 100, and each is made a prefab, then deleted from the scene. During gameplay, the scene (without colliders) is loaded in async during one frame. Then during the next frames, one collider prefab groups is instantiated and moved into the scene it belongs in.

Thus, an entire level is loaded into the group over the course of multiple frames, sometimes up to 20 or 30. This is perfectly fine as the level is fully loaded far before the player is even close to getting to it. This allows me to maintain a smooth frame rate even as new levels are being streamed in.

Save System

After I got the stutter free level loading working, I started to work on the save system. This turned out to be much more complicated than I had expected. I'm not even sure why this surprises me anymore. Pretty much everything related to this game has been more complicated than I had expected.

What makes the saving tricky is that Manifold Garden has persistent states in an open world. The levels are loaded in dynamically, so not all the playable objects are available to be referenced. Also, which levels are loaded depends on the current play session, not necessarily the history of the game. For example, if you visit world 4 in one play session, then continue that game in another play session, but don't ever visit world 4 or its neighbor levels, world 4 will not get loaded. However, the objects in world 4 still have history.

There's also the case of making sure the save file doesn't get corrupted. To minimize errors, each save in the game is stored in a separate file on disk (so that corruption of one save doesn't ruin all the saves). Also, when writing to disk, the game first writes to a temporary file. It then makes a backup of the original, then renames the original, then renames the temp file, then deletes the original.

This way, there is always at least one good copy of the save.

Here the load screen design at the moment (I still need to get the screenshot in save slot working):



Each save slot also lets you restore to an earlier save (basically backups within the save):





I got the idea for the restore from the Talos Principle.

What's Next

Still a few things left with the save system. Also need to tackle object pooling, and the water mechanic has several problems.

The last remaining tech is a fast travel system, which is using the level loading system underneath. This shouldn't be too difficult, but I've been wrong each time when I thought this.

After the tech, I want to go back into level design and focus on that.

Still need to work out audio design and music.

And then it's just lots of tiny bugs here and there, and polish everywhere.

Oh, also working on the PS4 port (sigh).

Almost there! Definitely in the second 90% of development. It's a real sludge to get through, and my productivity has been super low. However, I've been tackling things consistently, and definitely still making progress.

You walk over the highest mountain one step at a time, right?




« Last Edit: November 29, 2016, 11:42:24 PM by William Chyr » Logged

Vakey Rujevic
Level 1
*



View Profile WWW
« Reply #1073 on: November 27, 2016, 11:00:00 PM »

Sorry to hear all the rough things that happened in your life recently. It's funny how when bad things happen, they usually happen in waves. But really glad you got your health back and it looks like you have been making great good progress on your game (despite the set backs). I saw you posting on twitter about working on async loading on your game and was really hoping you would write a detailed dev blog about it (and you did! Looks like Christmas came early for me). Thanks for writing this! I have been having similar challenges with Unity's async loading (noticeable hickups) when I was experimenting with it for my game. Going to give it a try (load the Colliders separately) to see if that works for my game.

Keep up the great work!
Logged

Currently developing Life Of Sundura. Website | Devblog | Twitter | Tumblr
quantumpotato
Quantum Potato
Level 10
*****



View Profile WWW
« Reply #1074 on: November 29, 2016, 06:03:47 PM »

We're here for you, William.

Thanks for sharing and keeping your vision alive.

Personally I am very curious about the code.. (I would have offered to join your team had I more Unity experience) - more technical details are always welcome!

Sorry if I missed this but, how are you funded? Is this entirely self-funded from your previous installation experience?
Logged

William Chyr
Level 8
***



View Profile WWW
« Reply #1075 on: November 30, 2016, 12:13:32 AM »

Thanks for the support everyone! Really means a lot.

So, it's not really feasible for me to show the code for this stuff here, as it's not abstracted to be on its own and is instead integrated into everything else.

The gist is this: there's a script LevelBuildPrep.cs, which is run for each level to create an optimized version of the level. This is where it groups the colliders into groups and turn them into prefabs.

Then there is a LevelLoader which loads in the level and then each collider prefab. It uses coroutines to ensure that each action is performed in the following frame. 
Logged

DireLogomachist
Level 4
****



View Profile
« Reply #1076 on: November 30, 2016, 07:46:09 PM »

Loving the look of the menus! Very clean.
Logged


Living and dying by Hanlon's Razor
i.i
Level 1
*


View Profile
« Reply #1077 on: November 30, 2016, 08:38:24 PM »

Hey William, I've been following your progress for a while, and I'm just dropping by to say, keep it up!

Saving in general always involves some interesting design decisions in games. I'm curious about the decision to delete future progress after loading a prior autosave.
why do?

 Coffee
Logged
jctwood
Level 10
*****



View Profile WWW
« Reply #1078 on: December 01, 2016, 02:54:02 AM »

This is all looking so wonderful, I love the palette you have chosen for the interfaces.
Logged

quantumpotato
Quantum Potato
Level 10
*****



View Profile WWW
« Reply #1079 on: December 01, 2016, 11:57:36 AM »

Thanks for the support everyone! Really means a lot.

So, it's not really feasible for me to show the code for this stuff here, as it's not abstracted to be on its own and is instead integrated into everything else.

The gist is this: there's a script LevelBuildPrep.cs, which is run for each level to create an optimized version of the level. This is where it groups the colliders into groups and turn them into prefabs.

Then there is a LevelLoader which loads in the level and then each collider prefab. It uses coroutines to ensure that each action is performed in the following frame. 

Cool. Looking forward to playing this!
Logged

Pages: 1 ... 52 53 [54] 55 56 ... 63
Print
Jump to:  

Theme orange-lt created by panic