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

Kalentan

Member
If you're using GameMaker and haven't checked out out the new Fluid Dynamics asset yet, get on it!

olBcFl3.gif

Woah! That looks amazing! I might have to get that. I think it might benefit my fire spells and the such.
 

DemonNite

Member
Screenshot Saturday again folks. Just a small update showing a new accessory I created that will help guide you through the dungeons. The crystals can light up in the direction where something is, just like a compass.

vCyeZ5mh.jpg

fBp7nD9h.jpg
 

kkiablo

Neo Member
Never heard of it before, looking it up this seems like a rad game. I imagine the similarities end at looking at units run around though.


Thought I would give this a go and offer some feedback. Visually I think it looks good; the character feels physical, touching walls and deliberate way she can drop off a ledge turn around an grab a cube.
Sadly I didn't get to see any of the cooler looking environments you posted. I was completely stumped.
JjbLwlw.jpg

Got as far as this room, so probably the first real puzzle. It looks like you need to get the first cube through the first gate to unlock the door but I honestly couldn't work out how.
My greatest frustration came from the turrets, since there's not visual indicator for their hearing range, or perhaps more correctly no indication of how much noise you're making, I found myself repeatedly thinking I was safe only for them to laser me to death.

Let me know how to get past this room and I'll give it another go!

Thanks for you feedback! Here is an instruction for you to pass this level:

1. Get cube 1
2. Place it to open gate 1
3. Get cube 2
4. Replace cube 1 with cube 2
5. Open gate 2 with cube 1
6. Regenerate cube 2
7. Open the exit with cube 2

The key method to this puzzle is that you can always regenerate the same cube. We noticed that the guide in game may be not very clear. We'll put that top of our improvement list. Thanks.

Please let me know if you have further confusion. Enjoy!
 

missile

Member
... I rarely understand what you post, I mean that in the best way possible, but I can certainly appreciate the work. Always excited to see lighting in action, I'm particularly interested in the performance. ...
Performance? About a minute or something, yet isn't optimized the slightest.

... I've been working on a game, An Aztec Tale, and I've got to say it's starting to wear me down. Hard to go at something for so long and feel like we're not making much headway. I'm sure you can relate! I always tell myself I would post here more often and never do, this time I'm forcing myself to! Sharing is caring after all and it'll probably help with my feelings towards the project. ...
Keep them coming! :)


Screenshot Saturday again folks. Just a small update showing a new accessory I created that will help guide you through the dungeons. The crystals can light up in the direction where something is, just like a compass.

vCyeZ5mh.jpg

fBp7nD9h.jpg
Cool idea.
 
tumblr_onqkl5u1J41w48nado1_400.gif


How I feel right now: waiting for the flag (final bit of music) so I can release, and be done with this darn thing. It seems like there's this small window just before release where one's love of a project plummets, because you want it to be over.
 

Makai

Member
tumblr_onqkl5u1J41w48nado1_400.gif


How I feel right now: waiting for the flag (final bit of music) so I can release, and be done with this darn thing. It seems like there's this small window just before release where one's love of a project plummets, because you want it to be over.
Braid reference
 
I'm not sure I follow. (I did play and finish Braid, but I'm not sure what specifically you're referring to.)

I was confused at first too, but I think they're referring to the dinosaur-ish character that you meet at the end of certain levels in Braid. Of course, in this case the dinosaur is the player character so I doubt it was an intentional reference... :)
 

Kamaki

Member
That looks great, I haven't tried GameMaker but I want to see what that environment is like once I'm done with my current game. I want to put some time aside and play with the new Construct 3 too.

1. Get cube 1
2. Place it to open gate 1
3. Get cube 2
4. Replace cube 1 with cube 2
5. Open gate 2 with cube 1
6. Regenerate cube 2
7. Open the exit with cube 2

The key method to this puzzle is that you can always regenerate the same cube. We noticed that the guide in game may be not very clear. We'll put that top of our improvement list. Thanks.
Blindingly obvious! I feel stupid for not working that out myself. Managed to make it to the room with the teleporters, specifically the part where you have two sets of teleporters in front of the door. Stumped again! I might just be stupid but again I feel like my greatest frustration is not knowing what ranges turrets will react to sound and what not. For example destroying a cube will alert turrets in a far larger area than the girl running.

