Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Lechtansi
Mar 23, 2004

Item Get

Elentor posted:

This is a fantastic GDC Talk about Path of Exile. Very fast, energetic, frontloaded and no bullshit. Probably the best GDC Talk I've ever seen - https://www.gdcvault.com/play/1025784/Designing-Path-of-Exile-to

In other news, there'll be likely be a few updates in the upcoming weeks because I'm developing something really cool right now and I plan to write on them. If you still follow the thread, God bless, and I hope you'll enjoy those updates when they come.

I enjoyed the talk as well. I’m curious as to why it’s the best talk you’ve seen?

Adbot
ADBOT LOVES YOU

Elentor
Dec 14, 2004

by Jeffrey of YOSPOS

klafbang posted:

C-c-combo breaker. I'm still following along and clicking most of the videos. There's just not much to discuss, aside from the demos looking cool (being demos made to look cool rather than real applications), but you shouldn't be left with the impression you're just yelling into the void.

Thanks a lot, I appreciate it.

Lechtansi posted:

I enjoyed the talk as well. I’m curious as to why it’s the best talk you’ve seen?

Chris is straightforward and he has a few qualities that I've seen in very few game devs, at least having all of those altogether.

First is how pragmatic he is. He wants to do things fast, and things that work. Even if in his heart of hearts this isn't the case, his ego seems completely detached to the reality of the business. If something doesn't work, and numbers show it doesn't work, then he will not marry the idea and discard it, or work towards hotfixing. This mix of being practical, not having a lot of hubris and listening to the players make PoE a game that has a very fast dev cycle, and very fast reactions and fixes to things that players agree to be bad. At the same time, he's smart enough not to change the core foundations that thus far work. This mix of trying new things, doing it fast, responding and respecting players fast and at the same time knowing what to keep intact is excellent so hearing him talk about the process behind it is great.
Second, the notion that he is business-oriented while not decoupling his business from the product. He's constantly thinking about money and the company, but whenever he thinks about those things and talks about the solution the solution seems to either be something non-intrusive to the player experience or with a positive correlation with the player experience. "Do we need more money? Let's make more content. Is the content not generating enough money? Maybe we need to make it better."
Essentially he intuitively feels like he should solve these problems through game design. I say intuitively because as he himself said, before this kind of thing became an issue in the game industry they felt that the way of making PoE sell was to make a good game that hooked players up and made them wanna spend on cosmetics instead of selling items and power-ups directly or having a pay-to-win game.
Half of the talk is about numbers and game design reactions to those numbers but the game design reactions are not passive. They're not "let's change these numbers a bit". They were experiments, which started small, and were not afraid to grow up in scope so they could see all the colors of the rainbow in terms of business model until they came up with something that is just downright amazing, an ARPG that is constantly reinventing itself.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
I remember when I first started learning computer science, hearing people say how software developers needed to be confident, arrogant even, because they had to believe in the designs they were making in order to be able to sell other people on those designs and get the time/resources to implement them. Now that I've been in the industry for awhile, I've seen what arrogance in design gets you: bad code that repeats the mistakes that the designer was too stubborn and narrow-minded to know to avoid. When things went wrong, they doubled down on their bad decisions, or threw patch job after patch job onto a fundamentally-unsuited foundation.

It's really hard to detach your self from your work, but it's a critical skill for anyone who makes things. Even if you work entirely on your own, even if the credits listing for the work is just your name over and over again, if you can't detach yourself from your work, you have no chance in hell of being able to make sound decisions about it.

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

It was a good talk!

One thing that should tell you something about Chris being pragmatic - I believe he's on record as preferring melee builds conceptually to spellcasters; he's a melee player at heart.

Melee has been quite bad compared to spells for a long time, and this league in particular basically buffed spellcasting even more and left melee untouched. Next league is supposed to bring melee up to par, but we'll see how they pull it off. The point is, even though the game doesn't function exactly the way he'd prefer it, it's certainly working very well for a lot of people.

Elentor
Dec 14, 2004

by Jeffrey of YOSPOS
So this might be a good time to come out and say that right now I'm doing work for a new game started by Rho (who did work for Rimworld, Starbound and Gnomoria).

I'm doing, well, Procgen. Specifically, right now I'm working on Terraria-like terrain generation.

Anticheese
Feb 13, 2008

$60,000,000 sexbot
:rodimus:

Sounds awesome! I'm sure we all can't wait to see what comes out of this.

Surprise T Rex
Apr 9, 2008

Dinosaur Gum

Elentor posted:

So this might be a good time to come out and say that right now I'm doing work for a new game started by Rho (who did work for Rimworld, Starbound and Gnomoria).

