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

PompiPompi

Man with forever hair
Patron
Developer
Joined
Jul 22, 2019
Messages
3,260
RPG Wokedex
Do you know any good 3D artist that are available and don't take like thousands of dollars? Heh.
I have an artist, but he is like... barely have time to work on my stuff.
He is good though, but everything takes him a lot of time. If he even finish it.
 

RPK

Scholar
Joined
Apr 25, 2017
Messages
342
Do you know any good 3D artist that are available and don't take like thousands of dollars? Heh.
I have an artist, but he is like... barely have time to work on my stuff.
He is good though, but everything takes him a lot of time. If he even finish it.
Our very own MrBuzzKill does freelance work. I'll let him PM you his rates, but it's certainly not four figures. I've had him make me a few things. The bullette and owlbear (and unfinished hogboglin) from that thread are for me. He usually is able to get to my work within a month of me telling him I have some budget ready to go. Highly recommend him both on quality of work and ease of working with him.
https://rpgcodex.net/forums/threads/anybody-need-a-good-animated-3d-model.144577/#post-8200132

I've never worked with anyone who posts here, but you could also check out reddit's game dev classified too. Not sure how it compares to Fivver, which seems to have a bit of a reputation of a crapshoot for quality when it comes to game dev asset creators.
https://www.reddit.com/r/gameDevClassifieds/
 

MalcolmR

Literate
Joined
Jul 16, 2023
Messages
48
Our very own MrBuzzKill does freelance work. I'll let him PM you his rates, but it's certainly not four figures. I've had him make me a few things. The bullette and owlbear (and unfinished hogboglin) from that thread are for me. He usually is able to get to my work within a month of me telling him I have some budget ready to go. Highly recommend him both on quality of work and ease of working with him.
https://rpgcodex.net/forums/threads/anybody-need-a-good-animated-3d-model.144577/#post-8200132
Ah! So you're the mystery man who commissioned those models. I'm really curious to see what they look like in game.
 
Joined
Oct 26, 2016
Messages
2,008
Do you know any good 3D artist that are available and don't take like thousands of dollars? Heh.
I have an artist, but he is like... barely have time to work on my stuff.
He is good though, but everything takes him a lot of time. If he even finish it.
Our very own MrBuzzKill does freelance work. I'll let him PM you his rates, but it's certainly not four figures. I've had him make me a few things. The bullette and owlbear (and unfinished hogboglin) from that thread are for me. He usually is able to get to my work within a month of me telling him I have some budget ready to go. Highly recommend him both on quality of work and ease of working with him.
https://rpgcodex.net/forums/threads/anybody-need-a-good-animated-3d-model.144577/#post-8200132

I've never worked with anyone who posts here, but you could also check out reddit's game dev classified too. Not sure how it compares to Fivver, which seems to have a bit of a reputation of a crapshoot for quality when it comes to game dev asset creators.
https://www.reddit.com/r/gameDevClassifieds/
Reddit is awful for searching, you have to scroll down endlessly and its full of dross.

MrBuzzKill looks like the real deal though.
 

RPK

Scholar
Joined
Apr 25, 2017
Messages
342
Our very own MrBuzzKill does freelance work. I'll let him PM you his rates, but it's certainly not four figures. I've had him make me a few things. The bullette and owlbear (and unfinished hogboglin) from that thread are for me. He usually is able to get to my work within a month of me telling him I have some budget ready to go. Highly recommend him both on quality of work and ease of working with him.
https://rpgcodex.net/forums/threads/anybody-need-a-good-animated-3d-model.144577/#post-8200132
Ah! So you're the mystery man who commissioned those models. I'm really curious to see what they look like in game.
Here's the only video I have of one of them in-game. It's taken from the unity editor and was just supposed to show how the animations were working, so the quality isn't that great.

 

MalcolmR

