Cosmotic Blast Release 1.0.10

Fire and Ice update

Just an update about the new build published today, Jan. 31, 2020.

What’s new in 1.0.10?

  • New Tutorial – Pause Menu
  • Movement improvement to Tutorial
  • Gravity Well
  • Edit name tip
  • Purchase in Pause functionality
  • Bug fixes and more ninja training, of course.

New Tutorial – Pause Menu

Cosmotic Blast pause menu
Pause Menu, Settings and stuff. Check it out by pressing B in the game.

User “Martin[…]” informed me he didn’t even know about the pause menu while playing the game. Why is that an issue? The pause menu is where you can exit the game early or get information about your progress unlocking items or changing some of the settings.

I added a section in the Tutorial so players know to press B in game to bring up the pause menu. Also, by taking off your HMD it’ll bring up the pause menu too.

Movement improvement to Tutorial

Cosmotic Blast Tutorial showing how to move side-to-side.
Move side-to-side with these guides in the tutorial.

How about a bit of help learning the movement with these guides. Tell me if that helps with your piloting.

Gravity Well

This one is just a name change. It was called Gravity Center but not only did “Kbomb[…]” recommend changing it to Gravity Well, but then I saw the new Star Wars and it was mentioned like a 1,000 times. So yeah, Gravity Well it is.

Edit name tip

Cosmotic Blast you can edit your profile name.

Did you know you could change the name of a profile in this game. Most didn’t, soooo if you have default name, “PROFILE 1” then a little tip helper will give you the heads up you can hit the EDIT button and make it personal. Personally, I’m partial to public participation please … tell me what you think.

Purchase in Pause functionality

What!?! You didn’t know I was doing this for money. I am, but not a lot, I promise. This is your fun money. Well now I can take your fun money in the pause menu. Just another reason to point out the pause menu, I guess.

Bug fixes and more ninja training, of course.

I wish I didn’t have bugs, but if I didn’t have bugs then I wouldn’t be as good finding them. Thus the ninja training. Makes sense? No. Well just be glad there are less bugs.

AI for Enemies

As I put the finishing touches on my AI script for the two enemies in our new title, Cosmotic Blast, I wanted to out line some of what went into the design.

Enemies Movement

Enemies had to head towards you, close the gap but also not run into you. So I used this equation to find a point / vector in space to set as a target.

Vector3 locationTarget = ((target.transform.position - transform.position) + (transform.position - target.transform.position).normalized * distance);

Saying that equation in english: Take the targets position and subtract enemies position to get a vector from enemy to target. Now add back a vector from the target to the enemy but only at a given distance. See how that makes a point in space at distance from the target. If you’re to close, it could be behind you.

To avoid targets, I found all near by objects with a OverlapShereNonAlloc() with a given distance. Then applied a opposing force to the enemy. So in a loop …

force += (transform.position - nearByObjects[i].transform.position).normalized * speed;

The speed is a variable since some enemies art faster at avoiding things than others. This also makes it avoid other enemies so they fly around with a nice spacing.

I can also reverse this force for Upgrade objects so the enemy takes them for their self. Muhahah!

Enemies Shoot!

First things first, you got to aim at your target:

Vector3 pos = target.transform.position - transform.position;
Quaternion rot = Quaternion.LookRotation(pos);
transform.rotation = Quaternion.Lerp(transform.rotation, rot, Time.deltaTime * speed);

Why Lerp? Lerp makes it so it slowly rotates towards a target at a given speed. The speed is based on what level the enemy is at.

Next, got to shoot. Well this is more complex, because it depends on what the enemy is shooting but to start it off, I do a Physics.Raycast and find if the “Player” is in front of the enemies canon … then I fire().

if (physics.Raycast (transform.position, canon.gameObject.transform.forward, out hit, range, rayMask)) {
    if (hit.transform.tar == "") {
        Fire();
    }
}

The rayMask hides the Raycast from different gameObjects.

All the rest

All the rest is inherited from the classes that the ship uses, like upgrades and shield, etc.

Fun fun happy times.

Announcing Cosmotic Blast

Today we are announcing our new title, Cosmotic Blast. Think destroying asteroids, collecting upgrades and defeating enemies! It’s going to be a BLAST!

Get all of the information on our Cosmotic Blast page and spread the word by using #CosmoticBlast.

This is just the beginning of a new title. Look for more information to come.