I'm doing, well, Procgen. Specifically, right now I'm working on Terraria-like terrain generation.

This sounds great. I'm sure the thread would be interested in reading anything you write on the subject - as much as you're allowed to share, anyway.

Just wanted to make a post so that you don't think nobody's reading the thread!

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

Elentor posted:

So this might be a good time to come out and say that right now I'm doing work for a new game started by Rho (who did work for Rimworld, Starbound and Gnomoria).

I'm doing, well, Procgen. Specifically, right now I'm working on Terraria-like terrain generation.

neat!

bbcisdabomb
Jan 15, 2008

SHEESH

Elentor posted:

So this might be a good time to come out and say that right now I'm doing work for a new game started by Rho (who did work for Rimworld, Starbound and Gnomoria).

I'm doing, well, Procgen. Specifically, right now I'm working on Terraria-like terrain generation.

I look forward to playing Starbound 2!

Elentor
Dec 14, 2004

by Jeffrey of YOSPOS
Hey folks, it's been a while. I should be posting something about terrain generation in the future, hopefully. Had a bit of some fun challenges working for the first time with 2D terrain generation for a terraria-like, but I'm very excited about it.

Elentor
Dec 14, 2004

by Jeffrey of YOSPOS
It's been a while. I've been working on world gen for the Igloosoft game. I finally got a nice framework going on.

Here's a nice preview of what I've been doing:





Basically, defining terrain with using only noise functions. The colors indicate different geographic accidents (or how we call it internally, sub-biomes).

Now for some nice eyecandy, I've been working on pure noise operations, and I got a nice simulation of snow coverage without actually simulating anything, again just using noise:



And here's a nice personal eye-candy I did with it. This one is not related to the game, although I'll probably use some elements of it in it:



Since it's pure noise, these are all tileable!

Boksi
Jan 11, 2016
As someone who lives in a place with plenty of snow and mountains, I'd like to say that those look pretty good! The overall shape of the mountains is a bit silly since there's no erosion smoothing things out, but the snow effect looks great!

Elentor
Dec 14, 2004

by Jeffrey of YOSPOS

Boksi posted:

As someone who lives in a place with plenty of snow and mountains, I'd like to say that those look pretty good! The overall shape of the mountains is a bit silly since there's no erosion smoothing things out, but the snow effect looks great!

Thanks, that's a great feedback to have.

Yeah, the biggest issue of terrain generation with perlin is that so much of terrain revolves around erosion. And erosion is heavy to simulate. There are ways to kinda approximate the look of erosion with noise, but they all involve derivatives and are also not lightweight. I have additional ideas on how to improve it and further approximate erosion but as far as pure noise-only goes, I'm happy with the result and I'm very happy about your feedback!

Elentor
Dec 14, 2004

by Jeffrey of YOSPOS
It's been a while.

So I've been doing a lot of ProcGen work at Igloosoft. Eonwe made a thread for our game here:
https://forums.somethingawful.com/showthread.php?threadid=3894634

I got a few chapters incoming. As soon as I'm done with my coding I'll get them up.

KillHour
Oct 28, 2007


Why do you have the penmanship of a colonial-era aristocrat?

Elentor
Dec 14, 2004

by Jeffrey of YOSPOS
I have no idea. No one in my family writes like me. It's just that turning 45 degrees and writing is how I write fastest (so it ends up looking a bit like italics). Over time I started to stylize some letters in order to distinguish some letters from others, like my lowercase T and L have reverse tails or whatever is the name of their little curves.

Monokeros deAstris
Nov 7, 2006
which means Magical Space Unicorn

Neat. I don't think I'll follow the other thread but I hope you'll keep us updated here when the game is playable!

Elentor
Dec 14, 2004

by Jeffrey of YOSPOS
Two updates.

First, I posted an in-depth look at how terrain is generated here. I'll clean it up and post as a chapter in the future.

Second, for anyone interested, I started a Choose Your Own Adventure thread. Please be sure to check it out!

Elentor
Dec 14, 2004

by Jeffrey of YOSPOS
Chapter 38 - Noise


Noise.

It is, quite frankly, mind blowing that we've talked so much about Procedural Generation and haven't delved deep into Noise yet. We talked about RNG. We even made art with poor RNG algorithms in a way that really resembles noise.



And yet, we never really had the talk. So, pray tell, what is Noise? Noise, after all, is everywhere. When I talk about Noise, I'm not playing tricks on you. I'm talking about this:



Do you remember some good old TV static? Yeah. Noise.

And now that I'm here, it's hard to start. How does one start talking about Noise? You see it everywhere. If you're playing a modern game, I guarantee you that noise is somewhere in any given scene. In fact, I could grab a screenshot of any 3D AAA game and have a field day pointing out every part of it that includes noise.

