I added code to track the mouse position. You’ll see a box that moves as you move the mouse, and I added a turret that should aim at that location, roughly. It’s starting to resemble something that resembles a game.Continue reading “Stay On Target, Staaaaaaay On Target”
Got some simple materials working. Struggled for a while because nothing I changed seemed to have any effect. Finally figured out that the problem was that I’m using mesh “instances” instead of actual meshes for each individual object on the screen, and instances can’t have their own unique material. Instances are a technique used to draw lots of copies of the same mesh without hurting performance. Each one can be moved, rotated, etc, but certain things (like the material) is the same for all instances of a mesh.
Here’s an example of BablyonJS drawing a thousand instances of a single cube.
In the image at the top of this post, you can see some transparent materials on those little dots. Those are my bullet meshes. I want them to be much brighter and have a glowy effect. Just need to learn a little more about the material system. It can do just about anything, with one notable exception being lots of independent lights. You’re only allowed eight lights in a scene, which is a really old-school restriction. That was a limitation of graphics cards in the 1990s. Modern engines allow you to have thousands of lights with barely any performance loss. BabylonJS claims to support 16 (on some systems) but it crashes for me if I try to go beyond eight.
Also added pause/unpause via the escape key.
Version 0.0.0.4 here.
Latest version here.
I learned BabylonJS’s GUI system and added some simple stuff. Like all things BabylonJS thus far, it was easier than I expected. This engine really is refreshing to use after having tried so many cumbersome, restrictive, and just plain tiresome alternatives.
All I’m doing with the menu for now is a “paused…” screen. Pretty important in a browser-based game, because it’s so easy for the game itself to lose focus. The user will frequently switch tabs, reload the page, etc.
Check out version 0.0.0.3 here.
The latest version is here, as always.
Made progress today. Updated to the latest version of Blender (my 3D modeling tool of choice) because I read that it supported exporting directly to the GLTF format, which is what BabylonJS uses. That fixed a lot of weird issues I was seeing when trying to import 3D models from older versions of Ladon.Continue reading “Version 0.0.0.2”
I had to take another really long break from working on Ladon. But, for the moment, I’ve got time, motivation, and the opportunity to get back to work. So let’s go, once again.Continue reading “Back Again, All New Again”
Color is something that you deal with constantly in games and any other form of digital art. There’s an endless amount of trivia on the subject. I thought I’d ramble a little about an important aspect of color that we didn’t learn in school.
While bringing Ladon’s code back from the dead, I decided to fix something that has been bugging me from the start. In fact, it has bugged me in pretty much every OOP project I’ve ever done. C++ and OOP in general were a revolution in programming that built on top of the traditional “procedural” paradigm. Instead of endless lines of procedural code that look like this:
Do this! Do that! Do this other thing!
I apologize to anyone following Ladon for not posting anything in a year. 2016 was easily the strangest year I’ve ever experienced. It was also easily the worst, but the details of it aren’t worth going into. I’ll just say that I’m happy it’s over. Life is crazy.
Ladon survived 2016, too, but just by a hair! There were several times when I doubted that I would have the motivation or even the opportunity to continue the project. It’s still here, though, and I’m more determined than ever to finish it. The code is updated to Unreal Engine’s latest release (4.15) and I even invented a new way to do component-based design. I’ll do a post about that soon.
If you’re one of the handful of readers of this blog, thanks for sticking around and I hope to have some great news to share with you very soon. Cheers to 2017.
So much work to do! We’re pretty much rebuilding Ladon from the ground up in the first months of 2016. I’m excited.
I had a nice conversation this morning with someone interested in learning game programming. He asked me a good question: “Can all programming languages do the same things?” That’s a pretty important question and the full, “true” answer probably lies hidden underneath many layers of mathematical theory. The short answer that I gave him was “Almost.” I think that’s a fair answer, but I decided to elaborate in a blog post, since the real answer is very complicated and might be interesting to anyone looking to be a programmer.