I don't need to test my programs. I have an error-correcting modem.

Legacy:PendulumDreams/Developer Journal

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
Starting a Mod from scratch

July 7, 2003[edit]


I'm going to try and document everything I go through to the successful completion of my Mod. Firstly, I am not asking anyone for help. I want to do as much as I can on my own and only when I am stuck (Can't find help online - in some document) will I start looking for some help. I admin that I will definately need some help due to the fact that I can't draw. I am doing a Total Conversion, because my mod requires it, I couldn't design it just as a Game Type and definately couldn't design anything close in a Mutator.

As per Mychaeel's - Mod Startups page I am not going to design my website for my Mod yet. First off who'd want to visit a page that say, Started working on my Mod (and that's about it). I'd think you at least have to have something to show first.

You could call me 100% new to Mods. I went to school and learned VB 6. We spent about 15 days on C++ which a person cannot learn in 15 days. So I had a very basic syntax knowledge. Well on Vacation I ready through a MFC C++ book (read what I thought was important, not everything about MFC) so now I've got a little better knowledge. As for Mapping and Modeling, Haven't done any of that either.


So About 2 weeks ago I started working on my first Map. I've been using a lot of documentation online to help me along and the best site in my opinion is UDN. I've been working on designing the map and it's not some idea that just popped into my head, it's a map of a place I've had designed on paper for 10 years. With some minor additions to make it better considering it was designed 10 years ago. For now this map is going to be designed and never completed because I will be rewriting some of the classes that affect some actors I need in the map. So when I get all the coding done I'm going to end up completing my maps. At least I can design the structure before-hand. Anyways I kind of need a Map to test the changes I make, like the vehicle I will be designing once this Map is ready for it.

Terrain is something I currently do not know about and will have to learn. Ladders however are something I am using in my map, some stairs too, but to this point I have yet to see a UT2003 Map that contains Ladders. Do people not like them or something? Personally my Mod is Ladder friendly so for those that don't like ladders you'll understand why I have them when you see what I'm working on.


My vehicle (which I will not say much about yet) is going to be my first UT2003 coding effort. I've seen a couple examples already and did try to make it already but I tried too soon, I need to find some more code and do more research as to how to design one before I will be able to. My first vehicle will require a weapon that will only be available when in the vehicle, you won't be able to pick up some weapon that will do what the vehicle will, so that's another thing I don't really know how to design because the bulldog shoots a rocket which is already designed as part of a weapon you can pick up. Anyways, I'm going to try and break a vehicle down to the basics, meaning no Dust or Lights. When I get that done I'll post the class here which will be a good starting point for a vehicle because you should only need to change minor things and add whatever extra stuff you require.


  1. Tell everyone reading this a little more information on what my Mod is about, but for now I'm keeping it a secret.
  2. Try to Design my own Graphical Menus with the GUI Components they will require for choosing a Player in my Mod, etc. These Graphical Menus will be added in addition to the ones currently available on my screen so I can design them. Later on they'll be taken out and be inserted straight into my Mod along with the ones that will remain the same.
  3. Start to design the template of my Future Website.

July 12, 2003[edit]


Reached the point that I wanted to add some lighting into my map instead of just using the Ambient Lighting. So I removed the lighting and started to design a brush that looked like a torch. After designing a room with 6 of these torches, each with a steady light and a flickering light (which is slightly brighter than the steady light), I realized that using brushes was going to be a pain. So I made one into a static mesh in UT2003. It however doesn't have the correct textures because I haven't created them yet, and I would like to expand on it a bit because it wasn't as detailed as I'd like. So I installed Maya.

Maya 4 PLE[edit]

What a cludgy program compared to UT Editor. Even moving around in the program you need a 3rd mouse button. Of course I managed to crash it just by moving around. I'm going back into UT to try and design it in there. For now I'll stick to UT Editor because it can do what I need even if it might be a little more work. I could care less about the amount of work though, because I want everything to be as good as I can make it. So it's back to work.

July 16, 2003[edit]

Static Meshes[edit]

Found UT Editor to be fine for designing a Static Mesh. I've got a copy of the brushes in the level in case I want to change the textures or the mesh in any way.


Run into the problem where a thin wall allows flickering light to pass right through it. Not sure how to block this yet, but I'm sure I'll find something. Regular light as well is passing through a part of a wall on my map and I'm exactly sure why. With the way my map is going to be designed I'm not sure if this would be a real problem if I just left it, but I want to design the map as well as I can.

Groups Browser[edit]

Talk about a very nice feature in UT Editor. I've been assigning like actors (trigger lights for torches hanging on the walls, trigger lights for torches placed in holders in the floor, etc) to groups so if I need to make a change to them I can select them all with a single button click and change them all. I've even used this already and when it comes to adding fire damage to my flaming torches (so you can't stand in the flame which would be completely unrealistic if you could) I'll do it all at once. Also very nice to be able to remove objects from your view, and extremely easy to do so.

Portals and Anti-Portals[edit]

I've started sectioning off my map using Portals so the map doesn't have to render more than is needed. This will allow me to add greater detail in each section without slowing down a users machine. Plus it's fun to walk around in the map in "rmode 1" (especially since I've been wandering around in the map which has one default texture for everything right now). Haven't placed any Anti-Portals at this time, but plan to try adding a few tonight and see how that goes.

July 28, 2003[edit]


Well, can you believe that I'm actually working on my map when I should be out living it up. After all a 29th birthday only happens once. I guess that shows where my priorities are. Anyways, who cares that I got older, I sure don't so lets get on with it.


I completed my first Mover which is basically a bridge held up on one end by chain. Currently triggered by standing on it though it will be changed to a different static mesh I have to create which will basically be the crank system to drop the one end of the bridge in the water. Anyone ending up in the water, and unable to get out quick enough will be swept away in the current. The bridge is a really easy construct - Basically just a stone walkway with 2 chain hooks embedded in its sides on the hanging end. The chain then hooks onto these embedded chain pieces and runs up and into a wall. To give it the effect of the chain moving when the bridge is dropping down I had to use 3 sections of chain (each a mover as well) which rotate as they move to keep the chain appearing straight. It's not much to look at because it's not really moving like a chain would, but considering the chain isn't extremely important to the map it will do.

A Very Crude Representation[edit]

* = Chain
|  | = Wall
|  |

|          = Bridge


  |  *
  |  |*
  |  | *
  |  |  *
__|__|  _*____________________
       |  *


  |  *
  |  |*
  |  |*
  |  | *
__|__|  *
         *      ______________
       |  *        ___________

This is as good as I can do in plain text. I'm sure it shows the point of how it works. Now I just have to hook it all up to the correct trigger and that's one thing done. The Portcullis and Drawbridge are the next movers I need to create. They are both seperate and will be triggered from different places in the map as well.


Has anyone ever Built a map and when you start walking around in it you reach an area where the floor or wall (some brush) appears invisible, and it's only part of the brush too, not the entire thing. Why does this happen and does anyone know a way to eliminate it?


Foxpaw: I can't say for sure, but this sounds like it might be related to your anti-portals. Perhaps they are occluding polygons that they should not? I am not too familiar with anti-portals but I think I read somewhere about something similar being related to anti-portals. On another note, you might be able to make the chain you were talking about look better if you use Karma for the bridge and chain. Of course, this would use a lot more CPU cycles, but it would be cool. :P

Pendulum Dreams: I actually haven't put any antiportals in yet. I have rooms (indoor) divided off with portals and haven't noticed any problems in those areas though at this point it's hard to tell because I have only a few rooms with light and usually have to go to rmode 2 or something to find my way around in them. I'll light them up eventually. As for Karma, I don't know how to use it yet. Can't say I really need the chain to look like it's getting longer and coming out of the wall, I suppose it would look cool, But I don't think for my first map it matters. I'm reading up on Scripted Triggers right now because I'd really like to make it so that when you trigger the Bridge you can only do so so often. And what I really want is when you use the trigger point you can't move until the bridge is just about to return to its original position. Hence giving it the effect of you needing to hold the thing down and your strength eventually giving out and you letting go of the device. I'll eventually get that working, if I have to I'll learn UnrealScript at this point and make my own trigger. (or die trying) Thanks for the advice Foxpaw.

MadNad That half brush being invisible probably has to do with sorting. You probably subtracted in an addbrush. Select the messed up brush, and either ctrl+w to duplicate it, or select it and click right mouse button→> polygons→>to brush. Then delete the old brush and add your new one. It should be fixed :)

