Search Unity

Games [WIP] Doom I clone

Discussion in 'Works In Progress - Archive' started by neginfinity, May 26, 2017.

  1. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Based on ideas from this thread, I'm planning to make a doom I style retro game.
    I"m planning a short term one level project with several enemies, music and soundtrack.

    What I have right now:

    Level editor:


    "Retro" shader:
    screenshot.png

    And a few sketches.

    I'll be posting updates from time to time.
     
  2. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Editor tools update:


    Planning to test movement next, then it'll be dealing with art assets.
     
  3. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,521
    Uhh, I'm actually impressed with that level editor. That's really cool.
     
  4. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Thanks.
    It took 3 days to get it to this point.
     
    Not_Sure, Martin_H and LaneFox like this.
  5. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    That's precisely the thing I need to master next and you will start popping all sort of pgc modeling from me, potentially realistic human character too :D
     
  6. QFSW

    QFSW

    Joined:
    Mar 24, 2015
    Posts:
    2,906
    Nice work @neginfinity! How long do you reckon you can do this in? (assuming nothing in life comes up that eats up your time)
     
  7. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Original idea was to try to wrap everything up in one or two weeks.
    "Everything" means one-level doom-style game, with sprite-based characters.

    Given that level editor already ate 3 days, "one week" probably isn't happening anymore.
     
  8. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,521
    Well, the editor was pretty unnecessary if you just wanted a one level clone.
     
  9. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    I thought about it.

    If I were cloning Quake, sure, I'd go with standard approach - I' d model the whole level and import it. However, this isn't Quake.

    Basically, I figured out that modeling the whole thing in blender will be actually quite painful due to nature of texture mapping used in doom. Basically, I'd get one level, but adjusting anything in it would be very difficult because moving one vertex would screw up half of the room (basically I'd need to script UV mapping somewhere either way). I also wanted to get some experience with custom handles and scene editor gui. So I wrote the level editor. I think it turned out alright.

    Anyway, I'll post an update when I have anything else to show.
     
    Thorlar, GarBenjamin and Martin_H like this.
  10. QFSW

    QFSW

    Joined:
    Mar 24, 2015
    Posts:
    2,906
    Hmm, how about giving yourself 1 to 2 weeks after finishing all your editor tools? So that long on just the game
     
  11. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    I got horribly sidetracked by an "Amazingly INteresting problem (tm)". I wasted a lot of time on it but results of work didn't pay off and had to be scrapped. Anyway, I'm back on track. Currently I'm making art assets.



    I DID clone half of the original level, but it turned out that that cloned level didn't feel right, so I decided to redo it, starting again with graybox phase (rough level shape to get distances right, once sizes are right, it'll be detailing/textures + properly aligning walls.

    Apparently texture resolution of individual items is much higher than what original doom had, and same applies to the level.

    I also added few minor tweaks to the editor (like much needed ability to join multiple adjacent polygons together, which ended up being quite simple, ability to flatten floors/ceiling to the same height, etc).
     
    Last edited: May 31, 2017
    GarBenjamin likes this.
  12. QFSW

    QFSW

    Joined:
    Mar 24, 2015
    Posts:
    2,906
    Looking good :) what was it that you got side tracked on?
     
    theANMATOR2b likes this.
  13. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Collision detection. It is a long story.
     
    iamthwee, QFSW and theANMATOR2b like this.
  14. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    Please share when you have time. I deeply enjoyed reading the details you wrote on your previous low poly game - especially your information on decals even though it was beyond my knowledge.
     
    Martin_H and QFSW like this.
  15. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    I made a few models to be turned into sprites. (Prettty sure original Doom used clay models at least in some places.
    sprite-models.png
    Have two more enemies, then it'll be sprite making time. Will probably spend the rest of available time this week making artwork for it.

    I'll get to it eventually. Need to get some sleep first.
     
  16. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Made one more character and colored existing ones. Need one more enemy and then it'll be sprite making time.

    characters-wip2.jpg

    Basically, I thought that cloning original designs woudln't be fun and wanted to have a differnet take on monsters, though largerly with the same roles.
     
  17. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Now...

    Basically, I had an "amazing idea(tm)" to roll out my own collision detection system that would work in 2d, like original doom did.

    Doom I has 2d collision detection where your bullets autoaim vertically. Meaning you can't just 3d raycast int. Another problem is 2d map you can see in doom overlay, which tracks sector and wall visibility. So, I made a wrong decision and tried to roll out 2d collision system that would deal with both of those issues.

    XYZ hours later I got a grid based colision detection in 2d that took handled collisions with level, collisions between objects and the level, and collision between enemeis as well. Also, it could return current 2d polygon in the scene for any map coordinate:
    collision.png

    ^^^ Object's pushed away from initial position by collision detection system.

    Grid based means that there was a 2d grid and each grid cell stored polygons/edges that were located in it, plus objects upon moving would register/deregister themselves from the grid cells. The issue with this and BSP approach is that BSP takes significantly less space for polygons.

    Now... then I hit problems.
    First, because Doom character moves around at 50 kmph or somethign along thise lines, the character could easily tunnel through thin walls. Also, it could tunnel through not so thin walls and end up outside of the level, if the move would place him into another cell that didn't have any grid registered in it.
    But the big problem is that on larger levels I got very choppy performance, because of garbage generation (which I actually tried to minimize).

    So, I took a hard look at the whole mess, sighed, put it into "Obsolete" folder and then set up replacemenet with rigidbodies in one hours or so.

    So, lessons learned:

    1. Apparently C# in unity is very bad choice when dealing with large number of containers. The system I had would work just fine in C++, due to tight memory control.
    2. Rolling out your own collision in untiy is generaly a bad idea. It is a FUN idea to tinker with, jsut not a good one.

    Well, I did get some sort of fun coding warm-up with it, and figured out a routine that can shoot 2d raycast through poly grid by walking through adjacency information. This one will be probably used for 2d map, when I get to it.

    But the whole "let's handle ALL collision on our own" was a massive waste of time and nothing more.
     
    twobob, Not_Sure, GarBenjamin and 5 others like this.
  18. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Anyway. Things need to do right now:

    1. Need one more enemy
    2. Need to rig those guys then render them in blender into sprites
    3. Need to finish blocking out the level.
    4. Need few more textures (those will be added when needed)
    5. Need to add animated texture support for walls (this one is easy)
    6. Ideally Moving floor for secret buttons
    7. Opening screen graphic.(this one will be definitely a paint-over)
    8. Sounds + Music.
     
    GarBenjamin and iamthwee like this.
  19. iamthwee

    iamthwee

    Joined:
    Nov 27, 2015
    Posts:
    2,149
    Looking good neggy.

    Honestly, I thought you was gonna do the enemies totally in 2d -> so I didn't think you'd get around to it. The enemies have got a decent low poly base mesh to turn in sculpts with possible retopo and texturing, but that's a massive time sink, if you wanted.

    How do plan to get that pixelated look on the enemy sprites?

    Will you music/ sound track be unique and how do you go about composing that?
     
  20. iamthwee

    iamthwee

    Joined:
    Nov 27, 2015
    Posts:
    2,149
  21. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,512
    That level editor is badass.

    Keep up the great work! And I have no problem with you going off on distractions, as long as you post here about what you learned in the process! :p
     
    GarBenjamin and neginfinity like this.
  22. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Alright, I've decided that making a shotgun guy is less fun than animating one of the existing characters, so I've got first enemy spritesheet. Didn't get the brightness right, and will need to redo it.


    This will need manual touch-up later either way - to make glow work/etc.
     
    twobob, Not_Sure, GarBenjamin and 3 others like this.
  23. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Fixed the character brightness.


    I'll still need to work through the sprites at later date and manually adjust parts that need to glow in the dark. Glowing eyes are given, not sure about the glowing ball and lighting. This one might be painful to work with.
     
  24. QFSW

    QFSW

    Joined:
    Mar 24, 2015
    Posts:
    2,906
    Look's good!
     
  25. PjTheIndieDev

    PjTheIndieDev

    Joined:
    May 5, 2017
    Posts:
    17
    Interesting project.
     
  26. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    It looks hand drawn, well done!
     
  27. Kona

    Kona

    Joined:
    Oct 13, 2010
    Posts:
    208
    :) Looks good this far, I'll watch this thread!
     
  28. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Made one more character:


    Two characters to go. Shotgun guy (that also needs to be modeled) and protagonist.

    Most likely I'll need to work on Gib sprites at some point, right now they're missing.
     
    Not_Sure, Martin_H and Deleted User like this.
  29. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Alright.... I"ve finished the "Shotgun guy" spritesheet:


    I think I'll postpone dealing with main character sprite (it isn't visible in single player - most of the time anyway), and resume level grayboxing.

    Gotta say this dude was hard to make and it looked cooler in higher resolution:
    0049.png
     
  30. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Basic AI added:


    Still needs improvements/tweaking, because right now it is quite boring.

    I also need to add collision routines for instant-hit weapons like pistols/shotguns.
     
    jc_lvngstn likes this.
  31. bart_the_13th

    bart_the_13th

    Joined:
    Jan 16, 2012
    Posts:
    498
    Well, you can always get away using normal-based-worldspace texture shader, polygons that facing up are using floor texture, and polygons facing down are using roof texture, anything else use the wall texture... No need to unwrap the polygon uv
     
  32. Blacklight

    Blacklight

    Joined:
    Dec 6, 2009
    Posts:
    1,241
    The low poly style translated well into sprites. Are those sprites straight from the renders or are you modifying them in anyway in between before they go in engine?
     
  33. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Not really.

    The texture needs to align with the beginning of the wall, and also with either floor of ceiling. While you could feed reference points into shader, at this point you might as well unwrap it.
     
    Martin_H likes this.
  34. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    The sprites are processed cycles render.

    You can't directly plug in low-resolution render, because it'll be turned into a messy cloud of semi-transparent pixels due to antialiasing. Low resolution renders are unusable and cannot be directly plugged in because they do not match the aesthetic.
     
  35. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    1,383
    Why are you using Windows XP? I've seen some other developers doing the same and I'm intrigued.
     
  36. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    I have no idea what you're talking about here.

    ...

    If that's about window styles in the videos, then it is 64bit windows 7. Not Windows XP.
     
  37. alexanderameye

    alexanderameye

    Joined:
    Nov 27, 2013
    Posts:
    1,383
    Oh, in the initial video on the top post, the design of the top bar is from windows xp right?



    Edit: alright thanks!
     
  38. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Definitely agree that your level editor looks awesome. I think it is something that a lot of people would like. Just a good solid level editor making it easy to rapidly construct levels. That's great stuff.

    Your enemies look fantastic. I thought the original models were great and think they look just as good or better "in game". That shader or whatever you're using for the chunky pixel fx just looks awesome.

    Also there is something unique about the way you create ultra low poly models. They always have a very cool look to them. Like very expressive and detailed yet still ultra low poly. It is really very good man.

    I don't want to distract you but if you made a Skyrim like game that looked like that throughout (without the retro shader) I think it would look fantastic and possibly stand out from the "normal hd look" crowd enough to get some attention on its own just for the look.

    But don't think about that now.
     
    QFSW, Paul-Swanson and neginfinity like this.
  39. Not_Sure

    Not_Sure

    Joined:
    Dec 13, 2011
    Posts:
    3,546
    Wow, this is all looking great!

    I wasn't sure about the 3d models in 2d, but you can't argue those results. Very sharp looking.

    Are you planning to take some selfies to have your Doom-clone Guy's face on the bottom? :D

    Also, for the music, you may want to consider asking random metal bands if they would let you use theirs for free publicity. You'd be surprised how many people would agree to that.
     
    neginfinity likes this.
  40. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    I'm planning to add face sprite at the bottom, but no selfies.

    I'm blocking out the level right now, and wiring support for basic moveable floor/ceilings into editor.
    So, face sprite will be done somewhere after wall textures and hand sprites, but probably before menu background.

    I'll keep it in mind, especially if I run into trouble composing music myself.
     
  41. jc_lvngstn

    jc_lvngstn

    Joined:
    Jul 19, 2006
    Posts:
    1,508
    You know...this whole project just looks like you are having a blast. What fun.
     
  42. Paul-Swanson

    Paul-Swanson

    Joined:
    Jan 22, 2014
    Posts:
    319
    It really does. I'm somewhat jealous of him. I'm working on myself but not getting nearly the enjoyment outta mine.
     
  43. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Update:


    Changes:
    • Automated creation of sprites from blender images
    • Added glow effect to enemies (so the glowing parts can be visible even in darkness.
    • Grayboxed the level. Still need bunch of textures.
    • Lots of tweaks to level editor. The level now can be split into multiple meshes, with separate parts for moving floors/ceilings (not in the video).
    Still a lot of stuff left to do.
     
    Not_Sure, GarBenjamin and RavenOfCode like this.
  44. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    I've added some level textures.




    Thoughts/misc:
    1. Animated textures are time consuming. Even when they're simple animated textures.
    2. Water caustics are annoying to draw by hand.
    3. Added ability to shift wall textures in level editor.
    4. Right. I've also added animated texture shader.
     
    Griffo, Not_Sure, GarBenjamin and 2 others like this.
  45. sngdan

    sngdan

    Joined:
    Feb 7, 2014
    Posts:
    1,154
    Looks good. I hope that you benefit somehow from doing this...

    You really have a good mix of the different talents required to make a game.
     
    QFSW likes this.
  46. Silly_Rollo

    Silly_Rollo

    Joined:
    Dec 21, 2012
    Posts:
    501
    Woah this looks so much like the original Dark Forces.
     
  47. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Update:



    Changes:
    • Skybox
    • Openable doors
    • Shotgun colliders
    • Wall impact effects
    • Death effects
    A word of warning (to the future generations or something): messing with volumetrics in blender is a serious time sink. The skybox ate ridiculous amount of time, and some of the obvious approaches (like 3d noise function with height-based fadeouts) results in absolutely ridiculous render times (like 14 hours per picture on preview quality).

    I need to tweak weapon handling for the player, check weapon switching and then it'll be time to make more sprites (weapons, huds, protagonist's face and menu background).
     
    QFSW, neoshaman, RavenOfCode and 2 others like this.
  48. QFSW

    QFSW

    Joined:
    Mar 24, 2015
    Posts:
    2,906
    I can attest to this. Needed to have a bunch of intersection volumetric objects to create trails for one of my achievement icons. Had to massively bump up some of the light passes as a result to stop black voids appearing where the light bounces too much. Ended up taking over 24h on my 970 at and was still a bit noisy, it's very slow stuff

    Keep up the good work @neginfinity, looking really solid thus far
     
  49. Not_Sure

    Not_Sure

    Joined:
    Dec 13, 2011
    Posts:
    3,546
    This is all looking great, but I do think that your enemies need a little more color.
     
  50. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    This may be problematic, because I have harder time dealing with colors in general. Current character designs can be considered frozen for the time being, but I might make future enemies more colorful - IF I'll ever have time/energy to add more of them. There's still main character sprite, weapons, and character's face (something tells me this one has potential to become another timewaster).