• 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.

GAF Indie Game Development Thread 2: High Res Work for Low Res Pay

Status
Not open for further replies.
I think this is the post I was looking for :). It's the only one GAF Indie thread?
Yes.
Finally ...

Pixelized Defocusing Blur

Ie2tq8F.gif



That's what I was cooking up for over a month or so. Pretty proud of it!
Defocusing blur gets a bit tough if you wanna make it look good on such a low
resolution. See, there is no averaging of any pixels going on, yet you can see
blur, done by weaving raw pixels together. I'm still working on it, but this is
by far my best result at the moment after many failed attempts in dealing with
all sorts of issues of many different patterns, randomization, flickering,
aliasing and stuff.

The animation has a little show effect. Upon startup the camera sensor is
pulled out of its rest position by the auto-focus positioning the sensor in
such a way that the object distance (measured at the red dot) is in focus.
Next year I want improve the auto-focus effect itself simulating what the eye
does to refocus. Instead of moving the sensor (for, the retina is fixed), I
will implement a form of lens accommodation to refocus. This should have some
interesting consequences because the focal length will also change somewhat
and as such the projection when focusing.

VERY cool effect!
 

BatavianBunny

Neo Member
My Steam store page was approved! You can check it here



Now I just need to finish this!

Congrats man! Lookin' good too!

My studio is working on a similar style game - but we're still about a year out till we finish ours... but I'm looking to launch Greenlight next February. Any tips? Anything to keep in mind?

Sorry I've been super quiet of late - I'm trying to plug in so many roles in the studio that I've let marketing and actual writing fall to the way side. We're about 11 months into the development now (4 months of prototyping and 7 months actual production).

Anyway for anyone interested this is our progress video for the tactical layer in the last 11 months. I'll try to post more here as we get to the end of the year and the studio goes on break (and I get to work in peace for a week :p)

Tactical Progress Video link:
https://youtu.be/rRwtOzwKY6k

Anyway, this video showcases also some of the composed music we have in the works so far.
 

missile

Member
... It's certainly effective but the overall effect is a bit hard on the eyes... :eek: but in fairness I feel that way about old 3D stuff as well so it might be right on the money in that respect. ...

... VERY cool effect!

Thx a lot, guys!

Yeah, it's a bit hard on the eyes esp. if the defocus is just very small
producing some hard cuts on object boundaries. I think I can counter that by
using random in time but wanted to have a static pattern able to mix the
pixels which doesn't flicker and doesn't rely on a random process, yet
patterns are usually prone to lots of artifacts, aliasing, etc.. There might
be a simpler trick also fitting the retro ästhetic, for, if I quantize the
colors down and dither them, the image will get a lil more noisy. This
noise/pattern will mix with said cuts making them less visible for the eye.
Another solution would be to amp the resolution. It's not even the native
resolution. Rest assured it looks pretty good at high-res (and still
pixelized), the cuts will be gone, but I wanted to have low-res with the
pixels much more pronounced. Anyhow, I programmed many different methods and
almost all of them produce objectionable patterns which only disappear for
higher image resolution and by an averaging process (as it is usually done).
Pretty much the opposite of what I wanted to archieve. Another interesting
aspect is the following; due to its nature, the pixelized defocus works for
pretty low color palettes, too, because it doesn't need any blending, i.e. no
additional shades needed. That's nice! :)

Some more fun with it...

xfggQLs.gif


T2fRxac.gif
 

Pehesse

Member
Thx a lot, guys!

Yeah, it's a bit hard on the eyes esp. if the defocus is just very small
producing some hard cuts on object boundaries. I think I can counter that by
using random in time but wanted to have a static pattern able to mix the
pixels which doesn't flicker and doesn't rely on a random process, yet
patterns are usually prone to lots of artifacts, aliasing, etc.. There might
be a simpler trick also fitting the retro ästhetic, for, if I quantize the
colors down and dither them, the image will get a lil more noisier. This
noise/patterns will mix with said cuts making them less visible for the eye.
Another solution would be to amp the resolution. It's not even the native
resolution. Rest assured it looks pretty good at high-res (and still
pixelized), the cuts will be gone, but I wanted to have low-res with the
pixels much more pronounced. Anyhow, I programmed many different methods and
almost all of them produce objectionable patterns which only disappear for
higher image resolution and by an averaging process (as it is usually done).
Pretty much the opposite of what I wanted to archive. Another interesting
aspect is the following; due to its nature, the pixelized defocus works for
pretty low color palettes, too, because it doesn't need any blending, i.e. no
additional shades needed. That's nice! :)

