Rewriting Raylib in JavaScript

  Рет қаралды 28,110

Tsoding Daily

Tsoding Daily

Күн бұрын

Пікірлер: 82
@blackhaze3856
@blackhaze3856 10 ай бұрын
Next project: Use raylib with React.
@soniablanche5672
@soniablanche5672 10 ай бұрын
next project: rewrite raylib.js in React
@null-calx
@null-calx 10 ай бұрын
wait until he rewrites React in raylib
@exosdel
@exosdel 10 ай бұрын
Raylib with scratch
@kaiserzico
@kaiserzico 10 ай бұрын
rewrite in rust
@marciocarvalho5849
@marciocarvalho5849 10 ай бұрын
man, your videos give me hope that being a dev/swe can be fun in spite of all the work bs, thanks from brasil
@NoBrainCode
@NoBrainCode 10 ай бұрын
very big thanks from brazil, no matter what language or project i am always excited to see what he is programming
@prof.dr.davidbuzatto
@prof.dr.davidbuzatto 10 ай бұрын
Totally agree! Take a look in my channel, I'm doing some recreational programming too.
@unknown_error101
@unknown_error101 10 ай бұрын
"And unfortunately, I do care" felt
@PeterJepson123
@PeterJepson123 10 ай бұрын
Loved the intro about simplicity and completely agree. Simplicity is way more interesting than complexity. Even complicated systems should be built from simple components.
@satchelfrost6531
@satchelfrost6531 10 ай бұрын
A while back I had wanted to try out raylib and nob to make a point cloud renderer. I actually made my nob.c file support web via emscripten. I was thinking maybe I should make a pull request for musializer to do the same, now I'm glad I didn't do that. On a separate note, I've been working on a project which uses nob, and sort of copies the raylib API, but instead uses Vulkan as a backend. It's been a fun experiment, but I'm not sure how far it will go. Anyway, thanks for all you do, you are an inspiration.
@janhorak5363
@janhorak5363 10 ай бұрын
I really love watching this. I love the way you think about problems and explain it out loud..
@kaltwarraith5172
@kaltwarraith5172 10 ай бұрын
Your reaction to the tbl import is exactly my reaction to a lot of modern design choices
@mattshu
@mattshu 10 ай бұрын
11:23 perfect curb your trombone ever
@Mozartenhimer
@Mozartenhimer 10 ай бұрын
These streams got me to try out Raylib now I ❤ Raylib.
@christianbouwense4702
@christianbouwense4702 10 ай бұрын
Same, Raylib is easily the best tech I've ever used, so glad I found it
@1Thor61storm8
@1Thor61storm8 10 ай бұрын
About simplicity and using libraries, I would add this to the discussion: I think is not only about going to market faster, it is also a way of externalising the cost of maintaining a production ready piece of code. This allows companies to be lighter, improving margins.
@nuhuhuhuhuhuhuhuh-f6q
@nuhuhuhuhuhuhuhuh-f6q 10 ай бұрын
you fixed lua, now you fixed raylib
@labsendeyshent
@labsendeyshent 10 ай бұрын
And now he will fix Go
@MikAlexander
@MikAlexander 10 ай бұрын
DO IT. We were discussing raylib js performance earlier today on discord.
@blastygamez
@blastygamez 10 ай бұрын
Idk but ur videos are always so great!! The stuff u do is amazing and we should be thankful 👍
@glowiak3430
@glowiak3430 10 ай бұрын
Will you check out Beef? It's like Java or C#, but with manual memory management, and compiled. And it has a raylib binding.
@valcron-1000
@valcron-1000 10 ай бұрын
The font rendering will not look the same by default due to the usage of AA. I think you can fix it with a mix of CSS + textRendering = "geometricPrecision"
@delusionalaar4031
@delusionalaar4031 10 ай бұрын
Love your videos so much. They remind me swe can be fun. Just wish I could watch more.
@gogo-pj2lm
@gogo-pj2lm 10 ай бұрын
41:39 i think it makes sense to use the visibility attribute feature. Build script can then be modified less frequently, making it more stable and "production-ready" 😂
@bladman9700
@bladman9700 10 ай бұрын
next rewrite linux kernel in JS
@alurma
@alurma 10 ай бұрын
Google Linux JS
@liketheninja8658
@liketheninja8658 10 ай бұрын
@@alurma Holy emulator
@abdelhakimakodadi3073
@abdelhakimakodadi3073 10 ай бұрын
"Why is it important to be able to modify your dependency? Because you're taking control of them" I agree with that but only in the context of open source. In an enterprise context that doesn't translate very well. Because the dependencies are constantly changing (bug fixes, security patches...), and if you do even the slightest modification to a dependency now you have to become a maintainer of a fork of the dependency. Which is not scalable when you have tons of dependencies.
@victordvickie
@victordvickie 10 ай бұрын
Implementing musializer in raylib.js?
@TsodingDaily
@TsodingDaily 10 ай бұрын
I'm actually low key planning it. But I don't know for sure yet. We will see. :)
@sancobtw
@sancobtw 10 ай бұрын
⁠​⁠@@TsodingDailyI believe implementing the music visualization can be easy by just using the WebAudio API and more but I think that you would port Miniaudio for JS to avoid rewriting the audio support for musializer, anyways I would love to see musializer for web, amazing videos man!
@11WicToR11
@11WicToR11 10 ай бұрын
is there some other way to implement graphics in browser? Maybe some gpu ? Is anything else possible? Maybe you could write less js and more shaders or sth like that
@christianbouwense4702
@christianbouwense4702 10 ай бұрын
Yeah there are a couple APIs (not sure if API is the correct word), WebGL and WebGPU come to mind. They can be used directly, or you can use libraries that use them like three.js or babylon.js
@edhahaz
@edhahaz 10 ай бұрын
What about performance, surely the browser isn't performant enough with just using the canvas API to port raylib.
@TsodingDaily
@TsodingDaily 10 ай бұрын
From my personal experience Canvas API is pretty fast. I'm pretty sure browsers use hardware acceleration to implement it. Here is my Game implemented entirely using Canvas API tsoding.github.io/snake-c-wasm/
@reidond
@reidond 10 ай бұрын
it directly uses your gpu api with common gl-like api
@theairaccumulator7144
@theairaccumulator7144 Ай бұрын
@@reidond webgl is very far from direct lol there is lots of stuff involved to make it secure but still feel like you're writing real opengl
@oumardicko5593
@oumardicko5593 10 ай бұрын
the more i watch your videos the more i feel stupid xD. keep the good work
@edhahaz
@edhahaz 10 ай бұрын
How does emscripten even work ?
@TsodingDaily
@TsodingDaily 10 ай бұрын
I have no idea!
@RicardoValero95
@RicardoValero95 10 ай бұрын
Tsoding strager crossover 51:00
@testeTestandomuitosTestes
@testeTestandomuitosTestes 10 ай бұрын
I don't know if you read the comments, but it would be possible one day to make a video about Glib who created the GObect library that is used in Gnome. Thank you in advance for your videos, despite having a lot of difficulty following them, I never stop watching them. thanks!!! \o/
@roberthickman4092
@roberthickman4092 10 ай бұрын
Doesn't the C version already support multiple backends? Can't you work with that without reimplementing everything in JS? Identify what parts of the CRT are being used, replace those, and write a backend that targets webgl directly via the FFI.
@anonymous-q2b5s
@anonymous-q2b5s 10 ай бұрын
I love these videos but I have a minor complaint. KZbin seems to compress the hell out of these. More than I notice on any other coding videos. I think it might have to do with how dark it is (which I obviously don't expect you to change). But I heard some time ago that uploading Videos in 4k leads to KZbin using a better compression algorithm for all the versions, so even the 1080p ends up looking a lot better. Just hearsay, maybe shit changed. And also I get if 4k is entirely impractical for you due to file size or whatever. Just some feedback, do with that what you will. I will watch and enjoy anyways :)
@Caareystore153
@Caareystore153 10 ай бұрын
Rarenpo stack, Raylib + React + Node + Postgres
@angelcaru
@angelcaru 9 ай бұрын
Ravapy: Raylib + vanilla JS + python -m SimpleHTTPServer
@DevlogBill
@DevlogBill 10 ай бұрын
Is the developer experience better with C and Raylib? Or if you choose a programming language like Python with Raylib is the developer experience better? Or worse? I am guessing since Raylib was designed with C. Making games with C and Raylib would be easier compared to making games with Python with Raylib since the library was created with C? When making 2D games with either C or Python is the experience the same? Or are there challenges when using a different programming language?
@dixztube
@dixztube 9 ай бұрын
lol what’s that folder on the bottom
@lolcat69
@lolcat69 10 ай бұрын
I wasted to make a web lang for a long time, should I make a compiler for one of my programming languages to Wasm? I already tried compiling my Brainfuck VM to wasm and it was really simple to implement, so I might check that :)
@rudro314
@rudro314 10 ай бұрын
theo mentioned, less go
@Recreman
@Recreman 10 ай бұрын
Omg thank you for this work!
@sarmadajmal3602
@sarmadajmal3602 10 ай бұрын
Study content: 58.2 GB woa!!!
@dixztube
@dixztube 9 ай бұрын
Lmaoooooooooo
@wasile
@wasile 10 ай бұрын
I wonder why is wasm active by default on all browsers and you don't have any option from settings to disable it, you have to run the browser with a parameter to disable it. Let's say Chromium is open source, but Chrome, Firefox and Edge are released by big corporations. For me, it looks like a security issue made on purpose, like the DNS standard let's say.
@anon_y_mousse
@anon_y_mousse 10 ай бұрын
Firefox is open source, and you can configure it to not use wasm from the about:config page.
@Tigregalis
@Tigregalis 10 ай бұрын
wasm is sandboxed and so it's more secure, though? i must not be understanding your angle, what do you mean?
@wasile
@wasile 10 ай бұрын
@@anon_y_mousse ok. Maybe firefox has this option, but edge or chrome doesn't. I'll search the flag in ff.
@wasile
@wasile 10 ай бұрын
@@Tigregalis wasm has a long list of vulnerabilities, and the list contains only a part of them, some of them will never be published. PS: there are a lot of sandboxed environments that give access to the host machine because of some intentional "bugs". Even images metadata are not safe when loading into browsers, so why to give acces to a "sandboxed" environment from my machine to a powerfull thing like wasm? We don't need it anyway...
@anon_y_mousse
@anon_y_mousse 10 ай бұрын
@@wasile And here I was thinking you just didn't like the convoluted garbage in wasm. I'll have to look into this for sure, but it annoys me that if I disable it certain sites don't even load. The fact that it uses binary blobs would ordinarily be a selling point for speed's sake, but I don't believe that a slow startup time on a game is a true stumbling block if we have encapsulation of the runtime environment and proper caching. Outside of games, I see no reason to use it, and even then it's a bit tenuous if the VM were done correctly. All goes along with what I've been saying about wiping the web clean and starting from scratch.
@khuntasaurus88
@khuntasaurus88 10 ай бұрын
I thought the title was a shitpost
@Alguem387
@Alguem387 10 ай бұрын
what is the sound name wen he goes: turum turum turum turum plimb?
@colonthree
@colonthree 10 ай бұрын
JS literally never gives up unless it is a syntax error. ;w;
@soniablanche5672
@soniablanche5672 10 ай бұрын
that's because everything in javascript is an object (aka dictionary/hashmap/etc) except null and undefined. Even primitive are objects because they get automatically packed into their object version every time you access a property on them. So the errors are generally accessing a member of undefined or null lol
@twenty-fifth420
@twenty-fifth420 10 ай бұрын
My imposter syndrome is tingling rn….. 😂
@julienc.8562
@julienc.8562 10 ай бұрын
Didn’t watch, but i already love the title
@Dimkar3000
@Dimkar3000 10 ай бұрын
maybe it's not pixels. Maybe it's another size unit of css.
@Froggie92
@Froggie92 10 ай бұрын
change your chrome dev tools from hamburger to hotdog
@jan_in_youtube
@jan_in_youtube 10 ай бұрын
There are things that should never be made. You have ruined my trust in you. XD
@regfinley7111
@regfinley7111 10 ай бұрын
@11:15.😆😄🤣
@pratikbhujel
@pratikbhujel 10 ай бұрын
Raylib with Livewire and Laravel
Unreasonable Effectiveness of Abstractions
2:42:24
Tsoding Daily
Рет қаралды 34 М.
Reviewing Your Pull Requests
1:39:37
Tsoding Daily
Рет қаралды 28 М.
She made herself an ear of corn from his marmalade candies🌽🌽🌽
00:38
Valja & Maxim Family
Рет қаралды 18 МЛН
Cat mode and a glass of water #family #humor #fun
00:22
Kotiki_Z
Рет қаралды 42 МЛН
JS At The Speed Of C
27:55
Theo - t3․gg
Рет қаралды 123 М.
Zip works Better than AI
2:09:06
Tsoding Daily
Рет қаралды 61 М.
To-Do App in Assembly
1:05:27
Tsoding Daily
Рет қаралды 128 М.
The Truth about Rust/WebAssembly Performance
29:47
Greg Johnston
Рет қаралды 187 М.
3D in TypeScript using Ray Casting
3:14:03
Tsoding Daily
Рет қаралды 51 М.
Ok, but can you do this in C?
3:15:56
Tsoding Daily
Рет қаралды 63 М.
I contributed to C3 Compiler and So Can You
4:15:02
Tsoding Daily
Рет қаралды 77 М.
raygui - JsGame Dev Summit 2023 presentation
27:19
raylib
Рет қаралды 6 М.
Content Aware Scaling in C
2:36:04
Tsoding Daily
Рет қаралды 29 М.