Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1370094 Posts in 64433 Topics- by 56484 Members - Latest Member: Spacybits

December 05, 2019, 02:13:06 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsReturn of the Obra Dinn [Releasing Oct 18]
Pages: 1 ... 24 25 [26] 27 28 ... 44
Print
Author Topic: Return of the Obra Dinn [Releasing Oct 18]  (Read 674159 times)
dukope
Level 3
***


View Profile WWW
« Reply #500 on: June 25, 2015, 06:41:04 AM »

80 > 60

Finished sculpting and painting faces for 60 passengers and crew. 






From a distance


There's supposed to be 80 people in the game - I'm cutting the remaining 20. If I find an easy way to add them back later in I may go for it. 60 is way too few for sailing a boat of this size (120 would be a realistic minimum), but I just don't think I can build out that much content in a reasonable time. The character models themselves aren't actually that hard, it's integrating the characters into the story, adding them in flashbacks, and making sure the player has enough information about each one to deduce their identity. Also there are some UI issues with enabling the player to efficiently sort through that many characters; even 60 will be a bitch.


Feature Randomizer

At my fastest, I was able to sculpt+paint 6 faces in one day. That rate was mostly thanks to a simple feature randomizer tool I built from blend targets. I could either select the features manually or hit a button to generate randomized facial geometry. Most combinations were useless but after a few clicks something inspirational would come up that I could tweak and paint fairly quickly.


Making heads from randomized blend target sets. Textures are hand-painted after finding something good.


Reference and Consistency

Most of the faces are just sketched from my imagination but I did use references for some. Referenced faces took a lot longer, and the detail gives them a slightly different look. Overall I wasn't able to stay very consistent with my technique. Some faces are realistically detailed and some are more painterly. Luckily, in-game this comes across as making the characters look unique (a useful thing for the mechanics) as opposed to out of place. Another benefit of outputting to 1-bit 640x360.


Russian sailor reference and hand-painted result

Two different characters. Left is off-the-cuff, right is from reference.


Accessories Etc

The next step for the characters is to model and attach all their clothes and accessories and add unique scars/tattoos/etc. That process is pretty straightforward so I may take a detour and assemble some flashbacks first. Would be nice to know if 60 people is actually enough, and how hard it is to arrange that many characters.
Logged

ReverendTed
Level 0
**



View Profile
« Reply #501 on: June 25, 2015, 05:08:15 PM »

There seems to be a terrific degree of variety in build, features and ethnicity in just the GIF.  Even with the 1-bit rendering, this seems like a job a TEAM would be doing at any other studio.

It sounds like the graphical limitations are working to your favor in terms of glossing over the stylistic differences in the art.  I'm hoping there's at least one set of twins on board; bonus points if they're deliberately trying to obscure their identities from other crew members!
Logged
Sean Han Tani
Level 10
*****


View Profile WWW
« Reply #502 on: June 29, 2015, 07:34:22 AM »

whoa, the magic of tools!
Logged

Working on Anodyne 2! https://forums.tigsource.com/index.php?topic=65359.0 Made Anodyne, Even the Ocean, All Our Asias
tortoiseandcrow
Level 2
**


View Profile
« Reply #503 on: July 02, 2015, 08:16:09 AM »

Been following this devlog for a while, and immediately jumped on the build as soon as it came out - it's really great!

I've been thinking about the problem of brute forcing the crew's fates. I'm not certain if limiting the scope of the flashbacks has solved this for you, but the thought occurred to me that you might not need a mechanical disincentive. Since the Muster Roll's purpose is to determine the fates so that the insurance company can decide whether to distribute unpaid salaries to the families of the sailors, it seems you might also have the unpleasant duty of informing those families the fate of their loved ones, and whether they will be receiving that (sorely needed) money. If you fudge on things, you're messing the the hearts and livelihood of a family anxiously awaiting news of their loved ones. You could make marking something in the Muster Roll permanent, too, since you can't exactly erase ink. After you decide on the fate of someone and mark it in the ledger, you get some sort of feedback from the family themselves - a line of dialogue or something small like that. Your role as investigator and arbiter gains some narrative weight, and it's harder to play the game "wrong".
Logged
papaonn
Level 0
**


