In this episode I introduce the first iteration of my shoot'em up bullet pattern engine written in Swift. Also I have got a few new Level Editor enhancements implemented.
Loosely based on BulletML I've built an initial implementation to handle bullet patterns in the game.
BulletML has many great ideas how to handle bullets but also a few shortcomings. I've made a more modern implementation, fully Swift based and without XML driving it.
I decided to try to keep the bullet engine separate from the rest of the game's codebase and make it completely independent so I can reuse it in the future. That also gave me an excuse to introduce myself to Swift Packages in Xcode.
If I polish it enough I'm considering open source it in the future.
When it comes to the level editor I've implemented a bunch of quality of life enhancements.
The most notable is multi select. This really makes all the difference in the world compared to previously when I had to move the entities one by one. Quite a game changer. Now I've a tool that's getting closer to actually be production useful.
I've also implemented design guide overlays. I used to love these kind of guides when I worked with LightWave 3D in the past as well as Adobe Lightroom these days. So I created a bunch of common ones using
CGMutablePath together with
SKShapeNode to help guiding me with placement when the final level designs begins.
At this time I've 8 different guides implemented to utilize.
- Grid 1
- Grid 2
- Rule of Thirds
- Golden Ratio
- Golden Spiral
This is the ninth episode of my devlog following the progress of my indie game, which is a top down shoot'em up, that I am coding in Swift on top of the SpriteKit and GameplayKit frameworks.