A small update on my end, starting work on the next dungeon track, getting work on the first area. Having a little bit of a modeler's block, but it's been working out pretty well.
Looks great! I'm a fan of the flat shaded models that seems to be vogue right now.

Pain or No Pain? Implementing menus is a recurring nightmare that I have.

A lot of fine detail! Had a brief look and I can't find what you're working on, got work somewhere?


Last post I mentioned trying to court publishers, at EGX I got to speak to a few people and get a clearer picture of what would be required; a lot more than I had expected! So I'm moving towards that right now, putting stuff together for a meaningful pitch.
The past week has been working on getting the game new player ready, before only people who had knowledge of the units could play as everything was using debug names without descriptions etc.

fwTu5yk.jpg


Worked on snazzing up dialogue. How it looks anyway, not much of a writer so that's going to take some time.

WyzoljU.gif


Getting all the elements into the battle scenes, had a lot of invisible elements that you just had to assume were there before.

g4Yfgrj.gif
 

Kalentan

Member
Pain or No Pain? Implementing menus is a recurring nightmare that I have.

At least for Game Maker it was not hard. Maybe a bit tedious but I managed to get the options menu and resolution options working in half a day.

Also my new (first iteration) walking animation for my new sprites! After deliberating it last night I decided to completely overhaul my sprites in my game.


You can see what they looked like originally here.
 
At least for Game Maker it was not hard. Maybe a bit tedious but I managed to get the options menu and resolution options working in half a day.

Also my new (first iteration) walking animation for my new sprites! After deliberating it last night I decided to completely overhaul my sprites in my game.



You can see what they looked like originally here.

Jesus I can't help but envy you for knowing what you're doing both in programming and in pixel art. I eventually went "Fuck it" and just hired an artist I knew from my Doom modding days to make art assets while I just focused on doing the things I know how to do. Hopefully I'll be able to show his work in my next video. Though I'm a bit stumped on my priorities right now in between either improving my AI or adding to the player's ability set at the moment.
 

Kalentan

Member
Jesus I can't help but envy you for knowing what you're doing both in programming and in pixel art. I eventually went "Fuck it" and just hired an artist I knew from my Doom modding days to make art assets while I just focused on doing the things I know how to do. Hopefully I'll be able to show his work in my next video. Though I'm a bit stumped on my priorities right now in between either improving my AI or adding to the player's ability set at the moment.

Well it can be a bit hard though! Since I can't just do the programming, I also must do the pixel art and for the life of me I can't use place holder stuff. That isn't to say my animations and everything are final, but I need to draw something to how I will want it to look before I can begin the programming process. So that can slow things down a lot.
 

Tain

Member
I'm with you, I can't just box things out and move from there. I get most of my motivation from making something cool-looking and bringing it to life, and the art and programming steer each other.
 

Kalentan

Member
I'm with you, I can't just box out things out and move from there. I get most of my motivation from making something cool-looking and bringing it to life, and the art and programming steer each other.

Yup! That feeling when you finally animate something and get it to work ingame is so satisfying!
 

DemonNite

Member
Started some early work on an idea I had for a Spider Queen. I already scrapped another version I had that was half human, half spider but that had been done to death in the video game space.

This is what I ended up with by going another direction.

28VEiKj.png


3FNKNJI.png


6ipbLmf.png


After I fully rigged it, I dropped it in the game with some quick lighting/scene set up.

kLXg2V3h.jpg
 

Kalentan

Member
If this grayish transparent thing is supposed to be some glass, you may add
some small reflection on top of it. This will make it a hell of a lot more
pleasing to watch.

Edit: Or is it a shadow?

It's a shadow. You can't see it in the gif but there is a roof over head.
 
Mmm, Unity animation bugs... I'd like to learn what's going on so that I can do it better.

This is the Boolean-based version (have to unset bools manually)

