Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Vapourware Codexian Game Development Thread

Joined
Jan 14, 2018
Messages
50,754
Codex Year of the Donut
Why isn't anyone doing render() and update() in parallel through triple buffering? For Fallout-like games, there are very few kinds of entities (critter, floor, wall, roof, scenery, bullet, light, etc.) and isolating the parts that are needed for rendering isn't too difficult. Then it can run two threads in parallel:

update loop:
- process input
- do entities
- copy render state to shared buffer

render loop:
- get render state from shared buffer
- push triangles

Then both loops can individually take 15 ms and still push 60 Hz to the display.
they do, but there's also a lot of synchronization that is required to happen --both ways, a lot of things requiring reading back from the GPU, it's not merely telling it what to render -- , and GPU<->CPU synchronization is (relatively) very slow so the win is still there but not as big as it would seem at first.
some examples of things that require reading back from the GPU include occlusion queries and scene picking, I don't think too many -- if any -- techniques rely upon transform feedback nowadays, probably due to how much of a bottleneck synchronization points became.


UE5 is source-available, get access to it and read through the code, it uses a separate thread exclusively for the renderer.
 
Developer
Joined
Oct 26, 2016
Messages
2,292
What languages/engines do you know?
I've used AGS, some games who's script is akin to Javascript/LUA, ZDoom's Decorate and an obscure RPGmaker clone that I believe is halfway between gamemaker code and real code.
Messed around with AGS a bit, would definitely use for making an adventure game, no question the tool of choice for that genre.
 

Tavernking

Don't believe his lies
Developer
Joined
Sep 1, 2017
Messages
1,264
Location
Australia
Working on some dumb RPG stuff. Mockup (non-functional) implementation of a possible GUI.

Left-bottom: Stats of currently selected party member.
Middle-top: Character screen / inventory when you press I or C... tells you some relevant stats and shows your items.
Middle-middle: Character dialogue system mockup
Middle-bottom: party avatars, would represent their HP with a text label as well
Right-bottom: The only part that actually works atm, an event log to print text to the user (mostly useful for combat, tells you how much damage your last attack did, etc.)
Screen Shot 2022-10-02 at 5.05.10 pm.png
 

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,334
Insert Title Here RPG Wokedex Codex Year of the Donut Codex+ Now Streaming! Steve gets a Kidney but I don't even get a tag.
Why isn't anyone doing render() and update() in parallel through triple buffering?

