How to Create Games using TypeScript, Vite, and BabylonJS - The Game World, Player Input, and UniversalCamera


Really good tutorial, now waiting for the monsters :slight_smile:

1 Like

Nice tuto, cannot wait for the other parts !!!

cc @PirateJC

1 Like

First and foremost, welcome to the Babylon Family @willieLjohnson!

Super fun tutorial!

Are you on twitter? I’d love to throw some love your way on twitter if you are?

1 Like

Welcome to the Community and applause :clap: for such an incredible first post.
You really have skills to explain things straight forward and everything from the layout and content is very clear and very clean. Congrats :heart_eyes:
The only downside I can see to that is that now, with something like this, everyone will think he/she can create a game in 2 weeks :grin: :stuck_out_tongue_winking_eye:
Where we all know that making a game (a true game) takes much more efforts than that :sweat_smile: :dizzy_face:

Sidenote: Only thing I would disagree with is when you say in your intro:

Having a clunky character can make a game feel more difficult than it needs to be, although this can also be a design choice

If this is a choice of design, then it is a really bad choice of design/gameplay (of course, in my opinion only)

1 Like

Thank you! I’m working on it right now :grin:


Thanks for the welcome I’m excited to be here! Yes, I’m on Twitter @liwawil. I’d appreciate the love!

1 Like

Thank you I’m glad to be here, I’ve been participating as a learner I hope to give back as a teacher. Hehe, thanks for the praise. Great point I will adjust the pacing of the guide and mention how long it can really take :sweat_smile:

You’re right! I had the game “Dark Souls” in mind when I wrote that line, but this is definitely a controversial part of their design. I hated it at first! But now it’s part of the charm :+1:

I appreciate the feedback means a lot!

hi there, Welcome!

Your player is an entity , but in your world class it is typed to Player and then your world update runs two update calls , one to update the player and a loop to update the other entities. You player is an entity right? why does it require a unique call to update ? it should be in the list of entities if it is a entity?

Your camera code is also just reading the position of the player directly from the mesh. So now you have entity.position and entity.mesh.position.

I dont code generic frameworks myself, im just modular enough to make life easy in context of my project scales but if you are going to take the whole “world” , “game” , “entity” route, a small hint then , learn to code towards an interface not an implementation ( gang of 4 design patterns ) ( also component orientatd programing )

anyway , enjoy making games and keep learning :wink:


Hey! Great question. Yes, the Player is an Entity and can be placed in the list however I’m not doing that until we add monsters as we will be creating Components which will greatly change the whole structure of the code. I start off the exact same way as you, the code just gradually becomes more modular and generic. This game is going to be pretty big! Maybe a 20+ part series. Thanks for the feedback and warm welcome!