Code:
if (!grounded)
{
	animator.SetBool("Stand Idle", false);
	animator.SetBool("Stand Walk", false);

	if (jumping)
	{
		animator.SetBool("Jump Ascend", true);
		animator.SetBool("Jump Fall", false);
	}
	else
	{
		animator.SetBool("Jump Fall", true);
		animator.SetBool("Jump Ascend", false);
	}

	if (movement.x > float.Epsilon)
	{
		spriteRenderer.flipX = false;
	}
	else if (movement.x < -float.Epsilon)
	{
		spriteRenderer.flipX = true;
	}
}
else 
{
	animator.SetBool("Jump Fall", false);

	if (movement == Vector2.zero)
	{
		animator.SetBool("Stand Idle", true);
		animator.SetBool("Stand Walk", false);
	}
	else
	{
		animator.SetBool("Stand Walk", true);
		animator.SetBool("Stand Idle", false);

		if (movement.x > float.Epsilon)
		{
			spriteRenderer.flipX = false;
		}
		else if (movement.x < -float.Epsilon)
		{
			spriteRenderer.flipX = true;
		}
	}
}

The bugged-out Trigger version:
Code:
if (!grounded)
{
	if (jumping)
	{
		animator.SetTrigger("Jump Ascend");
	}
	else if (fall)
	{
		animator.SetTrigger("Jump Fall");
	}

	if (movement.x > float.Epsilon)
	{
		spriteRenderer.flipX = false;
	}
	else if (movement.x < -float.Epsilon)
	{
		spriteRenderer.flipX = true;
	}
}
else 
{
	if (movement == Vector2.zero)
	{
		animator.SetTrigger("Stand Idle");
	}
	else
	{
		animator.SetTrigger("Stand Walk");

		if (movement.x > float.Epsilon)
		{
			spriteRenderer.flipX = false;
		}
		else if (movement.x < -float.Epsilon)
		{
			spriteRenderer.flipX = true;
		}
	}
}

Long story short, the Trigger version seems to have some triggers stick. This causes some animations to suddenly flash an irrelevant animation for a frame before continuing. If there's a way to make the Trigger version work properly, it'd make managing animations a bit easier.
 

missile

Member
6qiMoQc.gif


Some more pixelized GI for the sake of it. :) (Don't mind the shuttering.
There are a couple sync issues here and there due to some performance
enhancements I did).
 
Well it can be a bit hard though! Since I can't just do the programming, I also must do the pixel art and for the life of me I can't use place holder stuff. That isn't to say my animations and everything are final, but I need to draw something to how I will want it to look before I can begin the programming process. So that can slow things down a lot.

I'm with you, I can't just box things out and move from there. I get most of my motivation from making something cool-looking and bringing it to life, and the art and programming steer each other.

How dare thou'st insult my faithful companion DebugCube! He'll let you know that he graduated top of his class in the Navy Seals and has been involved in numerous secret raids on ISIS with over 300 confirmed kills. He's trained in Gorilla Warfare and is...

Anyway, no video today since I'm holding myself not to make a video until Aaren Kaufman's real sprite is complete to replace her Atari 2600 debug cube sprite.

So have a GIF. Fixed up enemy pathing around corners, as well as making them move to the player's predicted position when hunting instead of their last seen (Not pictured) and more importantly, made them track down the source of noises they hear rather than just look in their direction with no other reaction (Actually pictured)

b5ebdecf27.gif


Only thing I don't like is that I had to come up with a new movement system divorced from PixelatedPope's to get the new functions working. Might create some problems in the future, but I'll figure those out when they're relevant.. Now I just have to come up with a quick fix to prevent the AI from derping out if they hear a noise when they're already in Alert mode.
 
The music for the Airship finally came in (there is a sample of it here) and it ended up being so hype, I went and expanded the Airship by a third, adding in a few tricker (but entirely optional) sections for those who enjoy such things.

tumblr_onul67hcrT1w48nado1_400.gif
tumblr_onul67hcrT1w48nado2_400.gif


The area is still a work in progress, so I might dial some of it back a bit unless I can do them myself 100% of the time with no issue. Balance in a game like this is tricky, since not everyone has the same "feel" for platformers, but in the end you gotta make the kind of game you wanna play.
 

Kalentan

Member
How dare thou'st insult my faithful companion DebugCube! He'll let you know that he graduated top of his class in the Navy Seals and has been involved in numerous secret raids on ISIS with over 300 confirmed kills. He's trained in Gorilla Warfare and is...