View Profile WWW
« Reply #504 on: July 04, 2015, 10:43:37 AM »

okay this is fantastic, despite the fact that when i looked at the sky with white pepper noises i feel like my screen is going to explode at certain extent, everything is so nice and unique!

Keep going Pope!
Logged

dukope
Level 3
***


View Profile WWW
« Reply #505 on: July 10, 2015, 06:39:35 AM »

[...] You could make marking something in the Muster Roll permanent, too, since you can't exactly erase ink. After you decide on the fate of someone and mark it in the ledger, you get some sort of feedback from the family themselves - a line of dialogue or something small like that. Your role as investigator and arbiter gains some narrative weight, and it's harder to play the game "wrong".

There's a cool idea here. This game is probably too fantasy-oriented to work exactly like this - I'm not planning on injecting any pathos for the families, or including them at all really. But the idea that the fate entries have to be "finalized" before getting feedback is interesting.

Maybe I could have a "finalize these fates" button on each page, or a global "finalize all current fates" that can be used X times. Then you can "spend" those finalizations to find out if you're correct. Players could game this a little bit into something like Mastermind, but not much. Or they could wait until the end and just hit it once and get some special reward if they're all correct.

I think this is at least better than instantly getting feedback on page 1.


okay this is fantastic, despite the fact that when i looked at the sky with white pepper noises i feel like my screen is going to explode at certain extent, everything is so nice and unique!

I promise to fix the sky :D
Logged

dukope
Level 3
***


View Profile WWW
« Reply #506 on: July 11, 2015, 08:05:10 AM »

Back to Ship Modeling

I've finally got the entire ship roughed in - all rooms, areas, etc for the top, gun, orlop, and cargo decks. Fitting everything in was a bitch. They didn't design these ships for first person adventure games unfortunately.

I've had to add buffer space here and there to give the player enough room to move around comfortably. And because the ship has to properly articulate for the different flashbacks I couldn't cheat and leave out a critical capstan or threading hole for the anchor ropes for instance.

At the moment I'm going through and decorating each deck. One of the key ways to identify people will be to recognize which rooms they spend most of their time in. So, for example, the carpenter's room has to look the part. This bit is pretty fun to work on.

An in-progress Maya shot of the orlop deck. It'll get a lot busier before it's done:

Orlop deck


Also, this is what OCD looks like:

Old carpenter's walk - off-center grating and passageway width varies along the ship

New carpenter's walk - more centered grating and consistent passageway width

That took ~4 hours to "fix"...
Logged

Aiden (Canned Turkey)
Professional Otter
Level 10
*****


WokePosting™


View Profile WWW
« Reply #507 on: July 11, 2015, 09:52:42 AM »

Weird question, I've been noticing that all the rendered lines look really nice and easy to see. Is there anything you specifically did to make them look like that, or did they just turn out nice on their own?
Logged

dukope
Level 3
***


View Profile WWW
« Reply #508 on: July 11, 2015, 08:29:16 PM »

Weird question, I've been noticing that all the rendered lines look really nice and easy to see. Is there anything you specifically did to make them look like that, or did they just turn out nice on their own?

Probably the only particular trick is ensuring that they're always 1 pixel wide, which requires some special handling in the post-processing shader. There's a post here (and some afterwards) about how the lines are rendered.
Logged

papaonn
Level 0
**


View Profile WWW
« Reply #509 on: July 12, 2015, 07:29:07 AM »

Pope! Good seeing you got some new progress :D

Sure thing, hope there's a beautiful and warm feeling sky looking though it's a murdering ship, but i think the ambient would fit in to give some extreme feeling :D

Actually I liked the 'compactness' of the room, because it actually feels real in a compacted size,
also liked the shaders you written, because I am a vision engineer, so looking at your technical shading hooked me in :D  

Just one recommendation, if you could add a little bit noises into the scene especially on the deck, it would looked perfect with scratches and stuffs :D

All the best, been following u :D
Logged

