Jump to content
  • Advertisement

Anthony Serrano

Member
  • Content Count

    493
  • Joined

  • Last visited

Community Reputation

3302 Excellent

About Anthony Serrano

  • Rank
    Member

Personal Information

  • Role
    Composer
    Pixel Artist
    Programmer
  • Interests
    Art
    Audio
    Business
    Design
    Programming

Recent Profile Visitors

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

  1. Anthony Serrano

    Daily Bonus Logic

    It actually varies from game to game. Some games do reset your daily login bonus progress if you miss a day, but most that I've seen actually don't. A more common incentive to keep people logging in to have a specific set of login bonuses only available for a limited time.
  2. Anthony Serrano

    double accuracy in C++

    It's not even a matter of design, it's an inherent property of representing fractions with a finite number of digits. A rational non-integer number can only be accurately represented with a finite number of digits if all the prime factors of the denominator are also prime factors of the radix; otherwise, it requires an infinitely repeating digit sequence.
  3. Anthony Serrano

    Avoid branch instructions

    Just for the record, this though experiment is built on a false premise. Branch prediction is necessitated the presence of a deep instruction pipeline - that "serious overhead" is caused by having to flush and refill the entire pipeline after a mispredicted branch. Those CPUs don't have deep pipelines, and many don't have pipelines at all, so oftentimes the only branch penalty is a cycle or two to calculate the branch target address. There are architectures that have conditional load/store instructions, which allow you to move data conditionally without branching. If such instructions are present, it's trivial for a compiler to implement the ternary operator using them (provided of course that the possible results are not themselves function calls). Some more conventionally-branching structures can be recognized by the compiler as doing the same thing and thus also implemented using conditional moves, but some (like the first snippet in the OP) cannot be recognized as such by a compiler and will be implemented using standard flow control mechanisms instead.
  4. 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
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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".
  13. 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...
  14. 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.
  15. Anthony Serrano

    Am i blacklisted on ScreenShotSaturday?

    Twitter's "Photos" tab is exclusively still images. Videos, including animated gifs, appear under "Videos".
  • 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!