• Welcome to Valhalla Legends Archive.
 

BN# Community Technology Preview - a Library for Battle.net Development

Started by MyndFyre, June 27, 2008, 01:52 AM

Previous topic - Next topic

MyndFyre

This evening I posted a technology preview of BN# (that's "BN-Sharp"), a new utility library I've been working on that manages Battle.net connections.  Most of the gruntwork is done for you in a core that manages a client connection based on a settings object; all you have to do is handle events as you see fit.  BN# includes MBNCSUtil out of the box, and although some might try to compare BN# to CleanSlateBot and others, there are several important features to consider.

1.) I've done quite a bit of work optimizing the multithreaded core; under the hood, it supports the ability to prioritize packet handling order based on ID.  So, it could be configured to be an effective channel protection client, for example.
2.) The event system is also multithreaded and priority-based.  Although you can use standard .NET syntax for handling events, it also supports a callback version.  Standard .NET event registration handles events at Normal priority.  So even with a graphical client, it can still be an effective moderation core.
3.) BN# doesn't support a drag-and-drop architecture; users need to be able to implement some objects on their own.
4.) BN# is fully object-oriented, which means that the connection class can be subclassed to modify behavior.
5.) BN# is (read: will be once posted) open-source under a BSD-style license and will be hosted on Google Code.
6.) BN# manages memory by pooling and reusing memory for packets, saving approximately 50% of total memory usage over previous editions of JinxBot and helping to prevent heap fragmentation.

The build has been posted here: BN# Community Technology Preview -- be sure to check out the Wiki page and the documentation which is available at BN# - Table of Contents.
QuoteEvery generation of humans believed it had all the answers it needed, except for a few mysteries they assumed would be solved at any moment. And they all believed their ancestors were simplistic and deluded. What are the odds that you are the first generation of humans who will understand reality?

After 3 years, it's on the horizon.  The new JinxBot, and BN#, the managed Battle.net Client library.

Quote from: chyea on January 16, 2009, 05:05 PM
You've just located global warming.


Sorc.Polgara

Quote from: MyndFyre[vL] on June 27, 2008, 01:52 AM
3.) BN# doesn't support a drag-and-drop architecture; users need to be able to implement some objects on their own.

Alright, I think this is the most significant difference between CSB and what you've developed.  It's not merely a single object or control you can just "drag and drop" onto a form and start using with minimal effort.

MyndFyre

Quote from: Sorc.Polgara on June 28, 2008, 08:35 PM
Quote from: MyndFyre[vL] on June 27, 2008, 01:52 AM
3.) BN# doesn't support a drag-and-drop architecture; users need to be able to implement some objects on their own.

Alright, I think this is the most significant difference between CSB and what you've developed.  It's not merely a single object or control you can just "drag and drop" onto a form and start using with minimal effort.

The honest truth is that it's not; the under-the-hood plumbing really is.  It's object-oriented and multithreaded, neither of which could have been accomplished in a VB control.

That said, it's the most significant outside-the-black-box change.
QuoteEvery generation of humans believed it had all the answers it needed, except for a few mysteries they assumed would be solved at any moment. And they all believed their ancestors were simplistic and deluded. What are the odds that you are the first generation of humans who will understand reality?

After 3 years, it's on the horizon.  The new JinxBot, and BN#, the managed Battle.net Client library.

Quote from: chyea on January 16, 2009, 05:05 PM
You've just located global warming.

MyndFyre

BN# hits another milestone release today!  In today's release I added:
-- The ability to add custom packet handlers.  See the wiki article.
-- The ability to handle Warden.  See the wiki article.
-- Some clan support.  See the BNSharp.BattleNet.Clans namespace for more information.
-- High-level objects for Battle.net, including the Product class, which has information about clients; stats parsing for Warcraft III, Starcraft/War2BNE/Diablo, and Diablo II.
-- I can't remember if this was in the last release: BNI parsing support as part of MBNCSUtil.
-- Imported it into Google Code!  BN#, JinxBot, and the JinxBot Controls library are released under the modified BSD license.  As soon as I can figure out how to make MBNCSUtil share source code with BN#, that'll be available as well.  Check out our Google Code page.

Known issues:
-- Yes, I know that Friends events aren't there and not all clan packets work.
-- The Disconnect event would sometimes be fired twice.  I attempted to fix it but I'm not sure I tracked it down.

I welcome your feedback.  Please keep it on my forum there, though, or on the gcode issues tracker.  Thanks!!
QuoteEvery generation of humans believed it had all the answers it needed, except for a few mysteries they assumed would be solved at any moment. And they all believed their ancestors were simplistic and deluded. What are the odds that you are the first generation of humans who will understand reality?

After 3 years, it's on the horizon.  The new JinxBot, and BN#, the managed Battle.net Client library.

Quote from: chyea on January 16, 2009, 05:05 PM
You've just located global warming.

Smarter

:-D As usual you make the things that make us all pee our pants just a little.
Since '99

BrutalNet.Net

MyndFyre

QuoteEvery generation of humans believed it had all the answers it needed, except for a few mysteries they assumed would be solved at any moment. And they all believed their ancestors were simplistic and deluded. What are the odds that you are the first generation of humans who will understand reality?

After 3 years, it's on the horizon.  The new JinxBot, and BN#, the managed Battle.net Client library.

Quote from: chyea on January 16, 2009, 05:05 PM
You've just located global warming.

Dale

Quote from: Smarter on July 11, 2008, 02:31 AM
:-D As usual you make the things that make us all pee our pants just a little.

Haven't you learned yet, MyndFyre doesn't enjoy complements.

MyndFyre

Quote from: Dale on July 11, 2008, 12:54 PM
Haven't you learned yet, MyndFyre doesn't enjoy complements.
It's not so much that I mind compliments.  Let's discuss the specific detail of THAT one, though.  :P
QuoteEvery generation of humans believed it had all the answers it needed, except for a few mysteries they assumed would be solved at any moment. And they all believed their ancestors were simplistic and deluded. What are the odds that you are the first generation of humans who will understand reality?

After 3 years, it's on the horizon.  The new JinxBot, and BN#, the managed Battle.net Client library.

Quote from: chyea on January 16, 2009, 05:05 PM
You've just located global warming.