Souls of the Void (MOBA)

Well, it’s probably a bit early to start posting on it, but I’m to excited, so I’ll post here and update as I get things done.

So, the last day of last month I broke down and committed to the pro subscription, so I have unity pro now. As such, I started to mess around with a few things. First thing was the navmesh system. I found out… it makes things so much simpler. I made my own a* path finding system that was over 800 lines of code, only mostly worked right, and didn’t have any form of obstacle avoidance. I start using the navmesh, and it takes only around 4-5 lines of code to move a character with mouse clicking.

Anyway, that spurred me to start working on my moba again. So, since last Saturday, I’ve been messing around a bit and finally figured out and understand networking. I feel pretty comfy with it now. It’s not much, but I have player movement (non-authoritative) and minions moving/attacking (predictive authoritative). Not much, but it’s a start. Here’s a video showing that.

In my case, the predictive authoritative system is that the server does all the path finding, and the client is sent information every network update. Minions have a NetworkView that keeps watch over the transform, to keep them in exact alignment with the server. I also call an RPC function that sets the rigidbody’s velocity to the desired velocity of the navmesh agent. This makes the minions move toward the target at the speed the server sets in the direction of the current path node.

This is a very similar way to how most decent multiplayer games work. If the client disconnects from the server for some reason, everything keeps going in the direction it was last told by the server.

Currently, the player can’t attack, but I should get that in place tonight, and should be pretty fast to do. I also need to make the player authoritative as well, so people can’t teleport around with hacks. I need to work on the gui obviously as well, as well as all of the art. (I made the minions in 2-3 minutes in blender, and the girl was an asset I bought from the asset store a while ago)

After I get the basic player attack, it should be “playable”, though, not something I would show off to pitch for investment.

I know it’s not much, and I’ve probably rambled way to long, but let me know what you think. As stated, I’ll update this post (as well as my blog) as I get more done. My biggest hurdle was networking, and now that I get it, I can really get going.

Looks good so far! I’d be glad to help you test when you have a webplayer you feel good about.

O-o It’s been a lot longer since I’ve worked on this then I thought.

Well, I did quite a bit of work last night (6 til midnight) and fixed up the drones (minions) and turrets(towers) I made a full blog post explaining everything here: http://rpgamedev.blogspot.com/2013/07/polish-is-important.html

Main thing is minions didn’t start pathing after the target enemy was removed. Then they skipped the next pathing node after fixing that. They also didn’t ever loose “sight” of the target enemy, so if you moved their target 200 units away, they still pathed to them. All that is fixed. I also added turrets in which is really just a slimmed down drone. (uses the same mesh, but is scaled 3 times) They also remove target enemies when they get out of range. Lastly, drones now target things attacking it if it doesn’t have a target enemy already.

The last one will be an issue further down the line because if I have someone that can attack across the map, minions will target them even if they are out of vision range. I may have to add a secondary vision range that checks to see if the distance is further than an aggression range of some sort.

All of this is working over the network properly as well. I may have to check a few things to make sure they are server side for optimization reasons, but for the most part should be good.

Lastly, I had to change how targets are found. I was doing a check on the stats script with GetComponent().team, but I found that even when only ally units were in range, if there were more then say 3, it lagged horribly. This is due to the fact that GetComponent is fairly slow when used in an every frame situation. The way I got around this is I set the tag of objects to Team1 or Team2 when they get their team assigned to them instead of using the get component. I can still reference the stats team info when needed, but checking a tag is much much faster then get component and now it doesn’t lag even if there are 10+ units in range of each other. (I forgot to mention that part in the blog post.)

I’m going to be coding hard on this for the next week and a half at least. I am hoping to get to kickstarter and showoff stage by the first monday of next month. I go to local game dev meetups (monthly) and would like to get some responses from people testing it, so I can use that info when making the kickstarter.

That’s all for now. After I get the player attacking (next goal), I will upload a new video showing that off as well as all of the changes so far. Hopefully I can do this tonight. I don’t see why I shouldn’t be able to. (well, except for my laziness) Bye!

Small update. Players can attack and attack move, though attack move is semi-glitchy at the moment. Also found a bug that turrets aren’t targetable by players nor minions unless they are attacked by it.

More info in the blog post: http://rpgamedev.blogspot.com/2013/07/small-development-last-night.html

Hoping to finish up player attacking (fixing attack move mainly) and fix any bugs, then upload a new video.

Another new post.
http://rpgamedev.blogspot.com/2013/07/getting-further.html

Player now attacks fully properly. Doesn’t stutter when an enemy target is set and you attack move, turrets can now be attacked properly, and there is now a target image from where you clicked, so you know where you are going… at least for half a second, then it disappears.

Will hopefully be blocking out the level the rest of the way, as well as make our equivalent of inhibitors and nexus get implemented. After that… O-o basic play testing!

Update: Issues abound…
http://rpgamedev.blogspot.com/2013/08/issues-abound.html

So, pretty much, I found a lot of bugs after starting to expand the level to full size. Still mostly works, but there are pathing issues as well as there were (should be fixed a bit at least) performance issues. Also found out that somehow I broke my FPS script so it was always saying 50fps even when at 3fps or 200fps.

My brother is getting quite far on the shop. And now that I realized unity free supports text based saving of everything, as well as nav meshes, as well as real time lighting (at least one form of it), my brother and I can now work on the same levels and the same script using SVN or GIT. So… maybe we’ll see the shop working soon, as well as maybe a small skirmish between two brothers… maybe. (As soon as it’s to that point, I’ll screen cap our first battle.)

READ THE FULL BLOG POST FOR MORE SPECIFIC AND EXTENDED INFORMATION.

Another small update: Not much, but some… http://rpgamedev.blogspot.com/2013/08/not-much-but-some.html

Fixed some bugs, Running out of bugs again, means new features! Should be able to start on secondary attacks now. After that’s done, time to play test. :smile:

(though I do have to do a bit of initialization stuffs, like setting the player’s team properly. Right now, players all start on team 1.)