6 ms·
A Doom-like engine on the Raspberry Pi – 9800 lines of bare metal assembly
- Smushman 11y agonot to denigrate the hard work... but without a keyboard, just how am I supposed to enter cheat codes?? Nice work BTW.
- morsch 11y agoClearly, the answer is you write a keyboard emulator running on the RPi in 9800 lines of of assembly.
- wbsun 11y agoAn (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.
- lcswi 11y agoHm, 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.
- JonathonW 11y agoLooks 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.
- myth_buster 11y agoFrom 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.
- afandian 11y agoAs a first-year University assembly project in 4 weeks, I'd be a bit more hesitant to judge.
- nathancahill 11y agoThey 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.
- iaw 11y ago'avoid gratuitous negativity' is a thought we all need to keep in mind more.
- kcsongor 11y agoit's not raycasting though
- kbenson 11y agoWhich 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.
- akhilcacharya 11y agoThis is their first year project...
- ehaliewicz2 11y agoIt's a common misconception, but Doom uses a BSP-tree based renderer, not raycasting.
- delecti 11y agoRaspberry 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.
- hamburglar 11y agoConsidering 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.
- xahrepap 11y agoPorting 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 http://m.youtube.com/watch?v=TuupoxmeQ6U
- dalke 11y agoTo add to that, http://www.techdigest.tv/2013/10/10_gadgets_that.html 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.
- z92 11y agoThe original Doom ran on 33MHz processor and 4MB RAM. I can't understand why it might have any problem running on RPi.
- duaneb 11y agoI 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.
- morsch 11y agoIt 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.
- girvo 11y agoThe rPi is ARM, not x86 I'm pretty sure?
- confiscate 11y agogood job guys. the controller on the breadboard looks pretty neat
- kcsongor 11y agothat is actually not a breadboard, the stuff is soldered :)
- yunfeng 11y agohhaha:)
- blackguardx 11y agoIt 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.
- kcsongor 11y agooh, I didn't know that :) in the context I've heard it, people usually referred to the solderless one
- ZenoArrow 11y agoIsn'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 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).
- Cyph0n 11y agoGreat 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.
- habosa 11y agoI 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.
- Narishma 11y agoWell, it's only 9800 lines because it's incomplete. It's barely a tech demo.
- Negative1 11y agoKeep 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).
- trollingineer 11y agoreddit dot com? Can't you try a little harder to find good sources?
- deevus 11y agoIf only the cyber-demon was always that easy!