Spellcaster Studios

Make it happen…

Balancing the electro-cannon

Today I’m fiddling around with the electro-cannon… This is a weird weapon, because it works differently if the player fires hit or the enemies…

When the player hits an enemy with the electro-cannon, they get stunned for a short while… When the player is hit, it just takes damage…

screen586

I wasn’t happy with it… The electro-cannon is a weapon that when fired by the enemies always hits, so the damage from it had to be low, but that made it be kind of without flavor.

So I decided to add a knockback to it:

electro_cannon

It makes it a bit more fun, especially if a lot of enemies are using it… Smile

Now listening to “The Seventh Life Path” by “Sirenia”

Link of the Day: I was never very excited about the prospect of virtual/augmented reality, beyond the normal gimmicky thing, but looking at these Microsoft demos at Build 2015, that changed… I want a HoloLens now!

Pulse gun fine tuning

Spent most of today fine tuning more weapons, mainly the pulse cannon…

The pulse cannon is one my favorite weapons, because the build up time let’s the player prepare for the shot, which makes it cool to avoid!

Also added a plasma burn to the place where it hits, because it’s cool… Smile

screen585

Also spent some time playing around with the new “Visual Studio Code” for Linux… Rather nifty editor, which it worked as Visual Studio on Windows (C++ support, debugger, etc)… Maybe one day, but for now it’s a cool tool just to edit code (I like it more than NetBeans, which I use on Linux, so far).

screen584

Now listening to “Am Universum” by “Amorphis”

Link of the Day: Since I talked about it above, check out Visual Studio Code, if you do cross-platform development for the web/cloud: http://techcrunch.com/2015/04/29/microsoft-shocks-the-world-with-visual-studio-code-a-free-code-editor-for-os-x-linux-and-windows/

Like a see-saw…

Some more balancing today, switching between weapon balancing/testing and experimenting with some gameplay mechanics… I know they should be locked down by now, but I can’t help myself…

First change in the gameplay is that shields no longer have a fail rate… It was just looking weird, and I can achieve the same actual result by tweaking the shield energy… The fail rate meant that sometimes the player would be shooting at an enemy (or vice-versa) and some shots would get through the shield… This seems fun, but in practical terms it breaks the predictability and the standard convention, which means players keep wondering what’s happening… You could kill enemies before you depleted the shield, and that’s confusing! That worked before when the player didn’t have any visual feedback on the health of the enemies, but with the current system, it seems weird…

Another change was the way I handle target prediction… Higher level enemies can predict where the player is going to be, and shoot ahead… that keeps the player on his toes, since he has to go in zigzags, etc, to keep damage to a minimum at medium distance (at short range, you’ll get hit, at long range you have a chance of avoiding the shot)…

The problem is that the hit/no hit mechanic is binary, and it was changing the targeting prediction: if the shot is supposed not to hit, it will target the player’s current position (it can still hit him, though), otherwise, the predicted position… This would appear visually as a mess, like a spray of bullets, which made it simultaneous harder to avoid the shots, and it didn’t look nice:

screen582

I’ve modified the system, so that if a shot is computed not to hit, it will still go to the predicted position, but not hit the player. The idea is to add some excitement and make it more obvious where the player has to go to avoid shots:

screen583

That’s why some shots are behind the player in the above screenshot… This makes the game more predictable and (hopefully) more enjoyable!

Now, I need to balance the weapons a bit more so I can move to more interesting stuff (lately it’s been boooooring!).

At the time of reading, I’m leaving for Edinburgh tomorrow for a 5-day holiday and sighseeing… I should have enough posts done to keep the one-a-day average, though, since I doubt I’ll have time/patience to work on the game while on the vacation…

Now listening to “Ayreonauts Only“ by “Ayreon”

Link of the Day: I’m not much of an eco-friendly kind of guy, but these news are exciting: http://www.sciencealert.com/audi-have-successfully-made-diesel-fuel-from-air-and-water

Balancing weapons

Today I mostly worked in balancing the weapons… Not much to say about it, I basically just spawn an enemy with different weapons and different levels, and see how does it feel…

Then I adjust it and try it again, over and over again…

The game so far was “mathematically balanced”, which means I had some Excel sheets and some graphs and I did some math on theoretical goals to adjust the factors, but now I’m looking more into the “fun factor”… The fact that an enemy with level 4 and a machine gun can kick my ass doesn’t make for a fun game!

screen581

