ok here is an example what i ment above on the block pixel setting

and what i changed in the script. does it allot faster. if could tweak it a bit more might almsot work at 640x480 as its pretty fast this way.

Code:
 

function render()
{
me = player;
var color[3];
var trace_hit;
var xx;
var i;
var pixel;
randomize();
var format;
var yy = 1;
while(yy < screen_size.y)
{
pnl_canvas.visible = on;
format = bmap_lock(b_canvas, 0);
xx = 1;
while(xx < screen_size.x)
{
vec_set(temp.x, vector(xx, yy, 1500));
vec_for_screen(temp.x, camera);
trace_hit = c_trace(camera.x, temp.x,ignore_me);

if (trace_hit !=0)
{
i = (1-trace_hit/1500)*255;
i = int(i);
vec_set(color,vector(i,i,i));
}
else
{
i = 255;
vec_set(color,vector(i,i,i));
}
pixel = pixel_for_vec(color, 100, format);
pixel_to_bmap(b_canvas, xx-1, yy-1, pixel);
pixel_to_bmap(b_canvas, xx, yy-1, pixel);
pixel_to_bmap(b_canvas, xx+1, yy-1, pixel);
pixel_to_bmap(b_canvas, xx-1, yy, pixel);
pixel_to_bmap(b_canvas, xx, yy, pixel);
pixel_to_bmap(b_canvas, xx+1, yy, pixel);
pixel_to_bmap(b_canvas, xx-1, yy+1, pixel);
pixel_to_bmap(b_canvas, xx, yy+1, pixel);
pixel_to_bmap(b_canvas, xx+1, yy+1, pixel);
xx += 3;
}
bmap_unlock(b_canvas);
yy += 3;
wait(1);
}
}



just an fyi this is how older 3D engines worked realy, they just did the traces from the bottem last line of the screen though, then based on the distance returned would know how to calcualte the hight of walls sprites etc to be rendered in the view. ( the old acknex engine did this as well)