• Welcome to Valhalla Legends Archive.
 

A "newb" programmer.

Started by FaDeS, January 29, 2005, 06:54 PM

Previous topic - Next topic

FaDeS

Yes, I am a newb programmer... I recently went out and bought Visual Studio, and have a few questions about Battle.net chat client creation. First, is C++, or VB6 a better platform? I have heard both ways, but those on these forums seem to be the authority on the matter...

Second, do you have any tips? I have limited, *limited* knowledge of VB6, and none of C++, so far... But I am teaching myself VB through a few books, and websites with tutorials/ code samples.

Thanks for the read!

DeTaiLs

You should probley learn the language befor you try and make a bot and get a name for yourself and try to learn winsock to avoid using csb



FaDeS

Thanks! I now have to read the entire "Visual Basic 6 for Dummies" book... And figure out what it means. Then Winsock... Man, so I have a solid month of work ahead of me, then I will make a newb ops bot, fix it, then it will be relatively decent!

R.a.B.B.i.T

I'd recommend doing something NOT BNCS first, like all the basic crap (it sucks, but it helps).  Then you should probably do a telnet connection to Battle.Net before using the binary protocol.

Newby

Quote from: rabbit on January 29, 2005, 09:31 PM
I'd recommend doing something NOT BNCS first.
I recommend doing something NOT BNET related at all altogether.

Programming for Battle.net is a waste of time. You people who don't think it is will find that out sooner or later.
- Newby

Quote[17:32:45] * xar sets mode: -oooooooooo algorithm ban chris cipher newby stdio TehUser tnarongi|away vursed warz
[17:32:54] * xar sets mode: +o newby
[17:32:58] <xar> new rule
[17:33:02] <xar> me and newby rule all

Quote<TehUser> Man, I can't get Xorg to work properly.  This sucks.
<torque> you should probably kill yourself
<TehUser> I think I will.  Thanks, torque.

R.a.B.B.i.T

Yeah...I've pretty much given up on BNET altogehter.  I meant that if he really wanted to do a bot, he should do telnet as opposed to BNCS first.

shout

The only reason I am making a bnet bot is to put a more solid foot in coding.

Adron

Quote from: Newby on January 29, 2005, 09:32 PM
Programming for Battle.net is a waste of time. You people who don't think it is will find that out sooner or later.

But then, everything is a waste of time, so you might as well waste it on something you enjoy ;)

UserLoser.

Quote from: Newby on January 29, 2005, 09:32 PM
Quote from: rabbit on January 29, 2005, 09:31 PM
I'd recommend doing something NOT BNCS first.
I recommend doing something NOT BNET related at all altogether.

Programming for Battle.net is a waste of time. You people who don't think it is will find that out sooner or later.

You kids and your wastes of time for this and that for Battle.net.  Who cares if it is? Even though most "good" bots have a combination of many skills for programmers...  Networking, (G)UI, databases, file i/o, graphics, algorithms, images, encryption/decryption, compression/decompression, and the list can go on...   But hey, it's nothing special since it combines all these skills into one application.  Ohwell, they'll learn eventually

Sorc.Polgara

Ok wait a second, it is a waste of time?

Well I see learning more about programming and stuff by making a bot, more educational than acutally sitting down and playing the game, Starcraft, Warcraft III w/e client.

Newby

#10
Quote from: Adron on January 30, 2005, 06:57 AM
Quote from: Newby on January 29, 2005, 09:32 PM
Programming for Battle.net is a waste of time. You people who don't think it is will find that out sooner or later.

But then, everything is a waste of time, so you might as well waste it on something you enjoy ;)
You make a good point. I guess it's just an acquired taste? I just prefer to reverse programs and play around with them, making key generators / reversing algorithms in the program to form my own program that emulates it (sure, like a bot, but I'd rather do everything myself than read a protocol on how to) / patch it so it works the way I want it to.

And UserLoser, what happens if Battle.net throws in their server and no longer hosts the service? Your bot is just a waste of hard drive space at that point. Sure, it was a learning experience, but the end result is useless. What happens if they change the protocol massively and patch their games? Many of the users here will have NO clue what to fix, because they'll be waiting on a few key programmers to reverse the change and document it. If they even do document it.

And as for the list of things it provides, I'd go as far to say that 80% of the users here didn't reverse and/or write any of the algorithms used for decryption/encryption/decompression/compression, and probably the same number didn't figure out the protocol on its own.

Sure, you may say something like "If the functions are public, why re-invent the wheel?"

I'll bet that's what CSB users are saying. ;)

Meh, that's just my opinion anyways. Others may see bot programming as a valuable source to practice your programming skills (which it is, in a sense). I just see it as a waste of my time, which could be better spent. Sure, I may not be very good at reversing programs and writing software with the functions I reversed, but hey, practice makes perfect. I'm young, I've got a bit to go before I realize I should do something with my life. :)
- Newby

Quote[17:32:45] * xar sets mode: -oooooooooo algorithm ban chris cipher newby stdio TehUser tnarongi|away vursed warz
[17:32:54] * xar sets mode: +o newby
[17:32:58] <xar> new rule
[17:33:02] <xar> me and newby rule all

Quote<TehUser> Man, I can't get Xorg to work properly.  This sucks.
<torque> you should probably kill yourself
<TehUser> I think I will.  Thanks, torque.

OnlyMeat

Quote from: Newby on January 30, 2005, 11:49 PM
Quote from: Adron on January 30, 2005, 06:57 AM
Quote from: Newby on January 29, 2005, 09:32 PM
Programming for Battle.net is a waste of time. You people who don't think it is will find that out sooner or later.