Some more fun with it...

xfggQLs.gif


T2fRxac.gif

I can't say I understand most/any of it, but I think it (and the previous preview, too) looks fantastic - weird, but fantastic :-D
 

philion

Neo Member
tumblr_oihinpq33H1vgw6vmo1_1280.gif


Sorry for the delay - Christmas slows me down for a number of reasons :(

Currently wiring in the new GUI system which involves pulling out the old character placement mechanics. The barebones are nearly in and hopefully this should be the start of a new climb to making a game under these new rules.

Whats left….

Making it so the progress bars stop going until a character is placed.
Add the two BOT slots on the right to work the same as the other four slots, but obeying to the energy meter.
Score.
Having the “R:” count all characters that are in the level. (Everything is still abit hazy but this will hold the entire number of defenders being used and available)
Once those few things are done I can play around with the new enemy spawner and defender numbers to make this a fun playable level.

Hopefully……the basics should be fun enough and I’ll have something to build on.

Anyway if I don’t post again before Christmas have a good one whatever you are all doing and I’ll post again soon.
 

Lautaro

Member
Congrats man! Lookin' good too!

My studio is working on a similar style game - but we're still about a year out till we finish ours... but I'm looking to launch Greenlight next February. Any tips? Anything to keep in mind?

Thanks!

There's no secret to Greenlight, if you have a decent game (and trailer/screenshots) it will get through, just have patience and don't fall for the trap of making giveaways, in fact just ignore the friend requests of any "promotion group".
 

Airan

Member
Can someone help me with some math?

I want to linearly scale my collider size between a defined maximum and minimum value (3.5 and 2.8 respectively) based on speed of the object - the faster the object is moving, the larger the collider size. Let's say I also have a maximum speed of 20 and minimum speed of 5.

I plotted a graph and made the X axis the speed (15 units), and the Y the size (0.7 units).
Every 1 unit of speed, the collider size should increase by ~0.0467 units.

Here's where I'm stuck. I can't figure out the function which takes in a speed value and spits out the resultant collider size.
 
Looking for some general UI advice about designing an ability upgrade button.

What it needs is:
- The ability name
- A visual icon representing it
- A "not unlocked state"
- A "you have unlocked X / 5" levels state (Abilities can be levelled up multiple times)
- A "fully unlocked" state

I'm struggling to make it clear that that's what this button does - particularly how it can be upgraded multiple times. If you have any advice or examples from other games with really clear ability upgrade buttons, I'd be all ears!
 

Naeval

Member
Hey Gaf!
So the game I've been working (and showed a few pages ago) is finally released on iOS!
It's my very first "official" game, so it feels a bit weird. I really hope you guys enjoy it if you happen to buy it.

My friend (and dev) went through hell to deal with Apple Tax agreements and all, but we managed to find a way ^^

The game is called Highway Runners : a retro arcade inspired racing game.

Official Screens :
screen520x924.jpeg

screen520x924.jpeg


AppStore link : https://itunes.apple.com/us/app/id964932741

Youtube trailer : https://www.youtube.com/watch?v=INcufV2Qfzg

Thanks all for your advices!

I have no iOS,but I adviced a friend of mine, who has downloaded the game, and he asks me why you decided to choose only gyroscope for controlling the car.

And... Do you plan to release the game on Android - PC?
 

ZServ

Member
I likely won't be back in the thread until after Christmas, so happy holidays, everyone. I may not have been posting much, but you've all been absolutely a driving force in keeping me going deeper into development each and every day. Thank you much. <3
 
Can someone help me with some math?

I want to linearly scale my collider size between a defined maximum and minimum value (3.5 and 2.8 respectively) based on speed of the object - the faster the object is moving, the larger the collider size. Let's say I also have a maximum speed of 20 and minimum speed of 5.

I plotted a graph and made the X axis the speed (15 units), and the Y the size (0.7 units).
Every 1 unit of speed, the collider size should increase by ~0.0467 units.

Here's where I'm stuck. I can't figure out the function which takes in a speed value and spits out the resultant collider size.

Sounds like you only need a lerp.

I'm on mobile so I'll see how accurate I get this

float scale = Mathf.Lerp(2.5f, 3.8f, currentVelocity/maxVelocity);

Hope that helps.

Edit: I made the assumption you are working with Unity, I hope that's right.
 

LordRaptor

Member
Looking for some general UI advice about designing an ability upgrade button.

What it needs is:
- The ability name
- A visual icon representing it
- A "not unlocked state"
- A "you have unlocked X / 5" levels state (Abilities can be levelled up multiple times)
- A "fully unlocked" state

I'm struggling to make it clear that that's what this button does - particularly how it can be upgraded multiple times. If you have any advice or examples from other games with really clear ability upgrade buttons, I'd be all ears!

Assuming you've already tried FTL style button at bottom, with bars above it I offer this as food for thought, not as any type of dev art stealth brag

b8zjTYz.png


Iconography; padlock for locked, skill icon for visual representation (I used awesome face because why not)
Colour: greyscale for locked, progressive colour addition to show progress, with a final colour flourish to show completed
Shape: simple geometric to represent at a glance overall progress as being out of 5
alternative layout:
ndEdEeO.png
 

philion

Neo Member
This is a sidescroller Tower Defence (for a gross over-simplifaction based on screenies so far) right?

It looks pretty fun!
disclaimer: I fucking love TD games

You got it, but theres more to come to that level. If you like it now you're going to scream in a few months time :)
 

missile

Member
Can someone help me with some math?

I want to linearly scale my collider size between a defined maximum and minimum value (3.5 and 2.8 respectively) based on speed of the object - the faster the object is moving, the larger the collider size. Let's say I also have a maximum speed of 20 and minimum speed of 5.

I plotted a graph and made the X axis the speed (15 units), and the Y the size (0.7 units).
Every 1 unit of speed, the collider size should increase by ~0.0467 units.

Here's where I'm stuck. I can't figure out the function which takes in a speed value and spits out the resultant collider size.
np

Cmax := collider size max
Cmin := collider size min
C := collider size

Vmax := speed max
Vmin := speed min
V := speed

Here ist the formula for expressing the collider size C in terms of the speed V:

Code:
C(V) = (V - Vmin)*(Cmax - Cmin) / (Vmax - Vmin) + Cmin

For example:
Cmax = 3.5, Cmin = 2.8, Vmax = 20, Vmin = 5

C(V) = (V - 5)*(3.5 - 2.8) / (20 - 5) + 2.8
~= 0.0467*V + 2.5667

C(20) = 0.0467*20 + 2.5667 ~= 3.5
C(5) = 0.0467*5 + 2.5667 ~= 2.8

Rate of change (derivative with respect to V):
C'(V) ~= (0.0467*V + 2.5667)' = 0.0467

If you wanna know the derivation of the given formula, tell me.

Have fun.
 

Airan

Member
Sounds like you only need a lerp.

I'm on mobile so I'll see how accurate I get this

float scale = Mathf.Lerp(2.5f, 3.8f, currentVelocity/maxVelocity);

Hope that helps.

Edit: I made the assumption you are working with Unity, I hope that's right.

Aha, Liner Interpolation. Man I need to go back and study math. Thank you, it works beautifully!

[edit] Just caught missile's breakdown, thanks as well!
 
Assuming you've already tried FTL style button at bottom, with bars above it I offer this as food for thought, not as any type of dev art stealth brag

b8zjTYz.png


Iconography; padlock for locked, skill icon for visual representation (I used awesome face because why not)
Colour: greyscale for locked, progressive colour addition to show progress, with a final colour flourish to show completed
Shape: simple geometric to represent at a glance overall progress as being out of 5
alternative layout:
ndEdEeO.png

Cheers, this helps a lot!

Icons aren't done yet but here's what I've got so far. Will try it again with the hex segments and see if that's better.

rrMNdKZ.gif
 

Pehesse

Member
I likely won't be back in the thread until after Christmas, so happy holidays, everyone. I may not have been posting much, but you've all been absolutely a driving force in keeping me going deeper into development each and every day. Thank you much. <3

Same here, I'm getting ready to be off to a place where internet is a folk tale, so I wish you all happy holidays if you do manage to take some :) See you all next year!
 

LordRaptor

Member
Cheers, this helps a lot!

No problem - I only provided art examples because its easier than trying to describe the thought process - what you will find will help a lot is theming to match your game; my example is straight up "mobile game" level, because mobile games don't tend to do much in the way of contextualising things like their UI.

If you did something like, I dunno, notebooks? Scolls? rather than geometric shapes to help contextualise that you're asembling spells from tomes (or whatever) I think you'd find the end result pretty nice both in terms of 'fit' with the rest of the aesthetic as well as readability

e:
Like socketing gems in Diablo is super-satisfying, when it could just as easily have been "use inventory item"
 

Makai

Member
Thx a lot! How is your stuff going?
math is hard

qIBWNtY.gif


Functional programming with Unity was a failure for performance reasons. Switched to Rust and OpenGL for C++ tier performance but with most of the abstractions I like. Best programming experience I've had - like wow, turns out implementing a lot of the stuff that game engines do is trivial when you only handle a specific case.
 

pfkas

Member
Been working on this over the last few weeks - quite happy with the beat generation logic now. Ticking things off my list of things to do, but it gets longer as I think of more things I need to add to make it into a fully rounded experience.

At least it has a name now, Vectapulse.

I recorded this off of android, but I intend to get it onto ios and hopefully steam at some point, though i'll have to change the control scheme a bit.

https://www.youtube.com/watch?v=ZSNLGmS_Crk
 

asa

Member
Power Hover Steam page is up! Releasing january 10th 2017! Add it to wishlist in the meanwhile :)

