OpenRA / OpenRA/OpenRA

Renderer Improvements

Open
#13,245 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Idea/Wishlist
Dominant language
C#
Stars
17.4k
Forks
3k
Avg merge
1d 12h
Merged PRs (30d)
14

Description

As discussed on the IRC channel, these are some ideas for improving the renderer, I'm quite illiterate when it comes to programming so I don't know how much work any of these would be, as such I make no requests, but these are listed for posterity's sake.

I would love to hear feedback from the devs if any of these are achievable during the current reworking the renderer is getting. I would also be interested in learning to code at some point to implement some of these.

  1. Alpha channel
    A separate alpha channel would allow for anti-aliasing, pre-rendered motion blur (rotors, explosions), true transparency (fire, explosions, flares, glows etc), overlay animations (beach waves, wind). Perhaps this could also be utilized to somehow make terrain more interesting through a secondary terrain layer that could be essentially brushed over the base tiles. I personally believe this is has the most use out of all the points.

  2. Normals channel
    The combination of a normals, depth and alpha with dynamic lighting, which I assume is happening for TS, would allow for relighting of objects in game taking into consideration the objects' shapes, I'm not sure how computationally expensive that is however, I think that's the most ambitious point, with probably the least return for most projects, although it would be very cool to see games with explosions/muzzles that affect their surroundings and Nomad Galaxy with planets that are lit ingame by the stars.

  3. Different formats support
    Shps and Westwood PALs are a PITA to work with, the tools are limited, broken and not intuitive. I can see some modders migrating from TS/RA2 to OpenRA once TS is implemented, but it's hard to imagine anyone outside of this community doing so with the current formats.
    Whether this format is 8 or 32 bit doesn't matter much especially since we can use virtually limitless palettes . Although I'm sure some people would like to have more colors to work with.

  4. Terrain Creation
    This is a more complex point and I don't have a crystallized thought on this yet, but I would imagine there are better/easier ways to create terrain than fixed cell sizes. This was briefly touched upon in the IRC channel and sparked my interest. Any ideas would probably have to keep it friendly to the mapmakers themselves.
    This is a quite interesting approach https://ppmforums.com/viewtopic.php?t=41860
    And if it can be combined with alpha channels as "brushes"might even be more interesting, but I would love to hear if anyone has ideas.
    Another example, of something completely different is Nomad Galaxy again, while the approach above could be useful, a background image or procedural generators could be even more powerful, especially when you combine that with alpha channels and parallax scrolling for different layers of space "objects".

Warman

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the current renderer rework and how it handles channels, asset formats, and terrain creation. The issue names no files, tests, or entry points; work would be complete only after a specific improvement is scoped, implemented, and validated.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
computer-graphics, game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.