I've managed to fix the display issues, and fleshed out some more of the scripting system. Spawning and updating of particles are mostly done. Drawing of particles are done, however there's no shaders yet. I will add shader support later on.
I'm a bit unsure how scripting system will work in multiplayer, due to randomization. I don't want the players to go out of sync (a player sees his enemy's ship dead, but the other player see it still alive for example). So I will have to figure that out later when I get to multiplayer. Note that network multiplayer is planned for after the game is released, so I'm not worrying about it too much now, but just something to think about for now.
While working on the script system, I realized that it's hard to manage two different coordinate systems in scripts. One is grid based which is for the ships and their positions, and another is free-form which is for particles. After some thinking, I decided to convert the ship to use free-form system. This means that ships are not locked to a grid cell, they're free to move anywhere. This simplifies a lot of things in the script system, but will be somewhat different in terms of gameplay. No longer do you move ships on a checker board. I think this will make things more interesting, as it opens up possibilities for me.
I can now add in a good kamikaze system without worrying about how to handle it in a grid-based system. I can just simply do mass vs mass collision and calculate the ramming ship's thrust, and have the ships bounce off of each other and apply damage to both ships (or more if ramming a big ship into a bunch of smaller ships). I can add free moving asteroids that you need to avoid or they'll ram into your ships. There's a lot of other potential (blowing up a planet would generate a lot of debris that you need to avoid for example) with this system, I'm excited about this.
With the spawning, drawing, and updating done as much as possible, the next thing on list is collision detection/handling. I've made the laser go pew pew, now it's time to make the ship go boom boom.
Now for screenshots! Since light don't have a limited range, I've made the laser to have an extremely long range. This will be similar to X-Com, you can either miss or hit, and you can see it visually hitting or missing, instead of some behind-the-scene number crunching. You can see the laser "missing" (quotes because collisions aren't done yet) here (first is zoomed in image, second is zoomed out to show the laser's range, which extends even more than that)