Hero Filters

Buro here. As many of you may have noticed, we added a new feature today: Hero Filters! Due to the large amount of heroes in HoN, the pick screen might seem daunting at times. Hero Filters allow you to break down the hero pick screen by filtering through different roles. It also shows you to what extent your team has filled these roles, allowing an easier way to create balanced teams.

As you check filters, the system will show heroes that fit within the requirements of those filters. The more filters that are selected, the more lenient the system will be for finding a hero within those filters. For instance, if "Jungle" is selected, Predator will not appear because only the strongest jungle heroes will be available. However if "Carry" is also selected, Predator will appear as an option because he can carry as well as jungle even though he cannot jungle as effectively as other heroes.

Two really neat features of this system are the Favorites Filter and Filtered Random. Favorites allows you to go into the herodex and set your "favorite" heroes. The Favorites Filter will then be available in the hero pick screen and you may sort through heroes with this filter as well as others. Filtered Random is just like it sounds: when you have any filters selected and you random a hero, you will random from the heroes within your current filters.

I'd like to give thanks to all of the community feedback that drove the creation of this feature! If you have any suggestions or feedback on the hero filters or HoN in general, please visit the suggestions forums and make a post about it.

06/28/2013 9:35 PM

Topic: Development

Theorycrafting: Imagine a Mode...

Hello! My name is Robert “Kros” Cherry, and I’m the Technical Producer for Heroes of Newerth. I’ve been playing HoN for a long time now, and one of the things I do with any game that I play for any serious length of time is theorycraft. I’d like to share some of that theorycrafting with you guys today.

Imagine a mode that starts off with each player picking three heroes. You decide to pick your favorite heroes: Solstice first, then Predator, and of course Monarch.

You enter the game, and it’s not quite the HoN you’d expect; your abilities have been randomly generated from the 30 heroes chosen by all of the players!

So, with your crazy abilities in tow, you head off to your lane. There you are, carefully last-hitting, when suddenly Martyr throws an Amun-Ra stun at you. Good thing your Bubbles lane partner has Accursed’s Shield! Unfortunately, Legionnaire pops out of the jungle as Minotaur (that he’s stricken with Parasite’s Infest) and catches you before you can get back. Luckily, you respawn very quickly, and haven’t lost any gold. You also notice you have a whole new set of abilities!

This mode is chaotic, this mode is action packed, and it’s incredibly fun. I know this because we’ve been play testing it internally for a while now.

I’d love to hear what you guys might think about a mode like this, so please leave some comments on the forums here:


06/22/2013 2:33 AM

Topic: Development

Patch Preview

Hey everyone, Buro here. In our most recent development blog, we gave you an update on what was in the works for HoN, and now I would like to give you an idea on what you will be seeing in the near future.

The next patch will bring Hero Filters, which will allow an easier way to sort through heroes on the pick screen and create more balanced team compositions. This change will also add some new picking functionality such as being able to random between filtered heroes and creating your own favorites filter!

After that, around mid-to-late July you will be getting a patch with some improvements to Mid Wars (one of which being a different banning structure!). On top of this, we will be releasing some balance changes and hero tweaks that are aligned with our direction of removing homogenization from the hero pool.

We've been having a lot of fun testing these changes, and I look forward to reading your feedback in the forums!

06/14/2013 10:06 PM

Topic: Development

Persistent Matchmaking Groups

I'm DJ Hirko ([S2]Deejay), the lead programmer of Heroes of Newerth. I'm writing a post today to give you a look inside the nitty-gritty technical aspects of working on Heroes of Newerth.

One feature we've planned to add to HoN, and actually did have for a few hours, is persistent matchmaking groups. This would mean that after playing a matchmaking game with a group, you would still be in that group and wouldn't need to re-invite everyone next game. It's a very nice "quality of living" improvement for our loyal players.

