Saturday, November 7, 2015

New logic for moving enemies

I was having an issue where moving the enemies was causing a ton of lag. They way I originally did it was by having all the enemies look for players around them every frame and if there was a player near them it would start to move.

I'm now making it the opposite. As the player moves around, it will call the Move() function for every enemy near it. This should make it a lot less laggy:)

Wednesday, November 4, 2015

So many issues with cells

I've been working on getting the cell system working and it's being really difficult. For some reason the enemies can't see players when they get near and I have no idea. It's been taking me a while to figure this out, but once I finish I'll be adding a new game element. It completely changes how the game plays and I'm super excited for it! Expect updates around next week.

Friday, October 23, 2015

Added new enemy, streaming progress!

I basically have most of the server side issues done so now it's time to add content! I added a new enemy that moves to the player and then rotates around it. It's pretty difficult to deal with so it will be a later game enemy but it was pretty fun to make! The sprite is not mine, I got it off google because it's just a placeholder.

I also just started streaming the progress of the game! If you want to watch you can see it here:
Live Development Stream of Matador

Thursday, October 22, 2015

Help me test the servers and clients!

I just finished the first version of the server and of the clients. Anyone that is down can help me test the servers for memory leaks, errors, or weaknesses.

Comment here about any issues and to tell me if the server is lagging or has crashed.

The play button is on the top bar, Thanks!:)

Wednesday, October 21, 2015

Cell division of map

Originally, to detect if bullets were colliding with other game entities, I would loop through the whole list of entities checking for collision on each one. This was super slow and it made the server lag every time a bullet was fired. A friend of mine gave me the solution of dividing the map into cells.

Now the map is divided into cells and held in a dictionary. It's created empty like so:

var m = make(map[int][]interface{})

And then, when an entity is added to the game, it also get's added to the dictionary like this:

var xCell = math.Floor(pos.x/CELL_SIZE)
var yCell = math.Floor(pos.y/CELL_SIZE)
var key int = int(xCell) * 1000 + int(yCell)

m[key] = append(m[key], entity)


It calculates the key by getting x and y coordinates from the entities position. It then creates a new array at that key's location in the dictionary. This means that there will only be as many cells as needed which makes looping over them super efficient.

When a bullet is in a cell, it only needs to check for collisions with players in that cell.

This was pretty fun to implement and made the server a lot more efficient:)

Tuesday, October 20, 2015

About the Game!

Hi! I'm starting this blog so anyone interested in my game can follow it's progress.

The Goal

     I have played almost every big MMO on the market, from WoW to Realm of the Mad God. Each game really had me for at least a month but then there was something that made me so frustrated I quit. Once I ran out of MMOs, I realized it was time for me to make one I would love to play.

     Matador will start off completely PvE. You spawn on the outer edge of a star's solar system and only encounter asteroids and weak enemies. Although you can't attack them yet, playing with your friends at this point will drastically speed up your leveling process. As you slowly move closer to the star, enemies get harder and you encounter more bosses.

     The only way you can successfully get through the layers of enemies is by obtaining better gear. There will be hundreds of different types of gear, all of which will be completely tweak able (think Need for Speed style, how you could tweak an engines performance). Trading will be a large part of the game but there will be no auction house. Players can get gear and sell it to NPCs as they encounter them.

     Gear can be sold for scraps which can be used to tweak parts at specified NPCs and be used to buy certain items.

How you can help!

     All you have to do is give me moral support! I will be developing this as a side project and would love some support. I have left out some major game elements from the description due to how undeveloped the game is. I'm pretty paranoid of someone stealing my ideas.

What will I be posting?

    Posts will consist of new items or game elements I have added to the game. I will post as much as possible and update the playable game version whenever I can. There will be a link to the playable game in the side bar. Enjoy!:)