Official Everybody Edits Forums

Do you think I could just leave this part blank and it'd be okay? We're just going to replace the whole thing with a header image anyway, right?

You are not logged in.

#1 2016-04-08 22:30:57, last edited by Tomahawk (2016-04-08 22:34:00)

Tomahawk
Forum Mod
From: UK
Joined: 2015-02-18
Posts: 2,847

SDK-induced devolution

Your average bot newbie will not learn enough C#. That issue's been covered in a different thread. However, even if they do, there's now a pitfall created by the SDKs released left right and center for the increasing number of new coders we're seeing. It goes as follows:

1. Nub learns some C#, and downloads VS.
2. Slightly less nub goes on forum for help with bot coding, and finds some oh-so-convenient SDKs that do it all for you.
3. Slightly more nub downloads one or more of them, and begins using them to do absolutely everything, because that's what they've been made to do.
4. A few months pass, during which nub rolls out a few generic bots and/or BALs with pride.

Well, you end up with someone who took the wrong path too early. It is now near impossible to convince this nub to get off the child swing that is their collection of SDKs, and do some independent bot coding.

Congratulations, [insert various names], you've succeeded in creating a botmaker who is helpless if EE updates and their dll doesn't, and who is now working at a level of abstraction so far removed from the standard PlayerIOClient methods that they're not able to code basic bot functions.

I won't point any fingers because maybe - just maybe - these kits are released purely for educational purposes, and there is an unspoken caveat with each one that requires the user to learn, understand and be able to roughly reproduce the underlying code beneath the majority of its features.          ...Maybe.

Thoughts? Solutions?


One bot to rule them all, one bot to find them. One bot to bring them all... and with this cliché blind them.

Offline

#2 2016-04-09 01:43:12

Hexagon
Member
Joined: 2015-04-22
Posts: 1,213

Re: SDK-induced devolution

An average user, who's new to EE probably doesn't want to be concerned with the itty-bitty details that can be complicated at times. Trying to keep track of player ids in a dictionary can get messy. In the past, I had to multiply the coordinates by 16 for every block (I would never have known this.) For example, when I use my computer, I don't really care about how the kernel interacts with my keyboard to send a message to Google Chrome to type this message--I just want to type something.

However, SDK's in general are a bit bloated, as PlayerIOClient is an SDK too, so an SDK on an SDK. I think completely separate chunks (i.e not a modularized SDK) would be better as the user can interact with the pieces and put them together, rather than have something that's completely made for them. This gives more of a balance between abstraction and control.

Moreover, something that SDK's sort of solve is breakage between versions. If properly implemented, a fix can be backported to an SDK and have it work. There are a lot of people who just distribute software without auto updaters, and so it becomes more and more broken as time goes on.

What we need to do is to not send the current version when connecting, but send the version that you know works with your bot. As EE updates, it should accept the older versions and send messages accordingly so that there remains some backwards compatibility.

Offline

Wooted by: (2)

#3 2016-04-09 13:57:22, last edited by Tomahawk (2016-04-09 13:58:28)

Tomahawk
Forum Mod
From: UK
Joined: 2015-02-18
Posts: 2,847

Re: SDK-induced devolution

Hexagon wrote:

Moreover, something that SDK's sort of solve is breakage between versions. If properly implemented, a fix can be backported to an SDK and have it work. There are a lot of people who just distribute software without auto updaters, and so it becomes more and more broken as time goes on.
What we need to do is to not send the current version when connecting, but send the version that you know works with your bot. As EE updates, it should accept the older versions and send messages accordingly so that there remains some backwards compatibility.

If this became a thing, newbies would have even less reason to stop using SDKs, which definitely wouldn't solve this dependence problem.

I suppose one extreme solution is to shut down the bigger SDKs, but that would only work if there was a genuinely helpful and easy to understand written tutorial covering everything from EE connections to byte array deserialising, that would let newbs transition to using to independent coding using only PlayerIOClient.dll. There are bits and pieces of tutorials here and there atm, but as everyone codes slightly differently and at different levels of complexity it doesn't really work as a standardised learning resource.

Is it our responsibility as pro bot coders to leave behind a legacy in the form of an all-in-one tutorial, instead of an all-in-one SDK?

If contributions to this tutorial came from many different coders, then several versions of code could be displayed for each function and users could cross-reference and decide on their preferred method.


One bot to rule them all, one bot to find them. One bot to bring them all... and with this cliché blind them.

Offline

#4 2016-04-09 15:25:40

Zumza
Member
From: root
Joined: 2015-02-17
Posts: 4,656

Re: SDK-induced devolution

Even adults enjoy children toys //forums.everybodyedits.com/img/smilies/smile


Everybody edits, but some edit more than others

Offline

Wooted by: (2)

