I have been hard at work over the last week designing and building a few new features.
The patch system works by checking a version number for the game on mageduels.com, if the number is different it starts the update process. Before launching the patcher, the game checks the version number for the patcher and if it is different, downloads and updates the patcher software before continuing on to updating the game.
I am happy with this approach because if at any time I release a new version of the game, it will go get the required files without having to send email blasts or hit up twitter or reddit and hope everyone sees it. But also it updates the patcher it’s self. So if in the event I re-write the patcher, the system will pick that up as well.
The other thing I was able to get into the game is a kill log. I have a database set up that logs kill counts by ip. This will be used to update a leader board I will be putting on this site.
The past 3 months or so have been real slow in getting work done. Mostly because I am swamped at work and have some family matters that needed my full attention. Things are starting to die down and I have so much to catch up on in the game. I apologize.
I have been wanting to have a way to allow people to start to play the game and get some feedback. After a bit of looking for the best way to provide a “pre-alpha” copy for people to try, I decided to look into WebGL. I will be looking into a hosting solution to allow people to join a server and play around with the spell casting system ASAP.
I worked quite a bit this weekend on the champ spawn AI and spawner. Right now it is just a basic spawner that spawns in endless waves of skeletons (placeholder), but I am working on making it act more like the UO conter part where it will have levels.
The idea behind the champ spawn will be to distribute items such as cloths, hats, wands, and staffs, all cosmetic.
One major issue I have been dealing with in using Unity3d is Linux support. I am running Linux, so I have had to run unity though wine. The issue with that is it limits me to 32bit. Recently Unity released a native Linux solution. For the past week, I have been working on getting that to work. There are a lot of issues and crashes at the moment, so I will still be doing the majority of the work on MageDuels in 32bit wine version, and playing around with the native Linux version on the side. When it is stable, I will make the switch.
I had an interesting conversation on twitter yesterday. I have been looking for UO PvP veterans to help give me some feedback on how the game should “feel”. I wasn’t expecting the response “That sounds really, really weird…”
I have been sort of developing this in a bubble, essentially. Is the concept really that weird? He made some good points, but I stand behind the concept being more about competition than full loot. However, this made me think quite a bit of how to increase the risk vs reward in the champ spawn game mode.
I know it has been a while since I have posted, but I have been busy.
A big part of the spell casting redesign was an issue with Unity3d’s matchmaking system. There is a limit to how much bandwidth that can be used, and I was hitting that limit due to the nature of the spell prefabs I was using. Now instead of a prefab for each spell there is a prefab for each spell type and the effects get assigned when the spell is cast. This brings the amount of data that needs to be sent to the server/clients down by a lot.
The second part of the redesign is a scripting system. I have been looking into several ways of doing this, but I haven’t committed a lot of actual code yet. There is quite a bit to consider with this, and I want to get it right.
Lastly I have also been looking into some AI for the champion servers. These will be large battle fields with a boss creature. When these events run, the groups that take down the champion will receive weighted loot drops. As of right now all items are cosmetic for either your player or your house.
The menu for the game is going to be a small mini game that allows you to go to a market, use a magical portal to join servers, has a house for you to decorate and display any awards you may have earned, and use a chest in your house to customize your mage.
Right now the spell casting system works as such: A script waits for a key to be pressed. When one is, it loops through the spells for a spell with a matching assigned key. If a match is found, it begins waiting for the cast delay before turning on the targeting system. It works great. But it is wrong.
I am working on a new system that will allow you to assign a sequence of tasks to a key.
- Cast regenerate
- Wait for spell ready
- Target self
So… It turns out there is some sort of bandwidth limit on unity’s matchmaker service. Apparently I was hitting that limit and causing issues with people connecting while testing. So for right now I am rebuilding the spell system to hopefully quell a big portion of the bandwidth that was being used. This is a blessing in disguise because it gives me an opportunity to look over some of the code I wrote and maybe do it in a better way.
Due to the holiday weekend (and it also being my birthday) I didn’t get around to doing a ton of the work I wanted. But I have a plan of attack for this week, and I should have it all back up and running by the weekend.
Currently working on:
- Rebuilding everything
- Refactoring the spell system to not be a bandwidth hog.
I have been thinking a bit about play modes and how all of this will fit into the game. Right now there is match mode and server mode.
Server mode is for casual play. You can join a server and walk around, chat, and duel. It will be a good place to sit when waiting for matches. Servers will be community run.
Match mode is where the action is at. Either create a match or find one already waiting. You are placed into a small area map where you duel until death. Matches can be 1v1 or team v team.
I have been kicking around the idea of a champ-spawn type mode. I haven’t worked out all the kinks, but what I am thinking is you pay some sort of fee (in game gold or something) and your guild opens a champ spawn server. When the champ is slain, you get a reward. Clothing skins or something of the like. Similar to how CS:GO weapon cases work. Other guilds would have the option to challenge your champ spawn by paying a fee to join. Something of that nature.
- Show joining player hp stats.
- Bug fixes
I had a lot of fun play testing over the weekend. I think I played more then I actually worked on the game!
I was able to jot down a few concerns and issues my self or some of the other players had. I have been going through those issues and addressing them as I can. The big one was an issue with projectile spells hitting yourself. This hopefully has been fixed.
I also did a bunch of code refactoring. I fixed several spots to make the code cleaner, and hopefully more reusable.
I also played around with blender a bit. I am not a very good artists so I wasn’t able to make huge changes to the graphics yet. I do have an artist helping out, but I may need additional help.
Currently working on:
- Disconnect/Stop Match
- Player intro (“interactive” menu)