Mostly Harmless

Legacy:Xhiris/Developer Journal

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search

23 Feb 2004[edit]

I know I said Deus Ex door movers are "an incredible pain in the ass", but my opinion of them has improved greatly.

I guess I'm still getting used to the way Unreal handles things. I'd love to be able to just plop in a door in UnrealEd, but all you really have to do is make your object once, then copy and paste it about the place.

I'm thinking of making a "warehouse" map with nothing but a bunch of useful objects like doors and such.

I'd still like to try making an object of my own, DeusExDoor, that you can just plop into a map, but I've no idea where you begin.

I'm aware you can make new objects based off "Actor", and define the mesh it uses. Thing is, can you do this based on a Brush instead? I'd like to, say, make a Door object of fixed dimensions, and define the front/back textures by use of an enum (sort of like how you define what icon a computer login screen uses).

How can I make a new class, that:

  • Can be dropped into a level,
  • Contains a mover brush,
  • Whose dimensions can be set via properties of the object, and that
  • Lets you specify the surface of the door via an
    • enum
    • or supplied set of textures,
  • lets you specify
    • the open direction and pivot point via properties (I don't anticipate moving the pivot freely, just specify which corner of the door it sits on, and that defines the turn direction and hinge side)

Wordy, but here's my key question:

Can you create a new Unreal class based on actor that uses a brush you specify rather than a mesh? If so, how? can you do how?

21 Feb 2004[edit]

OK, so I've got the itch to do something.

I'm following a couple tutorials on making doors in Deus Ex...

What an incredible pain in the ass.

Not the tutorials, the way you have to add doors.

So, I'd like to make a DeusExDoor object that encapuslates all the "door" properties of a mover:

  • Only two keyframes: open and shut
  • User-definable texture, or maybe an enum?
  • How it opens: slide or pivot
  • Single or double doors (think elevator doors that open like this {– --}

It looks like a mover is a special kind of brush. Is it possible to define a mover brush that has

user-supplied dimensions at runtime? That is, I want to be able to plop a DeusExDoor object in the map,

and supply how tall, wide and thick the door is.

We should be able to derive the rotation/vectors/pivot point for the Mover based on our supplied

properties.

My other thought is to create a simple rectangular mesh and use that. That is, treat the door as another

Actor. I don't know if that's feasable; I imagine you have to define your animations in your 3D editor

rather than in Unreal.

Still, anything to minimize the effort in plopping down doors....

Or perhaps I still have much to learn about UnrealEd?

20 Feb 2004[edit]

There's nothing quite so annoying as losing your focus...

The short of it - I really want to write a game like Deus Ex, but there's so much to learn - I don't even have a coherent story yet.

I set out to "document" everything in Dues Ex so developers (including myself) could have an easier time writing mods for the game - I'd really like to see the Deus Ex mod community take off again.

My problem is that I'm not sure what to focus my efforts on. I've been taking the comments in the classes and reformatting them so that UncodeX can pick them up as a baseline. Thing is, I'd really like to avoid making any changes to the code, including comments, before everything in there is understood.

I've also considered splitting out copies of all the classes, whose sole purpose will be to run them through UncodeX and document them. Then we can begin work on refactoring it in earnest.

I'd be much more confident if anything we do doesn't mess with the code. Or perhaps we should comment the codebase to our heart's content, and worry about how UncodeX will cope with it afterwards?

I really need a more concrete goal here. Help! :)

11 Feb 2004[edit]

How Unreal Loads Things[edit]

IN THE BEGINNING, THERE WAS None. And Unreal saw None, and proclaimed it ungood...

OK, so there's a whole object heirarchy in place. You can instantiate objects through code, etc.

Now, how does Unreal do it? When you start a game, what objects are loaded, and how do they get that way?

  • When you open a map, the stuff in it gets instantiated
  • Other objects instantiated through code.

What does the game instantiate before you open a level?

In Deus Ex, you can get a reference to the player through Window (DX).GetRootWindow(). But where is the "Window" object in the first place? What loads this?

The .INI files have interesting stuff (namely DeusEx.ini). Does this control what gets loaded at runtime?

07 Feb 2004[edit]

Went to a training course on some "learning management system" last week, and kept thinking on how to implement it in UnrealScript. I'm spending way too much time looking at this stuff. :)

Now I'm back, let's see if I can figure out Deus Ex UnrealScript in earnest!

Open questions:

  • Does the Deus Ex version of the engine support delegates?
  • Can you make UncodeX exclude specific sections (ex: delegates), if the game engine you're using doesn't support them?

Comments[edit]

DJPaul: No, Deus Ex (1) is based on UT1998 version of the unreal engine, so no delegates. Deus Ex is a hard game to mod for.

El Muerte TDS: and for the second question, no can't exclude specific sections like delegates, I have't split delegates from "normal" functions yet. But using the comment /** @ignore */ will leave you that var/struct/function/etc. in the output.

DJPaul: Steve Tack did a lot of good DX tutorials: http://www.planetdeusex.com/tack/index.html - specifically, you're after http://www.planetdeusex.com/tack/HowToAddADeusExStyleDoor.html but if it's mapping you want to do, go through all his tutorials, which are great and Deus Ex specific.

Xhiris: Thanks - that's actually the one I'm following. I'm trying to automate the process - perhaps a brush builder?