Literate
Joined
Jul 16, 2023
Messages
48
Here's the only video I have of one of them in-game. It's taken from the unity editor and was just supposed to show how the animations were working, so the quality isn't that great.
Awesome! Thanks! You're getting your money's worth by making an albino variant from the the original texture.
 

RPK

Scholar
Joined
Apr 25, 2017
Messages
342
Here's the only video I have of one of them in-game. It's taken from the unity editor and was just supposed to show how the animations were working, so the quality isn't that great.
Awesome! Thanks! You're getting your money's worth by making an albino variant from the the original texture.

I got that for free with my purchase :)
 

NancySadkov

Literate
Joined
Aug 21, 2023
Messages
17
Doing complete overhaul for The Spell of Mastery
Stuff done:
- Convert UI to ECS and make it scalable.
Implemented entire windowing system.
Supports any resolution.

Roadmap:
- Restore worldgen and worldview from the obsolete codebase/

- Convert everything to ECS.

- Increase world's spatial granularity.

- Switch to the granular time scheduling.

- Merge entire world into a seampless map, instead of worldmap travel.

- Finish the character system.

- Add fate system for every entity.
So randomness could be obtained without dice rolls.

 

Twiglard

Poland Stronk
Patron
Staff Member
Joined
Aug 6, 2014
Messages
7,301
Location
Poland
Strap Yourselves In Codex Year of the Donut
For people making an OpenGL/Direct3D9/Direct3D11 2.5D/2D renderer this can be useful, performance wise:

Uploading all geometry (such as walls, floor) using vertex buffers all the time is way slower than keeping the static parts of geometry loaded all the time. Even if it lets you make fewer, larger draw calls, it's not worth it.

Making a texture unit cache (binding to all 16-32 texture units, rather than binding to one or two for each write) is very easy. There are only so few texture units that you can implement binding with an LRU cache in about 100 lines, helping with performance a lot. It's faster to do an O(n) scan on a statically-allocated vector each time a texture id is to be requested for a draw call. It's actually faster to linearly scan a static vector with 32/64/128 texture unit elements than using a hash table or something even more fancy. struct texunit_cache { Array<texunit> texunits; size_t lru_counter = 0; }; and that's it.
 
Joined
Oct 26, 2016
Messages
2,008
I don't really know much about the brass tacks of it but CPU to GPU interfacing is supposedly slow, so uploading the vertices from CPU memory to GPU memory every drawing frame takes a performance hit. Same with uploading textures. You generally don't want to do it that often.
 

Twiglard