Arucard
Level 0
**



View Profile
« Reply #510 on: July 25, 2015, 08:24:07 AM »

I've only fairly recently noticed this and am really happy to see you building a new game, especially one that seems drastically different than your previous ones (which I enjoyed too of course). The short demo was great, it felt like you let the player really figure things out for themselves without a fear of failure or obscurity. Even at an early stage it feels really nice, can't wait to purchase the final product, thanks for all your work!  Hand Thumbs Up Left Grin Hand Thumbs Up Right
Logged
アルル
TIGBaby
*


View Profile
« Reply #511 on: August 29, 2015, 07:27:54 AM »

Can't believe I only found this game just today even though I've played Papers, Please.
Played the old 0.04 dev build a little bit ago and thoroughly enjoyed it, looking forward to release!
Logged
dukope
Level 3
***


View Profile WWW
« Reply #512 on: August 29, 2015, 08:53:26 AM »

Screen Warping - 1-bit Edition

In modeling the ship and testing things out in-game I got the distinct and unmistakable feeling that "this could use some screen-warping post effects to roughen up the low-poly straight lines everywhere." I'm sure you know the feeling.

I have been down a dark path. Let me take you there.

Starting with this innocent screen:


Testing screen, untouched


The first experiment is with Photoshop's "Wave" distortion filter:


Wobble things around a bit with Photoshop's "Wave" distortion filter


B+. Warps the lines around to make them look less polygonal. The problem is that Photoshop's algorithm doesn't work in 1-bit, so you need to apply it, then re-threshold or re-dither the result. Not a huge deal, but it does double some pixels and erase others. That hurts the legibility so what if there was a way to just shift pixels around and not affect their color at all?

Next try, just offset each pixel by a random amount, using some custom Haxe testing code:


Each pixel shifted by a random amount


Ok, too much. Let's offset large blocks in a random direction instead, to reduce the frequency:


Blocks of pixels shifted by a random amount


Not bad. In motion, there are large stretches of lost or doubled pixels which destroy the nice single-pixel-wide lines and looks more clearly like a post effect than a soft warping which I want. But, altogether a decent solution and solved very quickly... Too quickly. Let's identify an arbitrary problem with this randomized approach that we can spend days and days trying to solve.


The Problem

With the low-res visual style here, and just 1-bit to work with, each pixel is important. The "wireframe" lines make lost or doubled pixels especially ugly. That leads to a rule: If we move one pixel, it shouldn't ever overlap another pixel or leave behind a hole.

... which sounds pretty dumb because of course a pixel can only move in 4 directions (ignore diagonals), and each direction already has a pixel there. The key is that the first pixel move has to go offscreen, leaving a hole - then another pixel can move into that spot, creating another hole - etc. Wind your way around the entire screen this way and you can move each pixel one spot and never overlap or double another pixel. How?


Using Mazes

Build a special 2D maze (with no branches and no dead-ends) where the solution visits each square once, then while walking the solution pick up the pixel in front of you and put it down where you're standing. This shifts each pixel one space along a winding path without overlapping or doubling. If if the maze is sufficiently winding, then the direction you shift each pixel is nearly random. In pictures:

To start, build a maze using the trivial depth-first algorithm, with a bias towards changing directions at every possible step:


Simple depth-first maze. Note the branches and dead ends


Next, this needs to be converted to a unicursal maze - a single path through without any branches or dead-ends. Thanks to Thomas Hooper for the technique for this - it's pretty cool. To convert a normal maze into a unicursal one, first get a solution that visits every square in the maze. Any solving technique will work but the easiest is to just follow the left-hand wall as you walk:


Solving the maze by sticking to the left-hand wall


Next, take that solution and use it to insert a new set of walls between the existing ones:


Solution collapsed to a single line, then added as a new set of walls in-between the existing walls.


The new maze (double the size of the original one) can be solved by walking straight through without any decisions:



Unicursal maze - single solution that visits each square once


So, making a unicursal maze the size of the screen and shifting each pixel one spot along the solution path gives us this:


Shifting each pixel using offsets from a full-screen unicursal maze solution


