Jump to content
The Dark Mod Forums

Newbie DarkRadiant Questions


demagogue

Recommended Posts

The AAS always gives that error when there's been changes but no dmap, so I'm not sure it's causing the crash as opposed to a symptom of it (e.g., if AAS is one of the last things dmap does in those final seconds).

 

A malloc error is a common thing to cause a crash, but it usually (AFAIK) leaves an error message (edit: but not necessarily, looking at the descriptions again). But anyway, here is a link to fixes for it (the final Q. at the end of "Crashes & Warnings"), so maybe try those things.

What do you see when you turn out the light? I can't tell you but I know that it's mine.

Link to comment
Share on other sites

Another reasons for crashes I noticed once was when I placed a speaker inside a model. I wanted to emit a machine sound from a machine, and thought that it would just be natural if the sound comes from inside the machine. Well, It crashed either. The speakers are supposed to not overlap with anything solid, so may look out for that.

FM's: Builder Roads, Old Habits, Old Habits Rebuild

Mapping and Scripting: Apples and Peaches

Sculptris Models and Tutorials: Obsttortes Models

My wiki articles: Obstipedia

Texture Blending in DR: DR ASE Blend Exporter

Link to comment
Share on other sites

No, during load IIRC. Just something to look at. :smile:

FM's: Builder Roads, Old Habits, Old Habits Rebuild

Mapping and Scripting: Apples and Peaches

Sculptris Models and Tutorials: Obsttortes Models

My wiki articles: Obstipedia

Texture Blending in DR: DR ASE Blend Exporter

Link to comment
Share on other sites

Yes but his description was it only crashes during dmap. That's why I mentioned it.

 

But sure, having the centers of things in other things can lead to bad mojo for all sorts of situations, (like objects with centers in the void and some other things I can't recall just now), so it's a good general thing to remember anyway.

What do you see when you turn out the light? I can't tell you but I know that it's mine.

Link to comment
Share on other sites

It's the origin points that matter they need to be within the map, not outside it. For lights the center should be in the map anyways.

 

For Func_statics you have 2 choices. Make a nearby brush that is isnide the map a func_static and with it selected select the func_static that's origin is outside the map, then right click > merge entities. This will make them one but it will have the origin point of the first selected f_s (which was a bursh inside the world).

 

Or select the f_s and hit v, you can't move any verts around but you can drag the origin point into the map.

Dark is the sway that mows like a harvest

Link to comment
Share on other sites

If you ever have maps which are not hugely complex, or have narrowed down a dmap crash. Please pm me a copy of the map or something. Models causing crashes are also welcome (I know sometimes freshly exported stuff has issues) :)

 

Once my engine porting work is all done that's something I really want to look at (as well as other mapper/content related problems/crashes)

 

Making an item on the bug tracker is also a good idea! (likely what you should do first :))

Link to comment
Share on other sites

Solved it! I tried all the various fixes recommended (adding visportals to smooth out how many entities were in each leaf, applying the 4 GB patch, copy/pasting the whole level into a new pat) but nothing worked. So, as a last resort I just started erasing parts of the map until dmap started working and then looked at what was wrong w/ the stuff I erased. It turns out that as part of the changes to the map I had moved around some angled brushes. Due to a bug in darkradiant these brushes got deformed in the move and were clipping into the surrounding brushwork. The amount of the clipping was tiny, like less than 0.25 units, but I guess that was enough to cause dmap to crash. Once I snapped everything to grid, the problem went away. And now, I'm going to bed :-).

Edited by Moonbo

But you should walk having internal dignity. Be a wonderful person who can dance pleasantly to the rhythm of the universe.

-Sun Myung Moon

 

My work blog: gfleisher.blogspot.com

Link to comment
Share on other sites

The amount of the clipping was tiny, like less than 0.25 units