http://store.steampowered.com//app/559960

Now that we have been playing the game on the big screens and with proper controllers it really feels like we should have released the game on Steam earlier. Scale and the feeling is quite different from the smaller touchscreen. Hopefully we do well on Steam, going to release next game on there way earlier if we find any success with Power Hover.
 

MrHoot

Member
MERR CRIMBUS DEVS

Haven't posted in a while, but can show progress on one of the monsters I'm doing right now, with a little festive garment

67d1dbe4a1.gif
 

anteevy

Member
Sometimes I think all idiots on Earth group up and try to write as many negative reviews on my game as possible that simply make no sense. Basically there are 3 groups:

1. Those that rush through everything, don't collect anything, don't care about highscores, skip all bonus levels, unlocks, bonus contents. And then write a negative review, complaining that the game is too short and has not enough content.

2. Those that have to 100% the game while playing through it the first time. They play each level as often as they have to get the 100% score. And then write a negative review, complaining that the game is unfairly difficult and that they quit after the first couple of levels. This just breaks my mind.

3. Those that just write stuff like "F*** THIS GAME", but I guess these can't be avoided because the game was in the Humble Bundle and people like to troll.

I'm happy that I'm still at 83% after 100 reviews, but man, this stuff is really demotivating as there's literally nothing you can do to fix or improve, because it's simply people acting stupid.

