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

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!
Hey! Check it out. Adding some postprocessing effects to tweak the look of Septaroad Voyager. What do you think? I'd love to hear some feedback.

PostProcessComparison.gif


The big games in the HD-2D (TM) style, like Octopath Traveler and Wandering Sword seem to have some kind of vignette effect around the edge of the screen. I tried doing something like that, plus some color grading with red shadows and yellow midtones. Octopath Traveler also has some kind of strange color shift within the vignette and I'm not entirely sure what's going on in there. Maybe I'll try messing with it some more to colorize the shadows inside the vignette.
 
Joined
Jan 9, 2011
Messages
2,823
Codex 2012 Codex 2013 Codex 2014 PC RPG Website of the Year, 2015 Codex 2016 - The Age of Grimoire Make the Codex Great Again! Grab the Codex by the pussy Insert Title Here RPG Wokedex Strap Yourselves In Codex Year of the Donut Codex+ Now Streaming! Enjoy the Revolution! Another revolution around the sun that is. Serpent in the Staglands Dead State Divinity: Original Sin Project: Eternity Torment: Tides of Numenera Wasteland 2 Codex USB, 2014 Shadorwun: Hong Kong Divinity: Original Sin 2 BattleTech Bubbles In Memoria A Beautifully Desolate Campaign Pillars of Eternity 2: Deadfire Pathfinder: Kingmaker Steve gets a Kidney but I don't even get a tag. My team has the sexiest and deadliest waifus you can recruit. Pathfinder: Wrath I'm very into cock and ball torture I helped put crap in Monomyth
Hey! Check it out. Adding some postprocessing effects to tweak the look of Septaroad Voyager. What do you think? I'd love to hear some feedback.

PostProcessComparison.gif


The big games in the HD-2D (TM) style, like Octopath Traveler and Wandering Sword seem to have some kind of vignette effect around the edge of the screen. I tried doing something like that, plus some color grading with red shadows and yellow midtones. Octopath Traveler also has some kind of strange color shift within the vignette and I'm not entirely sure what's going on in there. Maybe I'll try messing with it some more to colorize the shadows inside the vignette.
I never understood the appeal of vignette, motion blur, or DoF in games. On your screenshot vignette makes it look like the PC is a light source (a la Diablo and the rest of ARPGs) and the whole scene is underground. Without it, it looks like a nice and vibrant forested canyon.
 

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 never understood the appeal of vignette, motion blur, or DoF in games.

The point of vignetting is mainly to drive the focus towards the center of the image, it is an image composition artistic choice.

But it doesn't fit all games - IMO at least it makes more sense in games where you want to give a gloomy/oppressive and/or claustrophobic atmosphere. I don't think it fits the cartoony style in Nathaniel3W 's game, at least in those shots (though perhaps it might make more sense in another environment).

(note that AFAIK in photography it has more uses but unlike games, photographs are static)
 

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!
Yaar Podshipnik I'm pretty sure the reason behind a lot of video game VFX is movies. Motion blur, DOF, chromatic aberration, lens flare, grainy tone mapping, bokeh blur--these are all digital implementations of phenomena from a physical camera. And in many instances, those real-world artifacts are the result of cheap equipment. Then developers try to mimic those phenomena because we think that's what's supposed to go on a screen.

I've heard some people with your same view say things like "These effects are the result of a camera, and in a video game your character is not looking through a camera, so you wouldn't see these effects." And that has some merit. But then the publisher or artistic lead says "We want this to look like an action movie," and the developer adds artifacts from cameras to make it look like an action movie.

Gandalf that looks pretty good. I'd really like to add blur around the edges. Unfortunately, I don't know of an easy way to add blur to a screenspace location. I think UE3 only does depth-based blur. I did build an effect once that samples color from adjacent pixels and averages them, and that creates a blurry effect, but that might be too costly. I'll see if there's some other way to do it.
 
