Official Codex Discord Server

  1. Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.
    Dismiss Notice

How difficult is it to create a simple pseudo-3D first/third person renderer?

Discussion in 'Codex Workshop' started by PorkyThePaladin, May 15, 2018.

  1. PorkyThePaladin Arcane

    PorkyThePaladin
    Joined:
    Dec 17, 2013
    Parrots:
    1,371
    Click here and disable ads!
    What I mean is, let's say I have a state and logic layer that represents the actual state and behavior of the world. Now I want to create a simple display layer for it. Originally, I wanted to go with 2D, isometric or top-down. But this limits combat system options, as it's pretty hard to do a decent action based system within the confines of isometric/top-down 2D.

    I was wondering about a simple pseudo-3D display, maybe similar to Daggerfall. If I remember correctly, in Daggerfall, NPCs and buildings would sorta rotate weirdly when you moved, because they were just sprites displayed in 3D.

    I would just want to display the objects in front of me/character, they wouldn't have to have fully realistic perspective, just enough to convey things.

    How difficult would this be to do?
     
    ^ Top  
  2. DakaSha V Self-Ejected

    Self-Ejected
    Joined:
    Aug 16, 2017
    Parrots:
    436
    I don't understand what you want. do you want pseudo-3d (doom, duke nukem etc), or 3d with 2d sprites (daggerfall).
    Or would very pseudo-3d be enough (wizardry 6 & 7, eye of the beholder etc)

    edit: i did this in a game engine, but if you already have some kind of sprite rendering implemented, this is a 1-day job

    https://giphy.com/gifs/wsZ3ErQ7Q9JEB00yK8

    Something like wolfenstein should also be doable, quite easily (relatively speaking). Anything more than that is likely not worth doing on your own, unless youre incredibly talented
     
    Last edited: May 16, 2018
    • Brofist Brofist x 2
    ^ Top  
  3. PorkyThePaladin Arcane

    PorkyThePaladin
    Joined:
    Dec 17, 2013
    Parrots:
    1,371
    OK, I will elaborate a bit. I don't have much technical knowledge of 3D rendering beyond just playing games.

    I just need a simple first person or third person display of the world state (the state/logic layer) that can display buildings, NPCs, and objects in the game world. The animated gif you linked is fine in terms of looks and quality, but the catch is, my renderer would need to support gridless movement and more than 4 directions of movement (maybe at least 8 to seem realistic for a real time action based game).

    The only reason i need it to be 1st/3rd person is to have enough space to fit in an action combat system (different types of strikes, etc), which you cannot do in an isometric/top-down perspective in a way where the player can clearly see what's going on.
     
    • retadred retadred x 1
    ^ Top  
  4. Heapcleaner Novice

    Heapcleaner
    Joined:
    Mar 16, 2017
    Parrots:
    2
    Hmm.. do you want something similar to wizardry ?

    Difficulty in making first or third person perspective game lays within the scope and fidelity of your game. Creating something like wizardry 8 (with its level of fidelity) is technically quite easy these days with Unity (or Unreal Engine), you don't have to worry about low-level stuff like managing 3d scene graph, path finding, 3d audio etc. But what we already have in the engine may not suite our needs, in which case we can either change the design of our game within the limitation of what we can do in the engine (this is the easiest one), or learn how to do custom things that we need in the engine (the hard way).

    There are a lot of other amazing tools out there that are easier to use than an engine (Unity, UE, or Lumberyard), such as SMILE builder or game maker. Tools with higher abstraction (e.g: RPG Maker) will limit what you can do with the game, but if those limitation is within the scope of your game then it is the best and fastest way to create your game.
     
    ^ Top  
  5. mustawd. Magister

    mustawd.
    Joined:
    Dec 7, 2017
    Parrots:
    1,675
    Sounds like you’re describing a very basic 3d world with 2D sprites to represent stuff. Daggerfall like you said. Or even BaK.
     
    ^ Top  
  6. VentilatorOfDoom RPG Codex Staff

    VentilatorOfDoom
    Joined:
    Apr 4, 2009
    Parrots:
    7,834
    Location:
    Deutschland
    The engine used in Drakensang and Drakensang RoT (Nebula) is open source. It includes the D3D and OpenGL rendering code. Perhaps you can glean a few hints on how to do that stuff from the source code.
     
    ^ Top  
  7. vlzvl Educated

    vlzvl
    Joined:
    Aug 7, 2017
    Parrots:
    65
    If you do not have technical knowledge and want to do it from scratch, yeah it is pretty difficult and you need some theory first.
    In the past those games were using the VGA directly (pixels) but nowadays there are pretty much only 2 graphic APIs, DirectX and OpenGL.
    If you want your rendering engine to be modern, you will need to learn shaders as well which is another beast.
    Then you need to learn about matrix transformation to setup properly your 1st or 3rd person cameras.
    Then you need to learn about occlusion culling to skip unseen parts of your world for FPS reasons.
    Then you need to write some equation to rotate your 2D objects to always face your camera.
    (for OpenGL only) And since you want transparent sprites in a 3D world, then your need to render those objects back-to-front without depth writing to avoid glitches.
    Then you need to automate some stuff like camera moving by keys or mouse.
    And this is just a basic renderer for first person games.
    Or you can just use a ready behemoth like Unity or RPG Maker and forget all this nonsense because yeah it is difficult.
     
    ^ Top  
  8. Hoaxmetal Arcane

    Hoaxmetal
    Joined:
    Jul 19, 2009
    Parrots:
    8,550
    guise I have played games since I was 5 years old pls how do I make a game engine
     
    • Cheers!! Cheers!! x 1
    • Funny Funny x 1
    • Agree Agree x 1
    ^ Top  

(buying stuff via the above buttons helps us pay the hosting bills, thanks!)