Of course, in the balancing process I’ve found some minor bugs and fixed them as well…

Now listening to “Heaven Still Burns” by “Absentia”

Link of the Day: For a mobile game (I don’t usually play those), this one is very cool, a very nice idea and very well executed:

More shooting!

Carried on the work from yesterday, fine tuning the shooting mechanisms…

It’s now working properly, with two easily adjusted parameters, and I even have a new parameter for the accuracy of the weapon (a machine gun shouldn’t hit as often as a pistol).

screen580

The high-level enemies may still have too much accuracy, but on the other hand… they’re high-level…

Anyway, next step is to balance all the rates in the weapons… I’m also getting some weird stalls when I have a lot of shots in the scene, so it’s probably the collision detection screwing up, need to check it out properly…

Now listening to “Gambling With the Devil” by “Helloween”

Shooting time!

Working on a new AI shooting system…

The current system uses a sine-wave altered by the danger level of the enemy and some parameters (frequency and threshold)… This is hard to control, and the fact that enemies shoot or not against you is dependent on where in the curve you’re at the moment…

So, I decided to move that into the Lua script, and do it based on two parameters: pulse duration and cooldown…

I’m currently in implementation of this, the first result wasn’t very good, but I’m working on it… Smile

screen579

Now listening to “No Prayer for the Dying” by “Iron Maiden”

And moss becomes cracks…

Well, this was unexpected and shows the highly mutable nature of game development…

When I started of on this asteroid polishing, I wanted to add alien moss… After a lot of experiments, tweaks, texturing, shader work, etc, I got to something that’s way simpler, but looks better: cracks on the ground!

screen578

It’s better than the straightforward illumination I had, and gives the player something to look at different than any other place in the game… Was a lot of wasted effort, but sometimes you have to walk the path to know it’s a dead end…

Now listening to “The Scarecrow” by “Avantasia”

Link of the Day: The game itself doesn’t look like my cup of tea, but it looks sooooooo pretty: https://www.kickstarter.com/projects/438269196/izle.

Still moss…

This took a bit longer than expected… Had to implement a decent Perlin noise implementation, and had to do a million tweaks…

First, I had to go back on the drawing board (thought I had an error), and build a decal that shows the ambient occlusion (which looks fairly cool!):

screen573

Then I had to create a texturing system that with mapped properly a texture, regardless of the normal, and modulate that with a Perlin noise and the distance from the center:

screen574

Playing around with the parameters, and adding some material animation (for the color), I got to this:

screen575

And this looks like anything but moss… Disappointed smile To be honest, I don’t think I can make something look like moss without adding geometry, perpendicular to the terrain…

Just playing around, decided to add some crystals:

screen576

I thought this was nice, so I now had an extremely expensive way of doing something similar… Decided to take a step back and try to simplify this whole effect:

screen577

And I rather like this effect… It gives something different to see in the asteroid… I still have some ideas on how to improve on this, so I’m probably going to try it…

Now listening to “Hesitation Marks” by “Nine Inch Nails”

Link of the Day: I laughed… a lot…

Moss

I’m trying to add a glowy alien moss to the asteroids, based on the decal code, but using a kind of spherical projection instead of the planar one…

The first run, I tried using a cube map…

screen572

If I’d thought about this for a bit, instead of going straight for implementation, I’d reached the conclusion that a cube map is a very stupid idea… Smile

The thing I forgot was that, contrary to the normal rendering, in which you’re mapping a surface, we’re mapping a volume here… That’s why it looks the texturing looks “radial”, because all the point in the same direction will have the same texture, and not have the volume I’d expect…

I could go for a 3d texture, but maybe it’s better if I just go for one texture, mapped with the 3 planes (XY, XZ, YZ), and combine them with the normal… That should give me much better results!

Now listening to “The Lord of the Rings OST” by “Howard Shore”

Link of the Day: This is a very neat timelapse:

Load and save

Today I worked with the savegames, adding descriptions and fixing bugs introduced with the jump to multithreading…

screen571

Most of the work was mainly finding out what the problem were!

Lately I feel I’ve been working mostly with bug fixing, which is boring, so I think my next step is to add something new/fun… I got suggested a cool idea to improve the asteroid levels, so I may tackle that next…

Now listening to “Rubicon” by “Tristania”

Link of the Day: As fan-boy of everything Assassin’s Creed, this intrigues me… Got to pick it up as soon as I have the time!