August 1, 2003[edit]


I found the problem that was causing my light to shine through under the wall I had made. It wasn't because of the wall, in fact it was because the floor was actually subtracted space. I ran a test and raised the wall up 16 and put an additive floor under it, and the light no longer shines though.

So I'm starting a new map. The current map will now be the map where I mess around. The new map will be where all my learned knowledge gets put to use. I think before I start the new map I will learn about Scripted Triggers, Karma as Foxpaw suggested above, and I need to learn more about sky boxes since I will need one in almost every map I make. Anyways it's early in the morning and I need to get to work so I'll continue my ramblings of what I'm doing and where I'm hitting walls and such later.

August 6, 2003[edit]

Lighting Dreams[edit]

Well, I made my first skybox (with temporary textures) a few days ago. I created it 1024 w * 2048 l * 1024 h in size. After adding the textures I found that they didn't quite fit and I didn't want to stretch the textures because I want them to look exactly the way they should. So instead I changes the size of the skybox by 3, so 1021 x 2045 x 1021. The Textures seem to fit much better in this area, I still have one slightly bad area, but I'll be covering that over with some ocean waves so no one will ever see the subtle problem.

Anyways onto my Dreams. I spent 4 days trying to see if I could accomplish an idea I had. Basically I was wanting my world to have the ability to change from daytime to nighttime. So I wanted a moving sun and moving sunlight or something similar. So I tried to find ways to change light. I tried writing my own cross between the Sunlight and Mover code and of course that didn't work. Since I'm new to Unreal Script though know the basics of C++ and work in Python all the time I can guess my way around, but it didn't help. So I thought maybe using a sequence of Triggered lights, but since they only use Dynamic light and I found out that Dynamic light doesn't cast shadows I gave up. It's so sad because it would be so nice to have a map that can change it's own light. The maps I'm designing will be used in a gametype I will create that could last 30 minutes of play. Regardless of that, the gametype idea could easily use the day to night effect to make things seem more real. If anyone has ever found a way to do anything like this I'd love to hear how.

Foxpaw: You can attach a light to a mover, or so I've heard. I don't like the built in attachment code so I wrote my own for use in my classes, but I don't think it's that hard to attach a light to a mover. However, there is a number of problems with just doing this if it's going to be a big light, like the sun:

The lightmaps on BSP is raytraced and thus must be generated at "build time" for performance reasons. It cannot be changed through Unrealscript during play through any method that I could even imagine. (Well, okay, I could imagine a way to do it, but it's more trouble and would use more cycles than just doing the raytracing in real-time.) Thus, even if the sunlight actor changes location and direction, the lightmaps on BSP will not be affected. Static Meshes and regular meshes use vertex lighting that is generated in realtime and would be affected by a moving light. I am not certain which lighting method terrain uses. It is possible to get around this by making your entire map out of static meshes, or using BSP only for indoor areas where the lighting will not change.

In addition, the default shadow code does not adjust to the actual locations of the lights around you, so it's direction will not change over the course of the "day." Sourced Player Shadows could probrably be used in some way to fix that, or you could write your own shadow code.

August 24, 2003[edit]

Meshes and Movers[edit]

Well, so far the map is coming along good. I have a total of 11 brushes, 4 of which are brushes for static meshes I've designed. Want to keep those around for when I redo the textures on the static meshes. My previous map had around 200 brushes, so I'm definately changing the way I'm creating it.

I tried making a wall consisting of movers which I wanted to have look damaged as they were hit with weapons. Instead of using an emitter I was thinking I could put 6 movers on top of each other, each mover looking more damaged than the previous one. And of course then I ran into a crash saying something like I hit the 1,000,000 movers limit. I know I never had that many movers, probably about a few thousand. So whatever that problem was I switched back to making it a single mover per spot and I'll work on emitters later for these.

Having problems using the built in Terrain Editor. It always seems to steal 100% of my processor when I have it on and I can't make any changes to the terrain. This will sure make it interesting when I need to develop the terrain for my map.

Foxpaw: For those "damageable walls" it would likely be much better performance wise to have an actor that changes it's static mesh, instead of 6 actors that appear and disappear/move. Alternatively, depending on just how much deformation the walls are going to take you could possibly make a procedural mesh to do something like Geo-Mod for Red Faction. (The collision would not be changed with the procedural mesh though so you couldn't blast a hole through it and then go through the hole.

September 1, 2003[edit]


Tried to use an emitter for creating a destroyed wall effect. The Emitter however wouldn't trigger exactly when I caused the wall to move which resulted in a really ugly effect. Who wants a wall to disappear and then 1 second later some pieces of wall appear and fall to the ground. Going to figure out some other way to make things look good.

Foxpaw: I'm not sure what the cause of the problem you are having with that emitter is, but if you'd like, I can probrably figure out what is causing that delay with more information about it.

Pendulum Dreams: I'm not going to worry about it right now actually. I think I found a way to do something that would suffice and I think I'm going to wait and add all the special stuff till the end. If for some reason I can't add as many movers as I want or something I'll just cut back in the end. Better putting in place the important stuff first and the optional stuff later. The Emitters would be an effect of an optional thing so they're kind of optional themselves. I'm taking too long trying to figure out the optional stuff and because of that my map isn't getting finished very quickly. Thanks for the offer, if that still seems to be the problem when I put the Emitters back in I'll send you a copy of the map Foxpaw. It could be a while though because I've got a lot of work to do. Thanks.


EntropicLqd: When I'm building a map *(not that I do it often) I always set the ambient light level to something reasonably bright. That way I don't have to worry about lighting the level immediately and it's easy to spot misaligned textures.

Pendulum Dreams: I guess that everyone is different in their approach. Since I can't draw I've only worked on textures that the static meshes I've designed will use, so I haven't needed a lot of light in the map because I've been staring at the same old texture for everything and it's almost getting hard to look at.

MadNad I tend to start a room & theme first before I spend all my time in the layout.

EricBLade 3 years later, ever get anywhere?