 Metal Bullets is a project I'm working on, which is an HTML5 first-person shooter. The end goal of this project is to allow end users to create levels and games in Blender and easily import them with all their functionality into an HTML5 format. They can be easily distributed amongst devices and operating systems. Originally this was a 3JS project, but later on after a couple of weeks of working on it I decided to scrap what I had been working on and start from scratch using BabylonJS. Both are great platforms, I just found that BabylonJS more suited what I was going for with this project. It is still in the very early stages, a lot of work needs to be done and a lot of changes will be made. But here is a preview of the current state of the game. Everything you see in this tutorial, there will be links in the description of this video that will allow you to download the game or just play a playable version that is already up on my site that is constantly updated. Thank you for watching, I hope you enjoy this little preview of the game. You can go to github.com forward slash metalx1000, click on my project Metal Bullets to see all the source code and hopefully I can get some of you to help me not only with the coding of this but the design of the game as well. I'm definitely looking for some CSS professionals out there to help with things especially like menus to make them a little bit prettier but here is our first look at Metal Bullets. If you enjoy my tutorials and would like to see more, please think about contributing to my Patreon account at patreon.com forward slash metalx1000. So originally this was a 3JS project so I'll show you what I have of that and that code will still be available but it's completely horrible, it's unorganized and glitchy and I'm done working on it and I rewrote everything in BabylonJS but let's go ahead and have a look at the 3JS version first since I did spend like two weeks working on this. It has a little load screen, click start and I can move around. Now the big problem and the reason I moved to BabylonJS is I couldn't quite figure out how to load stuff from Blender and give it physics using CanonJS so you walk through walls, I had no collision detection and as far as the floor goes, the floor, it's not really stopping me from falling. This is a single playing game, basically I'm always at this level, there is a jump option but it's not using real physics. It's actually just using key animations, using tweenJS to calculate the up movement and down movement so if there were stairs or steps or if you wanted to get up on that wall, you can't in this version of the game and it doesn't really matter because you're going to walk through walls anyway. Doors automatically open when you walk up to them, again not using any type of physics but just using key frames. They do play a default sound, I don't know why that door is not working, I probably didn't label it properly. One thing in this game I do have in this version of the game, I don't know the other, is the image of the gun and it bobs while you walk. So there you go, that's a quick look at the original version of the game, I'm going to back out of that. We're going to go into the BabylonJS version which is, I worked, I rewrote everything, cleaned it all up, got it working with BabylonJS. Right click, you go to full screen here, we're using real physics when we jump, not just key frames so you can see I'm already up on a wall, I'm not falling through the wall or the floor, I'm down on the ground now, the wall stops me. We have collision detection, great, extremely probably one of the first important things. You can walk upstairs in this game, it's not a single ground plane game which you really don't want. You can still right click to jump, again using real physics, and here doors don't automatically open although that might be something I add later on. I actually have it so that there's certain objects you can activate with the activation key which is spacebar at this time. So if I walk up, get close enough, face this door and hit spacebar, the door opens and it's on a 5 second delay by default and then it goes back up. So also I have the mouse control full looking up and down in this version where the other one was just left and right and so I can open all these doors. So doors is a big thing, there's no gun image but if you left click it does make a gun sound. Now the music in the background is the default music that I wrote, it's just like a 2 minute loop that I wrote for this game to have something in the background. So one of the first things I worked on in this game is the music player because while working on a game like this, listening to the same song over and over again kind of got annoying. So there are music controls in that you can press the minus key on your number row at the top of your keypad and that will lower the music, the plus or equal sign key on your keyboard will raise the music. P pauses the music, P again un pauses the music and if you hit escape once you come out of full screen, if you hit escape again you get this ugly, ugly menu which I'm hoping that someone out there watching who's good with CSS can help write some CSS to make this look a bit nicer. And you know right now it's not a main menu, it's just a music menu but you can see you can paste in a URL for some music and it will load that song. I'm using Firefox to run this so I'm using org files depending on what browser you use it supports different types of music but you can also see here it does keep a history of the music so once you copy and paste a song in there it adds it to the history removing any duplicates and you can click on that it goes back to full screen and a new song will start. So we have doors, jumping, gun sound, stairs, now these green boxes they don't have to be green they can look like whatever you want or be invisible but I made them green so you can see them. I have two over here you can see the one right there and the one up on the roof over there and there's one ahead of me and one on the wall up there. These are the teleporters so excuse me. The teleporter you can jump into and you can see it uses a visual effect to make it so that you feel like you've gone through a transporter as well as playing a sound. If I go through a teleporter like so and I jump right back through the teleporter you notice you don't teleport. That's because by default there is a five second delay on teleporters they need to recharge before you can go through them again. So as long as you wait at least five seconds you can jump through there and go through again lower the music a little bit. If you do stay on the teleporter once you go through it after five seconds it will teleport you back. Now unlike a lot of games where when you go through a teleporter you have a pre-defined direction that you're facing. I have it set up so you're facing the direction you're going in so if I'm facing let's say north and I go through the teleporter I come out facing north. If I'm facing south when I go through it I'm facing south when I come out. I did this one because that's just how I wrote it. And two I think it can make the game a little more interesting where you're not forced to face a certain way so you can jump into a teleporter backwards and come out shooting if you need to. Again there's more teleporters over here. So now I'm up on this wall. There over there is the teleporter I came from. Again no enemies yet. This is basically very early in the game development. These doors work on positioning not physics so if you kind of stood on the door while it closed you kind of get stuck and you're not really stuck inside it because if you start moving you usually will pop out. But that's obviously not a good thing. I'm hoping to figure out how to work them with physics so that they act more like an elevator and I can use the same code for elevator. But again the main purpose of this project is to have an easy to use HTML based first person shooter so it will run on array of devices and operating systems that you can design in blender. And based on what you label stuff in blender will tell the code how it should act. So you could go in and change the code but just by assigning stuff different labels it will show you it will act differently. So the next video again this is just a quick look. Next video I'll give you a quick look on how easy it is with what I've got so far to create a simple little level in blender. And get it running on an Android device or other device or your desktop depending on whether your hardware is supported and your browser is supported. So look forward to showing you that tutorial. Again very very early stages of development here. Definitely going to be looking for some help. The code is up on github. If you go to github.com forward slash metal x1000 you'll be able to see all my projects there. It's called metal bullets and help with coding and definitely in the future level design character design sound effects music all that sort of stuff would be great because I do hope to create somewhat of a complete game for myself that people can play. But then again obviously people should be able to easily make their own game with with blender that they can run on pretty much anything. So I thank you for watching. I hope you enjoyed this tutorial. Please visit filmsbychrist.com. That's Chris Decay. There should be a link in the description. And again this is a very early version of the game. There'll be a link in the description to this version so you can see what it looks like. But you can always see the current version on github or there should be a link in the description that will lead you to a playable version on my website that I update regularly. So you'll be able to see of course there might be glitches if you're using the newest version. And in the next video it's not going to be a full tutorial but a quick look on how you develop in blender to create a level for this engine if you will. I thank you for watching. Again please visit my website filmsbychrist.com. There should be all the links in the description to everything. And again early stages, a lot ahead. Things might change completely by the end. I've already completely rewritten the game once. But I thank you for watching and I hope that you have a great day.