These are chat archives for bjz/gfx-rs

23rd
Jun 2014
Chip Collier
@photex
Jun 23 2014 04:18
heyo @kvark @bjz I think it's safe to say that @kvark is in a better position to talk about any of this than I am at this point.
Dzmitry Malyshau
@kvark
Jun 23 2014 13:02
@photex how are you feeling now? I'm not opposed to give a talk, but will need to catch up on the architecture, and also find what to talk about (i.e. how exactly Rust helps us to do the magic)
Dzmitry Malyshau
@kvark
Jun 23 2014 13:22

Actually, I'm not sure if this talk was even meant to be about architecture:

how we're structuring Voyager and hoping to use the most of Rust to accomplish our goals.

We can always change the title though.

Chip Collier
@photex
Jun 23 2014 17:12
@kvark yeah I hadn't actually intended to get very technical
so flowcharts maybe, and mostly explain our goals and essentially tell everyone that I'd love to hear their ideas
but, really wanted to get a simple thing running
a procedural landscape :)
and then I got really sick for like two weeks :worried:
Dzmitry Malyshau
@kvark
Jun 23 2014 17:37
@photex that sucks... worst time to get sick (don't you see, Nature? we've got some stuff to do instead of fighting you!).
According to your critera, we don't have the feature set to actually make this talk... A procedural landscape would definitely be nice, but we are not there yet. We'll need to figure out how shader parameters are handled, at least. Not to mention that your landscape generator is closed source...
Chip Collier
@photex
Jun 23 2014 17:38
ah, well it doesn't exist yet you see :)
I was going to generate a grid and offset Y using noise-rs
wasn't going to be the actual way we'd make it in the future
just wanted a sketch
Dzmitry Malyshau
@kvark
Jun 23 2014 17:39
@photex ok, that sounds pretty doable in a short time. Shader parameters then is the only question?
Chip Collier
@photex
Jun 23 2014 17:41
Let me read over gfx-rs real quick and get a sense of things. What is the biggest question regarding parameters right now?
like, to use buffers or not?
or just decide on the schema for defining them?
before we started working on this I tended to put that concern into a material concept
so you'd update a material parameter, once that material was "bound" that set the uniform values after binding the shader program
with the concept of at least a couple of "global" parameters such as time and the view matrix
Dzmitry Malyshau
@kvark
Jun 23 2014 17:48

@photex I'd really like gfx-rs to stay away from the concept of Material... It's a big topic, and however you approach it, I don't see how you can cover everyone's needs....

