Git Product home page Git Product logo

Comments (6)

cristicbz avatar cristicbz commented on May 13, 2024

I would be open to an alternative implementation of the gfx module which solely used OpenGL 2.0 (or even 1.x) features. It would be tricky to do palette/colormap lookup without shaders (plain palette lookup would be easy, but the colormap stuff makes it trickier). The only constraint I'd put on such an implementation: it should be safe code exclusively (this may mean writing a glium-like library for OpenGL 1.x and linking into that).

I think realistically, the better way to do this is using an SDL2 based software renderer. This may require further optimisations like frustum and some occluder-based culling to prevent it from being prohibitively slow (currently the renderer just draws everything relying on the stupid amount of silicon GPUs have these days).

When all is said and done, I think this would be really cool, but a lot of work. Currently my roadmap is still focused on features, but if you want to try your hand at a flag protected software renderer, I'd be happy to review and merge such a change, as well as help with any refactoring needed to decouple rendering better.

from rust-doom.

MagaTailor avatar MagaTailor commented on May 13, 2024

What's the outlook here?

from rust-doom.

cristicbz avatar cristicbz commented on May 13, 2024

Hi @petevine, sorry for being so unresponsive, and I do appreciate the interest! It's just that, unless it's a small feature or bugfix, I tend to work on this project in bursts (on holidays etc.)

I'd be open to implementing or accepting a PR for a shaderless implementation or a software renderer as mentioned in my previous comment at some point, but it's not going to happen soon.

I'd like to keep this issue open though, to allow me to reference it when some big refactor or other piece of work may lead up to the possibility.

from rust-doom.

MagaTailor avatar MagaTailor commented on May 13, 2024

I remember playing Doom on my first PC (386DX 40MHz) so I'm puzzled why a 2D game can't can't be drawn purely in SDL (regardless of the backend) similar to what rustzx is doing.

from rust-doom.

MagaTailor avatar MagaTailor commented on May 13, 2024

@cristicbz If you really think there are actionable items here I'd appreciate if you could open a more focused issue and close this one.

from rust-doom.

cristicbz avatar cristicbz commented on May 13, 2024

@petevine this project was originally designed as an exercise around the lines of: imagine you're a Rust game dev from 2016 (or 2014 at the time) told to write a renderer from these assets provided by the art department in some fixed format. I wanted to see what a modern, retained mode implementation (in a modern language) of a Doom renderer would like.

That said, I think a pluggable SDL2-only renderer should be possible and again, I'm open to it. I'd like to open some focused issues, but even that takes bandwidth I don't currently have.

I wouldn't want to close this issue as 'wontfix' when I fully agree with the intent behind the issue and hope to provide a solution eventually. I'd rather I close it a six months as "fixed by SDL2 renderer implemented in PR #999" or whatever :).

If you'd rather this issue was just closed for whatever reason (you don't want to have anything to do with this project any more), then you may close it and I won't open it again. I am grateful for your input regardless.

from rust-doom.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.