6 ms·
It would be cool if more hobbyist game developers started making retro FPS games in the style of Doom or Wolfenstein. It's only marginally more effort than maki
by cousin_it 12y ago
It would be cool if more hobbyist game developers started making retro FPS games in the style of Doom or Wolfenstein. It's only marginally more effort than making pixel art platformers, which is a wildly popular aesthetic these days, and I feel that the retro 3D aesthetic has a lot of untapped potential. The Vlambeer game Gun Godz is a good recent example, it's pretty much Wolf3D with a nice art style.
Also, these kind of games make it feasible to write a random level generator that actually makes okay levels (there are such generators for Doom), and allow users to create their own levels with custom art styles in a day or so.
- thathonkey 12y agoCould you elaborate on how it is only "marginally" more effort to make faux 3D pixel games vs. 2D pixel art games? Seems like it would be quite a bit more complicated to me...
- jiggy2011 12y agoA Wolfenstein engine is pretty simple to replicate, it's basically a 2D top down game projected into the 3rd dimension. Here's how it works. http://lodev.org/cgtutor/raycasting.html http://lodev.org/cgtutor/raycasting.html A doom engine is a little more involved and requires BSP trees, more clipping/culling and something closer to actual 3d (floors and ceilings with variable heights, geometry that doesn't fit onto a grid). Both of the games used 2d sprites for enemies rather than 3d models, so you could draw all of the graphics with paint rather than a modelling tool which would probably be a significant time saver.
- thathonkey 12y agoThat sounds pretty complicated to me :D But, I am admittedly a layman in this area.
- jiggy2011 12y agoIt probably makes more sense if you follow along with the article and convert the code examples into your favourite language. The good thing is that you don't even need to use Direct3D/opengl, you could do it with only a <canvas> element in javascript for example or anything else that lets you assign colours to pixels. You could even make an ascii art version if you were so inclined.
- ido 12y agoOr you can use unity.
- jiggy2011 12y agoYou could, but the renderer in unity is optimized to deal with environments far more complex than were possible in wolfenstein or even doom and thus uses very different techniques to put geometry onto the screen. A psuedo 3d wolfenstein clone written with a reasonably optimized raycaster would probably outperform a unity version quite significantly. I don't know how well suited unity is for having 3d game entities represented by flat textures instead of 3d models for example.
- krapp 12y agoI'm just starting delving into SDL2 tutorials. If I ever get competent at it, this sounds like a fairly good idea for a project.
- Scuds 12y agoThe BSP* algorithm used in Doom was research paper material in 1991, and Carmack was among the first to apply it to low performance PC games. * http://en.wikipedia.org/wiki/Binary_space_partitioning http://en.wikipedia.org/wiki/Binary_space_partitioning I keep thinking about the Malcolm Gladwell "Ten thousand hours to expertise" idea, and for Carmack to be looking at this sort of stuff at the age of 22, he basically had to eat sleep and shit computer graphics for years and years on end before he could be in a position to apply this to a computer game.
- nailer 12y agoI read something from the System Shock developers about them finding out about BSP after Doom was released. They'd spent the whole time culling levels to try and fit into memory, never considered recursively chopping it up.
- cousin_it 12y ago1) Quantity and quality of assets - I don't see much difference here, do you? 2) Game logic - a game like Wolfenstein has basically planar gameplay, you can't jump or aim up and down. You could play the same game in top-down view on a grid of squares. 3) Rendering - it should take you at most a day to write a Wolfenstein like renderer. Might be scary if you've never done 3D before, but it's a great starter project.
- clarry 12y agoDoom has vertical aiming, but it's automatic. There are doom engine based games which relax this limitation and let you actually look up and down, fly, even jump. It doesn't actually make things much more complicated. See heretic & hexen.
- jiggy2011 12y agoI haven't looked into Doom's code very much, but based on playing the game it seems that hit detection is done in 2d. If you are shooting a target above you there is no visual indication that you are aiming higher. You can shoot at a wall and still hit an enemy above you who you cannot currently see.
- clarry 12y agoYou may be right, I can't recall whether the hit detection cares about height, but Doom does at least some slope calculation to display the bullet-hits-wall animation at the correct height. If you look at rockets and plasma, these projectiles will also move in a slope. So if you're rocketing someone high on a ledge, it won't show you a rocket hitting the wall at eye level... even though such a rocket (if you fired it while not lined up with the target) could possibly damage the target. That may have changed with some later versions. At least some source ports change it. In any case, heretic and hexen actually let you look up and down. Crispy Doom (among others) have backported this feature and hook it with mouse aim. Try shotgunning someone high up and far far away. Either there's a distance limit to auto aim, or it's just really damn picky about how perfectly you're lined up. Most of your shots will hit the wall below him.. it can be frustrating.
- Pxtl 12y agoDoom's art would actually be very labor intensive, because you have to animate each sprite from every angle.
- jiggy2011 12y agoDoom only used sprites from a limited number of angles. Here's the entire cacodemon spritesheet http://doomfansite.synthasite.com/resources/Cacodemonsheet.gif http://doomfansite.synthasite.com/resources/Cacodemonsheet.g...
- Pxtl 12y agoYes, it's a set of facing angles, and then mirror'd for the other side. I played with Doom modding tools back in my youth, I've seen the sprite-sheets. The Cacodemon isn't a good example, though, since it doesn't have a walk cycle. Every monster that can walk needs to have a fully animated walk for going towards the player and away from the player and every angle in between. Ditto firing anims. That's a lot of walk cycles. They cheat with the death anims since the monster always faces the player to die. Still, lots of walk and firing anims. The approach also fails for PVP models because players can fire and move at the same time, which creates the "skating" effect from Doom/Quake1/Quake2.
- phkahler 12y agoIt's a lot of work, but there is nothing complicated about getting it done. You tell the art guys the specs and they spend a few days getting all the images and then move on to the next monster.
- egypturnash 12y agoThere's a lot of complication about getting it done. You're just offloaading all the complexity to the art people. - signed, an art person.
- phkahler 12y ago
- prawks 12y agoThere are a decent amount of developers making games in the Goldeneye-era style. Though most are more creative takes on the genre than clones of retro games (ex: Superhot, Screencheat).
- shaurz 12y agoA cool retro 3D racing game: http://driftstage.tumblr.com/ http://driftstage.tumblr.com/
- adamors 12y agoIs Gun Godz available for purchase? Their site seems outdated.
- azmenthe 12y agoThis is the link I bookmarked for later so not 100% sure it works: http://vlambeer.itch.io/gun-godz http://vlambeer.itch.io/gun-godz
- phoboslab 12y agoI recently made a Wolfenstein like 3D shooter with HTML5/WebGL, called Xibalba[1]. It's based on a 3D Plugin[2] for the 2D Game Engine Impact[3] that I released as open source. With this, it should be really simple to make a similar game. Also, in case you're interested, I created a making-of video for Xibalba[4] that explains the tech and level editor a bit. [1] http://phoboslab.org/xibalba/ http://phoboslab.org/xibalba/ [2] http://phoboslab.org/twopointfive/ http://phoboslab.org/twopointfive/ [3] http://impactjs.com/ http://impactjs.com/ [4] https://www.youtube.com/watch?v=GEP7zJ9cQfw https://www.youtube.com/watch?v=GEP7zJ9cQfw
- fmoralesc 12y agoAwesome!
- idoco 12y agoWow, great games! Just clicked to check it out and found myself playing for 30 minutes. Great sound and game design, very immersive experience.
- LandoCalrissian 12y agoThese are really cool! Great job, thanks for sharing.
- Narishma 12y agoIt's unplayable on my system (Firefox 32 on Ubuntu on an i3 laptop). Runs at like 5fps.
- onurozkan 12y agoXibalba is just amazing, and you owe me 1 hour.