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

Login with username, password and session length

 
Advanced search

1363287 Posts in 63694 Topics- by 55571 Members - Latest Member: tunitech

July 23, 2019, 08:09:00 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsYear In The Trees
Pages: 1 ... 6 7 [8] 9
Print
Author Topic: Year In The Trees  (Read 14928 times)
Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #140 on: August 16, 2018, 06:54:40 AM »

Thanks alex, moch, & litHermit!  Toast Right
Logged

Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #141 on: August 16, 2018, 06:56:35 AM »

The Stugan Post-Mortem Part 1: Life at Stugan
The Stugan Post-Mortem Part 2: Game Progress Report
The Stugan Post-Mortem Part 3: Game Progress Report Continued


The Stugan Post-Mortem Part 3: Game Progress Report Continued

And now on to the final Stugan update!

Quote
2018-07-23
Started adding some spellbooks. Fixed object generator, cursor, and a bunch of tweaks for the demo. Started making day/night duration flexible.

Alright, so adding a fireball spell to the game was supposed to be one of the exciting new pieces of content that I had planned for Stugan. I ended up pivoting a bit and had to leave this feature in a half-finished state (the items are in the game and the casting animation is 90% finished).

After much hand wringing and discussion with the other devs, I decided it would be best to spend the rest of my time at Stugan polishing the demo I already had instead of forging ahead on new content for the "proper" demo (which I'm working on now).

Honestly, I felt like shit having to make this choice. It felt like I had completely failed to engage with the actual problem I wanted to solve at Stugan, which was working on content. Despite that, I knew that I couldn't show up to the finale in Stockholm with the demo as it existed then; I was going to be meeting a publisher and there were still some fundamental problems bogging the demo down.

Even though I would continue to avoid adding new content, i knew this was the right call. For me, the second half of Stugan was marked by having to come to terms with the fact that I was going to have to make some tough choices and prioritize my time more carefully if I wanted to make this project be something more than a nights-and-weekends thing.

I made a list of the most painful hang-ups from playtesting and starting chipping away.


Some of the new inventory item art for spellbooks. Tag yourself, I'm journal.



Quote
2018-07-24
The clock UI and day/night cycle are now totally adjustable. Added brown mushroom generators to various trees and logs.

2018-07-25
Misc improvements and new AI features/fixes. Added a threat list!

2018-07-30
More AI tweaks: Added social behavior for some monsters. Also fixed some random sprite issues.

2018-08-01
Fixed some bugs with item spawning/despawning and changed those systems to use the in-game clock instead of real life seconds. More interaction icon enhancements.

This next set of changes is basically just me fixing stuff and trying to get the most out of my time. Several people had remarked that the night was too long and they were definitely right. Unfortunately, the day/night cycle was pretty hard coded, so I made it more tunable and set the night to be half as long as the day.

I also added a bunch of AI stuff I'd been putting off forever (social behavior, threat list, agro radius, etc.). Before this, the monsters were all passive until you damaged them and then they'd just chase you around forever until you killed them. There were so many things like this where I knew it would be no problem to fix, but players, who don't know that, would perceive these things as glaring problems.



Quote
2018-08-02
Ecosystem up and running (nice!), plus the usual bug fixes and tweaks.

At this point, the next most important thing was to get a proper monster spawner in the demo to add some interest. I had prototyped this system very early on and knew the idea was solid, but I had been talking about it like it was this key feature of the game this entire time and I still hadn't really implemented a finished version of it.

Ecosystems are basically monster spawners that let you define groups of monsters. The system generates new monsters based on the existing group populations. This lets a careful player control the likelihood of seeing more of a certain kind of monster by killing monsters selectively. Similarly you can also "feed" monsters certain items to cause a new monster in their group to spawn. The idea is that players hunting for certain materials can be more efficient if they pay attention instead of killing everything indiscriminately (and before you say anything yes I heard about what happened in Ultima Online  Cheesy).

The actual implementation is a bit fancier than that, but you get the idea. I actually have a number of systems like this that aren't really communicated to the player in any overt way, but if you know how they work you'll be able to min/max better. For instance, object generators like fruit trees regenerate faster if you don't pick all the fruit at once, to the point where a player who only picks one fruit at a time will actually gather fruit twice as fast as someone who picks it all in one go. While it may be possible to notice this stuff if you were really clued in, my plan is to have NPCs share this special knowledge (in addition to item rewards) when you help them.

Anyways, this was actually a really great moment for me, working on this system after my early prototype (the prototype ecosystem was actually the second thing I ever streamed). Working on this feature then and now, I could really feel the gains I've made as a programmer. I'm pretty happy with how it's turning out.



Quote
2018-08-03
Finished major revisions to scene management. Various fixes to functionality down stream from that, but still a lot more to do there.

2018-08-06
Think I fixed most of the bugs from the last commit. Fixed some other issues with item decay and switching more things to run on game ticks instead of real seconds.

2018-08-07
More bug fixes, finally done fixing coroutine and animation BS after changing how scenes are loaded.

Ugh, another rabbit hole! I really did not intend to spend a whole week on this but that's how it goes I guess. So the issue here was that I don't have serialization in the game yet*. Players would start farming, go into the cabin to rest (which triggered a scene change, unloading the previous scene), and then return to find their farm wiped. "Oh yeah, sorry, that'll be fixed later." It sucked.

The hack-y solution would be to cram everything into one scene and have a trigger zone that moves the player between the two areas...but I wanted to get asynchronous additive scene loading/unloading working at some point anyways.

The problem with additive scene loading is that your scripts need to be robust enough to handle being disabled and re-enabled any time. When things are disabled though, the animators are all reset and any coroutines are interrupted. I had to do a lot of refactoring to be able to resume certain coroutines, or to make sure others would exit gracefully. I have been refining my Unity coroutine pattern throughout development, and I actually created a little code demo/tutorial if you're curious.

One of the other devs at Stugan, Adam, had talked to me about going through a similar thing with his game so I had some idea of what was involved but this change just rippled through all sorts of game systems (e.g. what if you drop an item while changing scenes). Ultimately it was worthwhile because I ended up cleaning up a ton of old code and the async + additive loading is just so much better.

*I know! This is priority 1 after I finish my first-look demo and I have been laying the ground work as I go so it shouldn't be a total shitshow  Shrug.



Quote
2018-08-08
Finished fixing a ton of bugs, tweaked lots of demo stuff, ecosystem nearly done.

2018-08-09
Lots of content tweaks and polish for the Stugan finale in Stockholm.

2018-08-11
Last changes from Stugan, mostly polishing up the ecosystem stuff to be a bit more.

These last few commits were just me sticking in a bunch of hack-y stuff at the last minute to fake some things that I would later implement for real...as you do. One of the last things I did was switch the in-game signs from my "info text" system (usually reserved for game messages and errors) to the dialog word bubble system.

This allowed me to (inelegantly) pepper the demo with more tutorial information which was actually a huge help. Players would try stuff on their own, and when they got stuck they usually read the signs instead of asking for help.


This is the old way signs worked. Certain interactions like this one will continue to use this sytem.


Here's the new way. A bit easier to read I think, and I can cram a lot more info in this way.



And with that, I conclude my Stugan post mortem! I really struggle writing these posts (god I hate writing), so hopefully there's something interesting and useful here for you. At least, I think it was helpful for me to notice where I messed up and how I can do better moving forward.

With any luck I'll be back with more new content stuff soonish Tongue  Thanks as always for being here with me.
« Last Edit: August 16, 2018, 08:36:23 AM by Luno » Logged

Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #142 on: October 08, 2018, 09:48:01 AM »

It's been a little while since my last update. Mostly, I just wanted to pop in and share some new environment art:







While I'm here, may as well give a quick progress report:

I had to take a 2 week detour from working on my demo to put together a pitch deck and do a bunch of concept stuff. It ended up being a very useful exercise, but for those of you who have never done this before, ugh, it was *sooo* much work. I was lucky to have some great feedback from other local indies, but as a result I ended up completely revising the document 3+ times...plus there were a million little tweaks here and there.

I'm back to working on content for the demo now, but I really have no idea when it will be finished. Over the summer I thought I could finish in November, but being nights and weekends on the project is so f'ing slow and there's just a crazy amount of work left. I think if I quit my job I could finish in time for GDC.

The more I think about it, the more I believe I need to be full time on this project to make any headway. I'm just seeing all these other teams that are full time and it feels like I'm moving so much slower. I'm literally spending every available hour of free time I have and it feels like it's not enough. As of late, I've been really considering leaving work for a few months ahead of GDC to try to get things together.


I just wish I had a viral tweet or some other positive indication that leaving work might pay off. Is my content not good enough? Don't have the right friends? Little bit of both? I'm always thinking about what I could show to get people interested, but I also have to build the dang thing; It's hard finding that middle path.

I'm working on environments now, but I know the internet is much more excited about characters and combat. It's a ways out on my roadmap, but I'm hoping more folks will come around when I get to adding these AoE spells and some big swarms of small enemies to show them off on.

Anyways, thanks for reading my deepest fears - 'till next time  Wizard
Logged

Zorg
Level 9
****



View Profile
« Reply #143 on: October 08, 2018, 11:16:00 AM »

Thank you for sharing your journey! Everything i see here looks great and polished. Following. Hand Thumbs Up Right
Logged
Mochnant
Level 0
***



View Profile
« Reply #144 on: October 08, 2018, 11:57:59 AM »

Lovely as always, Luno!

You know all this, I am sure, but as for going full time, that's impossible to say with any certainty, I think.  These are tough days for indie game discoverability, but you do have a beautiful art style that I think will help a lot.  Seems to me that slow and steady part time is the safest way, but it takes longer and limits the scope a bit.  Full time is risky, puts a lot of up front costs on you (and your savings), and also raises the bar on how successful your game needs to be to be financially sustainable, but you'll be free to pursue your dream.

You've got my support either way!
Logged
Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #145 on: October 08, 2018, 12:13:39 PM »

Thank you for sharing your journey! Everything i see here looks great and polished. Following. Hand Thumbs Up Right

thanks!
Logged

Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #146 on: October 08, 2018, 12:29:15 PM »

Lovely as always, Luno!

You know all this, I am sure, but as for going full time, that's impossible to say with any certainty, I think.  These are tough days for indie game discoverability, but you do have a beautiful art style that I think will help a lot.  Seems to me that slow and steady part time is the safest way, but it takes longer and limits the scope a bit.  Full time is risky, puts a lot of up front costs on you (and your savings), and also raises the bar on how successful your game needs to be to be financially sustainable, but you'll be free to pursue your dream.

You've got my support either way!

thanks moch, and you're totally right. i was thinking about giving myself GDC as a deadline and then looking for a different job if attempts at finding some funding don't work out but, i don't know. i'm aware that i'm super hungry for this and probably engaged in a lot of magical thinking about it, so definitely trying to be pragmatic
Logged

Devilkay
Level 1
*

Hi! First game-dev experience!


View Profile
« Reply #147 on: October 08, 2018, 11:51:03 PM »

amazing light effects!
Logged

Favourite GM Game
vikepic
Level 0
***


Rendering dreams


View Profile WWW
« Reply #148 on: October 08, 2018, 11:51:17 PM »

Looks amazing!  Shocked
Logged

Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #149 on: October 17, 2018, 08:54:33 AM »

amazing light effects!


Looks amazing!  Shocked

thanks m8s  Toast Right
Logged

archgame
Level 2
**


I program architecture and build video games


View Profile WWW
« Reply #150 on: October 19, 2018, 05:45:48 AM »

I'm super bummed I didn't come across this game until now! The art is really nice (as many others have echoed) and as a novice in pixel art, I really enjoyed your early art tutorials. Additionally the atmosphere you've crafted makes me want to jump into the world.

Is there a reason you are keeping the UI black and white and in a box? This along with the magnifying glass icon and the arrow/hand cursor are breaking the fourth wall for me. The rest of the inventory UI is really nice and keeps me in the game. If you turned down the contrast and added some graphics that go along with the world you've made, it would mesh a lot better. (like a leaf instead of an arrow? a rain drop instead of a hand, they could even be tied to seasons/day/night)

signed up for the mailing list!
Logged

Mochnant
Level 0
***



View Profile
« Reply #151 on: October 19, 2018, 06:19:45 AM »

Luno:  Have you thought about a Discord channel?  I think that would be a great place to get a lot of valuable feedback from interested folks and perhaps build a following.
Logged
Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #152 on: October 20, 2018, 08:54:16 AM »

I'm super bummed I didn't come across this game until now! The art is really nice (as many others have echoed) and as a novice in pixel art, I really enjoyed your early art tutorials. Additionally the atmosphere you've crafted makes me want to jump into the world.

Is there a reason you are keeping the UI black and white and in a box? This along with the magnifying glass icon and the arrow/hand cursor are breaking the fourth wall for me. The rest of the inventory UI is really nice and keeps me in the game. If you turned down the contrast and added some graphics that go along with the world you've made, it would mesh a lot better. (like a leaf instead of an arrow? a rain drop instead of a hand, they could even be tied to seasons/day/night)

signed up for the mailing list!

thanks for the kind words and the email signup arch, that stuff really helps me!

i totally get what you're saying with some of the more practical parts of the UI, but the reasoning there is mostly to do with readability and economy of space: the interaction bubbles and word bubbles can pop up as you move around (e.g. two NPCs talking to each other).

if i wanted to stylize that UI to look like the other UI components (wooden, skeuomorphic) I'd be giving up more of my very limited screen space. i'm actually already redesigning some of my existing HUD elements to shrink their footprint further, while retaining the charm as much as possible.

the high-contrast ended up being necessary since they exist in world space (the rest of the wooden-looking UI is screen space ofc) and can appear anywhere in the environment. black and white are kind of reserved colors that I don't use in sprites for this reason.

i could use something like a raindrop as an icon, but then people would be confused about that interaction? i don't want players to be confused about what will happen when they press the interact button when they see one of these icons, and i also want them to understand what happened after they press it intuitively and not have to teach an unusual associations (e.g. hand = grab is a lot more intuitive than leaf = grab).

so in those cases it's really just a practical concern, but everywhere else i can safely get away with giving the UI some of that physical flavor I do.
Logged

Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #153 on: October 20, 2018, 08:59:42 AM »

Luno:  Have you thought about a Discord channel?  I think that would be a great place to get a lot of valuable feedback from interested folks and perhaps build a following.

ha yea! i actually set up a channel but i haven't really shared it. I just figured i'm far enough from release and my following is small enough that it would just end up as kind of a graveyard and people would lose interest

i probably don't have the bandwidth to run a discord and provide interesting activities and convos to keep people engaged since i'm sort of at my limit with the small amount of outreach i do already. maybe if left my day job or something though...i dunno, do people just want to hang out in a random discord channel? a lot of the talks i've seen about community building suggest that you kinda need to be engaging people and managing it actively

maybe when i hit some critical mass of fans they'd all keep each other entertained and i could just work on the game and pop in for occasional updates
Logged

Mochnant
Level 0
***



View Profile
« Reply #154 on: October 22, 2018, 05:30:03 AM »

ha yea! i actually set up a channel but i haven't really shared it. I just figured i'm far enough from release and my following is small enough that it would just end up as kind of a graveyard and people would lose interest

i probably don't have the bandwidth to run a discord and provide interesting activities and convos to keep people engaged since i'm sort of at my limit with the small amount of outreach i do already. maybe if left my day job or something though...i dunno, do people just want to hang out in a random discord channel? a lot of the talks i've seen about community building suggest that you kinda need to be engaging people and managing it actively

maybe when i hit some critical mass of fans they'd all keep each other entertained and i could just work on the game and pop in for occasional updates

I can't speak for everyone, but it does indeed appear that many people do enjoy hanging out in random Discord channels.  Of course, it wouldn't really be random in this case, it would be those folks interested in following along with the development.  I personally don't think it is ever too early to start building a core group of motivated people.  At some point, you will have need of truefans for things like closed alpha/beta, and more detailed feedback than one typically seems to get at TIG.

As for what bandwidth it would take from you, I think that it is entirely optional.  I lurk in some where the developer(s) are very active, answering questions and generally chatting (which you wouldn't have time for, as mentioned), but others where that is much less so, and more limited to announcements such as devlogs.  In either case, there seems to be a lot of chatter amongst the folks present, so you might also think of it as building brand representatives to help spread the word and answer questions without you.  And if/when it gets really popular, you can appoint a mod or two to keep things orderly, if needed.

Just my thoughts, of course!
Logged
Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #155 on: October 27, 2018, 08:39:55 AM »

Upgraded my color skills recently! This lil' house is where you meet a helpful NPC granny in the forthcoming alpha demo. It's based on the typical Swedish cottage as a nod to my time at Stugan.

Logged

Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #156 on: December 01, 2018, 12:17:18 AM »

Welcome back to the stage of history! I recently spent a totally unnecessary amount of time putting together this absolutely ridiculous pixel art waterfall, so I figured I ought to do a technical breakdown of how I made it.



This thing is a combination of sprites, shaders, and no less than 13 particle systems! Dare I say it, the most advanced pixel art waterfall...ever? The whole process kind of reminded me of mixing a tune, where a bunch of mostly subtle moves add up to a more impressive overall effect.

Sorry in advance for the page load time, but I wanted to get a descent-enough frame rate on these GIFs so that you could see what's going on.


Lighting



So the first thing I did was light the scene. This isn't exactly a part of the waterfall, but it makes a huge difference and it's sort of related.

I've discussed the tech for my lighting elsewhere, but most of it is accomplished via a fragment shader that draws a radial gradient and uses a grab pass to apply the gradient color with overlay blending. In this scene, I used various amounts of teal color in the radial gradients to simulate bounce light from the waterfall.

You probably know the overlay blend mode from photoshop or other apps. It's really an ingenious, simple algorithm for creating lighting effects without normal maps.

Of course, I couldn't resist adding some standard-issue god rays (also using overlay) with a bloom effect to emphasize direct sunlight from above.


Waterfall Shader

Shaders aren't just for cool 3D people, they're amazing tools for pixel art games too! Even if you're not making a "hi-bit" pixel game, you can still use shaders to automate certain animation tasks, create patterned dithers, fake lighting, and more.

Sidenote: Devs are constantly yelling about how cool shaders are, so you should already be super hungry to learn more about them if you haven't yet. Unfortunately most of the tutorials I see are very hand-wave-y and tend to assume you know certain things about computer graphics and render pipelines. In particular, one of the most powerful tools for pixel games is the stencil buffer and in Unity I've found that this is really arcane and poorly explained in the docs.

If there's enough interest, I could be convinced to write a shader primer specifically for pixel artists + Unity, just let me know in the replies.

Anyways, there are two main effects that this shader accomplishes in a single pass, but I will discuss them separately. The first is a vertical "wiggle" effect that animates every column of pixels in the waterfall sprite, alternating between up and down for each column.


You may have noticed that the shader also applies a blue gradient from the bottom up.
This is literally just outputColor.b += input.uv.y


This wiggle effect is created by animating an offset value quantized to texels. The offset is applied to the vertical component of the uv and multiplied by direction. To get the value for direction (-1 or 1) which changes every other column, it's just floor(input.uv.x * _MainTex_TexelSize.z) % 2 * 2 - 1

If you're wondering where _TexelSize comes from, it's a very useful, built-in Unity shader variable that will be magically populated with texel information for the specified texture.

You can clamp your offset UVs with saturate() so the texture doesn't wrap back around. It was also necessary to sample the texture using the original UV, and if that color had an alpha of 0, to not use the color sampled with the offset UV (in order to keep the shape of the sprite).

I came up with this wiggle effect because I wanted to create a blurry, distorted, rushing water look that would be appropriate for pixel art. As such, the typical methods you'd find in water shader tutorials that involve using noise/distortion textures, manipulating vertices, tessellation, etc. wouldn't be appropriate.

Part of my approach was to draw the rocks underneath the waterfall, and then lower the waterfall opacity in photoshop to something like 90% before I exported the flat image as a sprite. This is so a bit of those rocks behind the waterfall would be "baked" into the waterfall sprite. You can see this at the start of the GIF: the waterfall sprite is actually at 100% opacity, but you can still detect some of the rocks in there.

When I lower the opacity of the now-wiggling waterfall sprite at the end of the GIF, you can see the rock sprites underneath which are not moving. Since a low-opacity copy of those rock pixels are also wiggling in the waterfall sprite on top, it creates the illusion that the water is distorting/blurring the rocks behind it. It's kind of subtle, but I'm pleased with the results.


The next thing I did was add animated streams to the waterfall. This kind of thing is really the perfect candidate for shaders. It's the sort of animation that would be extremely tedious to do by hand, and inefficient because you'd have to create a bespoke animation of this sort for *every* other sprite like this in your game. Plus, if you aren't sure of the exact look you want, the shader lets you define and tweak parameters to very quickly try out different animations.

This kind of thing is super versatile and a huge time saver. The hours I've spent learning shaders are definitely paying huge dividends here. As a pixel artist, I absolutely recommend learning to write your own shaders for this reason...especially when you consider that visual shader-graph-style programs are deceptively complicated anyways and seem to be more 3D-centric (thus not catering to these kinds of pixel-perfect texture effects).



The basic trick here is to figure out a range of UV values that represents a stream. The lower bound of the range, or the starting position of the stream, will change over time. The upper bound is just the lower bound + the size of the stream. If this pixel's UVs falls between those bounds, then it's in the stream and we want to apply the stream color.

In the end, I took this basic idea and threw a bunch of params at it like speed, size, color, etc. You see me step through editing a number of these parameters in the GIF to arrive at the final settings. Mostly I would alter the effect a little bit, look at it, and then go "Man, it would be rad if I could like, make it fade out a bit too" and then go code up the new parameter for that.

The parameter that controls the curve of the streams is probably the most interesting bit and it's really just texelDistanceFromCenter^2 * curveAmount (and then of course, everything is quantized to the texel grid).


Particles



As I was working on this, I ended up with a ton of ideas for effects which would have been impractical to do with the shader. I implemented these as particles, and basically just started trying out ideas until I felt like I'd thrown everything against the wall and had found everything that stuck.

I'll just run through everything I ended up with as they appear in the GIF (from top to bottom).

1. At the very top, I added some very bright, nearly white particles that live for a short time and fade away to emulate sunlight catching the water at the top of the falls. These make use of Unity's lovely gravity modifier, and really add a lot of magic I think.

2. A bit lower down, all along the rocks on the cliff, I added 4 little particle systems that send out a small trickle of single-pixel particles to create the look of splashing water.

3. Along the left and right-most pixels of the waterfall, I added bright streams of pixels to simulate light catching the edge of the water. I'm sure this lighting isn't super realistic, but this is one of the most striking effects I added, and again I think it makes the waterfall look really magical.

4. Throughout the falls, I added 4 fixed-position streams of colored pixels similar to the bright particles on the edges. This just helps establish the flow of water, especially at the bottom where the shader-generated streams have faded out.

5. Similarly, I also added a single system at the top that creates some very long, and long-lived, streams across the falls that travel all the way to the bottom.

6. Finally, I created a nice bounce-y spray at the bottom, again making use of that convenient gravity modifier and some random x/y velocity.

I added some wobbly mist sprites at the bottom. These aren't particles of course, but I don't think we need a separate GIF for them! The sprites are actually created with another shader that draws a circle, quantizes to pixels, and then applies a parabolic fade out. I call the parameter for this fade out "haircut" because it originates from the top (it was originally conceived of for light-cookie sprites). In this case it's from the bottom up though, because I set scale.y = -1, a lovely property of Unity's transform component.

You might guess they're being moved with perlin noise or something, but it's really much simpler than that. They just move along some diagonal vector like ([-1, 1], [-1, 1]) out a number of pixels, and then back again in the opposite direction.

So that's everything! All told this took me a full weekend to finish. Happily, I can more or less copy-paste + tweak these effects for other types of streams moving forward (fountains, lava, etc.).
« Last Edit: December 02, 2018, 09:43:36 AM by Luno » Logged

xix
Level 5
*****


View Profile
« Reply #157 on: December 01, 2018, 09:26:55 AM »

Nice devlog, dude. You mentioned another post about your lighting? Do you think you can link it?
Logged


Get the demo itch.io
Follow @lunarsignals on twitter
Luno
Level 1
*


now comes good sailing


View Profile WWW
« Reply #158 on: December 01, 2018, 09:46:08 AM »

Nice devlog, dude. You mentioned another post about your lighting? Do you think you can link it?

Oh hmm, maybe I posted more about that on Twitter? I know I've written about it somewhere...this post more or less explains it though. The main tricks are:

- shaders that use grab pass to do overlay and color blend math with light cookie sprites
- shaders that draw various gradients  (adding noise is really important to fight banding with gradients, there's a devblog post about that here)
- light sprites that are on a separate layer in unity and on a separate camera, that receive bloom post processing from unity's default image effects (you could also just try to copy the "outer glow" layer style from photoshop with the shader that draws your light sprites to get the same effect)
- light sprites are drawn on top of a black sprite which covers the whole screen to simulate darkness, but because of the grab pass which happens before the black sprite is drawn, they "cut through" the darkness and show what's underneath (you can also just do this with stencil buffer, just write some value there in the shader that draws the light sprite, then when you draw your black darkness sprite, either don't draw it or draw it at half-opacity or something everywhere you read that value from the stencil).

a lot of this stuff is super unoptimized and came out of my naive attempts to create these effects before I learned shaders and I will eventually rework it - so yeah, basically shaders are the key to everything


Is there anything you wanted to know specifically?
Logged

litHermit
Level 0
***



View Profile
« Reply #159 on: December 01, 2018, 11:06:33 AM »

That waterfall scene is magnificent. I love taking in the environment in games, especially when it's so atmospheric as this project. Wonderful colors!

Can you guesstimate how long it took you to learn the ropes with shaders? They always seem fairy intimidating (though the various shared-graph tools do most certainly come of as deceptively complicated (as do most 3D simulation tools in my experience))
Logged
Pages: 1 ... 6 7 [8] 9
Print
Jump to:  

Theme orange-lt created by panic