Ok, that looks cool. Compare it to the random offset image above and it maintains a bit more order. Lines are a consistent width and there are no breaks or extra-thickened areas. But again it's too high-frequency to be considered a gentle warping. We need to reduce the frequency. I'll come back to this image below though.

Instead of generating a full 640x360 maze and applying it directly to the screen, generate a much smaller maze, scale it up, then apply it. This gets its own section...


Maze Scaling

The trick to scaling a (unicursal) maze in this case is that we need to maintain the property that the solution traverses the entire maze. For the mazes above, there's just one solution track so it's easy. When we scale the maze up, there are multiple independent solution tracks - each one must trace uninterrupted through to the end. I now realize that this is hard to describe in words. More pictures are needed.

If we take the unicursal maze above and represent its solution as a "flow":


A flow with one track that traverses the entire maze (starting in the top left)


Scaling that flow up arbitrarily yields this, which breaks our "must trace uninterrupted" rule at the turns:


Scaled flow with broken turns


Turns have to be handled specially during the scale:


Scaled flow with fixed turns - each track can be traced from start to finish


Scaled x5 and animated:


Each track runs through the maze independently. In the end every pixel is visited exactly once


Now we can generate a small maze, scale it up, and use that to shift the screen pixels at a lower frequency:



Small maze scaled up and applied to the screen

Hmm, ok. Every pixel is accounted for. That's good. But there are disjoints where the tracks pass by each other in the opposite direction. This ends up shifting adjoining pixels by 2 spots, which makes some lines appear to break. And with such a low resolution maze the structure is faintly evident. Luckily, we have multiple tracks and can apply a sine wave to the track offsets. Applied to the x5 animated gif above, that would mean shifting the white track by 0 spots, the green track by 1, the cyan by 0, the purple by -1 and the blue track by 0, roughly.



Tracks offset in a sine wave to reduce disjoints


Same effect, exaggerated and applied to a test grid


Obligatory Lena


Multiple mazes at differing resolutions can be stacked. Still no pixels are lost or doubled.


Back in the game, just one low-frequency maze


In motion (rounding errors in my shader are eating some pixels)


Ok! That looks good... Well, it's what I wanted and it holds together pretty well in-game. There's a nice warping which definitely makes it feel more ropey than straight low-poly shapes. Unfortunately it's a bit too distracting. Maybe it'll only be applied in the flashbacks. Maybe not. No surprise then that this rabbit hole has only dirt at the end.

BUT WAIT!

There was something cool in the middle there.


1-Bit Screen Blur

That intermediate, high-frequency maze-offset thing looks a lot like a blur - using just offsets, no blending:


If you don't think this looks cool then go back in time and unread this whole post


This 1-bit blur is something I never wanted or needed but hey let's see what we can do with it anyways.



Just Blur

Here the high-frequency maze is layered with lower-frequency mazes to add irregularity. 
This maintains an important legibility over using randomized offsets


Another spot. This can be globally faded in and out, so may be good for a transition effect or something




Depth of Field

Scaling the effect with distance


Scaling between low and high-frequency mazes based on distance



Focal Point

Scaling the effect based on world distance from a hand-placed focal point


Same thing, different angle




These hold up surprisingly well in motion. I can't prove that though b/c the animated gifs are too big.

That last one might work especially well to highlight the killer/killed in each flashback. Or not. After all this work I'm still not sure where or if it'll end up in the game. I really just wanted an excuse to post those maze-solving animated gifs.
Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #513 on: August 29, 2015, 09:10:13 AM »

IMO it is still too hi frequency (by 1 order of magnitude) for motion, and maybe the center should be preserved and move deformation toward the frame. The thing is that you need some stability when moving the camera, maybe mitigate the effect when the character is moving and resume when static?

In functionality, I assume you want to show uneasiness? a narrower fov with the same coverage would do teh same (keep the near plane in place but move the camera back if that make sense). Always remember, in game, the camera position is less important than the near plane, most people do collision on camera, that's wrong, it should be on the near plane (which allow more freedom for camera placement). Maybe that makes some sense to you ... eventually Huh?
Logged