The big question that I mentioned is how do we implement a generic way for gfx-rs to allow clients to provide parameters for the programs they run (what I'd like to call "Program environment". UBO or not is a technical detail (and we can go straight without it for now given the time constraints for the demo).

As a straight-on solution (that doesn't require too much thinking), I can port the dictionary approach (Enviromnent is Map<String,Parameter>, where Parameter is an enumeration of supported types (int, vector, matrix, texture, etc).

@bjz @photex BTW, could you review #18? It's not that big, and I'm starting to worry that you missed it :(
Chip Collier
@photex
Jun 23 2014 17:50
I'll look at it now :)
Dzmitry Malyshau
@kvark
Jun 23 2014 17:51
@photex one of the problems with the material concept at this stage is that it doesn't really cover the problem. For example, model transformation is not a part of the material, and it still needs to be a parameter. Hence, my vision is that materials should be built on top (whether they are a part of gfx-rs or your game, regardless) of whatever generic parameter mechanism we come up with.
Chip Collier
@photex
Jun 23 2014 17:52
yeah gfx-rs changes things a lot :)
Dzmitry Malyshau
@kvark
Jun 23 2014 17:55
@photex I'm glad you got better (seeing you alive here!) :heart_eyes:
Chip Collier
@photex
Jun 23 2014 17:55
haha thanks
I'm feeling good today
I think it's all passed
kvark @kvark happy to see the full team again!
Dzmitry Malyshau
@kvark
Jun 23 2014 18:08
Created #19 with the shader parameter discussion and ideas
Chip Collier
@photex
Jun 23 2014 18:14
getting prepped for a meeting. be back in a bit. so far #18 looks good to me.
Dzmitry Malyshau
@kvark
Jun 23 2014 18:15
@photex thanks! I've waited quite some time, can wait a bit more until you are back.
Chip Collier
@photex
Jun 23 2014 18:16
:) that's the trouble with work... they also missed me
something about paychecks and so on
have to earn them ;)
Dzmitry Malyshau
@kvark
Jun 23 2014 18:17
:moneybag: :moneybag: :moneybag:
Dzmitry Malyshau
@kvark
Jun 23 2014 19:14
@csherratt yay!
Dzmitry Malyshau
@kvark
Jun 23 2014 19:19
@csherratt current unresolved topic is shader parameters #19, please feel free to share your experience (either here or in the issue directly)
Coraline Sherratt
@removed~csherratt
Jun 23 2014 19:29
Ok, i'll look into it.
Brendan Zabarauskas
@brendanzab
Jun 23 2014 19:30
@kvark woops - seems like gitter forgot my account
@kvark haven't seen your latest replies since my last message
Dzmitry Malyshau
@kvark
Jun 23 2014 19:31
@bjz I was wondering if you abandoned us... glad to see you back ;)
Brendan Zabarauskas
@brendanzab
Jun 23 2014 19:31
@kvark I want to review your patch but I really have to focus on my work right now. Sorry!
Dzmitry Malyshau
@kvark
Jun 23 2014 19:32
np, I think @photex got this
Brendan Zabarauskas
@brendanzab
Jun 23 2014 19:32
awesome
sorry, I don't want you to think I've abandoned you on gfx
I have lots of servo work to get on top of
plus my presentation to prepare
Dzmitry Malyshau
@kvark
Jun 23 2014 19:34
@bjz cool! Looking forward to watch you kicking ass at the meetup ;)
Brendan Zabarauskas
@brendanzab
Jun 23 2014 19:35
:cold_sweat:
brendanzab @bjz is awful at presenting stuff
Coraline Sherratt
@removed~csherratt
Jun 23 2014 19:43
bjz, I am not either. :P
Dzmitry Malyshau
@kvark
Jun 23 2014 19:48
not saying I'm any good, but this is the task where you have to practice to get better, so you can treat the whole thing as a training lesson for yourself
Brendan Zabarauskas
@brendanzab
Jun 23 2014 19:53
yeah indeed
I am planning to get a draft presentation done tonight then present to some people at work tomorrow
as a trial run
@csherratt are you gonna talk about snowmew on thurs too?
Dzmitry Malyshau
@kvark
Jun 23 2014 20:12
@photex Thanks for your comments! Please merge when you are satisfied with my response ;)
kvark @kvark would love to hear about snowmew
Dzmitry Malyshau
@kvark
Jun 23 2014 20:25

I think that as it stands now gfx-rs is not quite satisfying the first of its goals:

Simple, lightweight implementation

