Me too! Unfortunately I lack the funds to put up a server that could handle this kind of thing. :( Maybe if it gets traction I could do a Patreon or something.
@@cullencanejo7731 Very generous! A lot needs to happen on the dev side before something like that is even possible... we'll see how far it progresses! :)
Excellent work! I'm really surprised you only have 66 subscribers today, but I get a really good feeling that you're going to get a lot of subscribers if you keep making videos. keep it up!!
Fascinating project! I am reminded of an old "bots" game I found on a school computer once, with some kind of scripting language I was far too young to understand, but just old enough to get that changing it made the bots do silly, erratic things. Excited to see something interesting done with WASM, far too often it ends up being "Write this program twice, once in Wasm, and then all over again in Javascript to extend the function calls the Wasm blob needs to access to the dom".
Was it Crobots? 👀 shaneliesegang.com/projects/wasmbots/docs/history/#inspirations And yes, you kind of nailed my frustrations with some of how WebAssembly is used/taught.
@@shaneliesegang It was not! Looking it up, it seems to have been "RoboWar". An interesting little game, I'm not sure which version, but it was a black and white mac game.
"combat and such" is definitely in the cards! As for neural nets -- are you imagining something like machine learning or a smaller network? I think the WebAssembly limits might preclude the former. I was thinking at one point about giving the modules a way to make network requests but that seemed like a WHOLE can of worms so I punted it for now.
This looks really promising, I could easily see this be used in University as a teaching tool. I'd be nice to have some sort of scroing to be able to host competitions with it. Hopefully you enjoy working on it
Yeah, some sort of tournament function is definitely on the (likely distant) horizon. Mostly because I have fewer skills in persistence/server stuff. That’s the kind of thing I would welcome help with. 😊
The internet through the lens of Google is so interesting. I searched "wasmbots" && "wasmbots game" (shoulda just went to the description but was watching it on my aTV) I got info on wombats and numbots. I hope more peeps find your cool project (what a unique game mechanic and what a wonderful way to baseline languages). Anyway not much else. My reason for the comment is to point out that, in the last ten years, the internet (even Google's own products) has become too complex for search to be effective using simple search queries. Ok ok ok off topic. Cool implementation, more cool concept. Very inspiring.
A programmer, I am not. But this is so cool! Deep pull, but this reminds me of Stone Story; it’s a game on steam/mobile with it’s own scripting language built in as an intended game feature. ‘Gamifying’ learning has turned into such a cliche, but stuff like this can create actually engaging games that create an environment for learning (and in this case enabling that to be real world coding languages). Very cool!
Made my Spherical RGB Color Model visualizer in Bevy which is nice as you can compile to WASM. A Godot project I did also was easy enough to compile to WASM.
crazy crazy idea bro, super interesting. I hope this gets turned into something fully fledged soon, though take your time bro. good luck. As both a game designer and programmer myselves, I am really excited to how the game actually grows.
Fantastic video! 🎉 You present information in a clear and easy-to-understand manner, even for someone like me who does not know WebAssembly. I have recently started to look into WASM, so this was a really good video to pop up on my feed. Also, I have always had a fascination with bots and automated NPCs/entities and systems. Simulating life and such, like in God games or the private sector in Distant Worlds 2, is really interesting. I have subbed and liked, so I will definitely be watching future updates to your project/proof of concept. Cheers bro!
You gotta make some kind of leagues system, if the game grows people will start to make extremely strong bots which are unbeatable for new players, so putting people or bots in leagues/tiers would probably help as it would pit new bots against other new bots. I love this idea, a game for devs, good job!
Thanks! If/when it gets that far or to that level of popularity I'll definitely want to have some kind of matchmaking system. But a lot of steps between here and there at the moment. :)
This is really awesome and it made me wonder about language synergies between different languages and language models and what would happen if you gave them multiple agents in one character and I guess they would be able to get personality traits from them thinking back and forth between different agents for everything and then you can tweak them in so many ways
Super interesting work, one use case for this could be online programming competion where ypu set up a goal exemple capture the flag and you make play different script from user against 👍
Yey, I remember various coding games from very very long ago. One was c#, others was custom languages. Wish I remembered any names for these :) Anyway, what I do remember is that for online play it seems an optimum was often found very quickly.
Check the comments; people have been reminiscing about a few! And yeah, I imagine there are definitely some optimal strategies, but that's when we mix up the map generation or invent a new game type or something. If people "solve" the game here, I'll consider it a win state for the project. :)
Congratualtions on your ordination! Thank you for your service to the church. I hope to also be a Deacon one day. I first have to focus on raising my children for the next 25 years or so.
I used to write bots on tournaments on Codingame (maybe you heard of). Your project sounds interesting. Could be fun to have an rpg where you can program the hero. I see in the comments you had less than 100 subs before, now it is over 600. I join too, curious to see where you take the project.
Amazing! I have been really into WASM, zig and onyx lately! I haven't seen onyx on there. It's primary compilation target is wasm!! So I will maybe try to get a bot working with onyx!
Amazing ! Dungeon crawlers are like a dime a dozen, so you should do different: turn it into a simulator using NN (Neural Nets) and evolutionary algorithm, and make it 's processing distributed and decentralized, so that each person's computer shares a bit of the computational burden, and if the player's system is willing to bear the brunt of being a full node (for instance, you could make the system solve physically realistic system of differential equations to make flames behave like real fire, or light scatter with realistic materials, etc.) it will get a few extra perks like changing the world's rule or having its own world and he will compete with other to see who can create the most interesting world
Sounds like a fun programming game. Can you compile it for desktop use with no browser? Might be interesting to give it a try with an esoteric language like BrainFuck and to see how slowly it'll run.
I do command line testing with Deno but not consistently, so the scripts have some bitrot to them. github.com/sjml/wasmbots/tree/main/engine/src/deno-cli But the idea is definitely that it should run happily without a browser. (Still needs some kind of JavaScript+WebAssembly runtime, obviously.)
To be determined! I don't know how much is entailed in doing so. I'd like to, just so it can support as many languages as possible, but it looks like it's still very new and there's not a lot of documentation on it yet. Let me know if there's something you need and I'll see what's possible!
@@shaneliesegang I used to work on the AssemblyScript compiler and the as-pect testing framework. I think I might be able to offer some help. Are you on discord?
This looks awesome I've been slowly getting into enjoying programming games lately, I'll definitely check this out if I remember it I'm actually curious: Does Go in WebAssembly actually have multi-threaded capabilities, or at least, simulated as such? I've read a bit about how wasm works and I have no idea about thread stuff
The Go stuff is actually using TinyGo, an alternative compiler that also works with embedded systems: tinygo.org It supports most of the parts of Go that people care about, including goroutines, so yes!
I was thinking about wasm for browser based games, but then I thought, won't it be relatively similar to a purely javascript based game? I mean wasm can't directly render pixels or request animation frames, it has to go through a javascript layer anyway.
Yeah, given the way the browser works there will always be a need to engage JS at some level. This is more about having fun making the modules than avoiding JavaScript or the DOM. I know not everyone thinks "programming with lower-level languages" as "fun" but I do! :D
i love the idea, but most people will not want do it in low-level not including myself, try allowing others langs so more people plays it a question, do mages have storage?
I don't allow or disallow any languages... if it can compile to WebAssembly, it can work! You're right, though, that there aren't a ton of higher level languages that output wasm mostly because until VERY recently (like the last month or so) it didn't have native garbage collection. AssemblyScript and Go can kind of _feel_ high level, though. Been meaning to check out MRuby to see if it could work, but also am basically at my limit with supporting the existing five languages. Not sure what you mean by "storage" -- whatever mechanism your programming language has for allocating and using memory should work fine, up to the WebAssembly limit of about ~4 gigabytes. I am *likely* to limit memory consumption at some point in the future, but it's not on the immediate horizon.
@Wariowa345 There's some CLI tools for testing directly, but you just get text output. Planning to hook them up to visualization at some point, but that would be a lot of work for not much improvement over the website. All the magic is happening in the frontend, anyway, so there's no server logic at the moment and thus nothing to upload to. You can load any compiled WebAssembly module through the app interface (shaneliesegang.com/projects/wasmbots/app/) -- the pulldown menu just shows you the prebuilt options.
Time to learn something new! Go or AssemblyScript might not be *too* hard of a slide over from Python. :D (En serio, I briefly looked at Pyodide to see if was feasible here, but didn't go too deep... my gut tells me it's made for a different kind of context, but I already had enough on my plate handling the languages that are there. But I would absolutely welcome more language functionality!)
To be determined! I think it my most complete aspiration it becomes some kind of multiplayer competition space where the bots compete. At the moment it's just a neat way to play with WebAssembly.
I have mixed feelings, because I feel like this could've worked wonderfully as a multiplayer game. Each player could have their character(s?) controlled by their own AI, they could communicate with each other by some means and maybe even engage in PvP in addition to other activities. This is not criticism of course, since it's an entirely different concept. It's just that the introduction and my imagination got me kinda hyped up.
at 3:56 if 4 is blocking the view, and you get 0 in the upper right, why you have a 4 at buttom right? should'n the view blocked as wll from another 4?
Good spot! Its either an artifact of the field of view calculation OR a mistake I made when doing all the visual manipulations to the original memory grab. 🙈
Yet another channel that has a massive value. I'll be back here soon mate, keep up the good work!
would love to see a screeps-like client-server game come out of this
Me too! Unfortunately I lack the funds to put up a server that could handle this kind of thing. :( Maybe if it gets traction I could do a Patreon or something.
@@shaneliesegang I would totally host one.
@@cullencanejo7731 Very generous! A lot needs to happen on the dev side before something like that is even possible... we'll see how far it progresses! :)
@@shaneliesegang if it ever get's there let me know.
Excellent work! I'm really surprised you only have 66 subscribers today, but I get a really good feeling that you're going to get a lot of subscribers if you keep making videos. keep it up!!
Tell your friends 😜
3 day old comment and now he's 8.8k subs 🎉🙌🏻🤙🏻
@@Haagimus Huh? What? You mean on RUclips? I see 676 subs and 9.1K view. Did you confuse views and subs?
Fascinating project! I am reminded of an old "bots" game I found on a school computer once, with some kind of scripting language I was far too young to understand, but just old enough to get that changing it made the bots do silly, erratic things. Excited to see something interesting done with WASM, far too often it ends up being "Write this program twice, once in Wasm, and then all over again in Javascript to extend the function calls the Wasm blob needs to access to the dom".
Was it Crobots? 👀 shaneliesegang.com/projects/wasmbots/docs/history/#inspirations
And yes, you kind of nailed my frustrations with some of how WebAssembly is used/taught.
@@shaneliesegang It was not! Looking it up, it seems to have been "RoboWar". An interesting little game, I'm not sure which version, but it was a black and white mac game.
@@NedLudo I was somehow unaware of this, despite being a Mac gaming enthusiast all through the 90s! Thanks for the pointer.
Great topic; thanks 👍
I am super interested in this! I would love to see some combat and such. This would also be a great testbed for neural networks
"combat and such" is definitely in the cards! As for neural nets -- are you imagining something like machine learning or a smaller network? I think the WebAssembly limits might preclude the former. I was thinking at one point about giving the modules a way to make network requests but that seemed like a WHOLE can of worms so I punted it for now.
this is crazy work dude. Excellent
Nice, I had this idea many years ago, but never started work on it. It is pretty great that someone else is building my dream game. :D
Is there a particular vision you had or area you might like to help? 👀
This looks really promising, I could easily see this be used in University as a teaching tool. I'd be nice to have some sort of scroing to be able to host competitions with it. Hopefully you enjoy working on it
Yeah, some sort of tournament function is definitely on the (likely distant) horizon. Mostly because I have fewer skills in persistence/server stuff. That’s the kind of thing I would welcome help with. 😊
The internet through the lens of Google is so interesting. I searched "wasmbots" && "wasmbots game" (shoulda just went to the description but was watching it on my aTV) I got info on wombats and numbots. I hope more peeps find your cool project (what a unique game mechanic and what a wonderful way to baseline languages). Anyway not much else. My reason for the comment is to point out that, in the last ten years, the internet (even Google's own products) has become too complex for search to be effective using simple search queries. Ok ok ok off topic. Cool implementation, more cool concept. Very inspiring.
Wow! Great quality!
Totally hooked for the series and subbed!
Thank you!
this is really cool. Nice breakdown of how to visualize the code. Thanks!
Holy cow… I love you for your technical ability and for your nuanced understanding semiotics
Thank you for being one of the few who enjoys a good semiotics gag. 😅
@@shaneliesegangI have to ask. Are you a Jesuit?
@@jamesgphillips91 Yup!
@ that’s awesome. I’m a big fan of Michel De Certeau 😛
I love the art style in this.
Sadly, that's the thing I can *least* take credit for, but I do agree that the free assets I'm using look nice together. 😅
A programmer, I am not. But this is so cool! Deep pull, but this reminds me of Stone Story; it’s a game on steam/mobile with it’s own scripting language built in as an intended game feature. ‘Gamifying’ learning has turned into such a cliche, but stuff like this can create actually engaging games that create an environment for learning (and in this case enabling that to be real world coding languages). Very cool!
Loved Stone Story! And you just inspired me to go back and revisit it. :)
Made my Spherical RGB Color Model visualizer in Bevy which is nice as you can compile to WASM. A Godot project I did also was easy enough to compile to WASM.
Great video, keep up the good work!
I was here before your channel blows up. This is awesome. Cool project and well edited and presented video.
crazy crazy idea bro, super interesting. I hope this gets turned into something fully fledged soon, though take your time bro. good luck.
As both a game designer and programmer myselves, I am really excited to how the game actually grows.
Wow. Subscribed and looking forward for cool updates!!!
Fantastic video! 🎉
You present information in a clear and easy-to-understand manner, even for someone like me who does not know WebAssembly. I have recently started to look into WASM, so this was a really good video to pop up on my feed. Also, I have always had a fascination with bots and automated NPCs/entities and systems. Simulating life and such, like in God games or the private sector in Distant Worlds 2, is really interesting. I have subbed and liked, so I will definitely be watching future updates to your project/proof of concept.
Cheers bro!
You, my good sir (or possibly madam) have earned yourself a sub
I have a feeling we're going to be seeing some pretty crazy WASM games on the browser in the future
You gotta make some kind of leagues system, if the game grows people will start to make extremely strong bots which are unbeatable for new players, so putting people or bots in leagues/tiers would probably help as it would pit new bots against other new bots.
I love this idea, a game for devs, good job!
Thanks! If/when it gets that far or to that level of popularity I'll definitely want to have some kind of matchmaking system. But a lot of steps between here and there at the moment. :)
This looks really cool and an interesting way to explore new languages! I'll keep an eye on it and maybe try it when I have more time.
Curious to check this out! You're ticking all the boxes for me :D
Super cool game and would love to see it fleshed out in the future.
Very cool concept, subscribed. I'm currently playing artifactsmmo which is a similar concept so I'm definitely interested.
This is really awesome and it made me wonder about language synergies between different languages and language models and what would happen if you gave them multiple agents in one character and I guess they would be able to get personality traits from them thinking back and forth between different agents for everything and then you can tweak them in so many ways
This is such an interesting concept! Great video too!
Super interesting work, one use case for this could be online programming competion where ypu set up a goal exemple capture the flag and you make play different script from user against 👍
Cool, I need to try this out.
Yey, I remember various coding games from very very long ago. One was c#, others was custom languages. Wish I remembered any names for these :)
Anyway, what I do remember is that for online play it seems an optimum was often found very quickly.
Check the comments; people have been reminiscing about a few!
And yeah, I imagine there are definitely some optimal strategies, but that's when we mix up the map generation or invent a new game type or something. If people "solve" the game here, I'll consider it a win state for the project. :)
This is looking very good. I hope you can continue with this project. I'm going to subscribe to know more about it.
Genius! 😎🤖
So each lil guy is his own language and they all interact between themselves synchronously? Neat
That's exactly it!
Hey, really nice video! Also a cool concept, gotta check that out when I get a chance!
This is awesome! I might try and make an assemblyscript bot as well as try my hand at implementing a way to get a Gleam bot working.
I would love to see an AssemblyScript bot that does something more interesting than the current statue! :D
Subbed man! this looks like an interesting project and ill be following along. Take care
Kinda like a dungeon crawling screeps, cool!
Keep it up! I'm curious
exited for more!
You are my hero.
You are goin gto bring WASM to the masses
Congratualtions on your ordination! Thank you for your service to the church. I hope to also be a Deacon one day. I first have to focus on raising my children for the next 25 years or so.
Hope to see you in the sanctuary some day! :D
Awesome video!
Very interesting, I subbed to see more
this is super cool!! i wish i'd come up with this haha
Very cool
Looks interesting. I got hooked on Screeps for a while, but hate JS.
I used to write bots on tournaments on Codingame (maybe you heard of).
Your project sounds interesting. Could be fun to have an rpg where you can program the hero.
I see in the comments you had less than 100 subs before, now it is over 600. I join too, curious to see where you take the project.
Amazing! I have been really into WASM, zig and onyx lately!
I haven't seen onyx on there. It's primary compilation target is wasm!! So I will maybe try to get a bot working with onyx!
Please let me know if you do!
This is very interesting omg
i wonder where this could go. it's such a novel and interesting concept.
SO excited
Wasm is so cool!
I think this is nicer than screeps.
Screeps is definitely one of the inspirations! Love their concept.
Amazing ! Dungeon crawlers are like a dime a dozen, so you should do different: turn it into a simulator using NN (Neural Nets) and evolutionary algorithm, and make it 's processing distributed and decentralized, so that each person's computer shares a bit of the computational burden, and if the player's system is willing to bear the brunt of being a full node (for instance, you could make the system solve physically realistic system of differential equations to make flames behave like real fire, or light scatter with realistic materials, etc.) it will get a few extra perks like changing the world's rule or having its own world and he will compete with other to see who can create the most interesting world
That's definitely a cool idea! Very different from what I'm going for here, but would be interested to see someone build it. :)
Great video, amazing bro
I'll play with WASM in a future, after getting some jobs done
very interesting video!
this is one of those youtube videos that get a million views eventually : ]
100%
Just 999,432 to go 😂
Sounds like a fun programming game. Can you compile it for desktop use with no browser? Might be interesting to give it a try with an esoteric language like BrainFuck and to see how slowly it'll run.
I do command line testing with Deno but not consistently, so the scripts have some bitrot to them. github.com/sjml/wasmbots/tree/main/engine/src/deno-cli But the idea is definitely that it should run happily without a browser. (Still needs some kind of JavaScript+WebAssembly runtime, obviously.)
Very awesome idea. I'll make sure to contribute a library for my functional programing language.
Will you support wasmgc?
To be determined! I don't know how much is entailed in doing so. I'd like to, just so it can support as many languages as possible, but it looks like it's still very new and there's not a lot of documentation on it yet. Let me know if there's something you need and I'll see what's possible!
@@shaneliesegang I used to work on the AssemblyScript compiler and the as-pect testing framework. I think I might be able to offer some help.
Are you on discord?
@@devilminty_fresh I am, but I am also a discord n00b, and the last time I tried to tell someone my username it didn't work... 😅 I think it's sjmlsj?
This looks awesome
I've been slowly getting into enjoying programming games lately, I'll definitely check this out if I remember it
I'm actually curious: Does Go in WebAssembly actually have multi-threaded capabilities, or at least, simulated as such?
I've read a bit about how wasm works and I have no idea about thread stuff
The Go stuff is actually using TinyGo, an alternative compiler that also works with embedded systems: tinygo.org
It supports most of the parts of Go that people care about, including goroutines, so yes!
@shaneliesegang awesome
"has a true name" oh god chara
Neat.
now just add multiplayer and itll become dozens of peoples hobby to compete or work together with their bots
In the todo list! :D
Ugh you got me interested in wasm. I’ve been avoiding it for some time.
Be not afraid!
I was thinking about wasm for browser based games, but then I thought, won't it be relatively similar to a purely javascript based game? I mean wasm can't directly render pixels or request animation frames, it has to go through a javascript layer anyway.
Yeah, given the way the browser works there will always be a need to engage JS at some level. This is more about having fun making the modules than avoiding JavaScript or the DOM. I know not everyone thinks "programming with lower-level languages" as "fun" but I do! :D
mana gem
i love the idea, but most people will not want do it in low-level not including myself, try allowing others langs so more people plays it
a question, do mages have storage?
I don't allow or disallow any languages... if it can compile to WebAssembly, it can work! You're right, though, that there aren't a ton of higher level languages that output wasm mostly because until VERY recently (like the last month or so) it didn't have native garbage collection. AssemblyScript and Go can kind of _feel_ high level, though. Been meaning to check out MRuby to see if it could work, but also am basically at my limit with supporting the existing five languages.
Not sure what you mean by "storage" -- whatever mechanism your programming language has for allocating and using memory should work fine, up to the WebAssembly limit of about ~4 gigabytes. I am *likely* to limit memory consumption at some point in the future, but it's not on the immediate horizon.
@@shaneliesegang how do you upload the binary to the website? is there a cli tool fo that?
@Wariowa345 There's some CLI tools for testing directly, but you just get text output. Planning to hook them up to visualization at some point, but that would be a lot of work for not much improvement over the website. All the magic is happening in the frontend, anyway, so there's no server logic at the moment and thus nothing to upload to. You can load any compiled WebAssembly module through the app interface (shaneliesegang.com/projects/wasmbots/app/) -- the pulldown menu just shows you the prebuilt options.
Definitely interested in this, but only know Python :(
Time to learn something new! Go or AssemblyScript might not be *too* hard of a slide over from Python. :D
(En serio, I briefly looked at Pyodide to see if was feasible here, but didn't go too deep... my gut tells me it's made for a different kind of context, but I already had enough on my plate handling the languages that are there. But I would absolutely welcome more language functionality!)
So what is this supposed to be? Like going forward. Is this a game or what? Do people just drop a bot in and see what they do?
To be determined! I think it my most complete aspiration it becomes some kind of multiplayer competition space where the bots compete. At the moment it's just a neat way to play with WebAssembly.
I have mixed feelings, because I feel like this could've worked wonderfully as a multiplayer game. Each player could have their character(s?) controlled by their own AI, they could communicate with each other by some means and maybe even engage in PvP in addition to other activities.
This is not criticism of course, since it's an entirely different concept. It's just that the introduction and my imagination got me kinda hyped up.
Oh the PVP is coming! Don't you worry. What you're imagining is the aspiration. This is just the proof-of-concept.
@@shaneliesegang Oh, that makes me happy. Looking forward to improvements.
Me too! It’s a one-person operation here, so we’ll see how fast I move. 😅
that being said, crowdsourcing litteral code could mean a risk of viruses!
True name like shadow slave? 😳
I don't even know what that is!
This is so fucking coollll
at 3:56 if 4 is blocking the view, and you get 0 in the upper right, why you have a 4 at buttom right? should'n the view blocked as wll from another 4?
Good spot! Its either an artifact of the field of view calculation OR a mistake I made when doing all the visual manipulations to the original memory grab. 🙈