The original matchmaking code was written to get good match-ups in a timely manner. It worked pretty well, but had scalability problems. These scalability problems laid dormant until the first attempt we made to add persistent matchmaking groups. Our stats showed the number of groups quadrupled, leading to very poor performance on the chat server. This was quickly pulled and has sat on the shelf ever since.

Now here's where it can get pretty technical. We've made huge changes on the chat server to improve its performance. Many O(N^2) algorithms were reduced to O(N) or even O(1) and we now use a separate process on the chat server to matchmake. After these changes, the chat server's peak frametime was lowered from 13000ms to 1200ms. This is a great improvement, but it's still higher than we're aiming for. In order to add support for persistent groups again, we need to further optimize the chat server, and that's where I/O completion ports come in.

Our profiling data shows that 41% of frametime (i.e. peaking at 480ms) on the chat server comes from polling sockets to see if there's data waiting, and if there is, receiving it. This time does not include processing the data - just polling and copying! Polling an individual socket is fast, but it's an O(N) problem - it grows linearly with the number of sockets (including clients and servers). The best solution to this problem that we've found is a Windows feature called I/O completion ports.

Windows supports I/O completion ports for a variety of asynchronous I/O functions - the pertinent one here being reading socket data. I/O completion ports are an OS level messaging system. When you call an asynchronous function that's hooked up with an I/O completion port, a message will be queued up when the function call is finished. Instead of processing the socket immediately, we instead associate the socket with a shared I/O completion port, call an asynchronous read, and then process the messages as they're created. This reduces the O(N) problem of polling socket data to an O(1) problem, since we no longer need to loop over all sockets - we just process the messages as they're posted to the single I/O completion port. This reduces our peak frametime from 1200ms to 760ms, leaving plenty of space for us to add a new feature like persistent matchmaking groups.

These changes will be going out soon and from there, you can expect to see persistent matchmaking groups being added in the near future.

I hope this was informative and thanks for reading!

06/13/2013 11:11 PM

Topic: Development

Sell's Sneak Peek: What’s Coming Up?

Hello ladies and gentlemen of Newerth! Sell here, with a quick rundown of what’s brewing behind the scenes. We wanted to keep you all in the loop of both upcoming content and a few things under development as well. Hopefully you enjoy the first of my posts in our new blog.

League and Leveling Systems
We have been working on methods of rewarding players for their dedication and consistent play on their accounts. One of these methods in development is the League System. The current plan is to have Seasonal Leagues and League Ranks to differentiate players of varying skill levels and provide those seeking with continuous challenge and reward.

Also, the current Leveling System will be reworked with one more focused on rewarding dedication to your account. Players will be rewarded with more silver per game the higher their account level. You will not by any means lose your current level of investment in your account as that will all transfer into the new leveling system. The rewards for your first game each day will also be much more significant. These changes are still in the development stages and are looking awesome thus far!

In response to community inquiry we are taking a closer look at the Matchmaking System and evaluating areas we can improve upon. This is quite an involved process and it is currently in development alongside the new League System!

Mid Wars
Mid Wars is the go to favorite of many of our players and we have been monitoring feedback closely. We are currently exploring options to encourage a bit more active play in Mid Wars and to prevent the games where there can be too much passive play. Right now we are experimenting with changes to Runes, Experience, Gold, and other elements in order to accomplish this. These changes are currently in different stages of testing and iteration.

We are continuing the trend of balancing and improving our hero pool. This ensures that we address any current hero concerns over focusing on hero release deadlines. The current feeling is that our players will enjoy a higher level of quality control to our current game, and more focused and polished new hero releases.

Currently we have been working on hero Asymmetry, which means that we are making sure that heroes do not overlap significantly in play style to provide players with more interesting options when selecting a hero. While the heroes are being looked at, new Staff of the Master effects are also being considered. More information on this can be found in Buro’s last blog post.

I hope you are all as excited about the new upcoming content as I am, and that you enjoyed the peek behind the curtain. Expect use of the new blog regularly and enjoy the upcoming posts!


06/11/2013 5:16 AM

Topic: Development