Hey, everyone!
I’ve been using PlayCanvas off and on for a while now, but after pretty thoroughly trying the other choices like Godot, Unity, and ThreeJS, I really feel PlayCanvas is the one that gives the most control and speed when it comes to developing 3D web apps, although it’s also been my go-to for a couple of Electron apps already as well. I really can’t say enough good things about it, so thank you to the maintainers who worked so hard to make PlayCanvas what it is!
Anyway, I started a new project today to really make sure I’ve got all the kinks ironed out of my PlayCanvas workflow. I’m a pretty big Splatoon fan, so I’m setting out to basically re-create little slices of the game in PlayCanvas, obviously just for my own personal learning rather than anything that I would publicly release to inevitably get C&D’d by Nintendo. There are a couple of things that I’m unsure of how to approach such as laying ink on the ground, but even if I can’t create ink maps the same way Nintendo did, I’m confident I can come up with something relatively close, even if it’s slightly wonky
I’m not sure how far I’ll take the project, my goal is to at the very least get a single player running around and inking another AI opponent in a standard “deathmatch” fashion before moving on to something that I’ll make available for everyone to play. If I do get really into it though, I’d like a full ink turf war to be playable between player + AI on one team and enemy AI on the other. I’m pretty familiar with the YUKA AI library, and the creator, Mugen, even did his own deathmatch game with it in ThreeJS which is very impressive, I strongly suggest checking it out on his website.
Anyway, with that long-winded intro out of the way, I’ll be journaling screwing around with various things here. I hope you all get a kick out of it as much as I will
Today I started out by sculpting my first inkling in Blender, creating the low-poly version from the sculpt, rigging her to a skeleton, and then baking out all of the texture maps:
There’s still a couple things on her I might go back and adjust later, but overall I’m pretty happy with how she turned out for now! For the rest of the day, I set up my development environment and started coding a third-person character controller:
For development I’m using ClojureScript, Emacs, Cider, and ShadowCLJS, all of which combined means 1. all of the code is in Lisp that is transpiled to Javascript in real-time and 2. the game can be programmed while it is running. I’ve never actually used the hot swap feature that PlayCanvas has, so I’m not 100% sure how it works, but in any case because of this setup I don’t really need it anyway.
I also noticed the inkling is a little more pale in-game, and I think she could use some ambient occlusion maps, but I’ll probably mess with the materials a little further down the line when I have more done. Tomorrow will be animations and programming the animation tree!
Thanks for reading, and I’ll keep you all updated!