Well, happy holidays I guess! ;)
 

missile

Member
What's that suppose to mean? ;)


... Functional programming with Unity was a failure for performance reasons. Switched to Rust and OpenGL for C++ tier performance but with most of the abstractions I like. Best programming experience I've had - like wow, turns out implementing a lot of the stuff that game engines do is trivial when you only handle a specific case.
I also had my share with functional programming, but just took out the best of
it (concept-wise) guiding me now and then when programming in C/C++.


Been working on this over the last few weeks - quite happy with the beat generation logic now. Ticking things off my list of things to do, but it gets longer as I think of more things I need to add to make it into a fully rounded experience.

At least it has a name now, Vectapulse.

I recorded this off of android, but I intend to get it onto ios and hopefully steam at some point, though i'll have to change the control scheme a bit.

https://www.youtube.com/watch?v=ZSNLGmS_Crk
How is the game meant to be played?


Happy Holidays to everyone here in the Indie Dev thread! Hope you all have a lovely time over the next couple of weeks. I threw together a new video in light of the festive season, so enjoy!
https://www.youtube.com/watch?v=AwViTfY4CL4&ab_channel=MONOTHETIC
Cool, stuff, bro!

Happy holidays!
 
I just recently started playing around in Game Maker, and the experience is exhilarating. I'm almost completely new to programing, so even making just one of those three room, side-scrolling, all box-sprites platformers was quite an accomplishment for me.

