3 ms·
It sounds like we have similar interests; I've been working on a library for Clojure which wraps OpenGL and allows for shader programming in an idiomatic DSL.
by prospero 17y ago
It sounds like we have similar interests; I've been working on a library for Clojure which wraps OpenGL and allows for shader programming in an idiomatic DSL. It's been a lot of fun to develop, and I agree that graphics programming has a tremendous amount of incidental complexity. Trimming away the fat is a deeply satisfying experience.
I don't really have the same commercial ambitions as you, but a few things to consider w.r.t. your first option (developing a graphics engine):
* Lots of people have a vague ambition to create a game. The number of those who will spend money towards that end is much, much smaller.
* Any graphics engine worth purchasing will need to implement a lot of "boring" stuff. You can probably punt on AI, but fonts, audio, and menu systems are non-negotiable.
* It will be pretty hard to sell a graphics engine if there's not a prominent success story to go along with it. That means you'll have to create a popular-ish game, or convince someone else to.
If you can support yourself on part-time consulting, go for it. But make sure any work you do on your own time is worthwhile in and of itself, rather than with respect to some future payoff that may never happen.
- jlongster 17y agoInteresting, is your Clojure code released? You are right about the boring stuff. It's overwhelming, of course, but if I truly went down the route of developing a graphics engine, I would take the risk of investing lots of money and time for implementing both the "interesting" and the "boring" parts. Fonts, menus, etc. aren't that hard, but it just sucks to be doing it instead of the interesting stuff. Doing both would be alright. But in the end, you're right. For now, I'll probably start implementing my ideas purely by themselves. It'll be great fun doing so, and if I think any of them are worth pursuing, I can flesh it out with the boring stuff.
- prospero 17y agohttp://github.com/ztellman/penumbra/ http://github.com/ztellman/penumbra/ It's very much a work in progress, but there some interesting stuff in there. Especially of note is the GPU-driven Mandelbrot viewer (http://github.com/ztellman/penumbra/blob/master/src/example/gpgpu/mandelbrot.clj http://github.com/ztellman/penumbra/blob/master/src/example/...), where the shaders are syntactically and idiomatically indistinguishable from the rest of the code. Every graphics engine I've seen focuses on performance rather than expressiveness. With current trends in graphics cards, that seems more a matter of custom than necessity. It's an exciting time to be working on this stuff; there's huge swaths of unexplored territory out there.
- jlongster 17y agoVery interesting, thanks. I'll be thinking about this more. I was thinking of building a compiler which compiles sexprs down to something like GLSL or possibly even lower (GPU assembly).