Jump to content
  • Advertisement

Anthony Serrano

  • Content count

  • Joined

  • Last visited

Community Reputation

3298 Excellent

About Anthony Serrano

  • Rank

Personal Information

  • Role
    Pixel Artist
  • Interests

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. First things first: endianness only affects multi-byte values. The x86/x64 instruction stream is primarily single bytes - generally only things like immediate operands and offsets are multi-byte values. Now lets take a closer look at the instruction stream. The first instruction is 66 89 c8 The first byte, 66, is an operand-size override. Here it indicates the the next instruction will use 16-bit operands instead of 32-bit. The next byte, 89, is the instruction opcode. This one indicates a MOV instruction that moves data from one register to another register or to memory. The final byte, C8, is the ModR/M byte, which encodes additional information about the operands. The top two bits (11b) combined with the bottom three bits (000b) indicate the the register/memory operand (which is the destination for this instruction) is the AX register, and bits 3-6 (001b) indicate that the register-only operand (the source here) is CX. Note that these bytes have to come in this specific order; this is required for the CPU's instruction decoder to actually be able to decode the instruction stream. The next instruction is e8 00 00 00 00 The first byte, E8, is the opcode. E8 is a near relative CALL. It's operand is a 32-bit signed offset relative to the first byte of the next instruction. Since the target IS the next instruction, it's just 00000000. The final instruction is 66 89 c2 which is almost identical to the first one, the only difference being the ModR/M byte. C2 instead of C8 means that the destination is the DX register, and the source is AX. The only multi-byte value here, and thus the only thing that endianness is relevant for, is the 32-bit offset for the call instruction, though in this case the offset is the same either way. The final instruction stream is 66 89 C8 E8 00 00 00 00 66 89 C2 If, for the sake of demonstration, the target of the CALL was 4000 (00000FA0h) bytes after the next instruction, the CALL would look like this instead: E8 A0 0F 00 00
  2. Anthony Serrano

    How much longer can Trump/Trumpism last?

    This is demonstrably false. The whole point of "we don't want to pay for it" is to get rid of abortion through indirect methods, because the older, more direct method of banning or restricting it with legislation has gotten significantly less successful. Learn our history, because we as a nation have done WAY more than throw stones, countless times over the last two centuries. I am a 14th generation American - My European ancestors first arrived in 1608 (my native ancestors obviously arrived far earlier). The US is my country. You most definitely do not respect my "right to have the country I want." The right by-and-large doesn't even respect my state's right to govern itself as it sees fit.
  3. The entire point of grinding as an RPG mechanic is as a means for the player to control the effective difficulty of the game by building up experience and/or equipment to the point where the player feels ready to take on the next challenge. Thus, you should be very careful when designing systems in RPGs to discourage or punish grinding. The most common method of doing this is via exponential XP curves and item prices - the player can, at any point, grind as high as they want, but beyond a certain point, it becomes extremely inefficient to do so. The last thing you want to have happen is for the grind-difficulty relationship to flip, such that the game becomes harder and harder as you grind more - this means that the player who wants a more challenging game is the one forced to grind for it. This is bad for two reasons: first, the player who wants a challenge is forced to play more and more unchallenging content as their skill improves; and second, the player who feels unready to advance in the game is left with no recourse beyond just starting over. If you absolutely insist on discouraging grinding, just don't even make it an option.
  4. Anthony Serrano

    HDR tonemapping/exposure values

    A major reason why tonemapping isn't working for you is you're not actually feeding it an image with a high dynamic range. You're using lighting values that are more appropriate to older, non-HDR lighting models. Which is to say, your light:ambient ratio is way too low. Your light source is barely more than twice as bright as the ambient lighting, whereas in the real world (and thus, the lighting conditions HDR is attempting to simulate), that ratio is easily 100:1 or higher, sometimes even in excess of 1000:1. Remember, the entire point of tonemapping is to take an image with a high dynamic range and map that range such that it's displayable on a device with a low dynamic range without the bright parts clipping to pure white or the dark parts clipping to pure black. If you tonemap an image that already has a normal dynamic range, the result is just going to be washed out.
  5. Anthony Serrano

    The Battlefield V "Historical Accuracy" Controversy

    If billion-dollar-box-office is your idea of failure I hate to imagine what you'd consider a success.
  6. Anthony Serrano

    Action points or not?

    There's some overlap between the terms, but dexterity has more to do with the hands specifically while agility relates more to full-body movement.
  7. Anthony Serrano

    Main character sprite

    The purple shoes and gold hemline on the older version real a lot better than the newer brown shoes and purple hem - the lower body on the new version is more indistinct and harder to interpret.. This will become especially important when she's animated.
  8. Systems like the NES are not a good benchmark for how you should do things on more modern hardware. First of all, they don't have bitmapped displays - what they do is much more like a computer's text mode. Second, they have about two orders of magnitude less processing power than the microcontroller board you're using. Third, their graphics systems have their own memory spaces that usually can't be directly accessed by the CPU. To go into more detail would require a bit of a crash course on how retro 2D consoles work, which isn't really the point of this thread.
  9. Anthony Serrano

    Action combat without accurate, visceral animations?

    I think a good place to start would be defining exactly what you mean by "accurate, visceral animations".
  10. Anthony Serrano

    Have you ever had your game idea stolen?

    Here's the fundamental flaw in your scenario: you're assuming that the "big, rich developer" actually highly values innovation. In reality, they are going to be conservative and risk-averse, because the simple fact of the matter is that you cannot predict the public's taste, and the market does not reward innovation in general - especially not the market space that large developers operate in. That developer is not going to risk a sizeable sum of money on an unproven idea, and if they want to look for ideas to copy, their going to be looking at their direct competitors, not some ragtag gang of indie devs. If your idea is even of value to them, they'll let your own game function as proof of concept rather than risk their own money. Your idea is far, far more likely to be "stolen" after you ship and attain some modicum of success, not before. Also, how many indie devs really have to exhaust themselves racking their brains for game ideas? I personally have more ideas than I can possibly hope to make in my lifetime, and most other devs I know also generate ideas faster than they can complete them, so...
  11. Anthony Serrano

    Where to start on concept and design advice.

    Probably the best way to do this is, when a projectile collides with an object, cast a ray from the collision point to each light source - if the ray intersects a character, they've been hit. If you have AI characters, just run this logic in reverse for targeting - cast a ray from a light source through the intended target, and where that ray lands is where they aim.
  12. Anthony Serrano

    Am i blacklisted on ScreenShotSaturday?

    Twitter's "Photos" tab is exclusively still images. Videos, including animated gifs, appear under "Videos".
  13. Anthony Serrano

    cmyk vs real world paint mixing

    The fundamental issue is just that real-world coloration doesn't work like that.   CMYK (and RGB, and most other color spaces for that matter) are perceptual abstractions - they take advantage of of the trichromatic nature of human color perception to reduce any perceivable color to a mixture of three primaries. But because of their fundamentally perception-based nature, they do a poor job of actually modelling the interactions of pigments and lights sources. But in reality, coloration is determined by a material's visible light absorption spectrum, which is a continuous spectrum across the entire range of visible light. The result of this is that there are many different absorption spectra that will produce the same visual color. And so two pigments that appear to be the same color can mix differently with other pigments. For example, you can produce a pale yellow pigment that mildly absorbs all blue light, and another that strongly absorbs certain frequencies of blue light, and even though the two look the same, they will produce different colors when mixed with other pigments (and the two pigments will also look different under colored lighting). tl;dr if you want to properly simulate color mixing you need to model a fuller representation of their absorption spectra.
  14. Anthony Serrano

    Cross Platform Graphics APIs

    Yes, you should. To go into a bit more detail on this.  In general when providing a recommendation to somebody who is just starting out learning 3D APIs and who also wishes to go fully cross-platform with their very first project, I advise: don't.  It's too much to deal with at one time; you're going to have your hands full learning a 3D API on a single platform as-is, without the additional complexity of wanting to be fully cross-platform too.  Focus on learning one thing at a time, learn it well, and build on previous knowledge for subsequent projects; save the cross-platform aspirations for the second or third project, in other words.     It's also worth mentioning that there's a lot more to being cross-platform than just using the right graphics API.
  15. This may come as a shock, but most modern games have even more input latency than you think, often around 100 ms (i.e. roughly 6 frames at 60 fps) owing to several factors including interpolation delay and swap chain length. Even fighting games, which generally have very precise, sometimes frame-specific timing mechanics, typically have at least 70 ms of latency.
  • Advertisement

Important Information

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

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!