Jump to content
  • Advertisement
The search index is currently processing. Activity stream results may not be complete.

All Activity

This stream auto-updates     

  1. Today
  2. Endurion

    DirectInput GUID compare

    You're still using MAKEDIPROP on a non-GUID. A DIPROPRANGE struct simply does not have a GUID as member. Since you're assumedly inside your EnumObjects callback, the GUID is in your instance object: for (int i = 0; i < sizeof (guidNames)/sizeof (guidNames [0]); ++i) { if (guidNames [i].Guid == instance->guidType ) cout << "---------------------------------------" << guidNames [i].GuidString << endl; }
  3. Just to be clear, what is being automated? The game at its core is a connectivity graph. You pointed that out in your own post. Since this isn't in For Beginners, we assume you know how to manipulate a graph. Manipulating that type of graph is fundamental in computer science, they are included in the earliest data structures and algorithms courses. Often in the first year of studies they start with trees then include more connected meshes. The other part, creating a connectivity graph out of an image, is not something that can be easily automated. Identifying areas of uniform color is straightforward enough, but anything more than that requires either a human or an enormous amount of computing work. For example, how would you know the British Isles are a single unit, or Indonesia is a single unit? And heaven help the machine that must figure out the mess of northeastern Canada and Greenland. Don't automate that part. Drop it in an image editor like Gimp or Photoshop, draw boxes around each zone, color each box with an indexed color of 1, 2, 3, 4, etc., and use those to build your clickable regions. When the user clicks on a point, run the coordinate through your indexed image, get the number, and use that to know which node the user picked. (You can use more complicated regions, but there is no need.)
  4. frob

    wait loop

    Modern graphics don't work with "erasing" like that. The view is obliterated every frame and a new image is drawn fresh from scratch. An enormous number of graphics algorithms break if you try to draw a new frame on top of an existing frame. There is no concept of "erase". What you have there will add another polygon, nothing is ever removed. The API doesn't support the operation. Instead, wait for the next frame either by the next pass through the loop or by invalidating the scene for a new redraw. Remove the item from the things that need to be rendered. Then render the next graphics update. This is part of what is meant when describing how to decouple rendering from gameplay.
  5. jbadams

    Promoting a new game!

    Welcome, and congratulations on finishing a game! As a first thing, you could think about creating a Project page for it here at GDNet, and maybe blogging a bit. It's unlikely to get you lots of players (maybe a couple) but feedback from other developers can be valuable. Other than that, have you done any marketing? Do you have social media accounts for the pages, have you done any press releases, tried to contact streamers, etc? Try Pixel Prospector's Marketing Guide for Game Developers for some ideas.
  6. Note that the client then needs to know which previous server state this is in reference to, so the server needs to include which last acked client tick it based its compression on. The client then needs to also have as long a queue of old client states as the server has, to be able to reconstruct the correct value. As you said, a lot more complex, not to mention uses more memory. I'd love to see some numbers on the actual size uses of the different approaches, on the wire and in RAM, if you have them!
  7. Fulcrum.013

    Updating Orientation with Angular Velocity

    Is really? To handle a collisions velocities have to be recalculatet to momentums and then than back. To apply non-central forces velocities have to be recalculated to momentums and then back. To track rocket thrust velocities have to be recalculated to momentums and than back. Looks like it much easier to store a momentums and recalculate it to velocities just when we need to update position, and use chached velocities until momentums changed again. Its depends from simulation steps per body's turn. https://www.youtube.com/watch?v=kXwS-3Uy3WI Also it anycase will be able to produce effects like this https://www.youtube.com/watch?v=hwlwfJMAvYw
  8. Patlatik

    Pixel Boy: Summer Adventures

    Retro style platformer game about Pixel Boy adventures. Can you help our hero to complete his adventure? Simple run and jump, smash crabs and collect bonuses! The BOSS waiting you. You can download game there: Play Market
  9. Hello everyone! First time posting in the forum. I've just completed my first game ever ( C++ / SDL ), and I am feeling utterly proud. It is a small game resembling Missile Command. The code is a mess, but it is my mess! In the process of making the game, I developed my own little game engine. My question is, where would be a good place to spread the news to at least get some people to try the game?
  10. phil67rpg

    wait loop

    void collision(int value) { board[0][0] = 1; glutPostRedisplay(); } void coll_bug_one() { float x = -0.5f + scroll; float y = -8.0f + up; float oWidth = 0.5f; float oHeight = 0.5f; float xTwo = 0.0f; float yTwo = 9.0f; float oTwoWidth = 0.5f; float oTwoHeight = 0.5f; if (checkCollide(x, y, oWidth, oHeight, xTwo, yTwo, oTwoWidth, oTwoHeight) == 1) { glutTimerFunc(1000, collision, 5); } } void coll_sprite() { if (board[0][0] == 1) { collision_bug_one(0.0f, 10.0f); glutTimerFunc(1000, collision, 5); // flag[0][0] = 1; } } void erase_sprite() { if (flag[0][0] == 1) { glColor3f(0.0f, 0.0f, 0.0f); glBegin(GL_POLYGON); glVertex3f(0.0f, 10.0f, 0.0f); glVertex3f(0.0f, 9.0f, 0.0f); glVertex3f(1.0f, 9.0f, 0.0f); glVertex3f(1.0f, 10.0f, 0.0f); glEnd(); } } I have made some progress, thanks rutin, I can draw a bug then hit it with a bullet and then it draws a collision sprite but I want it be drawn for a second and then I want it to be erased. I am close to solving my problem.
  11. Keeping track of angular momentum instead of velocity is technically more correct, but since you're doing numeric integration, both are going to give "wrong" results, and updating angular velocity instead is much easier and more stable. You won't be able to reproduce some peculiar motions like these without a more robust integration method anyway.
  12. d07RiV

    Raycast From Camera To Mouse Pointer

    You multiply your vector by inverse projection matrix, but then discard Z/W values and put -1,0 in there. Z=-1 is only correct if your zNear is 1. Setting W=0 makes it ignore the translation component of inverse view matrix, which is what you need if you just want the ray direction. The origin of the ray is, indeed, your camera position. It is the same as the translation column (12,13,14) in inverse view matrix. You should keep the Z so it works for every zNear. The rest seems fine, and you seem to have figured out the problem by now.
  13. Tom Sloper

    A Couple Questions About Licensing Music

    A lawyer is also important for understanding the implications of the clauses in the agreement, so you can negotiate for friendly terms.
  14. Tom Sloper

    Lego Fast And Furious Idea

    You shouldn't be planning a game that violates another party's IP. We don't like that sort of thing on gamedev.net. Locking thread.
  15. Fulcrum.013

    Would Unique paritcles slow down a physics simulation?

    It just requite to understand on visual level how IK solver works. Each step it calculates a consequtive positions that moves actuator from start position to target position. So for each position we can propagate back gravity toque and inertion momentum respectively to joint axis of each actuator part, and recalculate each motor torque from it and required joint's angular acceleration. By other word, in static last joint motor's holding torque have to be eual to gravity torque that is production of last part mg vector to leg betwin joint and last part centre of mass. Pre-last joints motor holding torque have to be equal to gravity torque of both last and prelast legs, so we need to recalculate mass center of both last and prelast parts and then find a torque. And so on until stand's motor. In dynamic motor torques have exids holding torques by value required to accelerate joints. to calculate this extra values from acceleration we need just a inertion torques of parts attached to joint respectively to joint axe, that we can recalculate for each joint similary to recalculation of mass centres. this task comes from hoisting-and-transporting machinery so have solved on ancient ages. Chache contacts and threat it like kind of joinnts, with chached contact normals and static friction forces. So on collision with other object collided object first have to decide is joint has been broken and respond like a dynamic object or respond like whole joined system. after respond, island have to propagate received energy thru the chached joints and wake up bodies that received enought energy to break joints. I guess something like this shown on video at 2:40. In case thay has chached nothing, thay have to make exactly two iterations thru the island - first iteration to find masses attached to the joints, constant friction forces, centre of mass and moment of inertion of whole island, and second iteration to propogate energy.
  16. JulieMaru-chan

    A Couple Questions About Licensing Music

    A license is just a statement from the copyright holder allowing you to redistribute the work. So if you need a lawyer, it would be to make sure you understand the license given to you by the author. Note: I'm not a lawyer, and this is not legal advice.
  17. There's a YouTube musician that I'd like to reach out to, to ask if I could purchase a license to use some of their music in my game, but I've never done this before and I was wondering if this is something I should get legal assistance with? Or is it as simple as sending a payment and getting written permission in an email? And I'd like to present myself as professional, so I am also wondering if there are perhaps industry or legal terms I should be aware of. I wasn't sure if this topic belongs here or in the Audio & Music forum, so I apologize if this is the wrong place to ask this.
  18. Luis Carlos Zardo

    Level 05

    A little more work in level design, or in this case, in the level background models. https://play.google.com/store/apps/details?id=com.RazorCorp.XLayer&amp;hl=en
  19. Updated, we are looking for 2 programmers and a 2d artist to make the UI.
  20. Yesterday
  21. I didn't update the thread at the time, but when I updated the field I added Student and Amateur / Hobbyist options, which would cover the non-professional/industry role.
  22. frob

    Why are enums broken

    All this reminds me of the problem that naming things is hard. Enumeration means something. For historical reasons programmers use enums to name the bit patterns, but generally flags are not an enumeration. An enumeration lists all the things one by one, every name must be present in the enumeration. We don't enumerate FlagsAB, FlagsBC, FlagsABC, FlagsAD, FlagsABD, FlagsACD, FlagsABCD, and so on, but that is what an enumeration would do. The grouping was done with enumerated types because they were silently converted to integers. You can implement flags with type safety using wrappers, using template magic, using a class like a bitset, or similar. But when you're doing that, we should stop calling them enumerations. At that point they are bit flags, not an enumeration. If that's what you want, implement a flag class instead.
  23. In my implementation I write the deltas to a bitstream. When writing a property (except bool, which are 1 bit) I either write a 1 followed by the delta, or a 0 indicating that there's no change. For arrays, I either write an array of bits (1 bit for each array element), followed by just the elements that have changed, OR, write an array containing the indices of changed elements. These two strategies are selected depending on which would be smaller. The array is preceded by a single bit indicating which strategy is in use. When writing a delta for a property, you can either write out just the new value, or you can write "oldValue XOR newValue". In the first case, the client simply copies the values from the delta packets over its own values, and in the second case, the client XORs the delta packets values with their own to recover the new value. This second method is much more complex / slow / fragile, but, if you apply generic compression to your packets before sending them, this XOR process is likely to produce long strings of zeros, which compress quite well. Doom 3 didn't use a general purpose compressor like zlib, but instead wrote a simple RLE compressor that only looked for repeated 0's in the bitstream and replaced them with a single zero followed by a 3bit repetition count.
  24. Rutin

    Learning How to be Better

    There is nothing wrong with making flashy projects for your portfolio, but when you're applying for a programming job the person reviewing your resume and portfolio should be reviewing you for your code, not visuals because it's not important as a programmer; you're not applying as an artist. EDIT: I should also add, you're not a "game designer" either, so keep that in mind. What is important is your ability to code.
  25. MintyLyton

    Learning How to be Better

    I was told to make my games visually appealing in my Game Programming College. That idea might have just stuck with me for awhile actually. What I wanted to do was create a list of youtube tutorials for content that might seem appealing to people. One of the ideas I initially had was a complex inventory system which could use custom items, filter through, organize and delete items based on identifier tags.
  26. How do you do this? Does that mean you build a large system of equations, e.g. all bodies that form an island, and solve for the exact solution? If so, is this utilized for games, or is it common to solve contacts unrelated of each other simply by accumulation and iteration (the 'naive' approach, which worked well enough for me and did not cause jitter, but was not perfectly stiff of course). You mean Inverse Dynamics? An IK solver would be of use only to control the target position/vel/accel of the joints. My question is how to calculate the necessary joint torques / forces to get there, e.g. for a robot consisting of many bodies? The problem is pretty similar to the calculation of resting contact forces, but contacts act only in one direction, so i assume both require / allow different approaches to solve them. I would be happy to understand just one.
  1. Load more activity
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!