So after much consideration on how to approach this, I realized that if I don't show you outright the point of it all, it'll kinda look like all those high-school classes where we were taught something extremely abstract without knowing why. I'll use some of my own examples and link to others and give you pointers. With that said, let's skip right to the end and see what noise is, right?

Let's start with this. The cover of Filter Forge, which is a filter I did years ago, is Noise.



Very hard to express how many times I've seen this filter used. It's particularly funny when I'm seeing it used in a Gnomon Workshop Tutorial (not to sound disingenuous, those tutorials are usually many hours long and that texture is not the point. It's just amusing). Other times I'll google for it and see it used to create... smoke. Which makes sense. Unless we're talking about fluid dynamics, most smoke in games is also very basic noise.



This "mountain" I just rendered in World-Machine is noise. World-Machine, a program used by - according to their testimonials - NVIDIA, Microsoft, EA, and as far as I know it was also used by Doom 4? You can check their site for far better examples, but I wanted to show you the most basic use of noise possible.



You can see the height map baked there. This texture basically defines, as the name implies, the height of the terrain. White = taller, black = lower. Endless noise.

While this is the most basic setup we can get, this isn't even the default setting of World-Machine, but it definitely is how noise-based mountains decades ago looked. The standard setup looks like this:



What about Army Camouflage?



Noise.

These Clouds I just did?



Noise.

How do you solve these horrible bandings in 3D Lighting?



If you said "Noise", you're right. If you said "Dithering", you must be loving this post. And if you said "Blue Noise", you're probably Xerophyte.



These images come from a paper written by Mikkel Gjøl from Playdead, the creators of LIMBO.

The paper, as the title describes, is "a noisy rant" about "banding in games". And it goes on about using Blue Noise (courtesy image of momentsingraphics.de) -



- As a means of improving the quality of dark areas, which are most susceptible to banding, in their game INSIDE. A long but good presentation about their techniques can be watched here.

That means that yes, every single frame of INSIDE -



- is filled with noise. After that paper blue noise dithering became popular and was integrated in Unity, and I believe Unreal replaced their White Noise dithering with Blue Noise as well. So that means that probably every 3D game you see made in those engines, and many 2D games as well are covered with noise. According to Wikipedia:

quote:

Blue noise's power density increases 3 dB per octave with increasing frequency (density proportional to f ) over a finite frequency range.[6] In computer graphics, the term "blue noise" is sometimes used more loosely as any noise with minimal low frequency components and no concentrated spikes in energy. This can be good noise for dithering.[7] Retinal cells are arranged in a blue-noise-like pattern which yields good visual resolution.[7][8]

Huh, I didn't know the last part. Cool.

Terrain as mentioned, is basically noise. Check Terragen's gallery. See all those mountains, clouds, and what not? Noooooooooooise.



This nebula I did is noise. As are all the planets in EVE Online, and the Nebulae behind them. In fact, fun story, the nebula in EVE is done using Terragen's cloud engine.



"I get it, Elentor. You made your point. Terrain, gassy, and generally speaking rough stuff like landscapes is made with noise. Also, something about dithering."




These metal textures are noise. I have a free version of them available as a filter, although the version I used in the first two images wasn't published because of how heavy it was. It even simulates fingerprints.

What I can tell you is that even if the metal texture you're seeing is a scan, odds are that you're still seeing noise. Ever noticed how since PBR became a thing in the past 10 years or so every metal object is worn out around the edges? Edge texturing has always been a thing, but that's particularly easy nowadays, because every 3D painting program comes with a grunge map to interpolate "paint" and "metal" around the edges. And either the interpolation has a noise mask, or the grunge map itself is made from noise. I mean, check Quixel's presets:





Pretty fantastic presets if you ask me. Lots of other programs that came after followed the route. Quixel has their Megascans library which provides them with some actual photo scans, but some of the competitors skipped that altogether and just used noise in every step of the way.

I hope this helped picture a clearer image of where noise is. Noise is in the leather texture of the armor of your character. Noise is in the metal of the oversized sword they're using. Noise is in the sky. Noise is in the post-processing to reduce banding. Noise is in the particle effects of the sword enchantment. Noise is in the water shader, typically in many, many different ways.

You can, in essence, make entire 3D or 2D scenes with just noise. And some people do just that.

Elentor fucked around with this message at 10:26 on Sep 9, 2019

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

What a great post :)

Karia
Mar 27, 2013

Self-portrait, Snake on a Plane
Oil painting, c. 1482-1484
Leonardo DaVinci (1452-1591)

So how long did it take semantic satiation to set in? Don't tell me you wrote that whole thing without 'noise' starting to look like its spelled wrong.