Please please pleassse tell me you have a copy of the map with that happening? There are a number of situations which this could result in the dmap process screwing up, and I'd really like any examples of it that people can recreate. I've manually mangled a lot of brushes to try recreate it, but I just cant seem to get it right. It also helps that it's an actual map, because the resulting geometry needs to make sense :)

Link to comment
Share on other sites

In my experience, tiny sliver clipping is actually much worse than clipping of a few units. That's used to be my number one cause of the infamous black walls of death, until I started going out of my way to avoid slivers of anything.

What do you see when you turn out the light? I can't tell you but I know that it's mine.

Link to comment
Share on other sites

Hey Serpentine,

 

I most certainly do have a copy of the map where the crash was happening. I'll PM you with two versions, my last snapshot pre-crash and first post-crash.

But you should walk having internal dignity. Be a wonderful person who can dance pleasantly to the rhythm of the universe.

-Sun Myung Moon

 

My work blog: gfleisher.blogspot.com

Link to comment
Share on other sites

I made the frame so it was more like Fidcal's picture than a frame without smaller boards in it would be.

 

This discussion has come up before but here's the basic jist of why the model doors will never be set up with a corner hinge:

 

1-It's a game. Really, there are a million and one things like this we could do to make it all more 'realistic', there's not time and it adds other complications.

2-Player... only the pickiest players will ever notice or complain. Probably almost every game made is like this. Authors however tend to be pickier. We see these little things because we are trying to make the best possible maps, etc... My point would be to look at developer games. You'll see misaligned textures, floating objects, etc.. everywhere in the 'best' games. It comes down to time.

3-Other complications. If a hinge is at a corner it only swings one way. The author can't change that so now we need twice as many door models/entities so you can place the correct model/rotation per door. Mapping time/complication...

Also, then we need to make the ai aware of which way that door swings so they can have an animation for each side (a player is MUCH more likely to notice this). Now they can stand back and pull a door from one side, or they can push as they walk through it from the other...

^addition scripting, bug testing, animations... For something the player really doesn't notice as it is now. And that just grows, what is the next thing that is a tiny little issue that we can tweak... do we need new models, scripting, animations for it too?

 

Time for a new engine, let's port TDM...

Dark is the sway that mows like a harvest

Link to comment
Share on other sites

Also, then we need to make the ai aware of which way that door swings so they can have an animation for each side (a player is MUCH more likely to notice this). Now they can stand back and pull a door from one side, or they can push as they walk through it from the other...

 

I can't find what comment you're responding to, but anyhoo ... AI already know which way a door swings. The animation is the same from either side, but they stand in different places so it looks about as real as we're going to get.

Link to comment
Share on other sites

Is it possible to take a collection of brushes/patches and treat them like a door (mover)? I you need to turn the collection into a func_static first?

 

Thanks.

But you should walk having internal dignity. Be a wonderful person who can dance pleasantly to the rhythm of the universe.

-Sun Myung Moon

 

My work blog: gfleisher.blogspot.com

Link to comment
Share on other sites

What would be the best way to make a func_rotating change speed when frobbing a button/lever? I'd like it to at least be able to toggle between two speeds at will.

Better yet would be to be able to accelerate/decelerate the func_rotating smoothly between the min and max speeds.

System: Mageia Linux Cauldron, aka Mageia 8

Link to comment
Share on other sites

There is a script event but I don't know if it will do what you want:

 

void setAngularVelocity( vector velocity );

 

If I were going to experiment with that, I would use it on a func_static not a rotator.

 

If you need help with the script then I or someone else could help.

  • Like 1
Link to comment
Share on other sites

Look at the script function page: http://wiki.thedarkm...cript_Reference

 

