• Content count

  • Joined

  • Last visited

Community Reputation

139 Neutral

About iosys

  • Rank
  1. If you do a lot of music production you should get a pro audio soundcard. I have not experienced the new X-Fi cards, but my Audigy 2 ZS can't handle 24/96 sometimes and is not very good with ASIO latency. Of course Creative claims otherwise. They also can't make drivers worth crap. I don't know if they've changed this yet, but with the X-Fi you have to switch modes from gaming mode to music listening mode to music production mode. Bad idea straight from a bad company! I've never tried using two soundcards but that might be an option.
  2. It's a combination of innate attributes and skill/experience which would determine one's proficiency at something. For every small fry who can knock you out there's a meat head who throws his weight off balance. I don't think physics is the answer here. Looking at an example from Street Fighter: Zangief is a big beefy guy who hits hard. The designers just thought "strong russian dude hurts you quick...give him 90 damage per jab." So they put in the value for his jab and play tested it. That's not a true account, but you get the idea. You don't have to be so absolute. RPG's use "stats" and "weapon skill" to determine an overall range of damage that a player will deal with each attack. The strength of a player and the weight of an axe might determine the minimum and maximum damage he could do against an unarmored player. A player with armor and the ability to dodge or block would reduce the effectiveness of the axe wielder.
  3. I'm not good with C++ but here is my code for VB/MDX, maybe it will help. Dim vN As Vector3 ' near vector Dim vF As Vector3 ' far vector Dim vD As Vector3 ' direction vector ' get near and far vectors by unprojecting mouse vN = Vector3.Unproject(New Vector3(e.X, e.Y, 0), dev.Viewport, dev.Transform.Projection, dev.Transform.View, dev.Transform.World) vF = Vector3.Unproject(New Vector3(e.X, e.Y, 1), dev.Viewport, dev.Transform.Projection, dev.Transform.View, dev.Transform.World) ' get direction vector vD = Vector3.Subtract(vF, vN) ' check for intersection Dim temphit as IntersectInformation If Geometry.IntersectTri(v0, v1, v2, vN, vD, temphit) Then Console.WriteLine(temphit.Dist) End If [Edited by - iosys on May 7, 2007 5:29:25 PM]
  4. Texture Coorindates

    What I did was create a sprite editor program which shows the sprite sheet(s) and allows you to drag a box around certain parts of the sheet to define frames for animations. All the animation definitions were ultimately stored in a "sprite.txt" file. Hope that helps.
  5. In Game Tooltips...

    If you already have buttons which work, then much of the code you need to determine where/when to display a tooltip is already there. Since you plan on having quite a few tooltip features, you could create a tooltip class, then declare a variable of type tooltip in your button class (and all other classes that need to show a tooltip). The tooltip class would contain a list of tipobjects (images, strings, etc). Tipobjects could also be classes themselves and derived from a base class. You can take it two directions from here: A) Your render procedure would iterate through these tipobjects and draw them one after another like inline text. But first, it should draw a semi-transparent quad so you have the backround for the tooltip. B) As you add or remove tipobjects from the list, the remaining tipobjects would be rendered to a texture and saved in a variable in the tooltip class. Then, you just render the texture to a quad when the tooltip needs to be shown. A transparent backround should be trivial, just draw a transparent color to the texture before drawing the tipobjects. -- These are just simple ideas off the top of my head and are admittedly not very well thought out. I wouldn't be surprised if this system turned out to be a lemon/pita/other food connotating disapproval.
  6. click to move there

    Raypicking against groups of triangles or bounding boxes seems like the way to go for determining the destination. I will have to consider how pathfinding fits into a scene management system and develop it alongside those systems so it works nicely. Thanks for the great replies.
  7. How would I achieve this in theory? I'm thinking about games like Warcraft 3 or Diablo 2 where you move your character by clicking on the ground. There are two ways I can think of how this would work. In the case of Diablo 2 it's fairly simple because the game is 2d. Here you might be able to get away with just doing an intersect test against a plane at the character's feet. As for Warcraft 3 or World of Warcraft, the world is 3d and you need to allow the character to move to the exact location (polygon?) he clicks on. You might then move the character toward the x/z coordinates of that polygon, while the collision system takes care of the y coordinate. I don't know. I'm interested in how to do this in 3d (2d advice is welcome though). What I have come up with so far is to iterate through all of the triangles in the partition of space where the player clicks, then do an intersection test to find out which triangle was clicked on and furthermore to get the exact location on the triangle (where the unprojected mouse ray intersects) to move the character to. I made a simple project to demonstrate the intersection method. It might be useful to someone beyond my intended purpose. So if world geometry was divided into small groups of triangles, and supposing my project demonstrates one of these groups, would this be scalable enough to use in a game engine?
  8. The vertices don't get shaded or lit when using black. They just all end up gray according to the dev.renderstate.ambient = color.gray
  9. I'm back to directx from a long hiatus and was wondering why my vertices are not lit with the color I specify in the light's diffuse? It seems like the light's diffuse is white even though I set the diffuse to green. The polygons get shaded from the light, but no color at all. What could cause that? Dim mtrl As New Material mtrl.Ambient = Color.White mtrl.Diffuse = Color.White dev.Material = mtrl Dim light As New Light light.Type = LightType.Point light.Ambient = Color.White light.Diffuse = Color.Green light.Range = 200 light.Position = New Vector3(-100, 100, -100) light.Attenuation0 = 0 light.Attenuation1 = 0.005 light.Attenuation2 = 0 dev.Lights(0).FromLight(light) dev.Lights(0).Enabled = True dev.RenderState.Lighting = True dev.RenderState.Ambient = Color.Black ' CreateCube ' Returns a brush with 6 faces forming a cube. Shared Function CreateCube(ByVal X As Single, ByVal Y As Single, ByVal Z As Single, ByVal W As Single, ByVal H As Single, ByVal D As Single) As iosys.Geometry.Brush Dim b As New iosys.Geometry.Brush Dim f As iosys.Geometry.Face Dim n As Vector3 ' face 1 f = New iosys.Geometry.Face f.Name = "Front" f.TextureInfo = textures("null") f.vertices(0) = New CustomVertex.PositionNormalTextured(New Vector3(X + 0, Y + H, Z + 0), New Vector3, 0, 0) f.vertices(1) = New CustomVertex.PositionNormalTextured(New Vector3(X + W, Y + H, Z + 0), New Vector3, 1, 0) f.vertices(2) = New CustomVertex.PositionNormalTextured(New Vector3(X + W, Y + 0, Z + 0), New Vector3, 1, 1) f.vertices(3) = New CustomVertex.PositionNormalTextured(New Vector3(X + W, Y + 0, Z + 0), New Vector3, 1, 1) f.vertices(4) = New CustomVertex.PositionNormalTextured(New Vector3(X + 0, Y + 0, Z + 0), New Vector3, 0, 1) f.vertices(5) = New CustomVertex.PositionNormalTextured(New Vector3(X + 0, Y + H, Z + 0), New Vector3, 0, 0) n = GetNormal(f.vertices(0).Position, f.vertices(1).Position, f.vertices(2).Position) f.vertices(0).Normal = n f.vertices(1).Normal = n f.vertices(2).Normal = n n = GetNormal(f.vertices(3).Position, f.vertices(4).Position, f.vertices(5).Position) f.vertices(3).Normal = n f.vertices(4).Normal = n f.vertices(5).Normal = n b.AddFace(f)
  10. some SPY music (mp3)

    Heh I've been listening to somafm for about a year (secret agent, drone zone formerly drop zone). Tublenco you have some talent for themes...I heard your pirate ones too and they're awesome.
  11. New Music

    That is a well mastered song. Good use of chime/flute to build up the last drop before the climax. The main synth is a little retro for me and an electric guitar might sound better, but the synth fills are spot on. Around 1:12 I could see the flute, or similar instrument, coming back in to play off of a variation of the chime melody to make the song longer, or even having the main synth lowpass filter down to the same tone as the flute, where the flute would come in and the synth's volume reduces to 0.
  12. Suggestions for VST DrumKit

    You don't really need a VST, FL Studio has a built in sampler and beat slicer. You can download or purchase some drum kits/samples/loops from the internet. The sampler is pretty versatile, and with it you should be able to construct entire drum kits out of any samples you want. I recommend using a layer channel, merging the children, then splitting the children. That in turn will allow you to trigger any of the drums in one piano roll view, that of the layer. This is much like when the slicer slices up a beat and each hit goes to a different note in the piano roll. Check the FL Studio help file for more info. You won't get exactly what you want from a VST's/sampler's hard wired or included sounds. You'll always want to keep building up your library of sounds, and for that you need something that will support it all. I've never used a drum machine for any of my music; I just use the FL Studio sampler and slicer.
  13. A little help for the newb?

    These are pretty beginner friendly i guess: orion fl studio reason
  14. Creating short looping samples

    Modules are pretty old news in my might learn a lot now but you will definitely be moving on to something else if you take this seriously. Look at film/games/anything these days; with the exception of unreal engine based games, I don't see them anywhere. I advise you to continue in MPT for a while until you know the ins and outs, then move to something else when you know what more you want/need out of a program. As for module formats, I think there's .IT and .XM you can try.