And Debug Cube is a great guy but he's just not... The one I need...

zwrc.gif


A gif of my characters sword summoning, that is the base version of it. As I get more experienced I will fix it up to make it look nicer and add more frames.
 

Kamaki

Member
Well it can be a bit hard though! Since I can't just do the programming, I also must do the pixel art and for the life of me I can't use place holder stuff. That isn't to say my animations and everything are final, but I need to draw something to how I will want it to look before I can begin the programming process. So that can slow things down a lot.
I feel like this comic sums things up perfectly, you're the equivalent of the legendary writer/artist.

As a person with a deep fear of all things spider let me give you a fearful thumbs up, I know a game has done spiders well when they creep me out. Though a lot of the fear comes from how they move, got to get that right to really make me poop myself.

6qiMoQc.gif


Some more pixelized GI for the sake of it. :)
Always cool to see. What made you decide to start doing this yourself? Instead of going with an established engine or something; more enjoyable for you or perhaps using it as an opportunity to learn?

The music for the Airship finally came in (there is a sample of it here) and it ended up being so hype, I went and expanded the Airship by a third, adding in a few tricker (but entirely optional) sections for those who enjoy such things.
That's great stuff. I know the feeling, getting some music and feeling the hype! I'm musically illiterate and I've been lucky enough to have an amazing composer come on board. Hearing the music in game for the first time was one of those 'I'm making a real game' moments. Some of the older concept tracks can be heard here!

zGw8Re7.jpg

I spent some time today replacing the tween engine I use, from iTween to DoTween and the difference is massive. I had read that iTween can be performance intensive but I've gone from a unstable 60fps to almost stable 100fps. Still iTween code being used so I'm hoping that once I get rid of those things will be super stable!
 

Kalentan

Member
I feel like this comic sums things up perfectly, you're the equivalent of the legendary writer/artist.

Still, a blessing and a curse. Cause sometimes I do wish I had another artist also helping and another coder. Hopefully someday.

Slightly updated version of my last Gif.

txrc.gif


Still a lot to go to make it more natural. I think it might need a sort of gradient thing going on and maybe a glow. Not to mention the arms need fixing.
 

missile

Member
... Always cool to see. What made you decide to start doing this yourself? Instead of going with an established engine or something; more enjoyable for you or perhaps using it as an opportunity to learn? ...
Thx! Hmm .. good question.
Well, my interest behind is rather manifold and tangled from today's
perspective. My primary interest with respect to games is to create some
stylized renderings (reflection models) I have in mind by abusing PBR. That
way the look can be artistic but still obeys some physical (perhaps modified)
laws. So I'm not interested in making things look real for games here. But the
physical laws are guiding my design process and so I use standard setups to
check the results producing the images you see. Second, I want to try
something new and different, but not because my ego tells me to be different,
but because I get bored when trying to hunt down the status quo. I like to
diverge and to follow different paths while digging deep into them. This gives
me a feeling of exploration, finding something new around each corner. But a
couple of month ago I came up with a new idea for an app where I need, quite
surprisingly, a rather realistic renderer (spectral rendering to say the
least) to judge the quality of some other algorithms processing some limited
real-world measured data trying to reconstruct, say, the whole. It's about
color rendering taking human vision and the real-world state of chromatic
adaptation of the human eye into account. It's an app/topic I hope to actually
earn some money from to pay some of the bills to further stay in gamedev.
Luckily the two fields are related and have a huge intersection. All this eye
stuff etc. is what I wanted to implement for games anyways.

If you find the last stuff pleasing, you might like the following one as well.
The lastest GI stuff is just an experiment to see how a similar technique of
mine performs, a technique I developed a couple of months ago to realize sort
of a pixelized defocusing blur;
Ie2tq8F.gif

+ lens accommodation like the human eye does;
08Bj8J8.gif



Edit: Thought your 2d sprites were placeholders, but no! That's funny. xD



Starting my software renderer

giphy.gif
That's you in the picture? ;) Yeah, nice! Software renderer is the future
(running on graphics hardware). So you have rastered the lines yourself using
Bresenham with some added Wu anti-aliasing?
 