The "rotate" ones look relevant to me. (I'm not sure the difference between rotate & angularvelocity).

Rotate has rotateTo and rotateDownTo, which look like they handle accel/decel.

Here they are anyway:

 

 

 

Spawnclasses responding to this event: idPlayer

scriptEvent void rotate(vector angleSpeed);

Initiates a rotation with the given angular speed. Uses the current speed/time and acceleration and deceleration settings. Spawnclasses responding to this event: idMover

scriptEvent void rotateDownTo(float axis, float angle);

Initiates a rotation about the given axis by decreasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings. Spawnclasses responding to this event: idMover

scriptEvent void rotateOnce(vector angles);

Initiates a rotation towards the current angles plus the given Euler angles. Uses the current speed/time and acceleration and deceleration settings. Spawnclasses responding to this event: idMover

scriptEvent void rotateTo(vector angles);

Initiates a rotation towards the given Euler angles. Uses the current speed/time and acceleration and deceleration settings. Spawnclasses responding to this event: idMover

scriptEvent void rotateUpTo(float axis, float angle);

Initiates a rotation about the given axis by increasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings. Spawnclasses responding to this event: idMover

scriptEvent void setAngularVelocity(vector velocity);

Sets the current angular velocity of this entity. The angular velocity of a physics object is a vector that passes through the center of mass. The direction of this vector defines the axis of rotation and the magnitude defines the rate of rotation about the axis in radians per second. Spawnclasses responding to this event: idEntity

 

scriptEvent void setAngularVelocityB(vector velocity, float id);

Set the angular velocity of a particular body Spawnclasses responding to this event: idAFEntity_Base

scriptEvent void setAngularVelocityB(vector velocity, float id);

Set the angular velocity of a particular body

 

 

 

It's easy to get a button to call a script, and a script function just acts directly on an object like "$Bob.rotate( 20 );" would start rotating an object named "Bob" at 20 speed (whatever that is). If you wanted to accel/decel, you'd just substitute or put another line before it with RotateTo (or RotateDownTo if it's turning off), or however the logic works. Should be simple.

 

Read some wiki examples of scripts, and experiment. That's how all of us learned.

  • Like 1

What do you see when you turn out the light? I can't tell you but I know that it's mine.

Link to comment
Share on other sites

There is a script event but I don't know if it will do what you want:

 

void setAngularVelocity( vector velocity );

 

If I were going to experiment with that, I would use it on a func_static not a rotator.

 

If you need help with the script then I or someone else could help.

Look at the script function page: http://wiki.thedarkm...cript_Reference

 

The "rotate" ones look relevant to me. (I'm not sure the difference between rotate & angularvelocity).

Rotate has rotateTo and rotateDownTo, which look like they handle accel/decel.

Here they are anyway:

 

 

 

Spawnclasses responding to this event: idPlayer

scriptEvent void rotate(vector angleSpeed);

Initiates a rotation with the given angular speed. Uses the current speed/time and acceleration and deceleration settings. Spawnclasses responding to this event: idMover

scriptEvent void rotateDownTo(float axis, float angle);

Initiates a rotation about the given axis by decreasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings. Spawnclasses responding to this event: idMover

scriptEvent void rotateOnce(vector angles);

Initiates a rotation towards the current angles plus the given Euler angles. Uses the current speed/time and acceleration and deceleration settings. Spawnclasses responding to this event: idMover

scriptEvent void rotateTo(vector angles);

Initiates a rotation towards the given Euler angles. Uses the current speed/time and acceleration and deceleration settings. Spawnclasses responding to this event: idMover

scriptEvent void rotateUpTo(float axis, float angle);

Initiates a rotation about the given axis by increasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings. Spawnclasses responding to this event: idMover

scriptEvent void setAngularVelocity(vector velocity);

Sets the current angular velocity of this entity. The angular velocity of a physics object is a vector that passes through the center of mass. The direction of this vector defines the axis of rotation and the magnitude defines the rate of rotation about the axis in radians per second. Spawnclasses responding to this event: idEntity

 

scriptEvent void setAngularVelocityB(vector velocity, float id);

Set the angular velocity of a particular body Spawnclasses responding to this event: idAFEntity_Base

scriptEvent void setAngularVelocityB(vector velocity, float id);

Set the angular velocity of a particular body

 

 

 

It's easy to get a button to call a script, and a script function just acts directly on an object like "$Bob.rotate( 20 );" would start rotating an object named "Bob" at 20 speed (whatever that is). If you wanted to accel/decel, you'd just substitute or put another line before it with RotateTo (or RotateDownTo if it's turning off), or however the logic works. Should be simple.

 

Read some wiki examples of scripts, and experiment. That's how all of us learned.

 

Thanks guys. I appreciate it.

System: Mageia Linux Cauldron, aka Mageia 8

Link to comment
Share on other sites

Hey guys,

 

So I'm trying to put together a scene with about 10 or so AI's sitting/standing in chairs in the same room. Now, I know having that many AI in close proximity will probably kill performance, and I don't need them to do anything but stand still and play idle animations (no need to look for the player, go on alert, say any barks, etc).

 

Is there any way to create "dumb" AI's that fit that description, just standing in one spot idling without having all the other things that AI do going on in the background? Additionally (if I need to improve performance even more), is there any way to load an AI model as a func_static (possibly as a reskin of one of the statues)? I remember something like this being done in Heart of Lone Salvation (the woman who drank the sleeping potion) but don't know how it was done.

 

Thanks!

But you should walk having internal dignity. Be a wonderful person who can dance pleasantly to the rhythm of the universe.

-Sun Myung Moon

 

My work blog: gfleisher.blogspot.com

Link to comment
Share on other sites

Yes, you can use a func_animate if you don't need them to do anything but sit there. I did that when I was working on Whiterose.

 

Start here: http://forums.thedarkmod.com/topic/13059-func-animate/page__hl__func_animate__fromsearch__1

Link to comment
Share on other sites

Another way is to set their awareness to zero for hearing and seeing. There are spawnargs handling this.

I know having that many AI in close proximity will probably kill performance

Actually not. They only have a high impact on performance when they start searching. As long as they are just sitting/standing around, you can have quite a couple of them.

FM's: Builder Roads, Old Habits, Old Habits Rebuild

Mapping and Scripting: Apples and Peaches

Sculptris Models and Tutorials: Obsttortes Models

My wiki articles: Obstipedia

Texture Blending in DR: DR ASE Blend Exporter

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recent Status Updates

    • taffernicus

      i am so euphoric to see new FMs keep coming out and I am keen to try it out in my leisure time, then suddenly my PC is spouting a couple of S.M.A.R.T errors...
      tbf i cannot afford myself to miss my network emulator image file&progress, important ebooks, hyper-v checkpoint & hyper-v export and the precious thief & TDM gamesaves. Don't fall yourself into & lay your hands on crappy SSD
       
      · 2 replies
    • OrbWeaver

      Does anyone actually use the Normalise button in the Surface inspector? Even after looking at the code I'm not quite sure what it's for.
      · 7 replies
    • Ansome

      Turns out my 15th anniversary mission idea has already been done once or twice before! I've been beaten to the punch once again, but I suppose that's to be expected when there's over 170 FMs out there, eh? I'm not complaining though, I love learning new tricks and taking inspiration from past FMs. Best of luck on your own fan missions!
      · 4 replies
    • The Black Arrow

      I wanna play Doom 3, but fhDoom has much better features than dhewm3, yet fhDoom is old, outdated and probably not supported. Damn!
      Makes me think that TDM engine for Doom 3 itself would actually be perfect.
      · 6 replies
    • Petike the Taffer

      Maybe a bit of advice ? In the FM series I'm preparing, the two main characters have the given names Toby and Agnes (it's the protagonist and deuteragonist, respectively), I've been toying with the idea of giving them family names as well, since many of the FM series have named protagonists who have surnames. Toby's from a family who were usually farriers, though he eventually wound up working as a cobbler (this serves as a daylight "front" for his night time thieving). Would it make sense if the man's popularly accepted family name was Farrier ? It's an existing, though less common English surname, and it directly refers to the profession practiced by his relatives. Your suggestions ?
      · 9 replies
×
×
  • Create New...