Joined
Dec 24, 2018
Messages
1,898
Gandalf that looks pretty good. I'd really like to add blur around the edges. Unfortunately, I don't know of an easy way to add blur to a screenspace location. I think UE3 only does depth-based blur. I did build an effect once that samples color from adjacent pixels and averages them, and that creates a blurry effect, but that might be too costly. I'll see if there's some other way to do it.
Here is a shadertoy example of how you might go about it.
https://www.shadertoy.com/view/Dsy3RR

Of course, ShaderToy requires a bit of adaptation to use as a regular fragment shader, but that shows the general gist of it - measure the distance from each edge of the screen take 1 minus that distance, use the greatest of those distances as your "blur factor", then apply the blur algorithm of your choice to a copy of the image you're working on (eg whatever you've been rendering so far), then use that blur factor to interpolate between the original texture and the blurred texture. There are some constants up at the top to adjust things like how much of it is blurred or how pronounced the blur is.

(Note that the blur algorithm and the line distance function here are both other people's work, not mine, so this shader falls under Creative Commons noncommercial sharealike blah blah so if you copy it make sure to rewrite / obfuscate those portions if the source code will be accessible so it isn't recognizable.)
 
Last edited:

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.
But then the publisher or artistic lead says "We want this to look like an action movie," and the developer adds artifacts from cameras to make it look like an action movie.

In my experience 100% of the time where an effect like that is added isn't due to publisher demand but because artists find it looks better.

I remember talking with an artist colleague of mine some years ago when i noticed the depth of field effect in the editor's viewport and said something along the lines of "this blur effect hides all the effort you put there" - his reaction was that it does look better with the filters and he insisted even when i mentioned that it destroys the sharpness.

Note that not all effects are added for the same reasons: e.g. the vignette mentioned above isn't added for the same reason as, say, motion blur (which tries to give the impression of motion "between frames"). Some effects are added to drive the player's focus in specific parts of the scene (vignette, depth of field in cinematics, etc), others are added to make the final image less artificial by mimicking imprecision artifacts (chromatic aberration, film noise, etc) while others are added to enhance the mood the developers are going for (color grading, saturation/contrast adjustments, etc) - and of course some are used for multiple of the above (e.g. film noise and vignette can also be used to provide a specific mood).
 

Twiglard

Poland Stronk
Patron
Staff Member
Joined
Aug 6, 2014
Messages
7,509
Location
Poland
Strap Yourselves In Codex Year of the Donut


The video isn't too good, but there are important features. The two big ones are the object inspector (designed to be extensible in the future) and collisions powered by an R-tree (that I only accidentally interact with in the video through the mouse cursor).
 
Joined
Dec 24, 2018
Messages
1,898
A while back I'd been wondering if it was possible to make Dear ImGui windows apply a blur to things behind them (sort of like Amplitude's UIs) and the earlier question about screen space blur, and the approach I went with, got me thinking about that again.