DemonNite

Member
6qiMoQc.gif


Some more pixelized GI for the sake of it. :) (Don't mind the shuttering.
There are a couple sync issues here and there due to some performance
enhancements I did).

yes, YES, YESSSS. Need more pixelized gifs in my life

The music for the Airship finally came in (there is a sample of it here) and it ended up being so hype, I went and expanded the Airship by a third, adding in a few tricker (but entirely optional) sections for those who enjoy such things.

tumblr_onul67hcrT1w48nado1_400.gif
tumblr_onul67hcrT1w48nado2_400.gif


The area is still a work in progress, so I might dial some of it back a bit unless I can do them myself 100% of the time with no issue. Balance in a game like this is tricky, since not everyone has the same "feel" for platformers, but in the end you gotta make the kind of game you wanna play.

So many moving things in there its crazy and I like it :)

As a person with a deep fear of all things spider let me give you a fearful thumbs up, I know a game has done spiders well when they creep me out. Though a lot of the fear comes from how they move, got to get that right to really make me poop myself.

Thanks! I'm actually in the process of trying to get the spider walk cycle right. It's mind boggling when I was looking up that cycle lol. I did it already for the smaller spiders and they cycle fast... not sure if the mummy spider should twitch as fast or behave like a slow moving giant. I'll decide when I get that cycle completed
 

missile

Member
Hey LordRaptor, enjoy your free time! :)


yes, YES, YESSSS. Need more pixelized gifs in my life ...
I think I'm good for some more down the line. Will at least try motion blur.

... So many moving things in there its crazy and I like it :) ...
Yeah, his game looks and somehow feels quite good. Given the low resolution
I think it will look stunning when scaled up and viewed under a good CRT mask.
 

Jobbs

Banned
Still plugging away at designing and animating units.

This particular enemy is rather large and complicated and is turning out to be a considerable project unto itself. Some of the enemies seen earlier in the game (the yellow crab-like creatures) are later seen forming bizarre new entities.

zPsDEvo.gif


kwy5e7y.gif


It's not apparent from these images in isolation, but this unit is rather large (almost double the height of the player character). Animating it is very slow going, but hopefully he should be wrapped in coming days -- And then onto the next.
 

DemonNite

Member
Just did the first draft of the basic walk cycle for the Queen

CompetentAmbitiousEasternglasslizard.gif


I think I will try and tackle the harder animation of the opening. I'd like her to come out of the skull just like a Hermit Crab
 
