Pseudo 3D Road #9 - perspective exaggeration, arcade style

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 ต.ค. 2024

ความคิดเห็น • 33

  • @Xonatron
    @Xonatron 3 ปีที่แล้ว +10

    Funny. Just the big font makes this tech demo seem cooler.

    • @JDoucette
      @JDoucette  2 ปีที่แล้ว +1

      I felt the exact same thing. It sort of feels like those arcades like Darius where they used 16x16 character fonts instead of the normal 8x8 that every other machine used.

  • @Xonatron
    @Xonatron 3 ปีที่แล้ว +6

    This really gives the OutRun / arcade feel.

    • @JDoucette
      @JDoucette  2 ปีที่แล้ว

      I agree. I was quite surprised at how well it worked, and also how simple the concept is. At first, I analyzed Out Run to measure the locations and sizes as the sprites zoomed from the distance. But then I realized that it doesn't really follow a simple formula, since there is a Z distance limit -- I think in its code it just has the concept of an object starting at a center scanline, and moving to lower scanline, with a look up table for its size. This power distortion formula that I used makes for a good approximation, with the added benefit of being changeable.

    • @JDoucette
      @JDoucette  2 ปีที่แล้ว +1

      I haven't uploaded any more, since I was stuck a bit trying to get the turns to look proper when it is distorted. I realized that by empowering the perspective settings with a adjustable setting, I'm make the problem more difficult -- in reality, only the setting that will actually be used by the game needs to look legitimate with the curves & hills.

    • @Xonatron
      @Xonatron 2 ปีที่แล้ว

      @@JDoucette Exactly. It's good to limit your problems and not trip over problems you create yourself. I understand the wish to have the engine handle every possibility properly though. It feels less hackish. I think perfection on these types of things is something we have to let go of for sake of productivity.

  • @Xonatron
    @Xonatron 3 ปีที่แล้ว +3

    You could have an arcade on/off mode potentially... Or maybe all such modes don't make sense and you just force the mode for earlier versions of the engine/game.

    • @JDoucette
      @JDoucette  2 ปีที่แล้ว

      I had thought about this too. The arcade mode could have distorted perspective, but also the sub-pixel sprite locations turned off, for a more jumpy, jagged feel. Even allowing the less precise turn mathematics. This may be desirable by some, like people who want the texture jump behaviour of the original PlayStation.

    • @Xonatron
      @Xonatron 2 ปีที่แล้ว

      @@JDoucette Sometimes it's best just to give gamers what you believe is best and not give them so many options. Because sometimes these options are a design decision in the game itself.

  • @MrBirchieBirch
    @MrBirchieBirch 2 ปีที่แล้ว +1

    I would love to see how good an oldskool super-scaler type game could be, if made on modern hardware.
    A remake of Outrunners but with super high res pixel art would be amazing.

    • @JDoucette
      @JDoucette  2 ปีที่แล้ว +1

      This has been my dream for a long time. I recall long ago seeing an arcade screenshot of a super-scalar style racing game, through the jungle, with so many tress and bushes that it just filled the screen. But since the System 16 days of Out Run, Space Harrier, Thunder Blade, Galaxy Force... I feel nothing really captured the same magic. More sprites doesn't mean better unless it "adds value".

    • @JDoucette
      @JDoucette  2 ปีที่แล้ว +1

      I also find it interesting the different methods in which to achieve a better version of the classics. More sprites. Higher resolution. Higher frame rate. For me, I would be happy with low resolution, high frame rate (even blur motion on top of that), and only as many sprites as needed to achieve some goal. I can tell the designers of the System 16 games were phenomenal at extracting the value of just a mere 128 or 256 sprites in total. Games today would use that for a single smoke trail, but After Burner didn't need that!

    • @JDoucette
      @JDoucette  2 ปีที่แล้ว +2

      One thing I've noticed with a few high res remakes of Out Run is that the objects are pixelated up close, like Out Run, but due to high resolution, you can see every pixel (well, texel) of the original sprite as it shrinks. So you have a pixel-density discontinuity -- high res and low res mixed together. But perhaps your suggestion is high resolution for everything, no pixelation at all!

    • @Sk1ds87
      @Sk1ds87 ปีที่แล้ว +1

      @@JDoucette It's true. I'm having the same issue. I'm almost considering a fixed resolution for my remake.

    • @JDoucette
      @JDoucette  ปีที่แล้ว +1

      @@Sk1ds87 Yup - I am very critical of pixel games that have discontinuities in pixel density in the game and the menu system or the HUD -- let alone in the game screen itself... I find it doesn't do the artwork or gameplay justice. Further than that, if you play a game like Doom or Quake, you really should play it at 320x200, since at 640x480 or higher, you're starting to get into the resolution showcasing the lack of detail -- it would be like watching an older movie at 4K or 8K resolution and noticing all of the set piece hacks that are not visible at the original resolution.

  • @elvinmateo6408
    @elvinmateo6408 7 หลายเดือนก่อน

    very cool =0

    • @JDoucette
      @JDoucette  7 หลายเดือนก่อน

      Thank you! Glad you enjoyed :)

  • @lucasdesouza9674
    @lucasdesouza9674 ปีที่แล้ว +1

    Are those assets available for download?

    • @JDoucette
      @JDoucette  ปีที่แล้ว +1

      You mean my lovely sprites? :) I don't have them for download. They are just things I whipped up in Aseprite pixel editing tool, which I highly recommend. I would have to find a spot to place my assets outside of my coding folder -- which is not prepared to be shared. Perhaps I should just start blogging about my work (see thefirstpixel.com) and then I could share some things that way.

  • @SongeLeReveur
    @SongeLeReveur 3 ปีที่แล้ว +1

    aw yiss

    • @JDoucette
      @JDoucette  3 ปีที่แล้ว

      :D

    • @SongeLeReveur
      @SongeLeReveur 3 ปีที่แล้ว +2

      @@JDoucette Seeing your progress really motivates me to try to code a pseudo 3D camera on my own engine. Wouldn't have much use for it but it looks so fun... :D

    • @JDoucette
      @JDoucette  3 ปีที่แล้ว +2

      @@SongeLeReveur I love when someone's work motivates others! I've been motivated similarly! Are you still working on your pixel art game? I still have the unreleased Duality ZF to finish someday. :) If you just want to program something simple, like Pole Position, the Z value for all scanlines is constant, and all they do is slide horizontally. Should be fairly easy to get something hacked together! I am looking to replicate the feel and nostalgia of Out Run, and the whole Cannonball Run emotions!

    • @SongeLeReveur
      @SongeLeReveur 3 ปีที่แล้ว

      @@JDoucette Yup, still working on it! I wonder if it would be possible to have a non-linear perspective, and if such an effect would be interesting. Kind of like if the FOV would vary along the Z axis.

    • @JDoucette
      @JDoucette  2 ปีที่แล้ว

      @@SongeLeReveur Any more progress? :) The non-linear perspective should be fine, since games like Out Run, Space Harrier, and Hang-On all used it. A bit of analysis of those games really shows how it can work. But if you tried to distort this with a fully 3D camera, where you could spin around objects, then I think that would be game over!

  • @capcelart
    @capcelart 2 ปีที่แล้ว +1

    how is this done?

    • @JDoucette
      @JDoucette  2 ปีที่แล้ว +1

      The standard 3D formula is basically inverse-Z is linear. Take a texture that is drawn in 3D, and then run across a row or column (or any angle) from pixel to pixel, and look at its Z value, take 1/Z, and you'll see a linear progression. Z means distance into the screen from the camera/eye.
      So, this makes for a road engine base on scan lines, where each scan line is constant Z, pretty simple... each line is basically 1/Z formula, or Z^-1. My test in this video is to change that -1 to other values, to see if it would distort the perspective.

    • @JDoucette
      @JDoucette  2 ปีที่แล้ว +2

      It works fairly well with a few exceptions:
      1. the engine thinks objects that are normal sized are much further away (the blue tint from distance gives this away),
      2. the curves and hills are way out of whack (not shown here), and this is where I stumbled -- to find a way that could preserve the feel/look/magnitude of the hills and curves. This may be a problem that doesn't need to be solved, if the engine makes the distortion unchangeable at run-time.

    • @capcelart
      @capcelart 2 ปีที่แล้ว

      @@JDoucette you should make a video explaining and showing this

    • @JDoucette
      @JDoucette  2 ปีที่แล้ว +1

      @@capcelart You are absolutely right. :) I should! I am trying to think how I could accomplish this. I think I could make a piece of presentation software with my own engines, sort of the way 3Blue1Brown and Displaced Gamers do, but it's significant work. But who knows, maybe it could be a fun side project, and have it run as an overlay & controller of whatever game it is running on top of, and I could use it to showcase many things in development.