Hey all. I'm making a TF2 map, pl_surface_tension (aka "Surface Tension"), and I thought this would be a nice thing to shove in here to try and get the Creativity folder going. Whilst I may just give up eventually (level design is a tricky business), I'm going to try and plough through with this as far as I can. As long as I am actually doing stuff I'll be updating this thread regularly.
--
Surface Tension is currently 2% complete. It is in the state
Miniround 1 Architecture.
--
Contents7th March,
Keep This Doorway Clear28th February,
Bomb Spawn21st February,
Comparing: 6 Months Ago and Now21st February,
Terrain 2 (The Wrath of Khan)19th February,
Terrain2nd January,
Black Mesa Sector C: Test Labs & Control Facilities13th December,
Experimentation25th October,
Back! Screenshot Research6th October,
Hiatus3rd September,
Balancing2nd September,
Back to Planning28th August,
Complicated Stuff23rd August,
Rendering Engines21st August,
Assets19th August,
Building up Geometry18th August,
Making Textures Interesting17th August,
Surface Tension17th August,
Importance of Preplanning--
Saturday 7th MarchMinor stuff first! Updated the fence object:
Click for a bigger version.
Onto the bigger stuff. I completed a little doorway in the rock wall which will act as a graphical explanation for the cart's spawn point. Cutting an actual tunnel into displacements is overcomplicated and not recommended; for this reason I've just added a door right over the edge of the rock face. Hopefully no-one will question it!
Click for a bigger version.
I also finished off the cliff-edges, and expanded the bomb building slightly so that it's more in-scale with the buildings at the start of the level.
Click for a bigger version.
For my hard work I'm going to award myself an extra percentage point. 2%, woo!
Saturday 28th FebruaryMy original plan called for the next piece of terrain I made to be a plain rock wall, but it occurred to me that it could turn out quite bland and unattractive, especially considering my relative lack of experience with displacement geometry. I decided to instead carve a piece of the cliff-face out and improvise a quick detail building to sit in the resultant hole. When considering the purpose of the detail building (because everything in a map should have a purpose), I thought of my bomb-cart, and how at the moment it just emerges out of a hole in the ground unexplained; perhaps something pertaining to the transportation of said bombs could be a good idea? I ran with it.
Click for a bigger version.
Zoomed in, you can see the conveyor system, with bombs under-way, ready for the event that this team is not the one that makes it to the Red base. If the detail seems crude, it's because (a) it will be dimly lit and (b) I'm not doing prop_detail work until I've got the rest of the map done.
Click for a bigger version.
On a completely unrelated note, I found that Valve with the latest update have added the Something Awful TF2 server "advertisements" from cp_steel to the textures which are accessible in Hammer.
Click for a bigger version.
Knifeback Mountain is the UK Something Awful TF2 server (and the one I play on), and the Lost Continents are the same but for the US. Fishbus, cp_steel's designer, put joke advertisements for KBM and the LCs into his map before he knew that it would be popular enough to be rereleased by Valve - he had no idea that his funny decals would one day be usable by anyone making a map!
Saturday 21st February AddendumI thought I might get around to doing some lighting soon, and then rediscovered the reason I was leaving it. To do the lighting, I planned on copying some already set-up and fine-tuned props from my first attempt at Surface Tension.
Click for a bigger version.
Click for a bigger version.
Going back looking around the former image in Hammer, straight from the latter, was a bit of a shock! One thing my very first alpha did quite well was the detail rooms, though.
Click for a bigger version.
Click for a bigger version.
Which do you prefer? The very old version of the detail room is probably the better one in most people's opinions. Why, then, could this be a bad thing? Well, I think that concentrating too much at this early stage on the little detail rooms, signs, overlays, and lighting effects is detrimental to the map on the whole. Yes, I'll have to go back to it, but it's not something that should be consuming too much of my time now. Looking at a1, made over six months (!!) ago, made me remember that, after hours of tweaking perfect, vibrant lighting and spooky, atmospheric detail rooms, I still had to start again because my buildings were still basically hollowed-out cubes, and it simply wasn't good enough.
What's your take on version a1, from July '08? Input encouraged!
Saturday 21st FebruaryContinued building my terrain today. I've reworked the courtyard outside the base a little bit: I've removed the fence around the storage warehouse area entrance, as I want to give the Blu team more room inside the spawn area to roam during set-up time. I thought that, with the inner fence in place, things could get a little boring as you would be quite restricted in where you could go. I also applied alpha blending to the ground, and it looks a tad less bland now.
Click for a bigger version.
I also built up the outer fence, which separates the spawn area from the main battleground. The chicken-wire fence enables Blu to get a good look at Red's set-up, and Red to get a good look at Blu's class balance. As an aside, you may notice a cute little Blu Soldier standing outside. That's a prop model I've put in to hopefully get a sense of scale going while the map is still unplayable, as in Hammer it's very easy to lose track of how big (or small) things actually are from an in-game perspective.
Click for a bigger version.
I've also used a bomb cart as a scale prop for my cliff-face geometry. The practical side to using the bomb cart for this is that it makes absolutely sure that the cart won't look odd next to the cliff, as a hole in that cliff is where the cart will spawn from.
Thursday 19th FebruaryGot some progress done, after being made to feel a bit guilty by Roony! I've started working on some of the terrain around the Black Mesa site. Part of the reason I chose Surface Tension as a model for my map is that it's based in a wasteland environment, which fits in nicely with maps such as Dustbowl and Badlands, and the textures that they expose.
Click for a bigger version.
The toughest part of this is building up the
displacements which make up rockfaces and floors. The method of "painting" geometry in displacements is a stark contrast to the very precise and calculated architectural techniques needed when making a building or other man-made structure.
Click for a bigger version.
The reason this looks like arse? Twofold. The first reason is that the map is uniformly lit; this is Source making up for me not putting lighting effects in. This enables us to see the map at a stage where placing, fine-tuning and crafting lighting effects would be pointless, but does result in everything looking very flat and washed-out. The second is that, as of yet, I've done no alpha-blending on my displacements. Alpha-blending is a method of displaying a texture "on top" of a displacement that allows us to have paths in grass, or different types of gravel and sand brushed over eachother.
Click for a bigger version.
I've not set up my custom textures properly, hence the wireframe. Also, yes, that is a skybox from Half-Life 2: Episode 2 (it's the default). As you can see, the map is very much in a barely displayable form, but this is still a significant step in pl_surface_tension's life.
Friday 2nd JanuaryI began the tweaking process for this after Christmas, and have only just got to a place I feel comfortable in. The original geometry has been overlayed to provide points of visual interest - slants and overlaps, as well as more curves. This results in a better, more interesting environment for the player (bearing in mind that the player will have to spend 50 seconds at the start of every map basically staring at the wall, since the defending team needs setup time).
Click for a bigger version.
You can see that I'm using more interesting combinations of textures in this design, as well as being less reliant on prop models for detail. You may also spot my first piece of custom content: a 'decal' reading "Black Mesa Sector C: Test Labs & Control Facilities". I plan to put many such posters, logos and Easter eggs throughout the map as a homage to the game that inspired it.
I'm very pleased with this design, and how it incorporates elements from all previous layouts (see: the Black Mesa logo and base idea in initial planning, two-textures-per-wall and the roof textures from Texturing Concept #1, and the overlapping for visual interest from Texturing Concept #2).
This is probably the final version of the spawn room - so I've now finally, after months, left the research and planning stage! Hooray! (Surface Tension is currently 1% complete. It is in the state
Miniround 1 Architecture and Texturing.)
Saturday 13th DecemberGot some free time finally.
I've made an alpha version of part of the revised spawn area that I planned using the Surface Tension walkthrough on Youtube, described in the last post. The first step was as always to get some geometry going:
Click for a bigger version.
I wanted to get some curves in there, as straight geometry can be boring and harsh to look at. The Vault door was a lucky find in that respect: not only is it nice and rounded but it's also large enough to fit the exit building perfectly. Apart from that I just tried to stick as close as possible to the plan and the HL1 screenshots in this initial alpha, whilst reusing the general structure from past spawn area alphas where possible.
I then tried some texturing:
Click for a bigger version.
The main challenge here was creating a believable building without it being visually unsatisfying. Originally I had the building made out of a large concrete block texture, but I found that this combined with the block pillars made for a bland structure. I settled on this subtle brickwork effect for the main building, similar to the one used in the original spawn area, keeping different types of blocks for the pillars. I then used metal textures for some detail, and added a few large props to the area to give it some detail: this will of course be supplemented by lots of smaller props, lights etc in the final version.
Comments as always welcome.
Saturday 25th OctoberUpdate time! It's now half-term, so there should be a few updates over the next week.
I've been looking at the very end of the YouTube tutorial for the Questionable Ethics chapter of Half-Life. Why? Because I didn't feel comfortable with the spawn area for Blu bearing no resemblance to the area in which Surface Tension begins. By incorporating the end of Questionable Ethics into the background detail for the Blu spawn area, the Half-Life map and the TF2 map can be made similar, even though the actual tunnel that the Surface Tension HL1 chapter begins in would be impractical to reproduce.
Here are some screenshots of the area just between Questionable Ethics' last laboratories and Surface Tension's first dusty, rock-strewn battleground:
Click for bigger versions.
Using the background buildings behind the fence, and perhaps even some dead civilian prop models, one can easily get the effect of similarity with the scene in the above screenshots without compromising the core design of the TF2 map. The spawn area does have to be re-drawn, though:
Click for a bigger version.
The spawn area detail in the new overview is larger and more varied, consisting more of a straight wall with a rock overhang, so in principle it could be considered a better design anyway. Nonetheless, you might be wondering what will happen to the geometry I've already come up with concerning the spawn area; the answer is that it will, with some simple retexturing, be absorbed into the background complex.
Monday 6th OctoberYes, I know it's been a month. Shut up, SHUT UP! I've been very busy with school revision and coursework - I did tell you this would happen! - but I should be getting some stuff done over next half-term.
Wednesday 3rd SeptemberTiarny, being a man for all seasons (loves them and leaves them alone ... so alone), spotted a potential imbalance in Stage 1. Since balancing maps is an interesting subject, I thought I'd go through it here rather than in a reply.
Tiarny's concern was with the alternate route opened up when the cart was pushed to the checkpoint, and I can somewhat see where he is coming from; whilst I don't think the high ground advantage will be much use to Blu when all they have is water underneath them, what I do find concerning is the easy access that Blu have to Red's spawn. Casting around for similar examples in Valve's maps in my mind, I am reminded of Dustbowl's 2nd Stage, wherein it is possible for a defender to travel directly to the attackers' spawn via the side tunnel (then behind the house and through Control Point 1). This in reality is not exploited often, however that may be because Red have a control point to defend which draws them back to their spawn. If the teams were swapped, would spawn camping become a problem through that route?
The only way to tell how exploitable it is is to playtest it, I suppose. Certainly the water passage can be moved (in an upwards direction on the overview) so that you come out directly next to the dam's right side - this would draw the Blu player to attack the dam as intended, and make for a longer distance to travel to Red's spawn.
That particular issue thought about, here's what I call an 'ease of defense' map. I created a chokepoint map (green being easy for the attackers to move freely, red being very hard for the attackers to move freely). Then I created an ideal sentry location map and simply merged them together.
Click for a bigger version.
I have to say that I didn't quite intend for the left route onto the dam to be quite that easily defendable, however upon thought I don't have a huge problem with it - it just encourages the good use of an uber and/or the alternate route and/or spies, in my opinion. There are far worse chokepoints in, say, the last stages of Dustbowl or Goldrush. The house and the dam control room are easily defended, there are bits in-between which are easily attacked.
Overall the stage seems to be fairly reasonable. I didn't factor in a distance-from-spawn gradient or things like potential sniper hotspots because there's only so much that you can gain from diagrams (especially with the dynamic nature of the Payload gametype); what thought I gave to them suggested what the ease-of-defence map suggests right now anyway: the stage starts off easy and gets harder towards the end, and has parts which naturally become the front lines depending on how far Blu has pushed. This is intended and universal to all round-based maps.
Once again, all comments appreciated.
Tuesday 2nd SeptemberBack to more explicitly map-related stuff! I've been working on knocking up some map overviews. Way back when I made the original spawn plan I created the first version of the map overview, and I've been editing and working on that since. Tonight I created what I think will be (more or less) the final version of the map overview.
When I was considering the map in general, what I wanted to do was create something which gradually sank into the ground. This is for two reasons - one, to give the feeling that you're travelling down into a hidden underground base (the Lambda Complex), and two, because many maps are quite flat and I felt it was important to have lots of vertical levels. I also wanted to stages to snake around each other, partly to offer people glimpses of latter stages in the first stage, and partly because it helps with optimisation.
Click for a bigger version.
In this stage there are 6 different main height levels, as well as modifying high/low spots as well.
I am aware that it is not the clearest diagram ever (it makes sense to me and that's all that really matters, I suppose); I'd be interested in hearing peoples' thoughts on it, and of course if there's anything there that's hard to follow I'll try and clean it up at a later date.
Thursday 28th AugustMini-update so the first post doesn't completely stagnate: OpenGL is bloody complicated. To define a point properly, you need three structs:
Code: Select all
struct Vertex // This structure defines the colour
{ // and position of a vertex. Though this
unsigned char r, g, b, a; // may seem like all you need for a
float x, y, z; // point, consider applying lighting
} // or textures...
Code: Select all
struct Normal // This structure defines a point away from the
{ // origin (thus defining a vector). This is
float x, y, z; // the normal vector, and defines the direction
} // the face is pointing, used for lighting.
Code: Select all
struct TextureCoordinates // This structure defines texture
{ // coordinates, which tells OpenGL
float x, y; // the area of the texture file to map
} // to the current polygon.
It gets more complex when you want to calculate normals on the fly - you need a dedicated Vertex class. The basic idea behind it is this: Before rendering anything, you build the polygons in memory. For every polygon you can calculate a normal and add that normal as an attribute to every vertex in that polygon. By rendering stage, every vertex will hold the normal for every polygon it is part of, and averaging those normals will produce the vertex normal.
tl;dr It's really complex to even define a point in space in a way that is useful.
Saturday 23rd AugustI've been having a look at doing some SDL/OpenGL programming for a while, as I think that I'll be able to design better, more optimised and efficient maps if I have a knowledge of the code being used to render it. The one 'gotcha' that immediately jumped out at me, something that is obvious in the code but that I never would have discovered through pure mapping, is face normals (or back-culling).
When you draw a face in OpenGL (and DirectX as well), you give the renderer a series of points. It turns out that the ordering of the points is important; the renderer stores the order in which the points were given, and the face will only be visible from the side from which the points were placed in a counter-clockwise fashion. From the other side, where the points go clockwise, the face will not be visible at all!
Hammer works in terms of 3D shapes, and puts the points in such a way that every face has counter-clockwise vectors when looking at the face from the outside of the 3D object. However, consider this:
I texture the front face of my cube with a green texture, and all of the other faces with a transparent texture. Surely this will result in a green plane, no-matter what angle the cube is viewed from? This is a reasonable expectation, however the result is quite different.
Because of back-culling, the 'visible' face is not visible at all from behind the cube! This has practical repercussions for any object using semi-transparent texturing. I hope to continue my OpenGL adventure in the hopes of learning more about how a map is actually rendered in a game engine.
For anyone wondering, here is the code required to make an SDL/OpenGL skeleton application:
Main.h http://pastebin.com/f37d869ad (Main program header.)
Main.cpp http://pastebin.com/f2b54c844 (Main program code.)
Core.h http://pastebin.com/f778f9fac (OpenGL core class definitions.)
Core.cpp http://pastebin.com/f4a3664ac (OpenGL core class content.)
Thursday 21st AugustLooks like some neat new assets have come with the Heavy update. There are some new metal roof textures (so much so that even Dustbowl has had some replaced). There are lots of new rock prop models from Badwater Basin, as well as new metal wall textures from Ravine. I'm studying the maps as I play and learn them, hoping to gain an insight into the criteria Valve use when choosing to create these new assets over using relatively similar pre-existing ones.
The reasoning behind the new Lumberyard assets is simple - nothing like it existed in the game before. However, Lumberyard looks nothing like the New Mexico desert, so let's ignore it for now. In Badwater Basin, new prop models were made for rocks that provide vertical detail and support for other structures. Ravine features new textures - there are a lot of metal and wood building textures used, so my guess is Valve created some new ones to add visual detail and variety.
Tuesday 19th AugustNow that I'd created a 'texture palette', as it were, with my first attempt at the Black Mesa base, it was time to turn my attention to hard physical geometry. Whilst I was happy with the texturing on Attempt #1, I was not happy with my geometry - it stuck to my sketch plan too rigidly, and could thus be summarised as "2 cubes stuck to a face". This was clearly not the way to sculpt an interesting and varied environment.
I started off with these ideas in mind: changes in height, visible scaffolding, building overlap. Using these themes, I created plain, untextured geometry and edited and added to it until I was happy:
Click for a bigger version.
I then used the same textures as the ones I used in the first attempt to complete the base:
Click for a bigger version.
Overall I feel that this is a much stronger design than yesterday's, and I think that it could easily be very visually interesting: prop models can be applied to the roofs and my custom decals can be applied to some of the bare faces. Extra detail geometry such as windows and support bars will also be added.
Monday 18th AugustWhen making a level it is of course vital to keep the textures used visually exciting. When you're concerned about not using textures that clash it can be tempting to just use the same handful of plainish-but-at-least-they-work textures everywhere, but I'm sure you can realise that this will not make for an environment that excites the player. Whilst overlay materials and prop models can be used to great effect in adding detail, these steps will be entirely in vain if your geometry and its texturing do not please the eye.
Today when I was making the main geometry for the Black Mesa base / Blu spawn area, I came up against a problem: seemingly, there was only 1 texture I could possibly use on every single one of these walls without it looking silly to my eye. Of course, this wasn't good enough! The key to overcoming such a problem is experimentation.
The walls are made out of metal, so first I looked to other materials to find textures I could use to highlight and contrast my metal. It turns out there is a concrete-slab texture with a dark upper trim that looks like it could be used as a foundation for supporting a structure; I made the bottom half of the main base wall use this texture. This works because the trim acts as a visual border between the metal upper half and the concrete lower half, and it's logically possible that you may support a metal structure on a solid concrete base. Meanwhile, the visual excitement is created which previously did not exist.
After adding in the touch of concrete, I started to look for similar textures to my metal texture that 'worked' and found that, although there were none of the same style of metal, there were some of different types of metal which shared my working texture's rust motif. The newly discovered rusty textures share a visual element with my main metal texture and this helps them fit in together; however, since they are not
the same texture (indeed, one is flat and orange, whereas the other is ridged and grey-blue) it adds another layer of visual interest to the scene.
I eventually was left with multiple types of texture sharing my rust motif. I used one type on the inside of the spawn / exit huts, and the other type on the outside, using a chrome, bolted bar on the sides.
The image below shows the working basic geometry and texturing for the base. This is very early on in the base's development and lots of things are not yet done, however it is worth spending this much time thinking about the very basics, as if the basics are not there then no amount of more advanced mapping will be able to save the design. (The screenshot also provides you with a look at Hammer, the Source Engine world editor tool.)
Click for a bigger version.
Sunday 17th August AddendumSomeone asked me on Steam whether the name "Surface Tension" had any significance, noting the Black Mesa logos visible in the Blu Spawn plan. Yes, I'm basing this map around some areas of Half Life 1, and since the first stage is drawing from the level Surface Tension I thought it would be an appropriate map name. Here's the list of areas I've drawn up:
- Surface Tension (Cliffs)
- Surface Tension (Dam)
- Forget About Freeman (Tank Corridor)
- Forget About Freeman (Warehouses)
- Lambda Complex (Entrance)
- Lambda Complex (Generators and Labs)
- Lambda Complex (Teleportation Hub)
The areas for Miniround 1 are set in stone, but I've got no final plans for Minirounds 2 or 3 yet. I'm watching a Half Life 1 walkthrough on Youtube and taking notes on what I could draw from.
Sunday 17th AugustA huge part of making a good map is sketching and planning it out. I have a big pile of concept sketches on my desk and a folder full of "partial" maps in which I've tested out different textures and geometry ideas - this has culminated in the final design for Blu Spawn, Miniround 1:
Click for a bigger version.