Poland Stronk
Patron
Staff Member
Joined
Aug 6, 2014
Messages
7,301
Location
Poland
Strap Yourselves In Codex Year of the Donut
Here's how I've made decently fast colored 2D lighting (preferably in world space like Quake 2's lightmaps) for an isometric projection game: This uses 3 draw calls per light, each for one mode, but only one (or zero) VBO upload. Doing it with one draw call (using 3D textures) is more complicated and requires more VRAM.

Put into a VBO each polygon's edge (such as sides of walls that block light) as a vec3 quad [0]. 2 vertexes must be (x, y, 0) of the edges, 2 other vertexes must be the same vertexes but as (x, y, 1) that will get projected into infinity in the shader (below). Only do that once before drawing all lights. The shader will figure out where to project into infinity for each light separately, with the same VBO contents.

Add a framebuffer without depth, but with 2 RGBA8 color attachments (temporary and accumulator).

Add a new shader with 2 color attachment outputs (for temporary and accumulator) and a few uniforms, including int mode (values 0, 1, 2).

You draw using modes in order: 1, 0, 2.

Clear both color attachments using black.
Bind the framebuffer.
Call glBlendFunci(0, GL_ONE, GL_ZERO).
Call glBlendFunci(1, GL_ONE, GL_ONE). This allows blending temporary into accumulator.
Bind the texture of temporary as a sampler and pass it as the sampler0 uniform.
Now, call glNamedFramebufferDrawBuffer(framebuffer_id, 1, &{0, GL_COLOR_ATTACHMENT0}.

Bind the texture of temporary to the sampler0 uniform (see below)

In vertex shader:

Get position as vec3. Do vec2 pos=position.xy.
If mode is 0, do [U]pos[/U] += (position - light_center.xy)*[U]position[/U].z*1e4. [1]
Then output gl_Position = vec4(pos, 0, 1).

In fragment/pixel shader:

Add a sampler2D called sampler0.

You have 2 vec4 outputs, color0 and color1.

If mode is 0, output all black (or all white if you're debugging this mode) to color0 using VBO I mentioned earlier.
If mode is 1, draw a fullscreen quad, in the shader get light range as float in pixels and compute distance between light center [2] and the pixel coordinate gl_FragCoord.xy. You can now compute the light's final color using the distance and your light parameters (center in world coordinate space, range, color, etc.). Again, output to color0.
For mode 2, Call glNamedFramebufferDrawBuffer(framebuffer_id, 1, &{1, GL_COLOR_ATTACHMENT1}), then draw a fullscreen quad.

[0] In world coordinates scaled to clip coordinate space.
[1] In clip coordinates, aka the entire screen between -1 and 1.
[2] In window-relative coordinates, aka what gl_FragCoord uses.
[3] You can do with just 1 output but it's less clear.

If you need more info like a full uniform list then drop me a note.

Or send a PM for complete code (50 lines in GLSL, about 300 in C++).
 
Last edited:

RobotSquirrel

Arcane
Developer
Joined
Aug 9, 2020
Messages
1,984
Location
Adelaide
This uses 3 draw calls per light
If all the lights are similar or exactly the same it could be better to call all the lights together in one set of 3 big calls rather than doing 3 draws for each light. You're drawing a full screen quad anyway right so if its possible to draw all the lights onto the quad at once you could therefore save on draws. Alternatively, consider blitting the lights with colour information to your light map that would eliminate the need for generating a call for one colour (plus you could have much more complex lighting)
Similarly if you need to do occlusion checks you can create a "shadowmap" of the entire scene and subtract it from your lighting on the shader (you may need an additional call for this).

It does however fall on its ass if you're doing fully dynamic lighting where you're expecting nothing to remain static - but there's a reason most games don't go full dynamic lighting these days.
 
Joined
Oct 26, 2016
Messages
2,008
For what I am doing (and I suspect all here), I have designed it in such a way that theres not really much to worry about with performance. I can draw lights or textures willy nilly and it doesn't matter. I have have 100 npcs on screen and it doesn't affect FPS.

However I see these nu-isometric games (recently posted by Infinitron), that are laggy and I wonder how they can make such a mess of it.

With a 3D game with shed loads of objects and textures I guess you have to consider it but with games that look below average and have poor performance you have to wonder.
 

PompiPompi

Man with forever hair
Patron
Developer
Joined
Jul 22, 2019
Messages
3,260
RPG Wokedex
What is your opinion of this game description?

1693239580986.png
 

RPK

Scholar
Joined
Apr 25, 2017
Messages
342
For what I am doing (and I suspect all here), I have designed it in such a way that theres not really much to worry about with performance. I can draw lights or textures willy nilly and it doesn't matter. I have have 100 npcs on screen and it doesn't affect FPS.

However I see these nu-isometric games (recently posted by Infinitron), that are laggy and I wonder how they can make such a mess of it.

With a 3D game with shed loads of objects and textures I guess you have to consider it but with games that look below average and have poor performance you have to wonder.
you hit the nail on the head with your last sentence. Sure, my code is performant, but the thing I'm struggling with is draw calls. Lots of disparate objects with their own materials since they all are parts of different asset packs and even within the same asset packs they're not always great with their materials.
 
Joined
Oct 26, 2016
Messages
2,008
For what I am doing (and I suspect all here), I have designed it in such a way that theres not really much to worry about with performance. I can draw lights or textures willy nilly and it doesn't matter. I have have 100 npcs on screen and it doesn't affect FPS.

However I see these nu-isometric games (recently posted by Infinitron), that are laggy and I wonder how they can make such a mess of it.

With a 3D game with shed loads of objects and textures I guess you have to consider it but with games that look below average and have poor performance you have to wonder.
you hit the nail on the head with your last sentence. Sure, my code is performant, but the thing I'm struggling with is draw calls. Lots of disparate objects with their own materials since they all are parts of different asset packs and even within the same asset packs they're not always great with their materials.
Thats another reason I'd never touch Unity or UE. You have little control over this kind of thing.

If I could do it all over again I'd actually go with something even more low level, like Twiglard did.
 

PompiPompi

Man with forever hair
Patron
Developer
Joined
Jul 22, 2019
Messages
3,260
RPG Wokedex
You can control it... and reduce draw calls in Unity, what are you talking about...
Just need to be more knowledgable.
you can have static objects, you can make your own instancing shaders.
It is possible.
 
Joined
Oct 26, 2016
Messages
2,008
You can control it... and reduce draw calls in Unity, what are you talking about...
Just need to be more knowledgable.
you can have static objects, you can make your own instancing shaders.
It is possible.
Anything is "possible". But it kind of defeats the point if you buy an asset to save time, and then have to heavily rewrite it...its shader in order to improve performance and/or reduce draw calls.
 

PompiPompi

Man with forever hair
Patron
Developer
Joined
Jul 22, 2019
Messages
3,260
RPG Wokedex
Wut
You don't change a shader of an asset, you use the same shader on many assets.
It's more work without Unity, trust me.
 
Joined
Oct 26, 2016
Messages
2,008
Wut
You don't change a shader of an asset, you use the same shader on many assets.
It's more work without Unity, trust me.
I think whats confusing you is you are thinking ideal case. All assets are just models that share the same pipe line, shader etc.
The reality is things get far more complicated than that.

Remember, Unity is an advertising malware, that also happens to be a game engine.
 

PompiPompi

Man with forever hair
Patron
Developer
Joined
Jul 22, 2019
Messages
3,260
RPG Wokedex
Wut
You don't change a shader of an asset, you use the same shader on many assets.
It's more work without Unity, trust me.
I think whats confusing you is you are thinking ideal case. All assets are just models that share the same pipe line, shader etc.
The reality is things get far more complicated than that.

Remember, Unity is an advertising malware, that also happens to be a game engine.
Unity is abstracting a lot of things that you would need to do anyway when you write your own engine.
Writting native?
Now you need to start dealing with all the libraries only to load different assets.
Want texture compression?
Unity already has all the code to help you choose the right compression on the fly.
You start to need to write specific code for texture compression.

I have written native apps with OpenGL and DX from scratch.
If you want to make a big 3D game.
If you don't use an engine, you will have to write your own engine anyway.
So you don't avoid using an engine.
 
Joined
Oct 26, 2016
Messages
2,008
Wut
You don't change a shader of an asset, you use the same shader on many assets.
It's more work without Unity, trust me.
I think whats confusing you is you are thinking ideal case. All assets are just models that share the same pipe line, shader etc.
The reality is things get far more complicated than that.

Remember, Unity is an advertising malware, that also happens to be a game engine.
Unity is abstracting a lot of things that you would need to do anyway when you write your own engine.
Writting native?
Now you need to start dealing with all the libraries only to load different assets.
Want texture compression?
Unity already has all the code to help you choose the right compression on the fly.
You start to need to write specific code for texture compression.

I have written native apps with OpenGL and DX from scratch.
If you want to make a big 3D game.
If you don't use an engine, you will have to write your own engine anyway.
So you don't avoid using an engine.
Actually theres plenty of libraries you can use to build an engine on top of OGL or DX. You don't *have* to write from scratch.

With Unity you are locked into an awful way of doing things. Is Unity saving any time? For a VR demo I can see why you chose it. But in my case not a chance.
 

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