What can we Learn from Old Games and Classic . .

jbrooks79jbrooks79 Posts: 1,308Premoderated

I've been binge-watching a lot of old games recently, and I'm very impressed, like with the effects, other stuff . . . I was thinking we could have a topic on old, classic games, and maybe study them, to learn what made them good, ' work ', or function . .

I've been following the Alone in the Dark series, especially this one, and was wondering if we could have a study, where we analyze things in them, and try to make them in Godot, like lighting, animations, 3D models, or so . .

I have bought this game, it costs 1 pound, plus shipping . . .

I want to try and ' get ' stuff from that game, since it was good, really nice . . Could that be done in Godot, would it be a lot of work, to make stuff like that . . Just, like the style, the ' world ' . . Is it possible . . . .

«1

Comments

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    Okay, I have a dumb question, can a person re-make this effect, from the game, in Godot . .

    I'm more like curious, need learning . . Anyway, we could study some old classic we own, and imitate them . . Old games today cost like 0 money . . :) <3 <3

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    Had this crazy idea, we could use this as a sort of ' class ' room, for studying classics, their components, mechanics, effects, lighting, all the way, to triple A . . My guess is the newer games are sort using things like this, but more refined, ' polished ' . . .

    Anyway, a sort of of study / analysis topic, about old games . . . . <3

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    I've been really thinking about it, suppose I had a 3D model I wanted in a mirror, but wanted to ' cut ' certain parts of it ' off ', like a frame, could I take the ' quads ' I didn't want and, reverse the normals, so Godot doesn't draw them . . Many games have like an image of a character, in a little window, during in-game dialogue, could one put that in the ' mirror frame ', or is there a better way . . . I'm thinking a lot about it, it's tough . . .

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    The big problem is, I want it there to be a room behind the glass, but that can't be seen when looking around it . . . Maybe there is a easy solution, anyway love solving problems, it's a fun challenge, if tough . . . . <3 :D

  • cyberealitycybereality Posts: 651Member

    Cool. I never played that game but I have been looking into old titles, I will check it out. I really liked Alone in the Dark back in the day. I tried to play the first one and the controls were really hard. The graphics still looked okay but it was pretty clunky. It was hugely influential, and Resident Evil basically took the design.

    To get the mirror effect, you can use a portal (usually this is done with a stencil buffer, I'm not sure you can access stencil buffers in Godot). I found this tutorial, which should be easy to follow. Basically you put the ghost somewhere the main camera cannot see (like under the floor) and use a viewport texture to map that to the mirror.

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    Wow, that is amazing, he created a ' mirror ', but it's really just a ' camera ' seeing from the other angle . . That's pretty rad, Omg . . . :O <3

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    Would the viewport projection work on a ' non - square ' surface, like a rounded mirror . . It could be used on square mirrors, right away ? This is an interesting challenge, to ' make ' effects . . .

    ps. If you want to talk about another game, Alone in the Dark is a bit weird, I'm just making a slightly horror game, and love that game, if it was a BIT weird, anyway, post any game you really like, some-thing good, and ask questions about how they did it, or make it in Godot, perhaps . . There are MANY classics, all styles, types . . :D :D <3

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    Okay, so if you make a mirror of the room the character is in, project that on a plane, and put the ' mysterious apparation ' in there, it will look like a mirror, but with another person in it . . . <3 You just need a copy of the same room, perhaps copy the scene . . . :) <3 <3

  • SIsilicon28SIsilicon28 Posts: 284Member
    edited March 24

    Well that's what a lot of old games did. For example, in Super Mario 64, there's this big mirror that covers the end of one of the rooms. The mirror is really just a semi transparent plane with a flipped version of the room behind it (including Mario and the camera man himself which are dynamically placed).

    Unfortunately though, like a lot of methods, this has it's practical drawbacks. Nothing can be rendered behind the room or else it will show up in the mirror producing some sort of "ghost" reflection. You'd need enough room to show off the room. This also means that the mirror's orientation and position is practically static.

  • SIsilicon28SIsilicon28 Posts: 284Member
    edited March 24

    @jbrooks79 said:
    Would the viewport projection work on a ' non - square ' surface, like a rounded mirror . . It could be used on square mirrors, right away ?

    As far as I know, all methods of rendering mirror reflections can support square mirrors.

    (By the way, if you need a mirror, I can provide that too. I made a plugin for that. ;))

  • SIsilicon28SIsilicon28 Posts: 284Member
    edited March 24

    @cybereality
    And while that video does seem insightful, the mirror doesn't seem to align with the world properly. :/

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    What if you made a copy of the room, and placed a camera there, but it didn't have the character, but the ' ghost character ', the ' false ' apparation, and then projected the camera viewport onto the mirror, it would work if it was square, it would look like there was a room, the same room, but not with the main character, but a ' false ' person in it . . The problem is somehow going from reflective, normal mirror, to one with ' ghost ' in it, if 100 % reflective, it won't show anything, except the first room . . . :( :(

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    The problem is sort of, ' adding a whole character, from later in the game, but only seeing part of it . . I had the idea of getting roughly the ' parts ' of the ' ghost ' character you wanted, flip the face normals, so it was invisible, and use that to make the ghost legs, and parts of arm that would ' stick ' out-side the mirror disappear, but I don't know . . . <3 <3

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    I guess the best solution is to make a transparent plane appear ' over ' the mirror, and project a recording there, so it looks super-imposed . . . . But, making a false room, would be so cool, note the game also has fixed camera angles, that might make it easier . . .

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    A transparent figure floating on top of the mirror, with transparent sort of, would look like it was in the mirror, at least in cut-scenes, and placing the plane would be very simple, and the normal reflection around it would still show, as well . . By disabling it to cast shadows, the ' transparent ' stuff would not reflect shadowy, in mirror . . Could it be done . . . The problem is shaping the ' plane ' so that it follows a rounded mirror, one COULD start with square mirrors . .

  • SIsilicon28SIsilicon28 Posts: 284Member
    edited March 24

    Would you like to try this out? No need to get into the details if someone already did it for you. :)
    https://github.com/SIsilicon/Godot-Planar-Reflection-Plugin

    This uses a different method than one used in old games, but it's more flexible and doesn't require manually flipping geometry. Instead of copying geometry, it just renders the already existing geometry from a different perspective. You'll see what I'm talking about in the README in that repo.

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    So, is it possible, I have a bad OCD condition, I have problems opening new things, unless I know exactly what they are, can you help . . :( :( <3

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    I really like figuring things out myself, it passes the time, feels ' Great ' ! ! I guess the problem to make character that stand in front of the mirror, only appear in the mirror, is to cut of parts of the character ' outside ' the frame . . Ideally, I just want the full 3D model to stand there, but only be seen in a cut-out, mirror-formed . .

    So, one would want a ' plane ' that was ' placed like 0.01 m over the actual mirror, with a transparent figure, that only appeared in the ' shape ' of the mirror, one COULD start with a square mirror, but challenge was re-make the effect, in the game, a sort of ' can we do it thing ' . . To re-do it, but in Godot, using our skills, wits . .

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    Alternatively, one could sort of give a material to the character, on central faces that was 90 % alpha, then further from center, 80 % alpha, then 70 % alpha, until maybe 40 % alpha on the arms, and then just lower albedo alpha on the whole thing, until it appeared ONLY, on the mirror . .

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    The problem is making a cut-off, that makes the ' ghost ' never go ' out-side ' the frame, sort of . . . While the FULL 3D model is there, projected on a plane, ' glue ' to the mirror -surface . . :( :(

  • SIsilicon28SIsilicon28 Posts: 284Member
    edited March 24

    @jbrooks79 said:
    So, is it possible, I have a bad OCD condition, I have problems opening new things, unless I know exactly what they are, can you help . . :( :( <3

    Yes it is possible. You can trust what I have provided. It's a tool that anyone can use. I built it to be (mostly) user friendly. It's even available in the official asset library. :)
    https://godotengine.org/asset-library/asset/507

  • SIsilicon28SIsilicon28 Posts: 284Member
    edited March 24

    @jbrooks79 said:
    I really like figuring things out myself, it passes the time, feels ' Great ' ! ! I guess the problem to make character that stand in front of the mirror, only appear in the mirror, is to cut of parts of the character ' outside ' the frame . . Ideally, I just want the full 3D model to stand there, but only be seen in a cut-out, mirror-formed . .

    Modern games don't do that anymore. We have enough resources to just render the model and other geometry a second time. No need to cut the model manually. Just like how @cybereality showed. :)

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    I think I understand, but I don't want the ' ghost inside the mirror - world ' to be a reflection, I want it to be a recording, or a viewport of the ghost, that is flat, that can be shaped like the mirror, like a decal hovering 0.01 m over the actual mirror, like a ' movie ' screen, sitting on the mirror . . It's ' cheap ', but probably easier than modelling an actual ' mirror ' world, ' inside ' the mirror, sort of . . . I will watch the video again, see if I can make sense of it, I really try, this stuff is ADVANCED . . <3 <3

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    Like if I could make a camera that recorded only inside a shape, outline of the mirror, took the ' image ' recordings, and put them on a flat plane, but with the shape of the mirror, like a round or, weirdly shaped mirror . . I will watch the above video again, there HAS to be a way to create an ' shadowy person in a mirror ' effect, as if there was a ' fake ' person, not in the real world, INSIDE the mirror . . . :) like, the mirror image was another dimension, or ' room ' . . . to begin with, it could be a square image, like a plane, perhaps in a cut-scene one could make the ' frame ' of the mirror render as always on top, like this . . by enabling ' no depth test ', so the frame of the mirror will ' appear ' to be over the ' hologram ' . . Actually, that's how you do it, you just create a room, project an image onto a plane, and in the cut-scenes, with the camera being fixed, or not very moving, you enable ' no depth test ', like this, for the frame, and it cuts away the stuff, on outside of the frame . . one just have to make a large frame, or make sure it's on a flat wall, so one can enable ' no depth test ' for the walls polygons, just around it . . .

    One could even use this to create a false room, a mirror room on the other side, which can only be seen inside from that side, if one ' animated ' the ' disable depth test ' effect, one could make it so, it only worked during cut-scenes . .

    So, if the frame had that effect, it would work like a cut-off, but if one also made an artifcial wall, behind it, or modelled a bit of wall combined with the mirror, it would work like a cut-off, and whatever was projected would ' appear ' to be in the mirror, and the polygon shape of the mirror itself would ensure, a non-planar mirror could be used . . Would this work, I'm better at guessing, than figuring things out . . . . :D <3

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    Sort of, like this, one could mirror a piece of the wall, if the frame was too small, and sort of make a ' wall tile ', with a mirror, with a hole in it . . Then one could add another plane, what is vertex snapped into the frame, in Godot, with same origin point, and put that inside the mirror, for the normal mirror reflection, then lower alpha on that plane, and make a ' copy ' room on the other side, and it would look like there was another room, sort of . . but one would have to make the ' no depth test ' mesh sort of big, to not be able to see it was ' just ' fake . . . Could that work, not sure . . . .

    I was thinking we could make this a sort of study / challenge thread, where we find something from old games, see if we can do better, or at least get close, make something similar, in Godot . . . <3

  • SIsilicon28SIsilicon28 Posts: 284Member

    In that case the solution is simpler than you think. Just play the recording directly in the meshes material! No need for decals and that stuff. Godot supports video textures that you can use as a texture mapped to the mirror, which is probably what's being done here.

  • SIsilicon28SIsilicon28 Posts: 284Member

    If you still want a fake room with the parallax that a real mirror has, then there's a solution for that too.
    In my mirror plug-in there's a setting for a cull mask. Anything not in the render layers specified in it will not render. So you can put your level in one layer, your fake room in another, and set the cull mask to only render that second layer. :)

  • jbrooks79jbrooks79 Posts: 1,308Premoderated
    edited March 25

    The best way might be to combine them, to make a natural mirror, for a cut-scene, where the mirror, and perhaps a little bit of wall are modelled in one mesh, so they can be rendered with ' no depth test ' on, so they don't get ' in the ' way, of each other, and then have a second room, a mirror of the real room, maybe 500 meters away, with a camera in it, that records the ' ghost ', puts it on a plane ' projection ', then that's put in the mirror . . . Advanced stuff, making special effects is a BIG challenge . . . <3 <3

    Ideally I don't want to make a ' new ' room, with the ' ghost ' character in it, I just want the character to be ' in ' the reflection, as a transparent, flat ' image ', on the mirror . . the problem is making the mirror reflective, but at the same time showing a ' non - existing ' character in it, as well . . .

  • jbrooks79jbrooks79 Posts: 1,308Premoderated

    The problem is solved here, by the mirror being ' pre-rendered ', so reflections don't have to be calculated, with the character being super-imposed . . The standard reflections in the mirror in AitD : TNN are ALSO pre-rendered, so they can fake it, with a ' no depth test ' on, perhaps a block around the mirror with inverted normals + ' no depth test ', or do other stuff, because even the normal reflection, without a ' ghost ' is pre-rendered . . That makes it more difficult, I will watch the videos, learn . . .

    Can we crack it, or even make it better, work at run-time, with minimal resources / effort . . The easy way is just to create a dark room, have a transparent ' mirror ' that is normally reflective, lower the alpha on that so one can see a ' character ' behind it, and use no depth test on the mirror frame, to make sure one only sees ' inside ' the mirror, but it's cheap, a ' trick ' . . . Is there a better way, anyway, like the challenge, sort of . . .

  • jbrooks79jbrooks79 Posts: 1,308Premoderated
    edited March 25

    So, I can put the 3D model in one cull mask, and only the model will show up in the projection . . . . This sounds complicated, I'm scared . . . . <3 :( :( I just need to use some features I don't know the words for, Godot can already do it, I just don't know what the features I need are called ? :(

    I have never used a cull mask, is there a tutorial, by the makers . . .

Sign In or Register to comment.