-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Status of project? #81
Comments
Obviously, GPipe as a project is dead. The library is worthy of interest, but lacks some features and has some performance issues (the generated shaders could be quite verbose due to the lack of factorization). I would say it isn’t a good candidate for your game engine, unless you are ready to spend significant time to improve on it and maybe consider rewriting it for Vulkan ? |
That is so sad. I saw the last commit was in summer 2020, and thought it's still going on actively. |
I'm doing a bit of work on it here: https://github.com/homectl/lambdaray Feel free to look around. I'm probably not going to make PRs anytime soon, but changing String to Text made the compiler 4 times faster already. I'm planning to change the Expr type from Text (previously String) to something more semantic so I can do some post-processing on the expression tree. I'm hoping to speed things up that way. #57 is bothering me a bit as well. I don't know yet how to fix that. There's a ton of abstraction in this library, and on every single byte you upload to the GPU for a texture, it does |
FWIW, I think this project is pretty cool and definitely good for your game. Have a look at http://lambdacube3d.com/ as well, though. I used it a bit and I like it better than GPipe, but I ran into some limitations that I couldn't easily fix. |
@pippijn I've looked at LambdaCube before. I thought it's inactive. But their GitHub has some repo that's updated recently. However I'm not confident if I can use it to create some basic but more modern-looking graphics than Quake?
Can you please clarify "it"? |
I'm new to it as well. Last week I knew nothing about it, but it took me only 2 days from nothing to https://youtu.be/rPi-KmVI4Yw with lambdacube. Now I'm investigating gpipe. The Ray tracer is really just a slightly involved example of something I'd like to be able to do efficiently with pure functional shaders. I think both gpipe and lambdacube are good starting points. LC is a bit higher level and easier to get started with, and reloading the shader when making changes to it takes 1 second which makes live coding and iterating on prototypes an extremely nice experience. LC does have a few issues like you need to get used to the error messages that can sometimes be quite cryptic, and sometimes the error is just a crash (lots of error handling missing in the compiler code). The lambdaray repo is mostly me working on gpipe itself. The Ray tracer can be ignored. I'm on IRC "pippijn" on freenode and irc.xinutec.net if you want to chat more. If you're looking to use gpipe, I'm happy to collaborate on making a higher level engine with you. |
Both LC and gpipe can be used to make more modern looking graphics than quake. For example, my lambdacnc project has multiple lights with shadows (needs a multi pass render pipeline, while quake is single pass). |
I'm also here with Csaba Hruska (LC author): https://gitter.im/LambdaCube-3D/Lobby |
@pippijn That demo is awesome! I'm glad to hear that LambdaCube is still active. |
I've recently built https://github.com/sorki/implicitpipe with GPipe so I'm not exactly happy about the situation. I was experimenting with LambdaCube as well but decided against it as I love the concept of shader language embedded in Haskell instead of separate compiler. Also IIRC I wasn't able to do some low level things in LC such as multiple buffers but it was almost a year ago so my memory is blurry. @pippijn - love your demo/project, looks like we are doing similar stuff, I'm hacking on
I've also ported a bunch of 2D UI drawing primitives from I'm on IRC as srk (#distrap, #ImplicitCAD, #haskell @freenode). |
I'm surveying tools that can be useful for making a modern 3D Haskell game engine, and came across GPipe. I'd like to ask:
The text was updated successfully, but these errors were encountered: