My program doesn't have bugs. It just develops random features.

Legacy:Will/Developer Journal

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

Name Pending.[edit]

First Journal Evar!

This page is going to show how I'm doing while making this mod, in no order whatsoever. I'll probably also use it as a notepad to keep some ideas on, too.

Name suggestions are welcome.

Mod Info[edit]

This mod is DOM, but played DM style (no teams, all against all).

But theres more.

When you touch a DOM point, you will get sucked into it. Your player model (though with a DeRes effect skin) will be at the centre of the DOM point, with you in control of it. While you're in the DOM point, you are equipped with an ESR and inifinite ammo to defend yourself. People will attack you to kill you, and when you die the point becomes free again.

When you jump into the point, you will have your health put up to 200, with a maximum of 300.

Your health will regenerate, at a rate of +1/sec, and your score will increase every four seconds by one point.

Fairly simple. It shouldn't take too long to do.

Starting Off[edit]

I will need to subclass xDeathMatch for thsi mod, and replace the DOM points with my own version. The way to do this is to find both xDOMPoint actors, and disable collision for them. I'll also want to hide xDOMPoint.DomLetter.

I think now would be a good time to put in a list of what I need.

  • The gametype. Changes the DOM Points, and edits ScoreKill to remove any point scoring for kills.
  • My own DOM point actor, which, when touched, moves the pawn to the centre of the ring, prevents movement, and equips the pawn with an ESR.
  • A HUD class, to add in a small compass at the top.
  • A ScoreBoard class, remove 'deaths', leaving only 'score' shown.
  • An instant action tab subclass. I need to change 'frags' to 'score', and allow the score limit a three digit number.
  • Bot AI. Hopefully wont be too bad. I'll elaborate on this later.



As I did while making hoard, I'm creating the mod in pieces first. Make part one, part two, and part three, then link them all together. I've found it makes creating stuff alot easier.

Today I worked on the DOM point itself. Took a fair while to do, mainly because of the time I spent looking on immobilising (sp?) bots. Once I had that done, the rest was fairly easy. Increase health, set the pawns position, delete the pawns other weapons and give it an ESR.

Deleting the other weapons works well, but I'm having a few problems adding the ESR. I had it, once, but now I've lost it again, and for no reason I can see. Stupid thing.


Fixed the ESR, added point scoring and health regeneration, and that's the DOM point done. I altered the scoring, because scores were growing too big too quickly with the old method. All that was left was to link it all together (HUD, DOM Point, Scoreboard, etc), and it worked!

Except for the bots.

These gave me a bit of a headache. I made the bots go to the point, I made the bots attack the person in the point, they would even have small fights around the map. But getting the bot in the point to react to being shot was a pain.

The way I solved it was to find person P, then tell the bot to shoot at person P rather than allowing the bot to figure it out on its own. So now, when the bot is in the point, it will shoot at anyone near enough. I had to add a small check to prevent the bot aiming at carcasses, because it was picking up on them as enemies as well.

The last thing I solved was preventing the player in the point picking up weapons.

It's pretty much working now, I just need to do some testage.

And I'm still looking for a name...


Will: I'm still looking for a name for this - suggestions are welcome.

DJPaul: SetLocation()ing the bots every tick... hmm. Try this state (which lived in a xBot subclass), which I've borrowed from teh TeamFreeze mod - hope you don't mind Gerard!

state Frozen
ignores WhatToDoNext, Startle, SetOrders, SeePlayer, EnemyNotVisible, HearNoise, NotifyLanded,
        DoWaitForLanding, FightEnemy, DoRangedAttackOn, ChooseAttackMode, NotifyPhysicsVolumeChange,
        SetAttractionState, ClearPathFor, DirectedWander, WanderOrCamp,
        NotifyHeadVolumeChange, NotifyHitWall, NotifyBump, KilledBy, HitWall, Falling,
        TakeDamage, ReceiveWarning;
    function BeginState()
        if ( (GoalScript != None) && (HoldSpot(GoalScript) == None) )
        if ( NavigationPoint(MoveTarget) != None )
            NavigationPoint(MoveTarget).FearCost = 2 * NavigationPoint(MoveTarget).FearCost + 600;
        Enemy = None;
        bFrustrated = false;
        BlockedPath = None;
        bInitLifeMessage = false;
        bReachedGatherPoint = false;
        bFinalStretch = false;
        bWasNearObjective = false;
        bPreparingMove = false;
        bEnemyEngaged = false;
        bGodMode = true;
        Acceleration = vect(0,0,0);
    function Endstate()
        bGodMode = false;
    function Tick(Float DeltaTime)
        Pawn.RotationRate.Yaw = 0;

Will: That might have worked - if I wanted the bots to not react to anything :)

Piglet: Some rediculously cheesy name suggestions... Lockdown, Crackdown, Halt, Freeze (they sound even worse now i've written them down :P oh well)