amroibrahim / diydoom Goto Github PK
View Code? Open in Web Editor NEWAn attempt to understand how DOOM engine works
License: MIT License
An attempt to understand how DOOM engine works
License: MIT License
I have everything downloaded and i first tried running it in vscode but that didn't seem to work so I tried opening it up in visual studio 2019 and it gave me 400 errors and didn't run. I'm still new to visual studio and I'm not totally sure how to work with it properly. am i doing something wrong?
I know this is a bit pedantic, but it's up there with "cyan is transparent in Doom" on the list of misconceptions. The Wolfenstein 3D sprite format is actually very similar to the one used in Doom where by you have a header specifying the left offset and width of the sprite and then a bunch of pointers to columns of posts. See: https://bitbucket.org/ecwolf/ecwolf/src/master/src/textures/wolfshapetexture.cpp
Wolfenstein 3D just has the convenient property of it not being very useful to draw a sprite outside of the 64x64 bounding box, but technically the sprite format could support much much wider and taller sprites. Logically the difference comes down to the origin point being upper left rather than bottom center. But most importantly there's no transparent color just like in Doom.
Somewhat oddly an example which could be used for what you were trying to demonstrate is the double sky feature in Hexen. There the SKYWALL texture actually does use palette index 0 to indicate transparent. Not sure why Raven did that, but it is what it is.
(Week007)
"A splitter is chosen, and then everything is on the front or the back of that splitter (sometimes they >also call it left and right, I decided not to go with this convention due to the fact that the left is not >always the left and right is not always right. Left could be on the right and right could be on the left. If >you got confused, you’re on the right track. Using left and right will get confusing so front and back is >better so no assumptions in direction would be done).
The front and back are based on the direction of the first vertex moving to the second vertex >(mathematically called vector, the direction you go moving to the second point)."
I wonder if we can clarify this better. Going against convention can make things confusing for others.
The way I understand the Linedefs and left/right is this: each linedef has a start and an end point, the start point means the line travels from this point, to the end point which is where it finishes. This gives the line a direction. Now, because the line has a direction we know which side is left and which side is right. Sectors are always on the right if the line is not double-sided (eg, not a portal).
You can interchange front==right and left==back, but we need to communicate how each convention is arrived at.
Field Size | Data Type | Content |
---|---|---|
0x00-0x01 | byte | Offset (Y Offset) terminated with 0xFF |
0x02-0x03 | byte | Length of data |
0x04-0x05 | byte | Padding byte (not used) |
0x06-0x?? | Length | (Data) pixels; an index into palette |
0x00-0x01 | byte | Padding byte (not used) |
I think the 4th row could use further description? "Pixel Data, each byte is an index into palette".
The link to your discord server is invalid
https://github.com/amroibrahim/DIYDoom/blame/master/DIYDOOM/Week020/notes/README.md#L380
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.