Fantastic stuff, as always. I had a lot of fun adding Floyd-Steinberg dithering to a half-tone generator I wrote last year, it's a really neat and intuitive idea, though my application was incredibly simple. I look forward to hearing what you pros do with it.

Elentor
Dec 14, 2004

by Jeffrey of YOSPOS
This might be surprising to you, but it didn't. I'm not immune to semantic satiation but... I think I read the word noise so much in my daily life that I'm immune to this dose of it.

I mean, imagine this, but over 60 lines in a single file, and now imagine multiple files of it.

quote:

public override NoiseBase Run()
{
NoiseBase a = new AccidentalNoise.Gradient(0, 0, 0, 1);
NoiseBase b= new FractalFBM1DH(BasisTypes.SIMPLEX, InterpTypes.LINEAR, 2, 0.25);
NoiseBase c = new NoiseLambda(noise, (s, x, y, o) =>
{
float v1 = (float)s.Get(x, y);
v1 = (v1 + 1f) / 2f;
v1 = Mathf.Pow(v1, power);
return (double)v1;
});
(... a bunch of noise noise noise)
}

Elentor fucked around with this message at 02:15 on Aug 1, 2019

Elentor
Dec 14, 2004

by Jeffrey of YOSPOS
I'm gonna give this a pause. I haven't updated much lately and I think we covered good ground with the thread. If there's interest I'll write a new one in the future.

I'd like to thank everyone who's been following and reading and I hope that the thread was fun and/or insightful.

Anticheese
Feb 13, 2008

$60,000,000 sexbot
:rodimus:

It's been an amazing thread. Thank you, Elentor!

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

Anticheese posted:

It's been an amazing thread. Thank you, Elentor!

biosterous
Feb 23, 2013




Just curious, do you have a thread where' you're posting Outworlder-related gamedev stuff?

(is that a thing you're currently allowed to post about, or is it all still mostly under wraps?)

Regardless, this has been a great thread and I learned a lot :)

Elentor
Dec 14, 2004

by Jeffrey of YOSPOS

biosterous posted:

Just curious, do you have a thread where' you're posting Outworlder-related gamedev stuff?

(is that a thing you're currently allowed to post about, or is it all still mostly under wraps?)

Regardless, this has been a great thread and I learned a lot :)

No, I left to take care of health related issues. I think we had set up a nice system in place for the procgen and the lead dev working with me was exceptionally competent so they're in good hands, and I wish them the best.

Thanks a lot for the support folks.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
Thanks for the thread! I wish you all the best.

VodeAndreas
Apr 30, 2009

Thanks for the interesting insights Elentor, hope your health issues get better :(

Surprise T Rex
Apr 9, 2008

Dinosaur Gum

Elentor posted:

I'm gonna give this a pause. I haven't updated much lately and I think we covered good ground with the thread. If there's interest I'll write a new one in the future.

I'd like to thank everyone who's been following and reading and I hope that the thread was fun and/or insightful.

Yeah, this was super interesting, I always find your effort posting about games stuff really cool- whether it's game dev or just data analysis like the WoW raid log thing you did. Hope the health issues aren't too severe. :(

blindidiotgod
Jan 9, 2005



Thanks Elentor, I love peeking behind the curtain like this.

Old Grey Guy
Feb 12, 2014
Thank you for taking up this immense effort, and all the best!

bbcisdabomb
Jan 15, 2008

SHEESH
There's a lot of really cool stuff in here, thanks for taking the time to explain it all!

ynohtna
Feb 16, 2007

backwoods compatible
Illegal Hen
This is an amazing thread. Thank you, Elentor!

Grace Baiting
Jul 20, 2012

Audi famam illius;
Cucurrit quaeque
Tetigit destruens.



:yossame: to all of the above -- good luck and also thanks!

Elentor
Dec 14, 2004

by Jeffrey of YOSPOS
Again, thank you everyone for your gracious support and for sticking with the thread. I hope I can provide some more entertainment in the future. Until then, you're all the best.

Elentor
Dec 14, 2004

by Jeffrey of YOSPOS
As I open TSID, I find out there's a bug.

When I highlight a primary weapon in a ship with two primary weapon slots, the weapon preview doesn't change afterwards.

I look at the code and it's a glorious mess.


-------------------------------------------------
What sort of madwoman creates ships through chromosomes and genes?




Hi folks.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
Ah, the old "man, Past Me sure was on something when they wrote this" bit.

Welcome back! It's good to see you.

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

omg hello

Adbot
ADBOT LOVES YOU

Surprise T Rex
Apr 9, 2008

Dinosaur Gum
Well hello Elentor :woop:

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply