• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Indie Game Development Discussion Thread | Of Being Professionally Poor

Status
Not open for further replies.

razu

Member
Final bonus images...I put my head down and went ahead to make super sampling general (works with 2x, 3x, 4x, who knows if it breaks at some crazy high value). There's no guarantee that I'm doing everything pixel-perfectly and haven't made mistakes though.

3x:
f_ss341jye.png


4x:
f_ss44oj7c.png


Links for comparison by opening in browser tabs and switching back and forth:
none
2x
3x
4x

But now, I really must go to bed.


Looking good man. What did my head in was when it came to rendering smaller fonts. There comes a point where fonts go from small, heavily hinted glyphs, to what they are supposed to look like, all smooth curves, etc.. Both are fine, it's just near the threshold, things can get weird!
 

razu

Member
I posted in the Touch Arcade 'upcoming' threads, and interestingly, the Mac App Store thread is by far the most read. I shall keep you updated with how the sales go per platform...
 

Limanima

Member
I posted in the Touch Arcade 'upcoming' threads, and interestingly, the Mac App Store thread is by far the most read. I shall keep you updated with how the sales go per platform...

I'm very interested in knowing about this. Thanks in advance.
 

Dynamite Shikoku

Congratulations, you really deserve it!
I posted in the Touch Arcade 'upcoming' threads, and interestingly, the Mac App Store thread is by far the most read. I shall keep you updated with how the sales go per platform...

I'll be interested to hear your results. It seems there is so much stuff being released on iOS these days. I'm afraid my game will probably just get lost amongst it all.
 

Blizzard

Banned
@Blizzard: 2xSS still looks meh.
But what about 4x or 8x? :p I'm not sure what other options I have if they are still not clean enough.
If you're using FreeType it's builtin antialiasing calculates exact coverage and should give better quality than supersampling if you have your gamma / colorspaces correct.
I am using FreeType and its anti-aliasing before I even supersample, unless I'm missing something huge. Do you have any tips how I might determine if FreeType anti-aliasing is working, and whether I have my gamma / colorspaces correct? Thanks for the responses everyone. :)
 

Popstar

Member
But what about 4x or 8x? :p I'm not sure what other options I have if they are still not clean enough.

I am using FreeType and its anti-aliasing before I even supersample, unless I'm missing something huge. Do you have any tips how I might determine if FreeType anti-aliasing is working, and whether I have my gamma / colorspaces correct? Thanks for the responses everyone. :)
It's easy enough to figure out. Render the same glyphs twice with FreeType, once black on white and once white on black. If you then invert one of the images they should match if you're rendering into a linear colorspace. If they're different then gamma correction is being applied.

Font textures that are rasterized with proper gamma will only look correct for the colours they were rendered for. So if you create a texture with all your glyphs on it that's white on black, and then try to use that to render text that is black (or any dark colour) on white (or any light colour) you'll end up with really ragged looking text. You're effectively applying the inverse of the desired gamma curve.

Supersampling the fonts and then reducing with a simple box filter will have the side-effect of forcing a "linear" result and will give you better results than bad gamma, but not as good as proper gamma.

You should probably familiarize yourself with how gamma/sRGB works before trying to understand gamma correct antialiasing. Try this article: The Importance of Being Linear or read some of the stuff on Anti-Grain for something more font specific.
 

Blizzard

Banned
It's easy enough to figure out. Render the same glyphs twice with FreeType, once black on white and once white on black. If you then invert one of the images they should match if you're rendering into a linear colorspace. If they're different then gamma correction is being applied.

Font textures that are rasterized with proper gamma will only look correct for the colours they were rendered for. So if you create a texture with all your glyphs on it that's white on black, and then try to use that to render text that is black (or any dark colour) on white (or any light colour) you'll end up with really ragged looking text. You're effectively applying the inverse of the desired gamma curve.

Supersampling the fonts and then reducing with a simple box filter will have the side-effect of forcing a "linear" result and will give you better results than bad gamma, but not as good as proper gamma.

You should probably familiarize yourself with how gamma/sRGB works before trying to understand gamma correct antialiasing. Try this article: The Importance of Being Linear or read some of the stuff on Anti-Grain for something more font specific.
On one hand, thanks, I was definitely creating the font texture sheet as gray scale and then multiplying it with colors to render generic GUI text. It could explain why text would look crappy with certain color combinations.

On the other hand, no thanks, since you may have revealed to me that preprocessing text cannot produce good text in the general case, since I was doing the box average supersampling approach, so now I will be depressed. =P Do you think the 4x at least looks reasonable? (I might use that or 8x which I think looked almost exactly the same aside from curves) Unless there's some way of applying a non-linear filter going from grayscale to a blended image...

Very good information either way. I'm scared of the rabbit hole getting deeper.
 
For those of you who have run Kickstarters, how much recognition did you have beforehand? I imagine I'll be using it sometime in the future, but short of posting projects on facebook and GAF and so on, I don't have any real method of promotion, and no following to speak of. I would love to put my graphic novel on there for example, get enough funds to take a couple months off work, buckle down full time and finish the thing, but considering barely anyone knows I exist, I don't know if it's even remotely possible. (Let's assume the project is of desirable quality.)

I've released a few mobile games, and have gotten a few good reviews for them. None of the games have really been successful financially, however. What helped out a lot at the start of my Kickstarter for Another Castle was simultaneously announcing the Wii U version of the game.

I think how high of a funding goal you're looking for might determine how much visibility you need before hand to reach it. Lots of small projects seem to come from unknown people and still succeed. You should definitely try it, Kickstarter is an awesome platform.
 

Popstar

Member
On one hand, thanks, I was definitely creating the font texture sheet as gray scale and then multiplying it with colors to render generic GUI text. It could explain why text would look crappy with certain color combinations.

On the other hand, no thanks, since you may have revealed to me that preprocessing text cannot produce good text in the general case, since I was doing the box average supersampling approach, so now I will be depressed. =P Do you think the 4x at least looks reasonable? (I might use that or 8x which I think looked almost exactly the same aside from curves) Unless there's some way of applying a non-linear filter going from grayscale to a blended image...

Very good information either way. I'm scared of the rabbit hole getting deeper.
If you don't want to deal with all the gamma stuff then just starting with a linear texture is the way to go. So either use supersampling, or get FreeType to render with antialiasing and gamma=1.0 (which should be possible I believe, I don't use FreeType though so I can't say for sure).

That said, although it can take a little bit of time to wrap your head around it, rendering with proper gamma isn't that hard nowadays. If you're using OpenGL you can store your greyscale texture as SLUMINANCE and it will be automatically converted from gamma space to linear when it's sampled in the shader. Additionally enable your framebuffer to be sRGB and that will take care of making sure the final blend is correct. Do everything else as normal. Voilà.
 

razu

Member
Chopper Mike is live!! Enjoy! :D

Click for App Store...


Click for Google Play...


It says it's compatible with the iPhone 3GS, which is worrying. I added a thing to require a front facing camera, so it should be impossible to download. If anyone has a 3GS and is willing to try downloading it, I'll be your friend forever! Will reimburse if it does let you buy it!
 

usea

Member
I imagine most of us aren't doing multicore programming, but if anyone is curious, I ran across this article today and I thought it was quite interesting.

http://www.drdobbs.com/parallel/eliminate-false-sharing/217500206

It's a reminder that even if threads on different cores access data in different locations, the might still have problems due to being on the same cache line.
Thanks for the link. Although I do a lot of concurrent programming, it's not really low-level enough for this to apply directly. But! I wasn't aware of it, and it's very interesting.
 

Feep

Banned
Chopper Mike is live!! Enjoy! :D
Early impressions:

I guess I initially felt like the proper progression was to go through all of easy, then all of medium, then all of hard, and maybe it is, but the difficulty curve on easy was maddeningly slow for me. So I switched out to the Red Squirrel and jumped on hard, and HOLY CRAP. Shades of Super Monkey Ball in some of these levels.

Controls are as tight as theoretically possible given a touch screen, but for a game this hard, I sure would love a proper controller. No fault of yours, of course.

The graphics and sound are charming, as expected. Also, great job with the UI! Love the menus.

All in all, two bucks well spent, regardless of our GAF indie connection. I'm a bit of a masochistic gamer (100% Super Meat Boy, etc.), so I'm sure I'll get plenty of enjoyment out of those later levels. = D
 

razu

Member
Early impressions:

I guess I initially felt like the proper progression was to go through all of easy, then all of medium, then all of hard, and maybe it is, but the difficulty curve on easy was maddeningly slow for me. So I switched out to the Red Squirrel and jumped on hard, and HOLY CRAP. Shades of Super Monkey Ball in some of these levels.

Controls are as tight as theoretically possible given a touch screen, but for a game this hard, I sure would love a proper controller. No fault of yours, of course.

The graphics and sound are charming, as expected. Also, great job with the UI! Love the menus.

All in all, two bucks well spent, regardless of our GAF indie connection. I'm a bit of a masochistic gamer (100% Super Meat Boy, etc.), so I'm sure I'll get plenty of enjoyment out of those later levels. = D

Yeah, the Rookie 1000 and Easy difficulty are there for kids. My 6yo daughter can do it and loves it. I can't get my head round how people enjoy it, but they do!

Normal is.. normal. In the Red Squirrel there are a few tricky bits, and the target times are not too mean..

Expert... well, you've got to beat me! I set all the times by playing, and added on a tiny bit. But you're going to need PERFECT runs, think Giant Slalom skimming-the-gates type play. Good luck with that! :D

And thanks dude! :D
 

Popstar

Member
Unless there's some way of applying a non-linear filter going from grayscale to a blended image...

Oh yeah. Since the default antialiased font rendering is probably assuming an sRGB colorspace instead of supersampling you could use a function to convert from sRGB to linear which should give the same-ish results.

Code:
unsigned char sRGB_To_Linear( unsigned char sRGB )
{
	float s = sRGB / 255.0f;
	float l = (s <= 0.04045) ? (s / 12.92f) : powf((s + 0.055f) / 1.055f, 2.4f);
	return (unsigned char)(l*255.f);
}

unsigned char Linear_To_sRGB( unsigned char linear )
{
	float l = linear / 255.0f;
	float s = (l < 0.0031308f) ? (l * 12.92f) : (1.055f * powf(l, 0.41666f) - 0.055f);
	return (unsigned char)(s*255.f);
}
 

Dynamite Shikoku

Congratulations, you really deserve it!
Chopper Mike is giving me a break from coding game state shite. The controls are really good I think (on the iPad at least. Haven't tried it on the iPod yet). I'm working my through from the easy levels in order. I'm a bit OCD like that. Good fun.
 
Chopper Mike is live!! Enjoy! :D

Click for App Store...


Click for Google Play...


It says it's compatible with the iPhone 3GS, which is worrying. I added a thing to require a front facing camera, so it should be impossible to download. If anyone has a 3GS and is willing to try downloading it, I'll be your friend forever! Will reimburse if it does let you buy it!

I just picked this up, congrats! It looks really slick on my iPad! Expert levels are pretty awesome so far :)
 
Chopper Mike is live!! Enjoy! :D

Click for App Store...


Click for Google Play...


It says it's compatible with the iPhone 3GS, which is worrying. I added a thing to require a front facing camera, so it should be impossible to download. If anyone has a 3GS and is willing to try downloading it, I'll be your friend forever! Will reimburse if it does let you buy it!
Bought this last night, you nailed the helicopter controls down really well, game looks great, runs smooth and has no jaggies on my iPhone 5, excellent stuff!
 
Chopper Mike is live!! Enjoy! :D

Click for App Store...


Click for Google Play...


It says it's compatible with the iPhone 3GS, which is worrying. I added a thing to require a front facing camera, so it should be impossible to download. If anyone has a 3GS and is willing to try downloading it, I'll be your friend forever! Will reimburse if it does let you buy it!

Will buy when I'm not death marching. A billion congrats on making it to market!
 

Blizzard

Banned
Oh yeah. Since the default antialiased font rendering is probably assuming an sRGB colorspace instead of supersampling you could use a function to convert from sRGB to linear which should give the same-ish results.

Code:
unsigned char sRGB_To_Linear( unsigned char sRGB )
{
	float s = sRGB / 255.0f;
	float l = (s <= 0.04045) ? (s / 12.92f) : powf((s + 0.055f) / 1.055f, 2.4f);
	return (unsigned char)(l*255.f);
}

unsigned char Linear_To_sRGB( unsigned char linear )
{
	float l = linear / 255.0f;
	float s = (l < 0.0031308f) ? (l * 12.92f) : (1.055f * powf(l, 0.41666f) - 0.055f);
	return (unsigned char)(s*255.f);
}
I actually started experimenting to see if I could do a GLSL post effect shader using SFML. I currently have a fragment shader that can paint the window an arbitrary color. Unfortunately, I have not yet figured out how to actually take the screen buffer and paint it to the output. Maybe I need a vertex shader for that instead?
 

razu

Member
Chopper Mike is giving me a break from coding game state shite. The controls are really good I think (on the iPad at least. Haven't tried it on the iPod yet). I'm working my through from the easy levels in order. I'm a bit OCD like that. Good fun.

I just picked this up, congrats! It looks really slick on my iPad! Expert levels are pretty awesome so far :)

Bought this last night, you nailed the helicopter controls down really well, game looks great, runs smooth and has no jaggies on my iPhone 5, excellent stuff!

great!

I can't play it on my galaxy s though

Bummer.. It says 1700+ devices are supported.. Android's a bit like that. No way to test them all :( Good excuse to get the S4 though!!


Congrats on the launch Razu!

Will buy when I'm not death marching. A billion congrats on making it to market!

Thank you, thank you, thank you!! :D

I'll tell you right now, making a game and getting comments from people who play it and like it... is the best!!

In other news, I downloaded it and set a target for Easy Difficulty, in the Red Squirrel.. Good luck! I'm going to have a beer!

I just got an email... well done Feep!! Set phasers to kickstart!! :D
 

Popstar

Member
I actually started experimenting to see if I could do a GLSL post effect shader using SFML. I currently have a fragment shader that can paint the window an arbitrary color. Unfortunately, I have not yet figured out how to actually take the screen buffer and paint it to the output. Maybe I need a vertex shader for that instead?
A post effect for what? Color correction?
 

Blizzard

Banned
A post effect for what? Color correction?
Yes, manually adjusting everything's gamma to 2.2 as an experiment.

But even if that doesn't work or isn't necessary, I'd like to know how to do a full-window/full-screen shader post-process GLSL effect (something simple like making colors brighter), and whether it requires a fragment shader, pixel shader, or some combination of both.
 

cbox

Member
Finally launched our site, and we're getting some pretty awesome attention ( outside of social media ).

http://jamhammer.ca which I designed, and our twitter is https://twitter.com/JamhammerGames if you want to follow us!


We created an installer so it's super simple to play and distribute the game, would anyone be interested in play testing for us? You'd need a PC and an xbox 360 controller. Demo with a tutorial mode should be done within the week or next, can't wait!
 

Popstar

Member
Yes, manually adjusting everything's gamma to 2.2 as an experiment.

But even if that doesn't work or isn't necessary, I'd like to know how to do a full-window/full-screen shader post-process GLSL effect (something simple like making colors brighter), and whether it requires a fragment shader, pixel shader, or some combination of both.
You can enable automatic gamma correction with
glEnable( GL_FRAMEBUFFER_SRGB );
This will also do correct blending, converting the framebuffer value from sRGB to linear before blending and converting back to sRGB when writing the result. With post-process blending will still be incorrect.

But yeah, it's useful to figure out the framebuffer post-process stuff anyways.
 

Esqueleto

Banned
Thanks dude! :D


In other news... IGN put Chopper in their iOS update video, and said really nice things!!! Click for IGN Video

Wicked day! :D


Esqueleto - ewww, not seen that. Have you tried not forcing the MSAA?

Congrats. It runs the same without msaa. The game looks so much cleaner with it though. It's actually not that noticeable when playing. The farther the camera is the worse it gets though.
here's what it looks like in game when the chopper is on the ground.
 

razu

Member
Congrats. It runs the same without msaa. The game looks so much cleaner with it though. It's actually not that noticeable when playing. The farther the camera is the worse it gets though.
here's what it looks like in game when the chopper is on the ground.

Looks like something weird is going on with the z-buffer... One for unity I guess..??

Have you done anything custom to the device at all?
 

Esqueleto

Banned
Looks like something weird is going on with the z-buffer... One for unity I guess..??

Have you done anything custom to the device at all?

Just rooted. Know any other unity games I can try?

Edit: Just got dead trigger. No problems with that. I'm gonna flash a custom rom and see how it goes.
 

razu

Member
Just rooted. Know any other unity games I can try?

Not off the top of my head. Try googling. I'll look into it tomorrow.


Grats!! :) it's an awesome feeling to release something, right? :D

Amazing! I've worked on games before, for employers. But having your own game out there is different.

- - -

I have a question! Is it okay to get a friend to post an OT in the main forum?
 

Blizzard

Banned
Unity and Unreal (not sure about which version of the UDk, if any) are supposed to support the Oculus Rift too, and I thought we might hear about it this week, but things have gone silent. Maybe during the GDC?
 

Paz

Member
Thanks dude! :D


In other news... IGN put Chopper in their iOS update video, and said really nice things!!! Click for IGN Video

Wicked day! :D

That's really cool!

I saw a post of yours pop up on facebook about the game, at first I thought facebook had been data mining my browsing but I guess the more logical answer is we knew some of the same people at Sega :)

Best of luck with the game, hopefully you can keep making your own projects!
 

wilflare

Member
Not off the top of my head. Try googling. I'll look into it tomorrow.




Amazing! I've worked on games before, for employers. But having your own game out there is different.

- - -

I have a question! Is it okay to get a friend to post an OT in the main forum?

I hope you bring Chopper to the Vita :X
 

Uhyve

Member
Looks like something weird is going on with the z-buffer... One for unity I guess..??
Looks like what happens when a camera's near/far plane is too extreme for the z-buffer, super weird with nobody else having the issue. I'm kind of nostalgic seeing it, spent many a night fixing z-fighting, hate it.
 
Status
Not open for further replies.
Top Bottom