Brendan Zabarauskas
@brendanzab
Jun 23 2014 21:00
Feel free to revise the goals too - they were written a while ago.
Coraline Sherratt
@removed~csherratt
Jun 23 2014 21:04
bjz, It will mostly be on the oculus rift bindings. But I think I will talk about about the engine.
I was thinking for the uniform support in #19 it would be interesting if you treated them like a uniform buffer. The use can use a macro to build a structure that binds the shader parameters to a POD structure. The POD structure implements a trait that allows it to throw up its content into a GLSL shader when the graphics pipeline requires it.
Dzmitry Malyshau
@kvark
Jun 23 2014 21:17
@csherratt interesting! would that require all parameters to be enclosed into UBOs?
Coraline Sherratt
@removed~csherratt
Jun 23 2014 21:27
I think it can be made to work with or without UBOs. Without a UBO it would just be given an interface to writing to the shader's uniforms, in the UBO case it could be a memory mapped uniform buffer or something similar. I wonder just how difficult it would be to cache the shader inspection using such an interface.
Dzmitry Malyshau
@kvark
Jun 23 2014 22:06
@csherratt Do you mind if I add it as a comment to the bug?
Chip Collier
@photex
Jun 23 2014 22:07
I would also like that. :)
perhaps gw's comments on IRC as well
so @kvark I'm going to ask erickt to take me off the list for the meetup. I lost too much time because of this infection and there just isn't anything substantial for me to talk about
maybe you'd like to replace me and talk about gfx a bit or something... just a thought :)
Coraline Sherratt
@removed~csherratt
Jun 23 2014 22:11
@kvark not at all
Dzmitry Malyshau
@kvark
Jun 23 2014 22:16
@photex I'm considering it, but I feel that time constraints are too harsh... I don't even know if my webcam works at home, and we've yet to get the basic landscape rendering. Thinking cold, I think we should not present anything: the architecture may (and will) change, basic landscape not rendering yet, I haven't prepared any notes, and finally the topic ("how we're structuring Voyager...") is not what I can talk about...
As a compromise, it would be nice if @bjz mentioned gfx-rs in his talk and perhaps explain a bit of how (and why) our architecture works?
Brendan Zabarauskas
@brendanzab
Jun 23 2014 22:18
Yeah I am concerned about announcing it too widely before it is baked enough - not that I am against marketing. I just don't want it to turn into vaporware. I can mention it at a high level though.
Dzmitry Malyshau
@kvark
Jun 23 2014 22:18
@bjz Sounds good to me, thanks!
Brendan Zabarauskas
@brendanzab
Jun 23 2014 22:20
Announcing things too early can kill things before they have really had a chance to germinate. I think I got too eager with my voyager stuff for instance. It's taken years to get back on the ball.
Dzmitry Malyshau
@kvark
Jun 23 2014 22:21
you announced voyagers years ago?
@bjz who is gw on github?
Brendan Zabarauskas
@brendanzab
Jun 23 2014 22:25
Glenn Watson
Dzmitry Malyshau
@kvark
Jun 23 2014 22:26
thanks!
Brendan Zabarauskas
@brendanzab
Jun 23 2014 22:27
based out of Brisbane
used to have a few big game companies out of there, before lots of them shut down :(
brendanzab @bjz grew up in Brisbane
Coraline Sherratt
@removed~csherratt
Jun 23 2014 22:28
Has anyone played with the concepts found in http://www.slideshare.net/CassEveritt/approaching-zero-driver-overhead lecture?
Chip Collier
@photex
Jun 23 2014 22:28
@csherratt it's been my guiding workbook
lol
but it's mostly related to interfaces available in 4.x+
Coraline Sherratt
@removed~csherratt
Jun 23 2014 22:29
Yeah, you need 4.3 to get 80% of the presentation to work.
Dzmitry Malyshau
@kvark
Jun 23 2014 22:29
I kinda dislike the fact (in @glennw proposal) that custom shader parameters are processed slower than the built-ins... I'd like them to be on-par, especially since gfx-rs is not supposed to have any built-ins....
Chip Collier
@photex
Jun 23 2014 22:30
@kvark that sounded to me like a compromise for the art pipeline
which is something you have to do sometimes right?
GLSL doesn't have a preprocessor so you can't just give a nice symbolic name and have it replaced with CustomUniform01 or something
Dzmitry Malyshau
@kvark
Jun 23 2014 22:31
@photex Yeah, I understand, but that compromise is not something we can do for gfx-rs, because gfx-rs is not an engine, but rather a low-level framework.
Chip Collier
@photex
Jun 23 2014 22:31
which would be nice
Gameplay3d actually do some preprocessing of their shaders iirc
Dzmitry Malyshau
@kvark
Jun 23 2014 22:33
@photex he says that they have a mapping (var name -> custom enum constant) defined in the material, so no preprocessing is really needed
@bjz Glenn seems to be very helpful, even though he has no idea who I am and why I'm asking for help :clap:
Coraline Sherratt
@removed~csherratt
Jun 23 2014 22:45
kvark do you have plans for gfx once it is usable?
Dzmitry Malyshau
@kvark
Jun 23 2014 22:51
@csherratt Frankly, I just want to do something great... I don't even care much what exactly. I tried building my own game (several times), and the amount of work ended up being unbearable. Also, doing it alone makes a deficit of fresh ideas, and some problems are more difficult to solve... While I do have some concepts and ideas that I'd like to explore, I was thinking if @bjz and @photex would want to share their Voyager thing and perhaps give me some space it in. Do you have other ideas on gfx-rs application?
Dzmitry Malyshau
@kvark
Jun 23 2014 22:59
@csherratt If nothing comes up, I'll just continue working on Claymore
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:00
@kvark our thing is pretty weird - basically we are just confortable in working towards a 'procedural toolkit' to enable us realise my art in a generative way
brendanzab @bjz wants to explore the worlds in his head
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:01
I don't really have any goals in terms of gameplay - it's more in terms of the feeling and atmosphere I want to create
Dzmitry Malyshau
@kvark
Jun 23 2014 23:02
@bjz So your plan is 1) build gfx-rs, 2) build procedural toolkit (including noise-rs) and 3) build the game?
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:03
well, by 'procedural toolkit', I mean a 'world generator'. that can start off really crude and simple, but grow in depth and complexity
you can create really nice feelings and atmosphere from very simple components
Dzmitry Malyshau
@kvark
Jun 23 2014 23:03
@bjz Hmm that's pretty vague... Sounds a bit like you want to build your own No Man's Sky
Coraline Sherratt
@removed~csherratt
Jun 23 2014 23:04
Bjz's Sky
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:06
@kvark from my private repo:

