Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by [MoW]-=Comanche=-, posted on February 01, 2001

Image Description, by [MoW]-=Comanche=-

This screenshot was taken from my new Voxel based 2.5D Voxel Engine (I call it 2.5D because it's not truly 3D). The Rendering Algorithm is coded in Assembler, so I get a very good scrolling speed on my Athlon 500. The Landscape is Gourand shaded and 32-bit.

I'm only 16 years old so this is my first try in programming such a huge thing. I hope you'll like it.

Do somebody have a idea how to render transparent liquids in that trench? All my Alpha-Blending stuff is very slow.

If you like it please give me feedback to:

Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.
henry ludemann

February 02, 2001, 09:54 AM

yeah, it's a cool picture, and i'm australian. (and is that 111 fps?)

Robert Clemens

February 02, 2001, 10:09 AM

Great work!
And of course I like those half-English/half-German-GUIs.
Just like I do :)

(Aus dir wird noch'n guter Entwickler :)
Wird Zeit das auch mal GUTE Spiele in Deutschland produziert werden)

Robert Clemens

Johan Wallström

February 02, 2001, 10:15 AM

Loosing the least significant bit does make a 50% loss of accuracy. You only get half as many colors (per channel). But who cares? You're going to blend it anyway, so noone will notice. In fact, as far as I understand, it's impossible to not loose any accuracy - after all, we are mixing two colors.

henry ludemann

February 02, 2001, 10:59 AM

Yeah, but instead of 16 bits -> 8bits, you have 16 bits -> 7 bits.
It should be to noticable though.


February 02, 2001, 02:16 PM

Hey about the Alpha-Blending. I tried out Assembled MMX-Code which is faster than your C++ Crap (sorry but it's slow) and it wasn't fast enough...


February 02, 2001, 05:26 PM

16!?!? Man you guys are so lucky... Back in my day, the internet was dial up BBS's and direct X was still a dream. We had to use peek and poke (C64) and used green or brown monochrome monitors Very cool looking voxel engine though. I'll have to try it out when I get home and start learning direct X myself.


February 03, 2001, 12:01 AM

Any chance of you posting the data files commanche? I'd be intrested in playing with a working demo

I tried to compile but got a few errors, one was a simple class redefinition of CVoxel but that was easy to fix.
The other is in asm: paddusb mm0,mm1 - VoxEdtest.cpp(1336): error C2415: improper operand type
Since I don't know much asm, I don't know what that should be
Any ideas??

Thanks for the awesome source of code! There are quiet a few things that I find of use in this!

I, like you, am a 16yr old coder - I'm working on a little graphics engine right now... It isn't voxel, but it is nice. It uses a 'graphics pipeline' much as 3D Studio Max does, where I can add modifiers for objects and deform them in realtime... Nothing as cool as yours tho, at least not yet *wink*

Keep up the awesome work!


February 03, 2001, 05:54 AM

This is MMX code, you have to use a MMX-compatible compiler.


February 03, 2001, 12:36 PM

Well... I'm also 16 and I have recently started into win32asm.

I also write dos asm, c, and HTML and java.

Right now I'm trying to figure out how to write directly to a window (no api calls).

If anyone can help (which I'm sure most of you can),
Please send me email at (

Thanks in advance!


February 03, 2001, 03:11 PM

hmm, hey, i see you are using a tile for the river ground, how about you alphablend a moving water texture over that tile before everything?
I think it will still look great, even when you start using the voxel engine for creating spashes in the water and stuff, it will work fast for sure, and otherwise you could even use an animated texture for the river ground..


February 03, 2001, 04:09 PM

Hey come on, it's not that strange he's 16 ..
I'm 17 now and placed #3 at assembly'00 64k intro compo (was 16 by then) and #2 in assembly'98 win-demo compo (it was lame, it was SO lame =)
The prods are in but you might want to check (shameless plug ;)


February 03, 2001, 04:13 PM

oops, ftp:// of course.


February 03, 2001, 04:47 PM

Yes you're right. I only said I'm 16, because it's my first work.


February 03, 2001, 06:03 PM

Tile??? That is no tile!


February 03, 2001, 09:11 PM

I know it is a voxel engine, but the colors used are from a tile right? So, you could overlay a watertexture to that tile and then aply it to your voxel engine, right?
I think I wouldn't look that bad, and it will be very fast ..


February 04, 2001, 03:43 AM

I just got one thing to say: Great work, Comanche! Keep on!

Martijn Stoffels

February 04, 2001, 01:12 PM

Hey, how many of us are 16? :) I'm getting the idea that I'm no longer the only one :)



February 04, 2001, 06:08 PM

Gee, I'm also 16, and I don'k know ANYTHING about programming compared to u guys!
A few minutes ago, I completed my first starscroller (2d) with C and inline assembler in DOS...
That voxel engine of yours really looks GREAT, and I hope it turns out well.
Anyone got any tips where I can learn something about doing demos in mode 13, or anything else concerning programming?


February 05, 2001, 12:26 AM

Very nice, good first project to choose; plenty to learn there. I also started doing graphics stuff and becomming an assembler head at 16.. 9 years later and that first project is still alive :)
Are you blending those textures in realtime or are you precalculating the blends and then rendering later? I'd recommend the later method (similar to quake 1's lightmap/texture blend caching but easier to implement) if you're not already doing that way.
Anyway, that looks neat, keep it up.



February 05, 2001, 06:59 AM

No that is not pre-rendered, because I wanted to deform the Landscape in Real-Time :)


February 05, 2001, 07:14 AM

"Anyone got any tips where I can learn something about doing demos in mode 13, or anything else concerning programming?"

Denthor's tutorials.



February 05, 2001, 07:52 AM

Looks nice. Nice to see you coding in assembler! The way I handled transparancy for my voxel terrain is suited to assembler code. It should be a lot faster than traditional 'x*a + y*(1-a)' blending. The optimisation assumes that the water is 50% transparent (which is okay in most cases):

-For any colours below the water level, we sacrifice 1-bit of accuracy per channel, so the first bit is always 0.
eg. for a white terrain (snow):
11111110 11111110 11111110
..for 24 or 32-bit colour modes.

Then to blend this with a water texture:
-Shift the colour DWORD (or WORD or whatever) right by one,
eg. shr eax,1; now the terrain colour components will be in the range 0-127
eg. for same white terrain:
01111111 01111111 01111111
(This is why we got rid of the first bit, so that we don't get an insignificant bit shifted into a very significant bit of another component).

-Add the water texture. The water texture should have be R,G and B components in the range 0-127, so that overflow doesn't occur.
-The sum of the terrain colour and water colour will give a 50% terrain, 50% water blending effect.
-If the water remains at the same level, you could pre-shift the texture for any areas under-water to save a 'shr' in the inner-loop.

I'm 17. Me and ld0d win.


February 05, 2001, 01:16 PM

Duh... Just spotted groundh0g's post saying the same thing as I did. At least you have a second opinion...


April 02, 2001, 10:01 AM

Why does anyone think that being 16 and coding is strange? I'm 13 and I can code c++, asm, and a horde of internet languages (started with VB though). I also have a question regarding the voxel engine in general. Does it use a sorting tree for (more) efficient memory usage or what? Because when I tried coding a voxel engine, it sucked up all my memory (256 mb)!

Good Coding! Keep it up!

Stefan Karlsson

August 11, 2001, 01:07 AM

ehrm.. (ofcourse) you take care about that in the blitter i would say.. and using an internal format the same in your code... ;)

This thread contains 55 messages.
First Previous ( To view more messages, select a page: 0 1 ... out of 1) Next Last
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.