I think I'm hooked. Now I'm on to try to make a real, but short and simple game!
 
Sup guys, I've rekindled my desire to make a video game and I've finally started to paste my ideas on paper, writing the story and such and now I'm moving forward to the prototyping phase. I've asked many times before on this thread and you'll been super helpful every time and I've come here again for technical guidelines. I recently read this article by D-Pad studio that gave some tips on how making pixel art scale nicely to HD and even 4K, some of the points are:
  • developing the game for widescreen 16:9.
  • using 640x360 as the base resolution.
Seems straight forward but how do I setup Unity so that it meets those points and scales the pixel art assets nicely?
 
Finally ...

Pixelized Defocusing Blur

Ie2tq8F.gif



That's what I was cooking up for over a month or so. Pretty proud of it!
Defocusing blur gets a bit tough if you wanna make it look good on such a low
resolution. See, there is no averaging of any pixels going on, yet you can see
blur, done by weaving raw pixels together. I'm still working on it, but this is
by far my best result at the moment after many failed attempts in dealing with
all sorts of issues of many different patterns, randomization, flickering,
aliasing and stuff.

The animation has a little show effect. Upon startup the camera sensor is
pulled out of its rest position by the auto-focus positioning the sensor in
such a way that the object distance (measured at the red dot) is in focus.
Next year I want improve the auto-focus effect itself simulating what the eye
does to refocus. Instead of moving the sensor (for, the retina is fixed), I
will implement a form of lens accommodation to refocus. This should have some
interesting consequences because the focal length will also change somewhat
and as such the projection when focusing.

Are you using Unity or something? I love the look of it with the low resolution. Really really cool!
 

LordRaptor

Member
how do I setup Unity so that it meets those points and scales the pixel art assets nicely?

I mean, there's a few different ways that all involve setting your camera to orthographic and adding a scaler.
If you want fixed sprite sizes, but a variable screensize, you could add something like

Code:
float spriteSize = 32f
float screenSize = Screen.height / spriteSize / 2.0f;
Camera.main.orthographicSize = screenSize;

which would lock all sprites to a 32x32 scale that doesn't change regardless of resolution.

The alternative would be to do something like having a fixed orthographic size, and only supporting resolutions that are multiples of your target pixel reference size so you never get weirdly scaled pixels (ie if your target resolution is 640x360, you only allow 360p / 720p / 1080p / 1440p as selectable resolutions).

Combining the two methods would give you something like the XBLA sprite based game remasters did, where you have a 'fixed aspect' game window in the centre of the screen that can only be exact multiples of your base target resolution, and then a 'border' non-playable area which will expand and tile to fill the available space but without affecting sprite scaling
 
I just recently started playing around in Game Maker, and the experience is exhilarating. I'm almost completely new to programing, so even making just one of those three room, side-scrolling, all box-sprites platformers was quite an accomplishment for me.

I think I'm hooked. Now I'm on to try to make a real, but short and simple game!

Glad you're enjoying it so far! If you want to make a little game, I suggest making breakout! It'll teach you about game loops (start, win lose), graphics and basic animation (changing colour blocks), collision detection and levels.

It may seem simple, but it's trickier than it looks!
 
I mean, there's a few different ways that all involve setting your camera to orthographic and adding a scaler.
If you want fixed sprite sizes, but a variable screensize, you could add something like

Code:
float spriteSize = 32f
float screenSize = Screen.height / spriteSize / 2.0f;
Camera.main.orthographicSize = screenSize;

which would lock all sprites to a 32x32 scale that doesn't change regardless of resolution.

The alternative would be to do something like having a fixed orthographic size, and only supporting resolutions that are multiples of your target pixel reference size so you never get weirdly scaled pixels (ie if your target resolution is 640x360, you only allow 360p / 720p / 1080p / 1440p as selectable resolutions).

Combining the two methods would give you something like the XBLA sprite based game remasters did, where you have a 'fixed aspect' game window in the centre of the screen that can only be exact multiples of your base target resolution, and then a 'border' non-playable area which will expand and tile to fill the available space but without affecting sprite scaling

Alright awesome, so the key is in the camera. I think I'm gonna go with the second method and only have multiples of the base resolution. Thank you.
 
Status
Not open for further replies.
Top Bottom