tamat
Level 0
**



View Profile WWW
« Reply #514 on: August 30, 2015, 12:14:50 AM »

why not using some sort of World-Space warping? the only problem would be to have the meshes a little bit tesselated but in your game It wont be a problem, and you wont have problems with spatial or temporal continuity or artifacts at the edges.
Logged
TheWing
Level 1
*



View Profile WWW
« Reply #515 on: August 30, 2015, 05:08:08 AM »

Looking damn awesome, I really like the depth of field -stuff!
Logged

- - - -
marcgfx
Level 6
*


if you don't comment, who will?


View Profile WWW
« Reply #516 on: August 30, 2015, 10:35:30 AM »

interesting stuff, but I don't think a post effect would do the trick. the geometry would need to be manipulated to get a really consistent look, otherwise it might just look like your drunk? I'm sure you will know best how it looks, this is just my imagination.

the pixel blur effect is really cool with depth of field. you could use it for transitions for sure! could be really cool when the distance starts to pixelate and the pixelations gets closer and closer. then some kind of pixel craziness while switching to the other time. then slowly transition out of depth of field again.
Logged

@falkenbrew
TheWing
Level 1
*



View Profile WWW
« Reply #517 on: August 30, 2015, 02:58:39 PM »

the pixel blur effect is really cool with depth of field. you could use it for transitions for sure! could be really cool when the distance starts to pixelate and the pixelations gets closer and closer. then some kind of pixel craziness while switching to the other time. then slowly transition out of depth of field again.

Yeah, for the flashbacks, a way to display the remaining time could be to slowly blur the scene, and when it's too blurry it'll transition away. One thing I was thinking is directional blur, might make a (imo) nicer transition than an uniform blur. Maybe even motion blur? P:
Logged

- - - -
mtarini
Level 1
*


View Profile WWW
« Reply #518 on: September 09, 2015, 06:48:50 AM »

I really appreciate the novelty of this "1-bit-blur" idea, and its crafty execution, so tons of kudos, but, result-wise, I feel that this feature seriously hurts that amazingly perfect superposition of "typical visual style of old '80s Macintosh games" and "3D", which I loved so much.  Or, said differently, the original crisp tidiness of this unique and expressive rendering style.
Logged

Warballs! · spherical fierceness · 1P · free · arena fighter · challenging
dukope
Level 3
***


View Profile WWW
« Reply #519 on: September 23, 2015, 08:36:01 AM »

interesting stuff, but I don't think a post effect would do the trick. the geometry would need to be manipulated to get a really consistent look, otherwise it might just look like your drunk? I'm sure you will know best how it looks, this is just my imagination.

You're right, it definitely has a wobbly drunk feel to it. In the flashback context it feels just about right to me.


Yeah, for the flashbacks, a way to display the remaining time could be to slowly blur the scene, and when it's too blurry it'll transition away. One thing I was thinking is directional blur, might make a (imo) nicer transition than an uniform blur. Maybe even motion blur? P:

The blur isn't _quite_ smooth enough for that to work. It's more like big discrete steps. As marcfgx mentioned though I could pull the depth-of-field distance in for a smoother effect.


I really appreciate the novelty of this "1-bit-blur" idea, and its crafty execution, so tons of kudos, but, result-wise, I feel that this feature seriously hurts that amazingly perfect superposition of "typical visual style of old '80s Macintosh games" and "3D", which I loved so much.  Or, said differently, the original crisp tidiness of this unique and expressive rendering style.

Yeah I definitely understand this. I'm still mostly on the fence about it, but I did find two functionally useful places to put the blur: For depth-blurring in flashbacks so they feel markedly foreign, and for blurring objects that have appeared/moved in the current time. The best example being the doors that open after visiting a flashback - blurring them is a really nice indicator that they've inherited some property from the past (being open). That works best if it's understood that "blurry" = "past".

In other news, I've been working on another big technical task and I'll try to get a post up about it soon.
Logged

Pages: 1 ... 24 25 [26] 27 28 ... 44
Print
Jump to:  

Theme orange-lt created by panic