Short term goals

  • First person camera
  • Perlin terrain
  • Simple trees of random heights, scattered around
  • Antennae
  • Houses (just simple boxes for now)
  • Monoliths
  • Fences and stone walls
  • Basic water (A simple plane intersecting the landscape that is the same colour as the sky)
  • Simple shader directional light
  • Day/Night cycle
    • Sun/Moon
    • Coloured sky - Night/Dawn/Day/Sunset
    • Star field
photex @photex thinks of it like this: " a procedural modeling and animation engine"
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:07
I'm thinking of it in terms of a virtual, interactive 'painting' at the moment
but something that could be used by more than just me
Chip Collier
@photex
Jun 23 2014 23:08
how to build a system that let's you describe and build and move interesting things in an organic way
coming from vfx I'm very influenced by Houdini
very powerful what you can build, but it's geared towards offline rendering for the most part
a sort of "node-based" or "operator-based" or "expression based" system for interactive applications is the goa
l
Dzmitry Malyshau
@kvark
Jun 23 2014 23:09
@photex "a procedural modeling and animation engine" sounds like something sitting between an actual game and gfx-rs
Chip Collier
@photex
Jun 23 2014 23:09
So I'm working towards putting that tool into the hands @bjz
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:10
@photex ^_^
Chip Collier
@photex
Jun 23 2014 23:10
@kvark that's true, this would be the kind of fundament of a game
the impetus here being: "build the tools so we can find the fun"
Dzmitry Malyshau
@kvark
Jun 23 2014 23:10
@photex and that is also a closed component?
Chip Collier
@photex
Jun 23 2014 23:10
doesn't have to be! :)
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:11
@kvark we are not sure - it would be great to figure out how to make a living off something
@kvark maybe even an 'art' store or something built on the thing. I dunno. I worry about making too many things closed though. There is not a lot out there in terms of resources for proc gen
kvark @kvark is slightly disappointed...
Chip Collier
@photex
Jun 23 2014 23:13
@kvark so far voyager is mostly a repo with a bunch of subrepos of open components
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:14
@kvark about what?
kvark @kvark expected some magic
Dzmitry Malyshau
@kvark
Jun 23 2014 23:15
@bjz @photex Ok, so let me recap: you are working on a procedural world generator engine, to later build a toolset for it, to later unleash the power of imagination into virtual worlds. Is that close enough?
Chip Collier
@photex
Jun 23 2014 23:17
@kvark if you have ideas for the procedural engine then I'm totally cool exploring that in the open and building it that way.
Houdini is node/operator based at the UI level
I don't imagine that we'd write a GUI to wire up everything
Dzmitry Malyshau
@kvark
Jun 23 2014 23:19
@photex I haven't really gone that direction so far, but that seems pretty important considering that finding a good artist (that is willing to help) is next to impossible... I'd promise to at least have a look at it :)
Chip Collier
@photex
Jun 23 2014 23:19
but that same idea of having generic functions/operators that transform data is the goal
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:19
@kvark have you seen my tumblr?
Dzmitry Malyshau
@kvark
Jun 23 2014 23:19
yep
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:21
might not interest you, I haven't posted much in a while though - lots of sketches in books I should upload sometime.... :/
Chip Collier
@photex
Jun 23 2014 23:22
@kvark No Man's Sky is way up my alley, but we really weren't going for anything at all like it.
calling Voyager procedural is about as close as you can get
photex @photex sounds like a lunatic but right now it's all about the fundamentals :)
Coraline Sherratt
@removed~csherratt
Jun 23 2014 23:23
It's a realistic goal.
photex @photex will at some point make a manic shmup like a "bullet-hell splelunky fox star invaders"
Dzmitry Malyshau
@kvark
Jun 23 2014 23:25
@bjz Your tumblr is such an artistic blog (except for the last post, perhaps), that I'd never believe you are the person behind cgmath-rs, gl-rs, glfw-rs, noise-rs, and whatever else :)
Chip Collier
@photex
Jun 23 2014 23:25
but that day is not today :)
Dzmitry Malyshau
@kvark
Jun 23 2014 23:31
Oh well. I'm very grateful to you sharing Voyager setting and ideas. I'm going to keep working on gfx-rs, will try to get the landscape example going, and will think about parameters and global architecture. I hope that you open at least the procedural engine stuff for me to look into as well. It would be interesting to also see your private game repo (I can sing NDA, if needed) to get a better idea of what you aim for.
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:32
@csherratt what is realistic?
@kvark yeah it would be awesome to have more help, I have been struggling along for a while now
it is hard to find collaborators
Dzmitry Malyshau
@kvark
Jun 23 2014 23:33
no kidding...
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:33
I mean, I have found plenty of collaborators, but it is as much about finding the right mix of personality
Coraline Sherratt
@removed~csherratt
Jun 23 2014 23:35
@bjz the scope of your project.
Dzmitry Malyshau
@kvark
Jun 23 2014 23:35
@bjz I can't promise to be a good collaborator, I can be terrible at times...
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:35
np - nobody is great always
Dzmitry Malyshau
@kvark
Jun 23 2014 23:38
@bjz ...but if you bear with me, I can do (and learn) great stuff
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:38
@csherratt yeah, I would like to flesh things out far more in an organic way, but the scope I gave is my base line - I think that would produce a really nice artwork at least
Dzmitry Malyshau
@kvark
Jun 23 2014 23:39
@bjz How are you going to place the object on terrain btw? Paint them or generate locations automatically?
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:42
I initially just a random scatter I was guessing - you can get surprisingly nice results with that
even if stuff goes under the water it still looks cool
like stuff is semi-submerged
Dzmitry Malyshau
@kvark
Jun 23 2014 23:42
@bjz Do you have a story in mind? It could serve as a good inspiration to achieve the goals..
@bjz For example, I recall Unreal-1, which had a great rich semi-open world, which you could wonder along for quite a while. But it wouldn't be the same without a goal.
Chip Collier
@photex
Jun 23 2014 23:45
@kvark there are interesting possibilities in that realm of design. scattering lore around for example.
photex @photex feels confident that something will emerge organically once the blocks start falling into place
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:47
yeah like @photex says, I would prefer the world tell the story rather than have something prescriptive
you can take advantage of people's pattern matching abilities
Dzmitry Malyshau
@kvark
Jun 23 2014 23:48
That reminds me of Fez actually
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:48
we see stuff in random things - adding some coherance can help
Chip Collier
@photex
Jun 23 2014 23:49
Fez was awesome
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:49
yeah, lore scattering is a really nice thing
kvark @kvark still needs to crack some puzzles in there....
photex @photex too
brendanzab @bjz hasn't finished fez, but got a reasonable amount over half
Chip Collier
@photex
Jun 23 2014 23:49
The ending is great @bjz
Dzmitry Malyshau
@kvark
Jun 23 2014 23:50
@bjz ok, count me interested
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:51
I would cite fez, knytt, knytt stories, studio ghibli, tolkien, john mcnaught, all as inspirations
kvark @kvark puts a note to check out knytt thing
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:52
also escher's lesser know landscape art
play knytt first, before knytt stories
Dzmitry Malyshau
@kvark
Jun 23 2014 23:53
ugh, windows only :(
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:53
I preferred knytt in terms of its 'one off' structure, but knytt stories is much more polished, art and control wise, so it is hard to go back
yeah :(
it is very worth it though
in terms of creating atmosphere from very simple elements
simple graphics, delightful controls/movement, and the ebb and flow of the environmental sounds and music
Dzmitry Malyshau
@kvark
Jun 23 2014 23:56
ok, cool. I'll have to depart now. Cheers!
Brendan Zabarauskas
@brendanzab
Jun 23 2014 23:57
o/