As you can see, my software renderer is much better than it was in my previous video. Perspective correction is done every 16 pixels in width and height and bilinear interpolation is done between them. Still, quality needs to be improved a little bit to correctly display corners of triangles. Optimization is very important too. This renderer is very slow yet. I'm thinking of trying to write triangle drawing function in assembly, but still much can be done on C.
@sandwich1817 My game is going to contain FPS gameplay elements too. I have hardly thought anything about storyline. It will be simple. And the world will be generated automatically, so that I wouldn't need to spend a lot of time making it myself :)
DoomedSpaceMarine123 2 months ago
@sandwich1817 I hope that maybe someday it will be ready :D
DoomedSpaceMarine123 3 months ago
@sandwich1817 I'm not. I hardly play GTA nowadays. I played MTA a few days ago, but now I care about other things more. One thing is Minecraft. It's seems addictive sometimes, but I think I could live without it, so that I could spend more time on another thing, programming. Now I'm making a sandbox game which I think I could use to earn money, even though it would be my second completed game, first game in C and first 3D game. Still, I need to put much work for it to be successful :)
DoomedSpaceMarine123 3 months ago
@sandwich1817 You're right. I like games which I played ten and more years ago on my 100 MHz computer when I was little :) Sometimes I even play Grand Prix Unlimited, a game released in 1992. Also, my software renderer is nearly done (it didn't take long to do, only sometimes I don't feel like programming :) ) and I also learned to use OpenGL. So I could make games with both software renderer to give them a classic feel and OpenGL, in case my renderer turns out to be too slow :D
DoomedSpaceMarine123 4 months ago
@sandwich1817 Why should I? :)
DoomedSpaceMarine123 4 months ago
@sandwich1817 No.
DoomedSpaceMarine123 4 months ago
@sandwich1817 Nah, I want to be the boss for myself :D
DoomedSpaceMarine123 6 months ago
@sticksquash I'm using Open Watcom C/C++ and I won't use inline assembly. I will write some drawing functions into a separate assembly file and use them in C. When I managed to write a simple function in assembly (that was just recoloring a single pixel), it was a few times faster than the one written in C. It's harder to program in assembly than C, but that's only a few functions which I need to be faster.
DoomedSpaceMarine123 7 months ago
Glad you're using C. Using assembly is un-necessary as inline assembly exists, and a lot of C/C++ compilers have certain optimizations you'd like to keep. There's also MMX, SSE, SSE2, SSE.x intrinsic functions you can use.
P.S: What compiler are you using?
sticksquash 7 months ago
@Headshot4Fun I like doing things myself, even those which I'm not keen on :)
By the way, I tried to run Quake on DOSBox to check how well it runs. Software renderer in Quake performs perspective correction 16 times more often than my renderer does, yet Quake is playable. This makes me feel like a loser :D But fortunately, I just managed to write a very simple function in assembly and use it in C. That's a good start - maybe I will be able to optimize the slowest parts of my renderer.
DoomedSpaceMarine123 8 months ago