Short: 3D engine, capable to load DN3D maps. Author: John Selck Uploader: j.selck@flensburg.netsurf.de Type: gfx/aga Replaces: gfx/aga/B-Engine.lha Version: 0.1 B-Engine V0.1 A small engine written by me (John Selck/Graham of Oxyron) in the end of '96/beginning of '97. After network playing hours and hours in Duke Nukem 3D I finally decided to get my ass up and code this engine... (Since I have seen DOOM for the first time I always had the feeling to do something like it.) However since it's rather... erm... senseless in trying this on c64 I started this on Amiga. (See, I am a c64 coder for 7 years now...) The engine is far from complete. It lacks optimisations everywhere but it's somehow still better than most others I have seen on Amiga. Most people even do some lame Wolfenstein-like stuff... Anyway, if (for any reason) I decide to continue this engine, I will rewrite it from scratch. This could mean a major speed-up, especially on the more complex levels. This engine has been tested on 030 and 060. It needs AGA, FPU and FastMem. All 060 owners clap your hands now: all non-060 opcodes (except for one FATAN in the initialisation) have been removed... So the 060 will not suffer from being trapped anymore! If you want to leave me a comment on this routine then leave me an EMail at: j.selck@flensburg.netsurf.de Usage: 1. Get a DUKE3D.GRP file from either the V1.3 shareware version or the V1.3 registered version and copy it into the same directory as the B-Engine is. 2. Starting the B-Engine will load E3L2.MAP from the GRP file automatically... If you want to load other MAPs, simply enter B-Engine {mapname}. The mapname may either be a file on disk (i.e. HD1:maps/huhu.map) or a file inside the GRP archive. In the last case use BIG letters only (i.e. E1L2.MAP instead of e1l2.map). You may also use TILES###.ART files instead of the GRP file. If you want to have a 160*200 (2x1 pixels) resolution, start B-Engine2x1 instead. B-EngineHi will give you 640*200 (in case you are interested :) Keys: +/- changes screen size F1 toggles NTSC/PAL Del/Help changes height I bet you can imagine the other keys... Features: - up to 4096 different tiles - any tile size from 1x1 to 256x256 (or more, never tested it :) (sizes for wrap around are 2^n only) - depth shading - brightness shading - X / Y panning of tiles - floor/ceiling mapping - different heights - single sided walls - different palettes (which may change from wall to wall) - parallaxing skies - HIGH accuracy of the engine - is able to handle Duke Nukem 3D files/levels - C2P optimised for 030/50MHz. Runs in copy speed. (A special C2P for 040/060 would raise the frame rate on fast machines, especially on 2x1) Missing features (towards the true build engine): - collision detection (i should take myself some tiiiiime for this one...) - tilted floors/ceilings (uhm, subdividing may kill everything below 68060) - floor parallax (too lazy for this one :) - transparencies (easy to do but would change some parts of the render routines) - sprites (...) - mirrors (i really don't feel like supporting this feature...) Bugs: - floor/ceiling tiles may only be 2^n, otherwise memory trash will be mapped - when two sectors are over each other, the routine will automatically move to the first one found (confusing, suddenly you are somewhere else...) - slight inaccuracy of the floor/ceiling mapping (it is integer only) - very complicated levels can crash the engine when more than 255 sectors are visible at the same time (i only found one map where this occured) - Flicker bug on fast machines using small screens. However, since I do not have a 060 I'm not able to fix this at the moment. However, on a fast Amiga the larger screens should do it anyway :) Future: Maybe I will recode this engine from scratch... (I.e. adding sprites to this (like it is now) engine will slow it down VERY much) NO! It is yet not planned to use this engine for a game.