Tuesday, June 26, 2012

Ready Up

If you were a part of the previous tests and tried creating a game, you probably remember constantly having to ask if everyone is ready to start. That won't be an issue anymore, players can now mark their status as ready or not ready in the game lobby:




This quickly lets the game leader know when it is appropriate to start the game instead of having to guess. The leader's status is set to a crown to let everyone know who can start the game, and the rest of the players have either an X or a check. The player's status starts off as an X for not ready, and can be switched at any time to let their leader know they are ready to start. The status can be toggled back easily if you change your mind.

As of now the status is just informative, and it doesn't actually affect the leader's ability to start the game. That means if a player doesn't have a ready status the game can still start. This will likely change in the future, but first a booting system will have to be implemented in addition. One thing at a time.

Monday, June 18, 2012

The Snake Powerup

I have been working on a new powerup attack that acts a bit differently than the other attacks. The snake is an enemy that moves through the field causing damage when touching the player. The important part of the snake is the head, the rest of the body moves in the same path the head takes.

Attacks against the snake's body have no effect. In order to kill a snake, you must shoot it in the head. Each shot will remove a segment of its body until it is only a head. Shooting the remaining head will finish it.



What makes the snake unique is its ability to absorb unclaimed powerups to make it stronger. Whenever the head makes contact with a free powerup, not only does it prevent the player from using it, but it gains an additional segment in its body. This gives it more health and makes it more dangerous.

Take these enemies out as quickly as you can to prevent them from stealing your powerups.

I have also added a new wallpaper in the downloads section:










Stay tuned for the next online testing session...

Monday, April 30, 2012

Test Survival Mode

I've been working on a new game mode that is single player called Survival. The idea is to fight through all of the waves of attacks and try to survive for as long as you can. The current state of the game type is pretty rough, I want to know if you like this idea and want me to continue working on it.

Go to the page here to try it out, and make sure you let me know what you think.


Monday, March 5, 2012

Updated Lobby Mock

I've done some more work designing the lobby layout. Here are some of (not all) my mock-ups:



Also I will not be able to update the blog as often as I have been for a while due to new deadlines in real life. Keep following the blog for spontaneous updates, but they won't be as periodic.

Monday, February 20, 2012

Player Customization

I've been working on adding some basic customization for registered players. When you are in the lobby, you can select an available player and view some basic stats. The system right now works, but the player info space is very small and has little customization. I am making it larger and more appealing.


I plan on giving the player the option to customize the background and maybe even the foreground. Players could unlock different looks by having a high enough level, kill death ratio, or possibly completing streamlined "challenges."

I want players to have an identity in Nexus to give them incentive to keep playing and be rewarded for their accomplishments.

Monday, February 13, 2012

Nuke Balancing

I had some feedback from the last testing that the nukes were too powerful. Alone they aren't so bad, but when stacked with other powerups its easy to get stuck letting the timer tick down and if you stumble on a nuke you had not seen spawn you could be unfairly hit. I've done a few things to make nukes a bit more manageable.

First, nukes now have a much smaller blast radius. It is still extremely large, but if you give yourself enough time to run you can run away instead of having to shoot. Second, as suggested by the feedback, the nukes are now affected by your laser velocity. That means when you shoot the nuke it will start drifting in the direction you are hitting it at. This is useful if you have a low countdown timer, because you can shoot a few shots to push it away and then run in the opposite direction to avoid the blast. The push isn't incredibly strong, so if you want to destroy it and send the nuke back you won't have to chase it too far.

click to view


Also in response to the last update, here are some changes I've made. This is still not necessarily what the final version will look like:

click to view

Monday, February 6, 2012

Concept Art


I have been working on improving my artistic skills lately. This is some concept art I have been experimenting with that may end up being the title screen or background for the lobby.

I know this doesn't match the in-game art, but neither do most classic arcade games. The original Asteroids cover art looks nothing like the game, but is still relevant. Since Nexus has the classic arcade look and feel I may go with a similar approach. If it detracts from the game play or causes confusion, however, it's out.

Monday, January 30, 2012

Laser Hit Detection

Squashing a lot of bugs this week, nothing new to show off. Instead of showing something new, I am going to explain how a part of the game works, namely the laser hit detection.

Most of the hit detection in the game are basic hit boxes that detect when objects overlap. This method is quick and efficient for small or basic objects, however for large or oddly shaped objects it can be inaccurate. For example, both the laser power up and the gunship's main cannon fire lasers that have an area of effect that is long but thin. Using square hit boxes for these is slow and can create many areas where the detection is off. I had to develop a better method of detection to make these power ups work.

the laser powerup
the gunship's main cannon

I decided to use as simple approach as possible. Since these objects are just straight lines, I used the tried and true y=mx+b formula from early algebra.

collision detection formula explanation (click to view)

The idea behind this is that if a formula for the laser line could be found, it could be used to find the position the ship would need to be if it were hit. If the player is within a tolerance lying on this line, a collision has occurred and the player will be hurt.

The formula is created by creating an axis centered around the point of production of the laser. This makes the "y intercept" of the line zero so it is much more manageable. The slope (m) is just a conversion of the angle the laser it at using trig functions. This leaves just the y and x variables in the equation, which we can use as a function to detect where the hit position is.

The player's x position is put into the formula at the x variable and this outputs the y position on the line where it would be it were hit by the laser. This is just compared to the actual y position with a tolerance to see if the actual ship position is within the laser's line. If it is, a hit signal is sent, otherwise it doesn't need to do anything since it missed.

This will detect a hit on both sides of the projection point, which works great for the laser powerup since it is projected in both directions but for the gunship laser it can trigger false positives. This was altered by determining which direction the gunship is facing, and then ignoring the x positions in the opposite direction. This prevents targets behind the gunship from being hit even if the laser isn't facing it.

This method detects hits for attacks based on lines and works pretty efficiently. It can be optimized further to be quicker and more accurate, but it does its job well.

Monday, January 23, 2012

Downloads and Lobby Design

I've added a new page to this site that has some wallpapers and a screensaver. Right now there are only four wallpapers and one screensaver, but I may add more later on. Let me know if you have any ideas for more downloads.

I've also been working on the lobby redesign. The current graphics are very boring and give a bad first impression to people who haven't played the game before. Having something easier to look at will generate more interest and keep people in the game longer to wait for a match.

Here's a few of the sketches I've been doing for the redesign:

Monday, January 16, 2012

AI Battle Demo

Here's another demo of the npc enemy AI. This time I have two teams, red and green, fighting in the same space with fighters and gunships. You can control how many of each ship each team has. You can't spawn too many of one thing however, because it can get extremely laggy if you do. You can override the spawn limit by holding shift before hitting "accept and restart," but you should use this at your own risk.

The auto-respawn option will cause destroyed ships to immediately respawn from their team's wormhole. This will allow the battles to continuously run, but it prevents a "winner" if you are trying to see which side will win a battle.





Here's a few interesting battle set-ups:
  • 20 fighters and 2 gunships each
  • 5-30 fighters each and no gunships
  • 10-30 fighters on one side and 2-6 gunships on the other
  • 1 fighter vs 1 fighter (they usually end up killing each other at the same time)
  • 5 gunships each and no fighters