Turns out that making Dear ImGui windows act as a blur mask for a previously rendered scene is actually quite easy - instead of rendering the UI directly onto the previous forward framebuffer, instead render it to an empty (cleared to 0.0f, 0.0f, 0.0f, 0.0f) framebuffer, then take the image you used there, and the image from the forward framebuffer, and use the UI image as a mask for whether or not to apply blur to the forward texture (in this case instead of using its opacity as a mask, just check if it's not completely zero and if it is non-zero set the interpolation to 1.0). Then mix the forward and UI textures.

One shortcoming - UI windows don't blur each other out when stacked; that would require doing a separate render pass for each window (and intervening in the guts of Dear ImGui's own rendering procedure), probably not ideal. And in any case not a frequent situation; I've placed them like this only to demonstrate. But the ability to selectively have a transparent, yet blurred image, is useful in some cases, ie if there's a window that occupies most of the screen (like Victoria 2's topbar windows) and you'd prefer to blur rather than totally occlude the map content outside, or if you want a "glass window" effect on areas of UI elements. Or if you're not using a textured UI at all and just want a setup like Endless Legend uses. I do plan to make a textured UI later, but still, it's a neat little thing.

Also I temporarily broke map labels (and state IDs) as I'm working through cleaning up some older code.

ui_blur.jpg

Edit: actually, looking at it, I don't think Endless Legend does blur things behind its UI. I don't know why I remember it doing so.
 
Last edited:

LarryTyphoid

Scholar
Joined
Sep 16, 2021
Messages
2,233
I need to rewrite my game's main loop to only repeat based on user input. I thought I had already done this, but it seems I was somewhat confused on the nature of loops; in one of the functions called in the main loop, there was a point at which that particular function required user input (or so I had thought), and so the whole program would halt until the user had pressed a key. I didn't account for the fact that the function didn't actually require input; the whole game was running at a real-time framerate, and if that function didn't receive any input at any given moment, it'd just be skipped over. As a consequence of not knowing this and writing code based on the assumption that the program would proceed based only on user input, loads of textures were constantly being loaded into the renderer, cleared, then loaded again at every frame, which had predictable effects on memory usage. I crashed my computer twice before I figured out the problem. Rookie moment.

The good news is that I soon ought to be able to move on from the maze stuff and start tinkering with a combat system. I feel like that'll be a lot less technical. I made a rudimentary turn-based combat in Python for a school project and that was really easy. I'm sure it gets a lot harder as you include party members and stuff (I heard that the developers of Dragon Quest 2 had trouble with party-based combat, since they had no experience with implementing it before), but I'm pretty sure it'll be easier than laying the foundations for the graphics rendering was.
 

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!
Just tested out some smarter enemy AI today (and fixed a couple of bugs related to dungeon generation).

SpiderAttack.gif

The thing I'm pleased with here is that only one of these spiders performed its immobilizing web attack. All the others went for a standard attack. That means the enemies are now coordinating their attacks. If one of them is already applying a status that doesn't stack, the others will choose a different action.

Something else I noticed is that I might need to make the web attack a little more obvious. The spider using web was attacking directly from the side, so the web is about as small as it possibly can be from this angle. Maybe if you get attacked from ahead or behind, the spider web will show up a little better.

And it's probably time for me to go make a dedicated thread under the JRPG subforum. My progress is probably now past the dev-blog-for-other-devs stage and is ready for the advertise-to-potential-customers stage.
 

Justinian

Arcane
Developer
Joined
Oct 21, 2022
Messages
292
Just tested out some smarter enemy AI today (and fixed a couple of bugs related to dungeon generation).

SpiderAttack.gif

The thing I'm pleased with here is that only one of these spiders performed its immobilizing web attack. All the others went for a standard attack. That means the enemies are now coordinating their attacks. If one of them is already applying a status that doesn't stack, the others will choose a different action.

Something else I noticed is that I might need to make the web attack a little more obvious. The spider using web was attacking directly from the side, so the web is about as small as it possibly can be from this angle. Maybe if you get attacked from ahead or behind, the spider web will show up a little better.

And it's probably time for me to go make a dedicated thread under the JRPG subforum. My progress is probably now past the dev-blog-for-other-devs stage and is ready for the advertise-to-potential-customers stage.
How much is it gonna be?
 

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!
Justinian $25 US, but I'll put it on sale when it's first available.

I know that's at the top end of indie game prices, and that's a price for a really good game produced by an actual studio, and not just one guy. But I'm pretty confident that there's a lot of price signaling in video games. If it's priced too low, people assume the game sucks. If it's priced higher, people are more likely to buy it, more likely to put hours into it, and more likely to give it a recommendation.
 

zwanzig_zwoelf

Graverobber Foundation
Developer
Joined
Nov 21, 2015
Messages
3,178
Location
デゼニランド
But I'm pretty confident that there's a lot of price signaling in video games. If it's priced too low, people assume the game sucks. If it's priced higher, people are more likely to buy it, more likely to put hours into it, and more likely to give it a recommendation.
I had the same opinion for a long time but recently ended up experiencing quite the opposite.

Ringlorn Saga is $7.99 and I was upfront about its small scale. Despite my own experience and recommendations to not price games below $9.99 to avoid getting lost among shovelware, it ended up working in its favor -- more people were willing to try it at full price and there were few complaints that it offered too little for the asking price. Since more people bought and played it on release (partly due to aggressive marketing and luck), more people gave recommendations, and thus even more people bought the game -- it's a few steps away from becoming my best-selling game.

I think that price signaling works a bit differently these days -- it's more of an exercise to come up with the *right* price. Sure, if it's priced too low, people assume the game sucks, but there's also the polar opposite -- if it's priced too high, more people will wishlist the game and forget about it until it's 90% off, and fewer players on launch == fewer reviews == slow start == worse performance unless you're lucky.

That's the impression I get based on what I've observed over time.
 

Moaning_Clock

SmokeSomeFrogs
Developer
Joined
Feb 7, 2021
Messages
708
I wonder how much money Walter Machado has made.
A rough estimate is to take the review count times 20-50 to get the number of sales. Assuming across all of his games 4000 reviews, it would be 80000-200000 sales times what he gets per copy on average like 10 cents or something after taxes so 8k-20k? Maybe a bit on the low side.
 

RobotSquirrel

Arcane
Developer
Joined
Aug 9, 2020
Messages
2,122
Location
Adelaide
I know that's at the top end of indie game prices, and that's a price for a really good game produced by an actual studio, and not just one guy. But I'm pretty confident that there's a lot of price signaling in video games. If it's priced too low, people assume the game sucks. If it's priced higher, people are more likely to buy it, more likely to put hours into it, and more likely to give it a recommendation.
Is the community behind your game telling you that is the case though or are you doing this based on your own perceived valuation of your product. Because that perceived valuation is probably wrong unless you have the evidence to support that thinking. I would setup a poll, show your game off and get feedback on pricing point.

Come up with 3 scenarios, the Best case, the middle case and the worst case, risk assess what is most likely to happen and remember you only get to do this once so make sure you're upping your confidence in success and reducing the unknowns.
You want to price according to your break even point based on your investment into your product so far, if you can break even with the numbers you know are visible in your community then you're in a pretty good state to succeed.

As a first time launch you will need a community to vouch for the game and populate your steam page with reviews ASAP. You might want to consider early access regardless of the stigma (only 25% of EA games actually release). Demos are essential, especially for first time developers. *this is just general advice to everyone not just you. I can see your previous game went through the same general idea so you know what you're doing.

Do Not Assume invisible customers are going to just magically show up and buy your game, its rare and most of the time its because an influencer played your game, you should have a fairly good idea where your customers are coming from, gauging how many will follow through is tricky and most of that is going to come down to marketing strategy. I can't tell you how to convince an influencer to play your game, but I can tell you not to rely on it, if it happens hell yeah! but you have to assume going in that most of the marketing is happening on your end and only your end.

If you don't already have a community around your game then you need to before you release because otherwise no one will be there on launch day. Community building is equally as important as development and marketing. And as nice as it would be, don't rely just on RPGCodex, its a great starting point but its just that a starting point, you've got people here that will likely evangelise your product which is cool but you're going to need to bring in quantity as well. *again just being general with this its not specific to this game.

The fact that you're a second time developer means you've got an installed fanbase already, you should be utilising these people for feedback as they've clearly supported you in the $25 price point before, they might have some surprising feedback that challenges your assumptions.

I saw that you have an IndieDB page for your first game but not the new one? You also don't appear to have an Itch.io (what happened there? you KS talks about one), for IndieDB I'd be keeping a constant supply of content to at least get those initial front page clicks, they do help, I'm curious though why there was minimal engagement from the community there. What you've been showing here should also be on sites like those as well.

I see you also did a kickstarter on the first title, which was a very good move. Maybe you could consider that approach again? KS doesn't have to be for Development they can be promotions as well, From what I can see you've done everything right in the past more than anything you just need more eyes on the product.
 
Last edited:

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.
The advice i remember from ancient times is that if you are not sure how to price your game, it is better to err on the higher side as it is always possible to drop the price, but doing the opposite - well, it is technically possible, but nobody will like it (especially true now with modern tools/sites that track the game prices). Unless you are a AAA developer that the press will hype for free or one of the 0.001% of indie darlings that already have an established wide userbase, your game will be in a perpetual long tail anyway, so your chances of your game being noticed at release date are not going to be very different from your chances six months later (not taking into account hitting the jackpot with a very influential influencer).
 

Twiglard

Poland Stronk
Patron
Staff Member
Joined
Aug 6, 2014
Messages
7,509
Location
Poland
Strap Yourselves In Codex Year of the Donut
So I was able to render a character controllable through arrow keys. But it wasn't a real part of the game world, and because of this it drew on top of transparent scenery. This meant that I've had to start adding real entity types, and convert existing scenery into an entity subtype. I'm in the middle of refactoring it, and hopefully there won't be regressions all over the place (if anything it simplifies some of the logic).

It simplifies the code a bit because entities have constant addresses and store more information related to themselves. So there's no more need for intermediaries when updating their positions and what have you.
 

Twiglard

Poland Stronk
Patron
Staff Member
Joined
Aug 6, 2014
Messages
7,509
Location
Poland
Strap Yourselves In Codex Year of the Donut
What would you use to store the entity list in draw order? I'm using a vector right now along with binary search and it's going to be a scalability problem sometime in the future due to having to reinsert elements during the update loop on events such as entities moving or animations playing.

There are concerns such as locality of reference and malloc pressure (both kind of good with vectors).
 
Last edited:
Joined
Dec 24, 2018
Messages
1,898
What would you use to store the entity list in draw order? I'm using a vector right now along with binary search and it's going to be a scalability problem sometime in the future due to having to reinsert elements during the update loop on events such as entities moving or animations playing.

There are concerns such as locality of reference and malloc pressure (both kind of good with vectors).
For your purposes, I would consider making use of a very tiny Z axis offset on objects, applied to their model matrix, and enabling depth testing. And then the vector doesn't have to be sorted at all, the GPU will just discard fragments that would be behind other objects. Define a small "main Z constant factor" (0.000whatever001f), get the object's north-south world coordinates, multiply that value by the main Z factor, apply this to the object's model matrix, update the matrix. If the factor is small enough then this should result in objects still appearing to be on a 2D plane. If you want to be able to further set rules on cases where objects have the same north-south world position but are overlapping (so that, say, floor tiles always go on the back in cases where an object is sitting on top of them and has the exact same north-south world coordinates), you could also have a smaller "fine tuning Z constant factor" that is the main one / 100 or whatever, and you give your object a depth priority value that you multiply by that fine tuning factor, which is then added to the main Z coordinate. I haven't tested this, but I don't see why it wouldn't work.

Then you don't have to store the list in draw order.

This would also let you batch the entire scene into one draw call, if you so chose.

This is since you appear to be basing draw order off an object's position in the vector. I would, personally, be more inclined to decouple gameplay objects from render objects in the first place which makes sorting less of an issue (smaller render objects), but in the end if I wanted to control the draw order of objects in a 2D scene the above is how I would do it. Actually I'll be putting something similar into my engine eventually since there will be layers where objects on the same plane overlap, but each layer is a multidrawindirect call (aka, the GPU draws them all in whatever order it wants, which can vary from frame to frame) so they need to be made to belong on a subtly different plane (that looks like the same plane to the user) with depth testing to avoid z-fighting.
 

Twiglard

Poland Stronk
Patron
Staff Member
Joined
Aug 6, 2014
Messages
7,509
Location
Poland
Strap Yourselves In Codex Year of the Donut
For your purposes, I would consider making use of a very tiny Z axis offset on objects, applied to their model matrix, and enabling depth testing.
So you're saying I should go back to sprites with 1-bit transparency? The Z buffer can't be used otherwise.





More work. Wall height's current value is temporary.
 
Last edited:

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