Did you consider writing in TypeScript? I'm tempted to switch from writing Lua directly to using a TypeScript-to-Lua transpiler. It would help me avoid the kind of issues you described and allow me to make use of better developer tools.
@@ThePouetman The neat thing with TypeScript is that it transpiles to JavaScript. So as long as your server, client or whatever can run JavaScript, you're golden. Luau on the other hand can't be transpiled to Lua. It's in effect a separate language, derived from Lua, that has its own runtime.
Amazing video!! did you already had consider teach how to create a framework like the ones you have? it would be awesome if you do it. I would love to know how to. congrats for the 20 years of creating amazing games!
Have you done a breakdown of how you structure your games? E.g. do you use ECS or structure your stuff some other way? I've been playing around with libgdx, and am really enjoying it - it's gotten to the point where I need to add a bit more structure though :)
Think I did one of those videos, but no idea which one it was 🤔. But I don't use ECS.. and I keep structure as simple as possible for whatever that means 😜
Really great video. What are all the components that make up your framework? I’m tempted to try something out myself. Everything out there with wasm feels like a blackbox
Input handling (keys, mouse, touch and gamepad), audio, spritebatch rendering, and since we're on the web, assetloading management. Think those cover the core stuff. Then I have a GUI component for menus and text rendering.. everything else can be replaced per game 😎
@@liquidik Google :P SpriteBatch is a common technique where you feed all your sprites to the GPU in one call. Putting all the sprites into a big texture-atlas. So instead of calling the GPU to render a single square sprite, you batch feed it all the vertices for ALL the square sprites that use the same texture, and then it dumps it onto the screen in one call.
Easier maybe, altho might run into many issues requiring manual work, but not sure if easier would be better in this case. It's still web/online and a script language. So optimization is kinda important size wise and also code wise.
I never got Libgdx export to work. And I also use very little from libgdx that it doesn't really make sense for me to use it for these games. My own framework is much leaner and easier to maintain 😁
Your games are really a good fit in Poki or Crazygames. Why not create a series here in your channel where you make your games "HTML5 ready in a week".
This exercise sounds kind of biblical, did you rest on the 7th day? And to highlight the creation of a game framework, just requires a little bit of Snake oil! 😅
Cool to see a relevant sponsor. Another interesting video, really enjoying watching your progress.
The sponsor really came at the right time!
Did you consider writing in TypeScript? I'm tempted to switch from writing Lua directly to using a TypeScript-to-Lua transpiler. It would help me avoid the kind of issues you described and allow me to make use of better developer tools.
Totally agree with you. Typescript is far from perfect but does feel to me as a safer option.
Didn't really look into it, might do that on future projects tho. Should be a fairly easy move.
I heard about luau, which seems to be to Lua what typescript is to JavaScript, but I've never used it
@@ThePouetman The neat thing with TypeScript is that it transpiles to JavaScript. So as long as your server, client or whatever can run JavaScript, you're golden. Luau on the other hand can't be transpiled to Lua. It's in effect a separate language, derived from Lua, that has its own runtime.
Typescript is great when you come from a static typed language like Java. It's better to avoid problems then to solve them.
Brilliant to see how this went! Do you plan on porting a lot of games or is this mostly just to checking the new framework is working?
It was planned to check the framework, but I most likely end up porting a bunch of other games ;)
Such an awesome video! Thanks for making it!
Thanks 😁
Great job on getting the game up and running in HTML5!!
And so quickly! Makes me want to get more games ported
Amazing video!! did you already had consider teach how to create a framework like the ones you have? it would be awesome if you do it. I would love to know how to.
congrats for the 20 years of creating amazing games!
Have thought about making such videos, so maybe will do some in 2025
Have you done a breakdown of how you structure your games? E.g. do you use ECS or structure your stuff some other way? I've been playing around with libgdx, and am really enjoying it - it's gotten to the point where I need to add a bit more structure though :)
Think I did one of those videos, but no idea which one it was 🤔. But I don't use ECS.. and I keep structure as simple as possible for whatever that means 😜
Nice sponsor!
Agreed! They should do this more often, fits my work and channel content 😁
Today I finally saw the logo and understood that it's not "Snakeou"" but "Snake Core" :D
😅
Webstorm being free now is pretty huge. Love Jetbrains IDEs, this might make JS a little more tolerable to write in.
Ah, it’s a non-commercial license. Still can’t sell stuff without a commercial subscription to Webstorm.
It certainly helped a lot managing the code and project! Really happy with it
True, and for learning. Does make it interesting to at least try it out
“Free” is pushing it considering the limitations
Really great video. What are all the components that make up your framework? I’m tempted to try something out myself. Everything out there with wasm feels like a blackbox
Input handling (keys, mouse, touch and gamepad), audio, spritebatch rendering, and since we're on the web, assetloading management. Think those cover the core stuff. Then I have a GUI component for menus and text rendering.. everything else can be replaced per game 😎
@@orangepixelgames Awesome! Have to read about sprite batch. Any resource to reccomend?
@@liquidik Google :P SpriteBatch is a common technique where you feed all your sprites to the GPU in one call. Putting all the sprites into a big texture-atlas. So instead of calling the GPU to render a single square sprite, you batch feed it all the vertices for ALL the square sprites that use the same texture, and then it dumps it onto the screen in one call.
I don't know if you've mentioned this, but why don't you build in libgdx and deploy using the html5 backend and GWT?
Never worked for me, and I use barely anything from libgdx itself, so this makes more sense for my code
It might be better to find a way to compile the Java code to web assembly or something like that.
Easier maybe, altho might run into many issues requiring manual work, but not sure if easier would be better in this case. It's still web/online and a script language. So optimization is kinda important size wise and also code wise.
I am currently checking different framework to move away from game engine, what prevented you from build to web directly with libgdx?
Good question, I also want to know
I never got Libgdx export to work. And I also use very little from libgdx that it doesn't really make sense for me to use it for these games. My own framework is much leaner and easier to maintain 😁
@@orangepixelgames it makes sense 😁
@@orangepixelgames Thanks a lot for the detailed answer!
Your games are really a good fit in Poki or Crazygames. Why not create a series here in your channel where you make your games "HTML5 ready in a week".
That's the plan 😁 so stay tuned for more!
This exercise sounds kind of biblical, did you rest on the 7th day?
And to highlight the creation of a game framework, just requires a little bit of Snake oil! 😅
I rested on the 5th day - different times, we work less hours 🤣
Ok, so the only thing that really concerns me about the video is seeing you using vanilla JS
😎
* Building a game in 4 days in Javascript!
And JavaScript interacts with... HTML/dom.. so.. HTML5! 😎
@@orangepixelgames Yeah sure, and my house is made out of floor...