zozin, please make c4 to annoy all the c3 fan boys, that were originally zig fan boys
@juniorceccon4 ай бұрын
the performance will be explosive
@cryptonative4 ай бұрын
c++++
@iWillAvert4 ай бұрын
I feel attacked already
@steelcock4 ай бұрын
up
@TheRealBigYang4 ай бұрын
It's gonna be the bomb
@monsieuralexandergulbu36784 ай бұрын
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.
@gmfCoding4 ай бұрын
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 😏
@Daniikk10124 ай бұрын
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.
@salim4444 ай бұрын
zozin please make a doom beatbox
@MatthewHolevinski4 ай бұрын
we called it a 3d game played on a 2d matrix
@icarvs_vivit4 ай бұрын
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.
@TiaguinhouGFX4 ай бұрын
You could add a chunk visualizer to move entities in a cell basis, and then move precisely within that cell.
@DeathSugar4 ай бұрын
how to reinvent dot product in 2 hours, lol
@Flip1700414 ай бұрын
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
@DeathSugar4 ай бұрын
@@Flip170041 I thought he knew the thing but for some reason decided to fuck around without it.
@thedoomed104 ай бұрын
@@Flip170041 dot product is so specific for that thing. how are you suppose to know that 😭
@Flip1700414 ай бұрын
@@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.
@skilz80984 ай бұрын
@@Flip170041 If it isn't a dot product or a cross product, it's probably a quaternion calculation.
@iUUkk4 ай бұрын
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)
@Left4cookie4 ай бұрын
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.
@tuhkiscgibin66274 ай бұрын
The sprites in Doom are actual real sculptings in real life
@berndeckenfels4 ай бұрын
33:40 i don’t think you need the player view vector, only the position delta
@humanbeing_4 ай бұрын
Hell yeah! Thanks for covering DooM and it's engine. 🎉
@uyohn4 ай бұрын
Putting the TS into tsoding, let's goooo 🔥
@Barteks2x4 ай бұрын
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
@nanothrill71714 ай бұрын
the player sprite is so good
@HairyPixels4 ай бұрын
"rendered the characters at different angles" also known as "drawing".
@SillyOrb4 ай бұрын
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.
@jasio5834 ай бұрын
Perfect timimg, currently reading "Masters of Doom", history abourt the developers of the game
@kiwiskilled4 ай бұрын
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.
@courtneypayne42984 ай бұрын
👌I really enjoy these. What font is that in the editor??\
@ZombieLincoln6663 ай бұрын
time to crack open a linear algebra book
@mylifeclipstv4 ай бұрын
doom = like
@j-wenning4 ай бұрын
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.
@gustavo84414 ай бұрын
zozin your streams are very entertaining and educational, much love from Brazil
@AustroPower4 ай бұрын
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 🙌🙏
@dmitrykhamkalov15104 ай бұрын
What do you think the music in your game?
@SadShiry4 ай бұрын
21:46 We should rename C3 to ZigScript
@FDominicus4 ай бұрын
Might you be interested to make youtube video about Pharo Smalltalk or maybe Elixir?
@antoniovieira89944 ай бұрын
I like this guy!
@John-yg1cq4 ай бұрын
You know you have to configure your emacs in javascript now, right?
@motbus34 ай бұрын
"everybody can be a we developer" while making a mistake 😂
@MaxPicAxe4 ай бұрын
"Let's call it foo" 😂😂 1:19:44
@hubstrangers34504 ай бұрын
Thank you....
@XboxTheBeatboxer4 ай бұрын
Great stream
@turtleDev324 ай бұрын
Kekw that thumbnail 😎
@typedef_4 ай бұрын
kekodemon
@naranyala_dev4 ай бұрын
real game from scratch
@Mariuspersem4 ай бұрын
java logo brought to life
@Fernando-du5uj4 ай бұрын
Cool video.
@RandomGeometryDashStuff4 ай бұрын
00:52 your game is not similar because floor can't have different heights unlike doom (look at lava)
@fernandoportilla89844 ай бұрын
felicidades, ahora aprendiste el concepto de SIMILAR :)