But then, everything is a waste of time, so you might as well waste it on something you enjoy ;)
You make a good point. I guess it's just an acquired taste? I just prefer to reverse programs and play around with them, making key generators / reversing algorithms in the program to form my own program that emulates it (sure, like a bot, but I'd rather do everything myself than read a protocol on how to) / patch it so it works the way I want it to.

And UserLoser, what happens if Battle.net throws in their server and no longer hosts the service? Your bot is just a waste of hard drive space at that point. Sure, it was a learning experience, but the end result is useless. What happens if they change the protocol massively and patch their games? Many of the users here will have NO clue what to fix, because they'll be waiting on a few key programmers to reverse the change and document it. If they even do document it.

And as for the list of things it provides, I'd go as far to say that 80% of the users here didn't reverse and/or write any of the algorithms used for decryption/encryption/decompression/compression, and probably the same number didn't figure out the protocol on its own.

Sure, you may say something like "If the functions are public, why re-invent the wheel?"

I'll bet that's what CSB users are saying. ;)

Meh, that's just my opinion anyways. Others may see bot programming as a valuable source to practice your programming skills (which it is, in a sense). I just see it as a waste of my time, which could be better spent. Sure, I may not be very good at reversing programs and writing software with the functions I reversed, but hey, practice makes perfect. I'm young, I've got a bit to go before I realize I should do something with my life. :)

Thats what lifes about learning new things / self improvement.

What happends if the keygens you write become obsolete or a new patch comes out? software is in a constant state of flux it's about being ready for the next big thing and your ability to adapt to an ever changing environment.

Just because a piece of software no longer has a purpose doesn't mean you didn't learn anything while developing it. I believe that the more you do the better prepared you are for anything else in the future, the more i learn the faster i pickup up new things.

So is battle.net development a waste of time? the simple answer is no you will learn new things as you develop software for it so in the end you will gain experience. I would liken it COM because now with the introduction of .net it is basically obsolete so does that mean those millions of people in the world who have been developing using it have wasted their time? no because their gained knowledge of object interaction models and encapsulation will benefit other programming projects at a later date.


Newby

I'm aiming more towards the people who write multiple bots.

Sure, one bot is great. Teaches you a bunch of stuff altogether in one project.

However, many people here find it necessary to start over.

Sure, you re-learn other things you did before, but hell, you aren't learning anything new.

I'd rather learn to reverse the protocol and algorithms involved with the protocol by myself, and (if the protocol is changed / patched) have the skills to reverse it again, than follow a protocol and use algorithms written and documented by others.
- Newby

Quote[17:32:45] * xar sets mode: -oooooooooo algorithm ban chris cipher newby stdio TehUser tnarongi|away vursed warz
[17:32:54] * xar sets mode: +o newby
[17:32:58] <xar> new rule
[17:33:02] <xar> me and newby rule all

Quote<TehUser> Man, I can't get Xorg to work properly.  This sucks.
<torque> you should probably kill yourself
<TehUser> I think I will.  Thanks, torque.

OnlyMeat

Quote from: Newby on January 31, 2005, 09:20 AM
I'd rather learn to reverse the protocol and algorithms involved with the protocol by myself, and (if the protocol is changed / patched) have the skills to reverse it again, than follow a protocol and use algorithms written and documented by others.

I completely agree i prefer to write/document the protocols myself also, i have almost completely documented the d2 in game packets/protocols.

tbh though thats what i did from when i first started i never actually used other peoples work, the only software i used as a reference when i first started was prolix which gave me great insights into the bnet protocol from there i did the rest on my own.

MyndFyre

Quote from: Newby on January 31, 2005, 09:20 AM
I'm aiming more towards the people who write multiple bots.

Sure, one bot is great. Teaches you a bunch of stuff altogether in one project.

However, many people here find it necessary to start over.

Sure, you re-learn other things you did before, but hell, you aren't learning anything new.

I'd rather learn to reverse the protocol and algorithms involved with the protocol by myself, and (if the protocol is changed / patched) have the skills to reverse it again, than follow a protocol and use algorithms written and documented by others.

So what if you aren't learning anything new?  As you gain experience it's amazing how wildly different things can become.  I recently came across an "Alpha 2" version of code for ArmaBot on my computer; it was the third revision I had made that connected to Battle.net, but it was too rudimentary yet to connect with a two-keyed product.  As I was looking through the code base, I was amazed at how different it was from the "Beta 1" version that I had recently built, and how ever further different both are from my current project.  Sure, a lot of names are the same and those objects serve generally the same purpose, but the way in which the modules and elements interact is quite distinct in each version.

Part of the other reason I started a new project was that a new problem had appeared while I was working on ArmaBot, that I didn't believe I could adapt ArmaBot to fix.  I wanted to chat on Bnet with my buddies while I was at work.  Since we have a firewall at work, it would have been impossible; however, if I publish an RBP server on my home computer on, say, port 80 (HTTP), I can chat at work.

For me, I'm a high-level thinker; I like the flexibility of high-level architecture, and I think often in terms of business objects before I can think of database structure or assembly.  Sure, I can *read* assembly, and do some rudimentary reversal, but if other people are willing to share the knowledge that they've acquired on their own, then I prefer to go that way.  It lets me focus my attention on the details of design and user interface effectiveness, rather than worrying about what it means when packet 0x50 is received by the client.
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.