Frag like it’s 1996 – this time with even more asses to kick! Join the world’s greatest action hero in Duke Nukem 3D: 20th Anniversary World Tour as he saves Earth once again, kicking alien ass and saving babes across the globe along the way. Blast your way through hordes of ugly aliens in four classic Duke Nukem 3D episodes plus an additional ALL NEW FIFTH EPISODE from the game’s ORIGINAL EPISODE DESIGNERS with NEW MUSIC from the game’s ORIGINAL COMPOSER and NEW Duke Talk from the ORIGINAL VOICE of Duke Nukem.
• ALL-NEW Episode FIVE, created by the original episode designers, Allen Blum III and Richard “Levelord®” Gray!
• New, bonus content in Episode 5: Duke Nukem finally gets a INCINERATOR to roast new “Firefly” enemies!
• New “Duke Talk” plus high-fidelity re-recordings from Duke Nukem’s original voice actor, Jon St. John!
• New musical score for Episode 5 created by Duke’s theme song author and original game composer, Lee Jackson!
• Original 1996 source code and “2.5D” engine re-mastered in True 3D for PC!
The following article is a copy-paste from a post I originally wrote in the Blast Radius WIP/Discussion thread on the Duke4.net forums on May 16th, 2021, detailing a specific approach to Build mapping that I find helps speed up execution as well as with oversight over the creative process tremendously for the more experienced users, all the while possibly being an interesting and accessible invitation to level design altogether for a complete beginner.
"I think this technique is the most optimal for efficiency at least for structured or big scale maps, but it also may be a better way for beginner mappers to learn from scratch than trial and error while painfully designing individual rooms in succession with little overall perspective on what they are doing. The basic idea is that carving into positive space is a lot easier and more intuitive than drawing into negative space, and so basically you turn as much of the grid as you'll need into a simple sandbox. Even 'non mappers' are welcome to give this a try as it all starts with making just one square empty sector using the space bar and the way I'm going to break it down, you don't even need Build knowledge but some of the most basic keys (Mapster32 key list can be found here: Mapster32 keys on the Infosuite). In fact I will try and break things down in a way that even the most unfamiliar with the editor should be able to follow.
First row of images - so you make that square sector with nothing in it. It's important for it to be square (just use the existing grid as reference but most importantly Mapster32 tells you the exact values anyway, keep in mind that those are always crucial to look at in everything you do), and it should be significantly big but not huge as Build notoriously struggles with sectors that are too large (you can get some weird unwanted behavior in-game e.g.. bullets stopping in mid air if not general corruption). So far I find 16387 (which is one of the distances automatically handled as a unit by the default Build grid, and the closest to the power of 8 that is 16384) for each side to be the sweet spot.
Boring side note as to why: I find it important in Build when it comes to sector and wall dimensions and axis to employ default values and powers of 8 as much as possible, because that's essentially what the game runs on and understands best. Again, remember Mapster spontaneously tells you the length value of any wall you're currently drawing (also meaning that you can fake start drawing a wall just to use the tool as a measuring stick in between distances before canceling). Working with grid lock off or diagonally can introduce some confusion at first, yet even in the most awkward situations I'd recommend to make sure to at least come as close to the next power of 8 as possible. This applies to the horizontal axis (the width of say, a crate) but also the vertical axis (the height of said crate) or so I find because that generally allows you to optimize distances and cover over more random happenstance (e.g.. city streets or hallways that feel the wrong kind of long but you have no accurate reference to shorten them by, most powers of 8 are the best indicators of what's going to work depending on which scenario you want). Ctrl + Pg Up/Down is especially great to work with for elevating surfaces in 3D mode because as opposed to just Pg Up/Down it allows you to add or subtract to sector height in blocks of 4 of the usual 'ticks' which I've come to find is actually ideal for most practical situations (for reference, see: Dimensions on the Infosuite, and still respects that in-game equation that in the end even player behavior abides by.
Anyhow, now that you've made your basic square, enter 3D mode with Enter (screen 2) and elevate the ceiling/sky with (Ctrl +) Pg Up as high as you intend the highest point of your map to be (screen 3, make sure to select the sky with the mouse and then hold Left Click the whole time you're actively elevating it or it will quickly rise out of reach wherever you're otherwise pointing the mouse, whereas holding Left Click will keep it selected). Personally I tend to go by the logic that spontaneously, wherever ground level is by default on a newboard.map will do for now, so I don't lower the ground unless specifics. At this point it's a good idea to pick your sky texture for the whole map, because you're just about to draw it. So point at the ceiling with V and make your pick, parallax with P if you want a sky anywhere in your map (strongly recommended if you intend even just one outdoor area anywhere, if that's the case then don't even think about indoors yet), give it a palette value with Alt + P if so inclined. In my case (screen 4), here I knew I wanted a mountain type of location in my map, and had had too much coffee that day so I made the sky obscenely high, somewhere in the negative 1 million range. But half that is tall enough for most big cities with skyscrapers realistically. [retroactive edit - the example map ended up turning into a level for Blast Radius and while working on it later, I occasionally found myself wishing I actually had thought even bigger there, so don't be afraid to overshoot vs. undershoot - more space is better as long as you can optimize its use]. Mapster32 tells you the exact Z coordinates of the floor/ceiling your cursor is currently pointing on the side.
Once your basic sector is ready, you're going to clone it. So in 2D mode (Enter key again to flip in between both modes), you hold Right Alt all the while going over the entirety of your square with the mouse and then let go, if done right your square should be flashing green (or whatever color it is in the current Mapster32 snapshots - row 2 screen 1), meaning that it's been selected (note: this works on individual sectors and groups of sectors once you have several). Now hit Insert to clone the sector, the new copy will appear atop of the original as your new selection so you must drag it out of the way before you unselect it. Here in particular, you want to move it right next to the original so that one side of each exactly matches - the editor will then consider that wall to be a split wall in between both and now you'll have a rectangle consisting in the assembling of two same-sized squares with a red line marking the middle.
Now, repeat the cloning process except with that whole structure this time; you'll be copy pasting the whole rectangle and then easily able to attach the new one to the former one, in order to get a bigger square formed of four of the original squares.
See where we're going with this - you want to keep cloning more and more squares all over to cover a considerable chunk of the available Mapster32 grid (remember that you can easily extend it to make larger maps than by default by retouching the value for editorgridextent in Mapster32.cfg).
On row 2 screen 2, I'm at the stage of having cloned the square-comprising-four-of-the-original-squares four times, forming an even larger square of square that I then cloned again (next two screens), etc., etc.. Keep going until you cover as much physical space as you think your map will ever extend to. And even then, when you think you're done, clone the entire thing again but this time, do not attach it to the side of the original structure and keep it separated from it like I'm doing on the last screen of row 2. This is because you'll be editing the actual structure of your map into the first grid of squares that you made, but you want a blank copy of the exact same pattern as a resource for coordinates if you later plan on editing individual sections that are eventually meant to overlap (think sector over sector/different floors within one same apparent physical space), clone more of empty the grid in, or if you ever regret changes in certain sections of the map in particular and wish you could start a whole region again, you can easily nuke the corresponding squares and re-import the corresponding empty ones [retroactive edit - that also works for copying stuff from map file to map file if ever needs be] - in general it's just super handy for all kinds of otherwise deemed advanced layout manipulation. Now, if you ever regret your original pick for the sky texture (which actually happens to me a lot at that stage), remember you can always replace the parallaxed skies and grounds (individually) in whole specific sections of your map by caching the texture with the properties you actually want with Tab then pasting it over any sky/ground there with Ctrl + Alt + Enter (undocumented in the Infosuite).
At this point, for convenient editing in 3D mode, you might want to boost the visibility in your map as well, which you can do by selecting all of its sectors and then switching to 3D mode to use Alt + Mouse wheel up on any sector or wall to instantly manipulate it at will everywhere (max value is 240). You can always adjust that again at any given point later, by the way, just make sure you're always doing it to the whole pack of sectors, to avoid the possibility of future inconsistencies from area to area.
Now row 3, basic principle of my map was that I wanted it to be divided by a large canyon with a river. So, clearly this basic concept was bound to dictate the fundamental design and thus, where it makes sense to start from. So on row 3 screens 1, 2 and 3, I'm drawing what's intended to become the outlines of the canyon/river. Note that I'm not inserting new vertices onto any wall yet and just starting and ending in the pre-existing corners of each square. This is because right now is still too early to mess with the basic outlines of the squares, and in fact once the actual structure of your map is in place you'll want the squares to go eventually so you can have all the resources back so you shouldn't rely on them - instead just consider them visual indicators, and their walls remaining bare of anything intricate is what allows you the current flexibility in manipulation, selection and copy-pasting - whereas the more vertices you insert, the less likely this or that wall will be to join with the rest, or later turn out to interfere with something else in the eventual design of the map. As much as possible for now, those red walls should be considered as non-functional in the design, they just structure one big space but don't count in it as such. The existence of some of them you might actually repurpose later, but ideally you'll want them all gone.
Row 3 screen 3, outlines of the river are done (note a certain focus on nooks and crannies as just as many gameplay elements) and so time to represent that visually in 3D mode, I mark any sector floor wherever the river is supposed to be with the water texture, cache'd it with Tab and then pasted it to every sector corresponding to the river with Enter (row 3 screens 4 & 5). And then marking the verticality right off the bat is also important, and so I easily adjusted the height of my whole river by combining two ways, one being selecting the sectors in groups in 2D mode before lowering all of them at once in 3D mode (row 4 screens 1 & 2) - determine one specific uniform Z value early and keep it in mind, watching numbers on the side is a lot quicker and easier than painfully keeping track of equal height everywhere visually - and the other being by directly inputting that value in 2D mode by hovering over the desired sector and pressing F7. A couple of minutes later, you get row 4 screen 3 where one fundamental aspect of the basic geometry of the level is already clearly dictated, and more elements ready to be determined.
And so now is time to use texturing to better clearly mark all the surrounding space. On row 5 screens 1 & 2, I had already determined that this particular pole of the map would be a town and so I textured the ground of each square for a rough guideline of where could later be a potential road, or dirt patch, but since at this point it's too early to dictate specifics and we're still working on the background structure I'm mostly using the available squares as a literal palette of tiles and tones that region of the map could use later. The surrounding space really allows for more perspective on this type of stuff than if you just followed the tiles menu with little to no actual hindsight and decided more haphazardly. On row 5 screen 3, I'm texturing the canyon in a way that more or less matches visually with the corresponding ground textures I picked for the neighboring sectors, although what I mean by that is better seen on the final screen on the list. Ctrl + Enter allows you to paste the currently cache'd texture (with some of its properties) onto several of the next walls at once, which makes tasks like these a lot quicker. Note that everything is still at shade 0 at this point, options exist to auto-shade walls but I prefer deciding on my own shading values depending on orientation and proximity to light sources and, since those haven't been established yet, for now I'm leaving as many values as possible untouched.
Next 3D shot and two 2D shots are me realizing that the original space I had allocated myself no longer sufficed and more importantly, according to the few basic elements in place so far I was starting to get a clearer idea of the actual form the layout could be taking, and so I'm extending it by cloning more squares in those directions. At this point I figured I basically wanted a very large forest type of region on the other side of the river, and so I elaborated on the scale a bit there.
Row 7 I'm starting to play with sector elevation most everywhere with Ctrl + PgUp/PgDown, again elevating squares to mark a basic outline that's later bound to be broken down in detail, sloped to form hills and what-have-you but for now only really need to just stand there for me to take them in consideration as I keep designing new stuff. Next two shots are special in that for the first time on this map, here I'm actually retouching the outlines of some of the squares, inserting vertices, moving them around and breaking some of the regularity; that's because those are intended to be the outlines of the map and as such, some exceptional liberties can be taken early on, although you don't exactly have to; it's just that since they are destined to border next to nothing, they are easier to just nuke and remake altogether in the case of a change of mind or problem without interfering with anything; in a way, one could say the boundaries are actually the first thing you're free to sort of finalize within a new map already. Here I think I personally wished for a visual marker to better set a tone for that corner and so I thought I'd make some quick cliffs. I built one row of them (row 7 screen 3), and then used one of the perks of my sector grid system to easily clone them and copy-paste them around the corner, with no issue despite having retouched some of their boundaries by just including the next squares they were joined with with my selection of sectors to clone, making the resulting structure easy to re-insert at will anywhere in the map in place of the corresponding number of empty squares (you'll need to think ahead and delete those first though - select in 2D mode, hover over selection with mouse then Ctrl + Del, which I'm just about to do in row 8 screen 1). Cool thing is, the whole thing already being selected, for no monotony when compared to the first set of cliffs it's also very easy to alter the height of the new bulk, and also flip horizontally with X (remember that also flips the orientation of the texturing in every selected sector, which might mess with alignment, so you might have to manually reset the textures in all flipped sectors when you're done).
Last screen is what I got after about an hour of work, weighing around 850 sectors but that comprises all the red walls forming the structural squares that are bound to go eventually and from experience, that's over half the current wall total. The modern limits are so high, that kind of resource buffer early on in the design process should be no problem in most cases, basically the more you progress on the level the more you'll end up joining (with J) and shaping the square sectors into more detailed work and earn everything back. In a sense, gradually, the squares are supposed to dissolve around the subsequent design of the map as you keep shaping it.
The idea is you then keep designing more tangible environment and structures out of a structured space that's already there vs. blindly extending into the obscure and non-existent, and digging deeper and deeper into detail and area micromanagement as the bigger picture progressively forms instead of improvising randomness (which is fine too, by the way, just not what everyone always wants or needs to be experiencing). I find that it allows more complete creative control over a map as one coherent piece (including instances of focal points, 'regional' themes and the extent of their presence and scope, symmetry, etc.) in addition to making many of the editor's otherwise relatively intricate workings a lot more flexible and fluid (area deletion, copy-pasting, sector-over-sector, perfect diagonals for ideal sloping-prone geometry... making it particularly optimal for tech-themed maps that tend to follow stricter patterns than the more abstract ones).
I sort of found myself really following that approach and workflow for the past two or three maps I've been making for Blast Radius I'd say, resulting in surprisingly efficient results. Since it's sort of a Minecraftian simplification of the grid, too, it's probably very accessible for unexperienced mappers to try and follow since what most need isn't necessarily technical knowledge but creative perspective - and it's a lot more exciting to be working on a level you know exactly is headed somewhere specific than on endless succession of improvised rooms with no real horizon in sight, whereas when there already is a set purpose for those rooms before they even need to exist then those tend to come out much more spontaneously."
Changelog from V 1.0 (Duke4.net forums): fixed some typos, added some specifics and edits, formatting
No articles were found matching the criteria specified. We suggest you try the article list with no filter applied, to browse all available. Post article and help us achieve our mission of showcasing the best content from all developers. Join now to share your own content, we welcome creators and consumers alike and look forward to your comments.
Updated version of Quotes of Duke pack including new voice lines and previous updates
This is the CD-rom that came with the August 1996 issue of PC Zone from Dennis Publishing, Included in this Disk is demos of Witchaven 2, Quake (First...
This is a CD-rom from the September 1996 issue of the UK Magazine EXE, Included in this large CD are demos of Quake, Duke Nukem 3D, MDK and other games...
Quick patch addressing missing audio in the GRP file
New audio files, and added GRP file for EDuke32, as well as VOC files for those not wanting to use the GRP over rite.
No files were found matching the criteria specified. We suggest you try the file list with no filter applied, to browse all available. Add file and help us achieve our mission of showcasing the best content from all developers. Join now to share your own content, we welcome creators and consumers alike and look forward to your comments.