#5 2016-04-09 17:47:10

Notcarksss
Member
Joined: 2016-03-06
Posts: 130

Re: SDK-induced devolution

Tomahawk i know your refering to me u nub

Tomahawk 1. Nub learns some C#, and downloads VS.


YqrOV8L.png
?type=online&name=Notcarksss ?type=energy&name=Notcarksss
?type=loginstreak&name=Notcarksss ?type=itemsbought&name=Notcarksss
YEE.png
Notcarksss.jpg

Offline

#6 2016-04-09 20:31:39

Kaslai
Official Caroler
From: SEAͩT̓͑TLͯͥͧͪ̽ͧE͑̚
Joined: 2015-02-17
Posts: 787

Re: SDK-induced devolution

Personally I don't see the problem with SDKs. The main reason I got into programming in the first place was because of Game Maker.

Game Maker exposes a relatively abstract approach to dealing with I/O hardware which makes developing basic games significantly easier than interfacing directly with DirectX in C++. To get going with a basic project you just need a few bits and bobs, most of which can be created with a GUI anyway. Instead of writing hundreds of lines of DirectX initialization code, you can just pick it up and go.

The EE bot frameworks are very similar in that they provide a much more abstract view of the EE game than the standard Player.IO client. This allows people to start doing things like interacting with players and world data in just a couple of lines of code, rather than having to write a user management object, a world data deserializer and manager, and so on.

At some point, any sufficiently motivated nub who just started with an EE SDK and no C# knowledge will be driven towards learning enough to create bigger and better programs themselves. The fact that they're already learning C# from the start is a big help.

Now, the only real downside is the fact that most nubs aren't sufficiently motivated, and will just come onto the forums and say "gibz me teh c0dez pl0X!" which is detrimental to the community as a whole. However, this happens regardless of whether or not there are bot SDKs available... However I believe the SDKs do at least attenuate the number of those people coming onto the forums to ask for basic stuff, such as how to get a name from a user ID.

Offline

#7 2016-04-09 20:57:14, last edited by Tomahawk (2016-04-09 20:57:54)

Tomahawk
Forum Mod
From: UK
Joined: 2015-02-18
Posts: 2,847

Re: SDK-induced devolution

Notcarksss wrote:

Tomahawk i know your refering to me u nub

You're by far not the only new bot coder I know, and you didn't inspire me to start this thread. There's many others in the same situation, so try avoiding that pitfall instead of getting annoyed.

Kaslai wrote:

However, this happens regardless of whether or not there are bot SDKs available...

If there were no SDKs available, there'd probably be a big increase in nubby questions, but if people were then forced to create a decent tutorial to avoid answering the same questions again and again, I think new coders would be a lot better off.


One bot to rule them all, one bot to find them. One bot to bring them all... and with this cliché blind them.

Offline

#8 2016-04-10 01:36:42

Hexagon
Member
Joined: 2015-04-22
Posts: 1,213

Re: SDK-induced devolution

I think the main thing is that these forums are more about asking programming questions related to EE, rather than the programming language itself. I wouldn't discourage language-based questions though, but they may recieve less attention than EE based ones.

Offline

#9 2016-05-04 21:24:51

Abelysk
Guest

Re: SDK-induced devolution

I feel like Tomahawk isnt encouraging people to use bots but to make them. Rude.

#10 2016-05-05 00:25:33

den3107
Member
From: Netherlands
Joined: 2015-04-24
Posts: 1,025

Re: SDK-induced devolution

Hexagon wrote:

I think the main thing is that these forums are more about asking programming questions related to EE, rather than the programming language itself. I wouldn't discourage language-based questions though, but they may recieve less attention than EE based ones.

I personally do discourage programming language questions. The forums are terribly slow with their responses, while if they know at least a little bit how to google, they can find their answer within 15 minutes, instead of within 2 hours, and more likely within a day.

Offline

#11 2016-05-05 00:54:32

Kaslai
Official Caroler
From: SEAͩT̓͑TLͯͥͧͪ̽ͧE͑̚
Joined: 2015-02-17
Posts: 787

Re: SDK-induced devolution

den3107 wrote:

I personally do discourage programming language questions. The forums are terribly slow with their responses, while if they know at least a little bit how to google, they can find their answer within 15 minutes, instead of within 2 hours, and more likely within a day.

Also a big part of being a successful programmer is the ability to find the answers to your questions without having to bug other, more experienced developers. Asking a question should only be done as a last resort when there's literally no other way to obtain the information in a reasonable amount of time.

Offline

Kaslai1462406072600594

Board footer

Powered by FluxBB

[ Started around 1732749055.0506 - Generated in 0.091 seconds, 12 queries executed - Memory usage: 1.55 MiB (Peak: 1.71 MiB) ]