Hacker News new | past | comments | ask | show | jobs | submit login
A Doom-like engine on the Raspberry Pi – 9800 lines of bare metal assembly (reddit.com)
115 points by kcsongor on June 29, 2015 | hide | past | favorite | 41 comments



I don't even know what to say ... 9800 lines of assembly is so few. I am very impressed. I think I might use more lines writing this in a "modern" language.

Game developers always impress me.


Well, it's only 9800 lines because it's incomplete. It's barely a tech demo.


Raspberry Pi seems to be the new target of Atwood's Law in place of Javascript.

Any application that can be ported to Raspberry Pi will eventually be ported to Raspberry Pi.


Considering the point of the Raspberry Pi foundation is to provide a readily available low cost general computing platform for learning and experimentation, it seems entirely appropriate that people would port stuff to it for the sake of porting stuff to it.


Porting Doom to everything has always been a thing. Way before Atwood's Law was ever a thing. It was the original Atwood's Law. :)

http://m.youtube.com/watch?v=TuupoxmeQ6U


To add to that, http://www.techdigest.tv/2013/10/10_gadgets_that.html shows examples on a Nintendo DS, TI-Nspire (your link is for the older TI-83+), an old Minolta digital camera, iPod Classic, Zune, a Commodore Vic 20, and others.


not to denigrate the hard work... but without a keyboard, just how am I supposed to enter cheat codes??

Nice work BTW.


Clearly, the answer is you write a keyboard emulator running on the RPi in 9800 lines of of assembly.


An (probably) easy way is to connect a switch to a GPIO pin, then watch for special patterns of on/off sequences as cheat codes :), and you end up programming a computer in binary code.


The original Doom ran on 33MHz processor and 4MB RAM. I can't understand why it might have any problem running on RPi.


It doesn't. I imagine it's still a fun way to learn ARM assembly and an impressive achievement. Note that apparently they didn't use any operating system and built their own controller from scratch.


The rPi is ARM, not x86 I'm pretty sure?


I played doom on my ipod mini. I'm pretty sure this wasn't to stress the insane hardware of a pi so much as x86 is completely miserable to bare-metal program in.


Hm, that's hardly anything like doom. It is more like a very basic raycasting engine from several years before that. Doom in 9800 would be really impressive. This does not seem very special if you ever wrote your own engine like that.


They wrote a raycasting engine in 9800 lines of assembly, running on a Pi, using Doom's textures. Is it Doom? No, but it's pretty darn impressive. Avoid gratuitous negativity.


Which is why they should have advertised something like that. This is related to Doom only in that the music and textures are the same. I'll forgive a little negativity if it comes from someone correcting a dishonestly titled article/submission.


I doubt the music was played by the device, most probably it was dubbed in post processing.


'avoid gratuitous negativity' is a thought we all need to keep in mind more.


It's actually a rule of the site,

https://news.ycombinator.com/newsguidelines.html


I think it should be a rule for real-life. I've found the less negative my thoughts, the better my general outlook on life.


What is gratuitous about what I said?


Just because it wasn't Doom doesn't mean it's without merit. This is a first year University project, written in small amount of assembly, with no supporting OS.


I never questioned that


You implied it was a trivial achievement. Perhaps that wasn't your intention, perhaps you had intended to encourage, but if that's the case it wasn't obvious.


it's not raycasting though


Right, it does not seem to be a raycasting algorithm, and the author mentions of it in the youtube comments that it's a "rasterization" meaning perspective projection of textured polygons.


Actually I'm the author, so yeah, that's right


Looks like they have part of what made Doom unique (at the time)-- they've got height differences and non-perpendicular walls, but don't quite have the same lighting and texture mapping capability that Doom had.

And the demo doesn't show whether or not they have Doom's dynamic capabilities (that let level builders make things like moving elevators).

This looks like it's probably somewhere between Wolfenstein 3D and Doom in terms of engine features.


As a first-year University assembly project in 4 weeks, I'd be a bit more hesitant to judge.


From the comments:

  OP's project isn't a simple port. They wrote an original DOOM-like engine, 
  from scratch, in assembly language. It only looks like 
  DOOM because they're using DOOM textures.


It's a common misconception, but Doom uses a BSP-tree based renderer, not raycasting.


This is their first year project...


Great work for a first year project. It was completed in 3 weeks according to the thread. I wouldn't have been able to pull it off.


good job guys. the controller on the breadboard looks pretty neat


that is actually not a breadboard, the stuff is soldered :)


It is still technically called a breadboard. The other type of breadboard you are thinking of is a "solderless breadboard." Original breadboards date back to the days before printed circuits when people would stick component leads through holes drilled in a piece of wood or some other material and wire them together.


Isn't 'stripboard' the technical term for the soldered type of prototyping board (often known as veroboard in the UK)? https://en.wikipedia.org/wiki/Stripboard

I've only heard the term breadboard being applied to the solderless prototyping boards (and the old school point to point type).


oh, I didn't know that :) in the context I've heard it, people usually referred to the solderless one


hhaha:)


Keep in mind they are calling it a "replica", not a port. From the video there's some form of game logic, the raycaster and asset loader. Other than that, it doesn't appear to be the full game.

Still, though, AWESOME! Can't wait to check out the code when it goes up on Github (they said soon).


If only the cyber-demon was always that easy!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: