Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Zortch

Zortch Maxinum against The Alien Brainsuckers 路 By mutantleg

Software rendering version? (+Open source?)

A topic by CaptainMuskrat created Jun 20, 2023 Views: 406 Replies: 11
Viewing posts 1 to 4
(+1)

I really enjoyed the demo!. I was wondering if you would ever be interested in releasing a version with software rendering only and without OpenGL bloat?. It would be easier to maintain, be a lot more portable, and won't require gamers to fork out $2000 for an Ngreedia GPU.

I would also recommend open sourcing the code and/or the engine under the BSD or GPLv3 license. Ensuring that it can be preserved and improved for years to come!.

Developer(+1)

that is quite a proposal 馃

thing is you definetly don't need $2000 to run the game
you can get a $300 used laptop and even that might be an overshoot

if you are interested in how the engine works I'm happy to answer any questions
I'm really not doing anything you couldn't do better in unity or godot or whatever

(1 edit) (+1)

That is true!. However you know how most gamers are, they think they need the latest and greatest to play games. The forced dependence on GPUs has not only made gaming more expensive, but increases the burden on developers. I can play Quake 2 on my CPU at a very high framerate, I'd imagine Zortch can run similarly given its simpler graphics. There are downsides for sure, but on the other hand SW rendering is indeed more portable (as it can be written purely in a portable language such as C), less bloated and eliminates the dependency on GPUs so it will be supported almost anywhere as every computer has a CPU, while not all computers (such as embedded devices) have a GPU (or, if they have it, it may not be sufficient, supported or have the required drivers). SW rendering may also be implemented in a simpler way and it may be easier to deal with as there is, for example, no need to write shaders in a special language, manage transfer of data between CPU and GPU or deal with parallel programming. SW rendering is truly the KISS approach (Keep It Simple, Stupid).

I'm sure you could replicate the game in Unity or Godot as well, but those engines are also very bloated.  Unity especially.

Developer(+1)

don't forget that software rendering needs more cpu resources
the Quake2 software rendering is still one of the most optimised ones ever made
so I highly doubt I can make anything that comes close
it's probably easier to get some mesa software rendered opengl and use it with some linux win comptability layer or whatever
the thing is it's really really hard to get a machine nowadays that doesn't have a gpu or opengl support

what sort of embedded devices you are thinking of anyway? I mean afaik even a raspberry pi has a gpu

(+1)

Here is one software renderer that is very efficient and is completely free to use, it's even in the public domain. https://codeberg.org/drummyfish/small3dlib

I don't expect you to use it for this game, however. Maybe it's possible but perhaps it's best if a new, smaller game is made using it one day. If you'd be interested, of course. 

I know a lot of devices have some kind of GPU built in, but they still rely on drivers and a bevvy of third party libraries to get working. It's not as universal as something that is CPU-reliant, because we've had CPUs a lot longer than we've had GPUs. A game like Doom, which was initially designed exclusively for software rendering, stands the test of time because it isn't restricted by APIs and the like. Because it was eventually licensed under the GPL, and because it was coded so well with portability in mind, people did eventually add GPU-centric features. But you aren't going to play Doom via GZDoom on every device, while the stock CPU rendered version can be played on almost anything. Even a pregnancy test lol.

It's not often a case of you 'should', but because you 'can'. I think games should be a thing that you can modify however you want, and port it to newer platforms as time passes.

Developer(+1)

it looks cool indeed and I appreciate your passion
but tbh this sounds more like a software rendering fetish  and trying to find excuses for it
and I understand it completely - many people prefer the look of these games 馃
they just look more like real games - it's hard to explain (kind of how movies at 50fps feel wrong)

maybe for LAB 2 I could use one I guess - but then I would want to go all the way like
something that uses only affine texture mapping and 16bit dithering like the PS1 etc.
this is one dangerous rabbit hole 馃様

(+1)

Haha, a fetish you say?. Didn't think I'd ever hear that. Perhaps it's more of a passion for free software that drives this request, as well as a longing for the "good old days". I've lived through decades of pc gaming and know how it began, and where it ultimately ended up. Where we are at now is a dystopian nightmare. Badly programmed, proprietary games with tons of bloat and ridiculous hardware requirements that are destined to rot away and become unplayable one of these days.

It's also curiosity, as I wonder how a new game would look if it was developed with software rendering in mind. After all the CPUs we have now are many times faster than what we used to have. And  the antidote to high Nvidia prices is less reliance on their crappy products and greedy practices.

Thank you for being open to the idea.

(+1)

There is a custom version of the Quake engine, known as "Retroquad", that has a completely new software renderer. The author states that it can be used to create original games, and is GPL licensed. Check it out!. 

https://www.moddb.com/engines/retroquad/downloads/retroquad-0100-public-release

https://www.vogons.org/viewtopic.php?t=84730

Developer

it looks cool 馃憤

not sure if I could use it for anything - I couldn't make a quake map if my life depended on it 馃様

(+1)

OpenGL a bloat??? It's around since Windows 3.1 in the mid 90s and runs  on  every CPU integrated  graphics of the last 15 years. It is multiplatform compatible and much faster than software renderer. The problem is more that it's outdated and may be dropped first by Apple, I guess.

Isn't it a bit to early to ask for the engine to get open source? Maybe it has no negative effect to the sales but it's very unusual for a new game with no  team and intention like a system port.

(+1)

Yes, OpenGL adds complexity. Often unneeded, especially for games that are striving for simpler visuals. Like getting a three bedroom house for only one person. It hugely increases the complexity of the whole rendering system, we have to have a special API and drivers for communication with the GPU, and we have to upload data (3D models, textures, etc) to the GPU before we want to render them. Debugging gets a lot more difficult too.

GPUs may be faster, but they come with a cost. Both in price and on the programming side. CPUs have come so far that I can play games like Quake, Quake II and the original Half-Life with ease on my Intel. If the goal is realistic visuals with complex rendering techniques, then yes OpenGL/Vulkan is needed. But for retro-styled games?, not at all. If the goal is to keep the game code as lean and as portable as possible, then software rendering is the path forward. You can code games in pure C, and do whatever you want with it.

(+1)

Did you ever code a game with OpenGL or software renderer? Did you read the small3d lib docs? It's is never tested on Windows 

  • TODO:
    • Android
    • Windows
    • emscripten (web browser, JavaScript transpile)

It is interesting  and nice, too if you have your game structured for multiple renderer but I would always prefer OpenGL. Since 1998 with the Voodoo Banshee this is how you do it. If you manage to find that Windows industry device which has no OpenGL support then there are drivers like MESA which can software render OpenGL on every GPU, I read even Windows has software drivers for at least OpenGL 1.1.