andur

Members
  • Content count

    161
  • Joined

  • Last visited

Community Reputation

781 Good

About andur

  • Rank
    Member
  1. This is what we do at work.     That would be a great way to make a mess of your code, and since the application would link to both Direct3D 11 and Direct3D 12, only people running Direct3D 12 could run it, making Direct3D 11 a useless parasitic twin. If you took anything away from what Hodgman said let it be the part regarding multiple executables.  This is standard in the industry for a reason.     L. Spiro     Not entirely true. I've had success in the past with Direct3D 9 and 10 in the same executable by marking the D3D dlls as being delay loadable, and then checking for which version of Direct3D the user's system was capable of running and loading that rendering path.
  2. Just add a smaller control that is the portion of the window you want to render to and use its HWND instead of the main window's HWND.
  3. Couldn't you just set the D3D9/D3D11 dlls to be delay loaded in your project settings? Then they will only be loaded when your application first tries to use a function from one of them.   You'd still have to check for their existence before initializing your renderer or it'll crash when it tries to use one if it doesn't exist.   (Note I've never actually tried this with the D3D dlls, but I don't see why it wouldn't work)
  4.   That's an interesting looking device. Have you actually tried using one? Or anyone else have any experience with one? I'm curious how well something like that would actually work in practice.   I've tried using a Kinect for motion capture purposes, and found it to be extremely noisy, and the limited viewing space really restrictive. It also would glitch out massively if you ever self-occluded yourself and put say one leg in front of the other. I have hopes for Kinect 2, though it'll suffer from the same self-occlusion problems. Though you can alleviate those somewhat by using 2 Kinects at different angles (haven't tried that myself, so, I don't know how well that really works).   Plus of course, some actually has to be able to physically perform the motions you want to capture...
  5. You can add a delay to every action (or at least to slower actions), giving you a natural opportunity to evade it (provided you have enough time).   Say you are going to act next in 5 ticks of game time, and your opponent begins an attack that takes 6 ticks to land. Your turn will come up before the attack connects, letting you either move out of the way of the attack or perform a guarding action. Hitting someone is then a matter of either timing your attack right so they don't have time to evade it, or positioning yourself such that they cannot physically move to evade it.   Then like a fighting game, you can have different amounts of hit/block stun on moves, or punish someone for missing an attack provided you can move and attack while they are recovering from missing their attack.   This would work best in a team based game, otherwise it would be too easy to just pick the optimal move at all times and avoid everything. You'd also want area of effect and other such wide angle attacks to limit evasion and be able to be used to position your opponent where you want them. Same with attacks that push your opponent around, being able to shove a blocking opponent into the path of another of your character's attacks would make for an interesting mechanic.
  6. It also lets you put weight on spending time to progress your character. Crafting/making an item will take time (in which you could be doing something else, or pay someone to make it for y ou). Learning a new spell/skill would take time. You'd want to give some leave way in the exact time that events occur in. Otherwise, it will be almost impossible to see any of them. You'd also want to give the player some knowledge/idea of when events will occur. Reports of enemy army movements would let them know about when they would have to arrive to help defend a location. Also if the player is in a location where an event is going to happen and decides to rest/sleep/wait, interrupt that when the event happens instead of skipping over it (and give an option to wait for it, when the player knows in advance when something is going to happen). The main problem though, is the sheer amount of additional content you have to make. In a more linear game, if the city isn't sieged until you arrive to save it, then, you never need to create the destroyed/conquered version of it. This will also easily lead to an "unwinnable" game, as odds are, the world will be destroyed without you. Course, for a shorter game, this wouldn't be that bad, especially if you want it to be replayable (you'll have a better chance of that, if restarting the game to try a different sequence of events isn't that huge of a time investment). You'd probably also be better served by a less "epic" scope than saving the world from destruction, where the consequences for not arriving aren't quite as dire.
  7. Forging items would be more interesting if the time spent to forge the item was taken into consideration and was important. If the passing of time in the world matters, and it takes say 3 weeks to forge that new sword or suit of armor, it becomes a decision between say saving a town from destruction or letting the enemy army invade it while you are busy getting that sword forged instead. Course the player could be off doing something else while the item is being forged for them, but they'd have to ensure that they are able to return to collect it and have enough time for it to be forged before it can be used. Otherwise, you're just replacing coin currency with currency of various random component items. The skill of the smith you hire could also determine the speed the item could be made, the quality of it, whether or not they are even capable of making it (some might attempt it anyways and screw up instead of flat out refusing initially), and of course how much they charge for their services (and convincing a master swordsmith that production of your sword is a top priority could be even more expensive). With time as an important gameplay element, faster means of transportation and healing become that much more important as well.
  8. [quote name='ekba89' timestamp='1307817463' post='4822149'] Thanks for reply. I attached screenshots. As you can see it just looks like point array . I want something like beam. [/quote] If you want to create a beam, you'll want to create a continous strip of triangles instead of using particle effects. Each frame, add on a new quad that joins onto the quad from the previous frame. When you reach the maximum number of segments that you want, start removing the old ones. To make it fade off, you can set an alpha value on the vertices that fades to 0 as they approach the end of the beam.
  9. I'd just use an alpha-masked texture. Draw out a nice alpha gradient along the path you want your health bar to follow, and build 2 textures one for the completely filled state and one for the completely empty state. Then pass in the % of life that the player has left to the shader, and have it use the empty texture for alpha values greater than this, and the filled texture for alpha values less than this (with perhaps some blending between them around the boundary). This way, you can have any shape that you want.
  10. [quote name='vlad2048' timestamp='1304469399' post='4806200'] I've already made the beginning of a 2d (4p max) multiplayer game on ipad. I'm using cocos2d. The games last maximum 1 minute. I want to get a replay of the most epic ones and use them to decorate the front menu (kind of sceensaver function) I've already done some replay system (for the same game on PC), but they had some problems/bugs. Mainly from a lack of a consistent interface across all the game objects for replays. I know it's very vague sorry. My question is, do you have any general advice on making a replay system ? Even if it's stupid advice. Like "implement StartRecord() and StopRecord()", any advice from someone who has implemented one. Like a postmortem on gamasutra would be great [/quote] Since you have a multiplayer game (this assumes its playable over the network and not just local multiplayer), just record the initial game state when you want to start the replay, and record all of the network messages afterwards (both that you send and receive). Playing back the network messages will give you a full replay. If the game only lasts a minute maximum, just always record all of the network messages.
  11. In my fighting game engine, a move is just a big list of timings/properties. Each move has a number of start up frames till the active frames in which they become active, at which point a hit box becomes active that defines an area in which it'll hit your opponent (properties like damage, hit stun frames, block stun frames, mana/meter cost, knockback, what animation to use, etc are defined here too). In a 2D fighter this would just be a rectangle on the screen, in a 3D fighter it would be an arc. Then each move has a set of moves that it can transition into after it hits, depending on what inputs you've entered in (to enable multi-hit attacks or changing to different stances [which can be thought of as moves that don't deal damage and might loop into theirselves]). Being entirely data driven, lets me build a nice editor for defining moves, and gives me a set of data that the ai can use to play with (it can analyze the move list and know what each move will do and thus decide what an appropriate/optimal move to use would be, without having to be scripted to decide what moves to use). It also lets me run automatic analysis on the movesets of characters finding all of the combos (its hard to account for every stage position, so, some wall-dependent stuff might be missed), so I can hopefully find all of the infinites and anything unbalanced and adjust accordingly. This is probably the best explanation on fighting game frame data out there: [url="http://virtuafighter.com/wiki/doku.php?id=vf5:system_part_2#attack_properties"]http://virtuafighter...tack_properties[/url] Everything in here you'd define as a property of each move. The character's themselves are made out of hitboxes or some other collision primitives, that change frame to frame on a move. If you look on youtube, you can find various videos where the hitboxes are made visible for various games. As an example, a quick horizontal high sword swing can be represented in my game as: [code] Input: A Active Frame: 13 Damage: 5 Attack Height: High Move Duration: 26 Block Stun: 10 (your opponent recovers: 26 - 13 - 10 = 3 frames faster than you if they block it) Hit Stun: 20 (your opponent recovers: 26 - 20 - 10 = -4 so 4 frames slower than you if they get hit) Counter Hit Stun: 22 Attack Range: 1 Attack Angle Left: 45 Attack Angle Right: 45 (so an even arc on both sides of you) Stance Moves: A (a second attack can be activated by hitting A again during this swing) Default Next Move: Idle stance (goes back to the idle stance if you input nothing, this is usually the case unless its a stance move that leaves you in the stance afterwards) Tracking: Yes (move will realign your character with your opponent when it begins) [/code] A vertical stab could be represented as: [code] Input: 6B Active Frame: 18 Damage: 15 Attack Height: Mid Move Duration: 46 Block Stun: 15 (your opponent recovers: 46 - 15 - 18 = 13 frames faster than you if they block it) Hit Stun: 35 (your opponent recovers: 46 - 35 - 18 = -6 so 6 frames slower than you if they get hit) Counter Hit Stun: 45 (your opponent recovers: 46 - 45 - 18 = -16 so 16 frames slower than you if they get hit, so you could combo the fast horizontal attack above on a counter hit with this move) Attack Range: 2 Attack Angle Left: 5 Attack Angle Right: 5 (so an very narrow arc in front of you, making it vulnerable to being sidestepped) Stance Moves: None Default Next Move: Idle stance Tracking: No (move will not realign your character with your opponent when it begins) [/code] There are a bunch of other properties other than these, but, this should give you the general idea. This ends up working well for me, and I can represent any move in my game with it. <Edit Apologies for the wall of unformated text, for some reason gamedev is throwing away all of my new lines>