Many engines do that at least since UE3 (AFAIK even Doom 3 had such a setup in code but it was disabled because of shitty OpenGL drivers of the time - IIRC it was working fine with Nvidia but crashed with ATI's drivers), however the obvious drawback is that since you are rendering at the same time as you are updating what you are about to render, the renderer is using data from the last update meaning that you are always around an update late - which introduces input lag. Not much of a problem with gamepad controls, especially for third person games (i.e. the bread and butter of UE3) but it can be a bit noticeable with KB+M in first person games (by itself is only minimally noticeable but these things tend to add up with other sources of input lag).

AFAIK nowadays the approach is considered long outdated and engines try avoid having a dedicated thread for rendering (aside from the display output of course) and instead spread all tasks, including issuing rendering commands, to all threads regardless of purpose - the ability for this was introduced with D3D11 but modern graphics APIs like Vulkan and D3D12 are basically designed around that idea.
 

Twiglard

Poland Stronk
Patron
Staff Member
Joined
Aug 6, 2014
Messages
7,510
Location
Poland
Strap Yourselves In Codex Year of the Donut
AFAIK nowadays the approach is considered long outdated and engines try avoid having a dedicated thread for rendering (aside from the display output of course) and instead spread all tasks, including issuing rendering commands, to all threads regardless of purpose - the ability for this was introduced with D3D11 but modern graphics APIs like Vulkan and D3D12 are basically designed around that idea.
Factorio uses OpenGL 3.3 core profile. Rendering the unzoomed map in 4K takes from 5 to 10 ms. And they optimize like crazy, e.g. using a complex setup of texture atlases for tiles. I don't believe the technique is anywhere near obsolete because they'd benefit heavily from it.
 
Joined
Jan 14, 2018
Messages
50,754
Codex Year of the Donut
UE4(and 5) still uses a dedicated render thread, it just does voodoo behind the scenes on supported platforms with regards to command scheduling onto a threadpool. Would the dedicated thread exist if it solely supported vulkan and d3d12? don't know.

How it works at the API level is fundamentally not too different from Nvidia's original command list extension for opengl oh well.. years ago now.
https://registry.khronos.org/OpenGL/extensions/NV/NV_command_list.txt

afaik it was(and remains?) never worth it to use multiple threads for command list building in D3D11 btw, not sure if it was an API or driver issue as I don't use or develop for windows.
 
Joined
Jan 14, 2018
Messages
50,754
Codex Year of the Donut
AFAIK nowadays the approach is considered long outdated and engines try avoid having a dedicated thread for rendering (aside from the display output of course) and instead spread all tasks, including issuing rendering commands, to all threads regardless of purpose - the ability for this was introduced with D3D11 but modern graphics APIs like Vulkan and D3D12 are basically designed around that idea.
Factorio uses OpenGL 3.3 core profile. Rendering the unzoomed map in 4K takes from 5 to 10 ms. And they optimize like crazy, e.g. using a complex setup of texture atlases for tiles. I don't believe the technique is anywhere near obsolete because they'd benefit heavily from it.
helps to remember that the driver is most likely already doing what you're suggesting, opengl gave much more leeway to the driver developers(depending on what part of the API is being used, later GL + extensions comes close to a ghetto vulkan) and most of them have a separate driver thread
so if it's using older(but not OLD old) opengl calls, the driver is likely taking it and just passing it right to an internal driver thread(perhaps with some data copying) and returning

an application render thread became more important when working with e.g., mapped buffers('buffer streaming')

mesa drivers/gallium source is a good resource for studying their API implementations & drivers, open source AMD & Intel drivers are very mature nowadays

if you're on linux and using nvidia, you can set __GL_THREADED_OPTIMIZATIONS environment variable to 0 to see if(and how much) it runs slower, don't know if mesa has an equivalent
 

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,334
Insert Title Here RPG Wokedex Codex Year of the Donut Codex+ Now Streaming! Steve gets a Kidney but I don't even get a tag.
Factorio uses OpenGL 3.3 core profile. Rendering the unzoomed map in 4K takes from 5 to 10 ms. And they optimize like crazy, e.g. using a complex setup of texture atlases for tiles. I don't believe the technique is anywhere near obsolete because they'd benefit heavily from it.

I meant that it is outdated in that big fat high end AAA+ game engines tend to use a different approach nowadays, not that it doesn't apply to modern hardware. If the alternative is doing everything on a single thread, it can still be beneficial (assuming the drawbacks are not an issue for the game too).

UE4(and 5) still uses a dedicated render thread, it just does voodoo behind the scenes on supported platforms with regards to command scheduling onto a threadpool. Would the dedicated thread exist if it solely supported vulkan and d3d12? don't know.

A dedicated render thread is still "technically" needed because you need some thread to do the final frame presentation and drive the render pipeline at a high level, but aside from that it can farm out everything else to a job scheduling system. A recent-ish approach to job scheduling is to have threads perform jobs while they are waiting for their own jobs to finish, so the "dedicated" aspect here can really be as simple as "presentation jobs can only be handled by this thread" (a job system can have masks for jobs and job threads so that, e.g. presentation jobs always go to the same job thread, I/O jobs go to a dedicated I/O thread that does other jobs if there are no I/O jobs, etc).
 

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,334
Insert Title Here RPG Wokedex Codex Year of the Donut Codex+ Now Streaming! Steve gets a Kidney but I don't even get a tag.
I noticed something running mangohud with Little Immersive Engine:



Considering rising power prices in Europe, that'd be literally expensive lighting :-P.
 

zwanzig_zwoelf

Graverobber Foundation
Developer
Joined
Nov 21, 2015
Messages
3,178
Location
デゼニランド
Done with my new project.

It's a short Action RPG inspired by Hydlide / Ys, where wonder and the ability to put 2 and 2 together are your main guides through the game. Also includes a bonus game mode that focuses on possession mechanics.



 

Tavernking

Don't believe his lies
Developer
Joined
Sep 1, 2017
Messages
1,264
Location
Australia
Been taking gamedev seriously for over 3 years now. Quit playing videogames and watching TV shows and killed my social life. Thousands of hours poured into this and currently my profits stand at -$3000. Such is the life of an indie game dev!
 

Nathaniel3W

Rockwell Studios
Patron
Developer
Joined
Feb 5, 2015
Messages
1,305
Location
Washington, DC
Strap Yourselves In Codex Year of the Donut Codex+ Now Streaming!
Been taking gamedev seriously for over 3 years now. Quit playing videogames and watching TV shows and killed my social life. Thousands of hours poured into this and currently my profits stand at -$3000. Such is the life of an indie game dev!
Yeah, bro! Welcome to indiedev life. I left a six-figure job six years ago. Since then my income has averaged just slightly above subsistence farming.
 

J_C

One Bit Studio
Patron
Developer
Joined
Dec 28, 2010
Messages
16,947
Location
Pannonia
Project: Eternity Wasteland 2 Shadorwun: Hong Kong Divinity: Original Sin 2 Steve gets a Kidney but I don't even get a tag. Pathfinder: Wrath
Been taking gamedev seriously for over 3 years now. Quit playing videogames and watching TV shows and killed my social life. Thousands of hours poured into this and currently my profits stand at -$3000. Such is the life of an indie game dev!
After 6 years wasted on indiedev, I can safely say it doesn't worth it. :P
6 years without videogames, barely any TV and no social life and all I can show is 2000 dollar profit. Collecting empty bottles would have been more profitable.
 
Self-Ejected

Davaris

Self-Ejected
Developer
Joined
Mar 7, 2005
Messages
6,547
Location
Idiocracy
The kinds of games people like here would be hard to make money at for Indies, because there is so much competition from new devs, the classics, and players are conditioned to expect games that cost millions to make.

There's a workaholic indie I remember from the 2000s who made crappy games that didn't sell. Then he made one that sold really well, and since then he made sequels. He's sold millions of copies.

One suggestion I saw from a millionaire game dev, (if you want to make money), make a Myst clone, because it sold more games than any other in history. I would do that if I liked puzzles. I didn't get very far in Myst when I played it.

Or you can do lots of game jams until you hit on an idea people like. This guy did that, and he seems to have done well from his latest game, because he appears to be very happy. He uses something called PICO8 to jam in their community. It strictly limits what you can do, so you focus on the design. I haven't used it myself.

 
Joined
Jan 14, 2018
Messages
50,754
Codex Year of the Donut
Market is saturated but many of the games are of low quality. And by that I don't necessarily mean they're bad, but they're simple and entirely derivative.
Just pick a new "RPG" at random on steam and it's probably some 2D roguelike metroidvania soulsborne with WoW-style gameplay cancer(loot puke itemization, %-based talent trees, etc.,) and an RPG system with the depth of a small puddle.
 

Tavernking

Don't believe his lies
Developer
Joined
Sep 1, 2017
Messages
1,264
Location
Australia
A more attainable goal I have is to make enough money to justify going down from 5 to 4 days a week at my regular job. But even that seems extremely hard.
 

Bad Sector

Arcane
Patron
Joined
Mar 25, 2012
Messages
2,334
Insert Title Here RPG Wokedex Codex Year of the Donut Codex+ Now Streaming! Steve gets a Kidney but I don't even get a tag.
Market is saturated but many of the games are of low quality. And by that I don't necessarily mean they're bad, but they're simple and entirely derivative.
Just pick a new "RPG" at random on steam and it's probably some 2D roguelike metroidvania soulsborne with WoW-style gameplay cancer(loot puke itemization, %-based talent trees, etc.,) and an RPG system with the depth of a small puddle.

And yet, when you are looking for something specific Steam either has nothing to suggest or suggests games you've finished a decade ago :-/
 

megidolaon

Kyoto Cybernetics
Developer
Joined
May 29, 2016
Messages
86
Location
Fat Trout Trailer Park
I want to make a science-fiction-themed golf game next. But my only experience with golf is just playing other golf videogames. I've never even so much as held a club or worn plaid shorts in real life.
 

Nathaniel3W

Rockwell Studios
Patron
Developer
Joined
Feb 5, 2015
Messages
1,305
Location
Washington, DC
Strap Yourselves In Codex Year of the Donut Codex+ Now Streaming!
What's cool about Hydlide. I remember watching ProJared's review about it and it gave me an impression that hydlide s*cks

Did you just censor a word there? Sucks? Did you censor the word sucks? I'm going to be charitable here and assume that since the u is next to the 8, and the 8 is also the asterisk, it's a typo. That's charitable because these millennials are the stupidest generation ever to walk the planet and they will censor every word except the words you would think should be censored. Like the traditional shit, fuck, etc. All the words you traditionally can't say on TV. But no, they write those words out. And then they censor a bunch of other random words. Like, one day I saw a millennial write k*ll. The only word I could think of that followed that pattern was kill. Some snowflake censored the word kill. I couldn't find any pattern behind the words that millennials censor. Except that maybe, someone somewhere might get triggered by that word. Like, I'm imagining some special snowflake somewhere who gets anxiety attacks every time xhe sees the word cut. Not cunt. Cut. Because like maybe xhe used to be suicidal and now has trauma related to the word cut. So out of deference to xhem we have to censor the word cut and write it as c*t. But now you see c*t and you think "what the hell does that mean?" And you have to sit there going through all the vowels to see which possibility makes the most sense in context. And then when you're like, "no can't be cat or cot, cut makes the most sense," then now you've figured out the word and xhe starts crying and hyperventilating and complaining to the counselors in the safe space. You know what triggers me? Asterisks. I have trauma relating to asterisks. All those snowflakes ought to start respecting my sensitivities and stop using all those damned asterisks.
 

ERYFKRAD

Barbarian
Patron
Joined
Sep 25, 2012
Messages
29,893
Strap Yourselves In Serpent in the Staglands Shadorwun: Hong Kong Pillars of Eternity 2: Deadfire Steve gets a Kidney but I don't even get a tag. Pathfinder: Wrath I'm very into cock and ball torture I helped put crap in Monomyth
What's cool about Hydlide. I remember watching ProJared's review about it and it gave me an impression that hydlide s*cks

Did you just censor a word there? Sucks? Did you censor the word sucks? I'm going to be charitable here and assume that since the u is next to the 8, and the 8 is also the asterisk, it's a typo. That's charitable because these millennials are the stupidest generation ever to walk the planet and they will censor every word except the words you would think should be censored. Like the traditional shit, fuck, etc. All the words you traditionally can't say on TV. But no, they write those words out. And then they censor a bunch of other random words. Like, one day I saw a millennial write k*ll. The only word I could think of that followed that pattern was kill. Some snowflake censored the word kill. I couldn't find any pattern behind the words that millennials censor. Except that maybe, someone somewhere might get triggered by that word. Like, I'm imagining some special snowflake somewhere who gets anxiety attacks every time xhe sees the word cut. Not cunt. Cut. Because like maybe xhe used to be suicidal and now has trauma related to the word cut. So out of deference to xhem we have to censor the word cut and write it as c*t. But now you see c*t and you think "what the hell does that mean?" And you have to sit there going through all the vowels to see which possibility makes the most sense in context. And then when you're like, "no can't be cat or cot, cut makes the most sense," then now you've figured out the word and xhe starts crying and hyperventilating and complaining to the counselors in the safe space. You know what triggers me? Asterisks. I have trauma relating to asterisks. All those snowflakes ought to start respecting my sensitivities and stop using all those damned asterisks.

C**l thy t*ts, *st*r*sks *r* p*rf*ctly f*ne.
 

zwanzig_zwoelf

Graverobber Foundation
Developer
Joined
Nov 21, 2015
Messages
3,178
Location
デゼニランド
What's cool about Hydlide.
It's an early example of an open-world Action RPG and it's pretty fun if you don't mind grinding like crazy and looking for a place to rest to regenerate your health in peace.

Hydlide is generally considered bad because the original came out in 1984 but only reached the West in 1989 (with minor additions/changes), two years after the first Legend of Zelda improved on its formula in many ways.

I remember watching ProJared's review about it and it gave me an impression that hydlide s*cks
6bxyka.jpg
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom