News for hackers. Stuff that matters.
Re:Doom by cousin_it on Friday September 12, 2014 @09:25AM (#8307863)
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.

Re:Doom by phoboslab on Friday September 12, 2014 @10:20AM (#8308133)
I 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/

[2] http://phoboslab.org/twopointfive/

[3] http://impactjs.com/

[4] https://www.youtube.com/watch?v=GEP7zJ9cQfw

Re:Doom by idoco on Friday September 12, 2014 @12:48PM (#8309012)
Wow, great games! Just clicked to check it out and found myself playing for 30 minutes. Great sound and game design, very immersive experience.
Re:Doom by Narishma on Friday September 12, 2014 @01:33PM (#8309263)
It's unplayable on my system (Firefox 32 on Ubuntu on an i3 laptop). Runs at like 5fps.
Re:Doom by LandoCalrissian on Friday September 12, 2014 @01:04PM (#8309092)
These are really cool! Great job, thanks for sharing.
Re:Doom by onurozkan on Friday September 12, 2014 @01:57PM (#8309394)
Xibalba is just amazing, and you owe me 1 hour.
Re:Doom by fmoralesc on Friday September 12, 2014 @12:04PM (#8308770)
Awesome!
Re:Doom by thathonkey on Friday September 12, 2014 @09:28AM (#8307887)
Could 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...
Re:Doom by jiggy2011 on Friday September 12, 2014 @09:34AM (#8307911)
A 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

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.

Re:Doom by Scuds on Friday September 12, 2014 @03:07PM (#8309810)
The 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

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.

Re:Doom by nailer on Friday September 12, 2014 @04:25PM (#8310252)
I 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.
Re:Doom by thathonkey on Friday September 12, 2014 @10:48AM (#8308276)
That sounds pretty complicated to me :D But, I am admittedly a layman in this area.
Re:Doom by jiggy2011 on Friday September 12, 2014 @11:13AM (#8308432)
It 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.
Re:Doom by ido on Friday September 12, 2014 @12:05PM (#8308775)
Or you can use unity.
Re:Doom by jiggy2011 on Friday September 12, 2014 @12:16PM (#8308836)
You 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.

Re:Doom by krapp on Friday September 12, 2014 @01:39PM (#8309299)
I'm just starting delving into SDL2 tutorials. If I ever get competent at it, this sounds like a fairly good idea for a project.
Re:Doom by cousin_it on Friday September 12, 2014 @09:43AM (#8307941)
1) 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.

Re:Doom by clarry on Friday September 12, 2014 @09:57AM (#8308005)
Doom 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.
Re:Doom by jiggy2011 on Friday September 12, 2014 @10:03AM (#8308040)
I 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.
Re:Doom by clarry on Friday September 12, 2014 @10:07AM (#8308062)
You 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.

Re:Doom by jiggy2011 on Friday September 12, 2014 @11:09AM (#8308407)
I think it's just that there are less pixels to hit when the target is further away. I'm not sure if the height difference is taken into account when calculating damage on hitscan weapons, below a certain damage output (damage output is in part random) it might not register a hit.
Re:Doom by pdpi on Friday September 12, 2014 @10:40AM (#8308240)
It's actually a pretty tricky issue with the last stage of Doom 2, where the modern ports with true vertical aiming make it impossible to hit the (hidden) impaled head of John Romero.
Re:Doom by shaurz on Friday September 12, 2014 @10:12AM (#8308091)
A cool retro 3D racing game: http://driftstage.tumblr.com/
Re:Doom by Pxtl on Friday September 12, 2014 @09:48AM (#8307961)
Doom's art would actually be very labor intensive, because you have to animate each sprite from every angle.
Re:Doom by bluedino on Friday September 12, 2014 @09:51AM (#8307982)
They actually made 3D models of the enemies by hand, and took pictures of them from each angle

http://static.giantbomb.com/uploads/original/0/2807/1702120-...

Re:Doom by jccooper on Friday September 12, 2014 @12:20PM (#8308858)
Just to be clear to people not following the link: physical 3D models. But today you could also make electronic 3D models (in, say, Blender) and shoot them from various angles to get sprite images. Later 3D-looking sprite-based games did this.
Re:Doom by Pxtl on Friday September 12, 2014 @09:57AM (#8308004)
I assume they rotoscoped over those photos because the images are definitely look hand-edited. Blizzard went similar for Starcraft and Diablo - start with 3D model renderings and then hand-paint over them to get the art pixel-perfect.
Re:Doom by bluedino on Friday September 12, 2014 @10:25AM (#8308164)
They were definitely hand-edited and de-babelized. Would be interesting to have high-res images and edits for the later versions of Doom ports for today's screens, considering Doom ran on a 320x200x256 display.
Re:Doom by Pxtl on Friday September 12, 2014 @10:27AM (#8308172)
High-rez Doom sprites were actually made for one of the later ports of the game - N64, I think.
Re:Doom by Scuds on Friday September 12, 2014 @02:55PM (#8309719)
Doom 64 ran at 320x240. :D The sprites are higher res so it looks better when scaled up close, but in the end no different than plain old DOS doom.
Re:Doom by jiggy2011 on Friday September 12, 2014 @09:51AM (#8307979)
Doom only used sprites from a limited number of angles.

Here's the entire cacodemon spritesheet http://doomfansite.synthasite.com/resources/Cacodemonsheet.g...

Re:Doom by Pxtl on Friday September 12, 2014 @11:37AM (#8308593)
Yes, 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.

Re:Doom by phkahler on Friday September 12, 2014 @01:14PM (#8309145)
It'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.
Re:Doom by egypturnash on Friday September 12, 2014 @02:19PM (#8309515)
There's a lot of complication about getting it done. You're just offloaading all the complexity to the art people.

- signed, an art person.

Re:Doom by phkahler on Friday September 12, 2014 @06:08PM (#8310736)
Why yes, yes I did. But for Doom there were about 10-15 kinds of sprites (monsters, lamps, trash cans). I didn't say it was easy, I said it was straight forward. The code took a lot of time back then, and I'm sure the art guy(s) were busy the whole time.
Re:Doom by Pxtl on Friday September 12, 2014 @05:05PM (#8310462)
Indie titles means clever/complicated is better than labour-intensive, because labour-intensive costs money but cleverness just needs one brilliant programmer/artist.
Re:Doom by prawks on Friday September 12, 2014 @09:52AM (#8307986)
There 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).
Re:Doom by adamors on Friday September 12, 2014 @10:11AM (#8308085)
Is Gun Godz available for purchase? Their site seems outdated.
Re:Doom by azmenthe on Friday September 12, 2014 @11:15AM (#8308451)
This is the link I bookmarked for later so not 100% sure it works:

http://vlambeer.itch.io/gun-godz