Welp, time to test this baby out in the wild. If anyone would like to try Rex: Another Island and provide me with some feedback (even if it's just "this isn't bad" or "don't quit your dayjob"), I'd appreciate it. Hit me up with a PM if you're interested in platformers.
 

Pehesse

Member
Welp, time to test this baby out in the wild. If anyone would like to try Rex: Another Island and provide me with some feedback (even if it's just "this isn't bad" or "don't quit your dayjob"), I'd appreciate it. Hit me up with a PM if you're interested in platformers.

Sure, shoot!
 

weaponofchoice

Neo Member
Hey everyone! So late last night I uploaded the first playable demo for the game I've been working on. It's called Liberty Tolls, and it can be found on GameJolt.com.

Minimally, you'll need Windows OS and a two button mouse. The game was made with GameMaker on a bootcamp Macbook so it definitely shouldn't need a powerful PC to play

However, you will need to download it, but it's a really small file. It shouldn't take long to get through the whole demo either, maybe an hour? Of course, any feedback/criticism/judgments/compliments would be greatly appreciated.

giphy.gif
 

Minamu

Member
Ugh, I started trying my hand at Unreal for real, heh, today for the first time. I'm already beginning to regret making an "open world" tank battle game as my first project :lol But what can you do, that's what Ben Tristem over at Udemy recommended.

My pc isn't all that great, my graphics card stopped getting drivers in 2013 and Unreal is warning about this twice per editor start haha. My light build times are atrocious but maybe that's because of the 1x1 kilometer level? My importancevolume is just 10x10 meters though (and swarm is in standalone mode and I've removed GI bounces). Any other tips plz? :)
 
Folks who have recorded VO, what sort of formatting do you use for your actors? I've got excel sheets with all of the actor's lines with some parentheticals on the side to let them know what sort of read I want as this is how my casting director asked me to do it, but a lot of my actors have been kind of thrown by this format. Most of them have done mostly anime so it may just be a strange way to do it for them without visuals, but I'm not really sure how it's done elsewhere. At GDC I went to a great two-day talk by Blizzard's Andrea Toyias and their scripts have like... all kinds of insane detail with all the lead-in lines and things but I suspect Blizzard scripts are far shorter than my visual novel's. Plus, Blizzard money lol. It's late in the process to change now but I'm always trying to learn so I can do it better the next time--I'd appreciate any tips any of you have in this regard. ;3;
 
oh my god...what a time to be alive

How versatile are the effect visuals? Is it limited to solid colors or is there any way you can customize it?

( Your game was quite fun BTW )

Thanks! I've only experimented with the pixel art fire at the moment, but as you can see on the asset store page you've got options for smoother gradient blends and the like. It's quite customisable.

https://marketplace.yoyogames.com/assets/5232/fluid-dynamics
 
Ugh, I started trying my hand at Unreal for real, heh, today for the first time. I'm already beginning to regret making an "open world" tank battle game as my first project :lol But what can you do, that's what Ben Tristem over at Udemy recommended.

My pc isn't all that great, my graphics card stopped getting drivers in 2013 and Unreal is warning about this twice per editor start haha. My light build times are atrocious but maybe that's because of the 1x1 kilometer level? My importancevolume is just 10x10 meters though (and swarm is in standalone mode and I've removed GI bounces). Any other tips plz? :)
10x10 m isn't that big in comparison to 1x1 km. If you've removed light bounces from the baking process you're getting almost no benefit from using baked lighting. Don't use baked lighting.
 

LordKasual

Banned
Thanks! I've only experimented with the pixel art fire at the moment, but as you can see on the asset store page you've got options for smoother gradient blends and the like. It's quite customisable.

https://marketplace.yoyogames.com/assets/5232/fluid-dynamics

That is pretty neat.

I would almost just enjoy using this for rendering the effects into sprite sheets to be repurposed.

My project is on Construct Classic, so I can't use the plugin unfortunately.
 

Makai

Member
That's you in the picture? ;) Yeah, nice! Software renderer is the future
(running on graphics hardware). So you have rastered the lines yourself using
Bresenham with some added Wu anti-aliasing?
Public domain model from a tutorial. I'm looking at these two:

https://github.com/ssloy/tinyrenderer/wiki
http://machinethink.net/blog/3d-rendering-without-shaders/

The final goal is just a realtime wireframe renderer but I dunno what I'm going to do yet. Unsolved problems:

projection * perspective * model matrices
I know how to do this but it's going to be really expensive without shaders. I only have a few hundred points so hopefully it's not too bad.

Smooth lines
It's ridiculously aliasied, so yeah I gotta add something - definitely on each line instead of screen space.

Draw order
I have different colored lines, so I need a Z buffer for the right shapes to appear in front. I can get the Z values of points A and B, but I don't think I can get them for each step in between using Bresenham's line algorithm. Probably have to pick an increment based on the resolution and angle, find each point in the interval, then round to nearest pixel.

Mac port
I have no idea how to render a buffer to a window on Mac. There's a pixel-by-pixel approach in that tutorial, but I'm not doing that. Windows version works.

Later, I'll probably have the software rendered buffer applied to a quad in a hardware renderered scene if that's what you meant by software rendering on graphics hardware.
 

Minamu

Member
10x10 m isn't that big in comparison to 1x1 km. If you've removed light bounces from the baking process you're getting almost no benefit from using baked lighting. Don't use baked lighting.
Yeah the idea was to concentrate the baking onto a much smaller area to speed up the process (according to my tutorial). Is it enough to make the sun movable to make it dynamic?

Is the size of the landscape relevant for framerate? My card is old but my last endeavour in Unreal 4 wasn't this bad. I'm currently barely reaching 50 fps with said landscape and the default objects at low settings :lol
 

missile

Member


You both should make a game together. Sick!



Public domain model from a tutorial. I'm looking at these two:

https://github.com/ssloy/tinyrenderer/wiki
http://machinethink.net/blog/3d-rendering-without-shaders/

The final goal is just a realtime wireframe renderer but I dunno what I'm going to do yet. Unsolved problems:

projection * perspective * model matrices
I know how to do this but it's going to be really expensive without shaders. I only have a few hundred points so hopefully it's not too bad.
It's not really that slow. Sure, will be somewhat slower, but having ultra
fast matrix multiplication isn't the point when starting to do software
rendering. However, matrix multiplication can be made very fast on CPU as
well, if needed. There are SSE implementations to speed it up, but trust me,
it's really not the point. It also doesn't make sense to process thousands of
triangle in a software rasterizer to be begin with. There are many other
things to do first. Don't care about it, just multiply and there you go.


...
Draw order
I have different colored lines, so I need a Z buffer for the right shapes to appear in front. I can get the Z values of points A and B, but I don't think I can get them for each step in between using Bresenham's line algorithm. Probably have to pick an increment based on the resolution and angle, find each point in the interval, then round to nearest pixel. ...
Here comes a special advice from me (for free):
If you really wanna dive into graphics programming and also want to get to
know many of the fundamental problems of many of the core 3d algorithms, you
better start off by trying to solve the hidden-line (not surface) problem in
object-space, first! That's how it got started back in the days when
Sutherland and friends tried to display 3d object with the hidden lines
removed. The thing is that object-space hidden-line is much more difficult
than z-buffering (so you could use a z-buffered Bresenham algorithm and be
done with it), but these object-space algorithms really tell you a lesson in
how to consider depth, sorting, and coherency. These things are at the heart
of many modern rendering algorithms, but in disguise in terms of screen-space
techniques each trying to treat one or two of those issues differently to gain
an advantage.

So my advice would be to skip all the screen-space techniques at first and get
to know all the object-space hidden-line and hidden-surface algorithms. It
also makes you very comfortable working in 3d space. If you have implemented
all these algorithms than you will see how each of them optimizes a different
aspect of the depth problem. This is fundamental, for it is the basis of many
of the screen-space techniques. And once you have dealt with the object-space
ones you can then ask yourself how to further optimize them (you will see it
all by yourself), you will see that setting up certain coordinate frames and
transformation will ease the depth computation. You will also see how the
screen-space and depth computation becomes tangled for many of the rastering
algorithm. Z-buffer, today, is the most preferred, but many of the old and
forgotten techniques gain more and more interest again when considering
subdividing the rendering problem etc..

... Later, I'll probably have the software rendered buffer applied to a quad in a hardware renderered scene if that's what you meant by software rendering on graphics hardware.
Nope. What I mean is that with the added flexibility of the hardware you can
implement more sophisticated algorithms for that hardware usually not part
of the fixed circuitry. For example, if you try to solve the hidden-surface
problem by raycasting you may try to implement a ray-triangle intersection
method on graphics hardware which would also accelerate many of the problems
dealing with raycasting into the scene. The point is that you actually program
the method and not make a call into fixed hardware, for, the hardware is
limited and won't have each algorithm implemented. Sure, it won't be as fast
as using rendering techniques based on streaming (SIMD) techniques, but I can
tell you that the more advanced rendering algorithms need much more
sophisticated (dynamic, non-linear) data-structures to compute all the
pleasing graphics for the future. They are needed to make the problem
tracktable at all. So the graphics hardware needs to open up more and more
over time to allow to implement more sophisticated algorithms delivering all
the new graphics not possible with just streaming (linear data-structure). So
it's inevitable that we converge to software rendering where you basically
have a super GPU crunching down whatever you throw at it. That is to say, you
are free to implement the graphics your way, implementing whatever technique
is necessary to realize the vision of the artist. At this stage I think that
the GPUs will offer you many basic building blocks in hardware you can use to
make your engine fast, but won't necessarily dictated the rendering
process/pipeline any longer. I mean, you can do it today to some good degree.
There are people building rendering engines based on raytracing or
distance-fields/ray-marching on graphics hardware already.
 
Status
Not open for further replies.
Top Bottom