How tf Doom Even Did That?!

  Рет қаралды 29,589

Tsoding Daily

Tsoding Daily

Күн бұрын

Пікірлер: 86
@Iuigi_t
@Iuigi_t 4 ай бұрын
zozin, please make c4 to annoy all the c3 fan boys, that were originally zig fan boys
@juniorceccon
@juniorceccon 4 ай бұрын
the performance will be explosive
@cryptonative
@cryptonative 4 ай бұрын
c++++
@iWillAvert
@iWillAvert 4 ай бұрын
I feel attacked already
@steelcock
@steelcock 4 ай бұрын
up
@TheRealBigYang
@TheRealBigYang 4 ай бұрын
It's gonna be the bomb
@monsieuralexandergulbu3678
@monsieuralexandergulbu3678 4 ай бұрын
I think the basic test you need to apply to calculation of an index is that if you rotate your camera, it stays the same. Like if someone if watching straight at you, and you turn your head to the side, they still will be watching straight at you. Thus the only information that should be use for it's calculation is vector from the player position to the enemy position, and enemy rotation.
@gmfCoding
@gmfCoding 4 ай бұрын
I did a wolfenstein3d project with a friend for an assignment, we did rotated enemies as well, 18 keyframes (walking animation) with 32 angles, totaling 576 frames, all of which were 256x256. I would've used less but my friend wanted more, the textures take up so much space, 102 MB for the enemy alone, not including version history. It's written in C btw 😏
@Daniikk1012
@Daniikk1012 4 ай бұрын
Suggestion: add strafing. Doom did it in two ways: 1) Designated buttons for left/right strafe. By default, Doom used < and > 2) Holding a modifier. In Doom, when holding Alt, turn buttons behave as strafe buttons. Since this runs in browser, instead of Alt, you could use Shift.
@salim444
@salim444 4 ай бұрын
zozin please make a doom beatbox
@MatthewHolevinski
@MatthewHolevinski 4 ай бұрын
we called it a 3d game played on a 2d matrix
@icarvs_vivit
@icarvs_vivit 4 ай бұрын
It's good timing to have so many "2.5D on web" streams done so near to the recent, free re-release of Doom on steam.
@TiaguinhouGFX
@TiaguinhouGFX 4 ай бұрын
You could add a chunk visualizer to move entities in a cell basis, and then move precisely within that cell.
@DeathSugar
@DeathSugar 4 ай бұрын
how to reinvent dot product in 2 hours, lol
@Flip170041
@Flip170041 4 ай бұрын
i love tsoding but this entire thing could've been done in 5 mins by dot-ing a player dir vector with an enemy dir vector and having outputs mapped onto each sub sprite
@DeathSugar
@DeathSugar 4 ай бұрын
@@Flip170041 I thought he knew the thing but for some reason decided to fuck around without it.
@thedoomed10
@thedoomed10 4 ай бұрын
@@Flip170041 dot product is so specific for that thing. how are you suppose to know that 😭
@Flip170041
@Flip170041 4 ай бұрын
@@thedoomed10 Yea, most people outside of gamedev will only know euler angles. you'll see a lot of examples of using linear algebra for this when you google around for code examples of unity and such and are just supposed to catch on from there. it really simplifies a lot of stuff compared to using the classic angles like this problem, and game engine dev is packed full of this kind of problem. linalgebra and newtonian mechanics are something every game dev's gotta know or it's gonna be spaghetti code city.
@skilz8098
@skilz8098 4 ай бұрын
@@Flip170041 If it isn't a dot product or a cross product, it's probably a quaternion calculation.
@iUUkk
@iUUkk 4 ай бұрын
Another good example of this kind of sprite usage is Dungeon Keeper. (The code has been decompiled and rewritten and is now an opensource project called KeeperFX)
@Left4cookie
@Left4cookie 4 ай бұрын
I may be wrong but instead offsetting the angle and flooring, one could just round to the nearest whole number. Since the angles are mapped continuously to the indices.
@tuhkiscgibin6627
@tuhkiscgibin6627 4 ай бұрын
The sprites in Doom are actual real sculptings in real life
@berndeckenfels
@berndeckenfels 4 ай бұрын
33:40 i don’t think you need the player view vector, only the position delta
@humanbeing_
@humanbeing_ 4 ай бұрын
Hell yeah! Thanks for covering DooM and it's engine. 🎉
@uyohn
@uyohn 4 ай бұрын
Putting the TS into tsoding, let's goooo 🔥
@Barteks2x
@Barteks2x 4 ай бұрын
It hurts to watch you pool objects worrying about GC and then do math in probably the slowest way possible that still looks reasonable... This is not C with -ffast-math... A few things I learned about math performance while developing Minecraft mods, that almost certainly also apply to JS (in a game these things seriously can make an impact): - modulo (%) is *slow*. Whenever you can, try to write your code in a way that uses power of 2 modulo, and then use bitwise AND instead (+ you don't need to use the special proper mod then). So instead of "properMod(value, 16)" you can do value&0xF - division is *slow*, if you repeatedly divide by the same value, or a constant, multiply by inverse instead. No, JIT won't do that for you because the result could be slightly different in least significant bits It's absolutely fine to not worry about any of this... but then you might as well not care about object allocation either
@nanothrill7171
@nanothrill7171 4 ай бұрын
the player sprite is so good
@HairyPixels
@HairyPixels 4 ай бұрын
"rendered the characters at different angles" also known as "drawing".
@SillyOrb
@SillyOrb 4 ай бұрын
Maybe you were joking, but as so many people seem to struggle with the meaning behind these words, why not help them out? If we look up "to render" in a dictionary, we find that it means "to realise" or "to represent" among many other unrelated concepts that are unimportant for this issue, which is also true for the other terms coming up. It's distinct from "to draw," as that means "to put lines on a surface." "to paint" is closer to how such an image would have been rendered manually. Some of the creatures in DOOM have been rendered physically in clay, digitised and then painted over digitally. Later other games used offline CG rendering to produce their object sprites. "to render" has been the standard term in computer graphics for decades and has been used in physical art well before that. Cheers.
@jasio583
@jasio583 4 ай бұрын
Perfect timimg, currently reading "Masters of Doom", history abourt the developers of the game
@kiwiskilled
@kiwiskilled 4 ай бұрын
you should shrink the sprite height of the model. it is weird the the player pov is in the middle of the height but the eye is at the top.
@courtneypayne4298
@courtneypayne4298 4 ай бұрын
👌I really enjoy these. What font is that in the editor??\
@ZombieLincoln666
@ZombieLincoln666 3 ай бұрын
time to crack open a linear algebra book
@mylifeclipstv
@mylifeclipstv 4 ай бұрын
doom = like
@j-wenning
@j-wenning 4 ай бұрын
According to the original creator of JavaScript, a lot of functionality is based off of Java. Dates, for example, follow the same spec as Java at the time. ES6 and classes obviously came way after Netscape was gone and dead but, unsurprisingly, the ghosts of Java and OOP continue to haunt the design of the language to this very day.
@gustavo8441
@gustavo8441 4 ай бұрын
zozin your streams are very entertaining and educational, much love from Brazil
@AustroPower
@AustroPower 4 ай бұрын
Hello Tsodin, i enjoy and love watching your videos, very interesting and helpful too! If you have time it would be great if you could cover more graphics programming/math concepts! Thank you a lot 🙌🙏
@dmitrykhamkalov1510
@dmitrykhamkalov1510 4 ай бұрын
What do you think the music in your game?
@SadShiry
@SadShiry 4 ай бұрын
21:46 We should rename C3 to ZigScript
@FDominicus
@FDominicus 4 ай бұрын
Might you be interested to make youtube video about Pharo Smalltalk or maybe Elixir?
@antoniovieira8994
@antoniovieira8994 4 ай бұрын
I like this guy!
@John-yg1cq
@John-yg1cq 4 ай бұрын
You know you have to configure your emacs in javascript now, right?
@motbus3
@motbus3 4 ай бұрын
"everybody can be a we developer" while making a mistake 😂
@MaxPicAxe
@MaxPicAxe 4 ай бұрын
"Let's call it foo" 😂😂 1:19:44
@hubstrangers3450
@hubstrangers3450 4 ай бұрын
Thank you....
@XboxTheBeatboxer
@XboxTheBeatboxer 4 ай бұрын
Great stream
@turtleDev32
@turtleDev32 4 ай бұрын
Kekw that thumbnail 😎
@typedef_
@typedef_ 4 ай бұрын
kekodemon
@naranyala_dev
@naranyala_dev 4 ай бұрын
real game from scratch
@Mariuspersem
@Mariuspersem 4 ай бұрын
java logo brought to life
@Fernando-du5uj
@Fernando-du5uj 4 ай бұрын
Cool video.
@RandomGeometryDashStuff
@RandomGeometryDashStuff 4 ай бұрын
00:52 your game is not similar because floor can't have different heights unlike doom (look at lava)
@fernandoportilla8984
@fernandoportilla8984 4 ай бұрын
felicidades, ahora aprendiste el concepto de SIMILAR :)
@NK-..
@NK-.. 4 ай бұрын
ez
@Saltovka_Scientist
@Saltovka_Scientist 4 ай бұрын
кріпі
@richtermnd6163
@richtermnd6163 4 ай бұрын
Добрый день, славяне.
No Lag, First Try, Over 100 Players in a Single Place
3:20:13
Tsoding Daily
Рет қаралды 37 М.
Programming w/o Language
1:47:00
Tsoding Daily
Рет қаралды 62 М.
The Problem With Procedural Generation
17:57
Acerola
Рет қаралды 289 М.
Hacking GNU utilities - m4
2:07:20
Tsoding Daily
Рет қаралды 41 М.
Making a Better Particle Simulation in C++ (Part 2)
25:05
Keyframe Codes
Рет қаралды 29 М.
Is C++ better than C?
1:46:10
Tsoding Daily
Рет қаралды 53 М.
When Optimisations Work, But for the Wrong Reasons
22:19
SimonDev
Рет қаралды 1,1 МЛН
This is better than TempleOS
1:55:21
Tsoding Daily
Рет қаралды 102 М.
I Scraped the Entire Steam Catalog, Here’s the Data
11:29
Newbie Indie Game Dev
Рет қаралды 712 М.
How Many Words Do You Need To Beat Scribblenauts?
37:58
Big Garf
Рет қаралды 1,5 МЛН
I tried React and it Ruined My Life
1:19:10
Tsoding Daily
Рет қаралды 157 М.
I regret doing this... (Tsoding Q&A Stream)
1:20:07
Tsoding Daily
Рет қаралды 88 М.