Thursday, June 4, 2009
I'm not really a coder, I'm just a quirky MMO player...
So these difficulties have slowed down my development. I can complete a courier mission, start to finish, right now if all the stars align (puns make me smile) but that’s pretty rare. The agent usually breaks about halfway through, either deleting a bookmark (instead of warping) or failing to warp to the correct location.
But it’s not a total loss so far. This was the first time I’ve written a new agent from scratch and I was able to make huge structural improvements to the program. Instead of having all the code in one long function, I created several small functions. This made it a lot cleaner and easier to write, and has lead me to think that I should create a sort of “master” class. But that’s an issue for another day.
Tuesday, May 26, 2009
April 16, 2009
Today they moved the cargo hold indicator, and changed it's color. It's now much simpler to determine when the hold is full. I don't know why it was so hard before but the solid color is simple to key on.
This change caused the items list to move down a bit as well.
Tritanium has been added into my dictionary now. No more red squiggly lines.
Saturday, May 9, 2009
The Sky is STILL fallling...
Oh man, I am going to get several days worth of posts about that article!
“NotImportant” at http://www.eve-mag.com/wordpress/archives/the-sky-is-falling
So in-fact, the macro miners most likely stand for 50% of all ore being mined. Couple this with the fact that macro miners only “effort” is having to wait for the ore to roll in while a hard working miner has to WORK for it. The effort value for a macro miner is way less…
Ya know what, I’m going to go ahead and disagree with that. I was up until 11:30 and worked on my program for about 6 hours the night before last because the code on Agent EVE wasn’t working right. He was unlocking targets, double mining asteroids, and failing to warp back to a station. It was awful! Then last night I got it all fixed after about three more hours, only to wake up and AE is trying to mine despite his cargo hold being completely full. Ooops! There’s a bug somewhere but, of course, when I dock and restart the app everything works fine. Weird!
How much “effort” does a straight miner put in? “Well I click this button, then I click that button…and then I wait until I have to click this button over here!”
That’s not work; it’s “play”. I have to WORK to create my agent. I have put in literally hundreds of hours trying to figure out how to write this thing (almost all of it spent NOT playing EVE), and then you have the audacity to come along and ignore all that and say that the MINERS are the ones working? No…I made a program that plays the game for me; trust me, that’s a LOT more work than mining in EVE.
“Edcognito” at http://www.eve-mag.com/wordpress/archives/the-sky-is-falling
IS what he does illegal? Yes? Then its wrong. Whether or not it hurts the in-game experience is irrelevant. Clearly what the author is describing is cheating, cheating is wrong, and he clearly tries to rationalize it.
Oh, and about this “illegal” word. AFK Gaming is not against any law in the United States Code. In fact, a lawsuit that Nintendo brought against Galoob (makers of the game genie) ended thus:
"Having paid Nintendo a fair return, the consumer may experiment with the product and create new variations of play, for personal enjoyment, without creating a derivative work."
We have the right to AFK Game because of the Fair Use clause in the United States Code. Now, sure, the EULA tries to strip us of this right; but that still means we have the right, and are not breaking any laws.
Edcognito, since we're not breaking the law, and our impact is irrlevant, you must be ok with AFK Gaming :-)
Friday, May 8, 2009
If the Sky is Falling then I am in Trouble...Because I'm IN the Sky!
Today as I continued looking for information about macro mining when I found “EVE Player’s” article titled “The Sky is Falling”
http://www.eve-mag.com/wordpress/archives/the-sky-is-falling
Wow!!! I could have written this article, it is SO MUCH like what I do.
To the first point, I play the game using macros because it is a fantastic challenge. I hit a Zen like state when I program them. There is a positive and tangible reward for doing it as well.
…
Keep in mind that macros are not magical. My macro cannot read words on a screen. My macro cannot intercept, decode, decipher nor even invite to tea the packets that are sent out and received by the Eve servers. That’s the secret though. That is flying under the radar. I’m not hacking anything. My macro can only do what my eyes and my hands can do. Its brain is only as good as the cross between my programming skills, understanding of the game and the amount of garbage I can put into it.
Oh man, that is SO on point! I do the same thing with DB – I don’t get into the IO stream or even hack into the executable to sniff out memory offsets or watch for certain function calls. ALL my agent does is stare at the screen and respond to what it sees. Just like you. That’s how you stay under the radar.
Is it unethical to AFK Game, since I agreed to an EULA saying I wouldn’t? Well, maybe. Sure. Why not? Whatever. And?
This is a game. This is not real life. This is not important. It is not valid. It is not a good reason to miss work. It is not a good reason to fight with your family. It is nothing more than a pastime and I will be damned before I care what society thinks about how I play a game. Further, I am grateful to any fool who thinks that because I AFK Game I am unethical in general; I’m grateful because it is rare that someone will walk up to you and say “I’m stupid” so when it happens I am really and truly grateful. If you earnestly think that how someone plays a game indicates their ethics then congratulations; you’re ethically retarded.
And I really hope you don’t have an illegally gotten MP3 because if so, you’re not on ethically retarded, you’re a hypocrite too.
You don’t have to follow some rules. No, no, REALLY. You’re allowed to break some rules. It’s ok. Society won’t eat your soul because of it and you aren’t a terrible awful human being because of it. You’re just someone who doesn’t follow every single rule, just like every other person in history.
So yeah, great read and I’m really glad this guy wrote in to Eve-mag.com (http://www.eve-mag.com/).
Thursday, May 7, 2009
Still Writing...
Last night I finished my rewrite of EVE Agent’s code. Well, mostly. There’s still one small bug in it that I can’t quite figure out, but I think one or two lines of extra coding will catch that exception.
My Agent used to warp out to an asteroid field, lock three targets and mine for about 6 minutes. It was all done on timer and if the agent's lock on an asteroid was broken it would not try to acquire a new target. And, as it turned out, the agent's targets were being broken a lot. Pirates would do it sometimes. Other times he’d be mining a rock when it would unlock because it had run out of ore. Well, the old agent would simply wait until it was time to warp home and do so, regardless of how full his holds were.
Not the new the agent! This guy has achieved what I call “Target Continuity”. He maintains three locks on asteroids (the three nearest ones) and whenever one of them fails he reacquires a lock. This agent can even tell when a mining laser is firing and so he can literally mine until his cargo hold is full. I’ve also got a trigger to tell me when the cargo hold is full so I know when to warp home and empty my load.
This last bit (the cargo hold trigger) is what failed last night, leaving me in space trying to mine with a full cargo hold for some amount of time. I’m thinking about putting a failsafe into the code so that it’s “when your cargo hold is full, or when 20 minutes have passed, whichever comes first.”
But, even with that bug I managed to make something like 30 million ISK last night, I think. I can’t recall if I left old ore sitting in my inventory and, if so, that’ll taint the average. I’m hoping to get more accurate numbers tonight.
Monday, May 4, 2009
Target Coninuity!
I worked on the next version of my EVE Agent last night until about 11:15. At that point I realized that I wouldn’t be able to finish it before bedtime so I just threw in the towel. Although I didn’t finish it, I did manage to make some serious headway.
I managed to address target continuity.
In the previous version of EVE Agent the targeting routine only activated once. This meant that if the target lock was lost the agent would not select a new one. This becomes a problem when there is a pirate in the system jamming your locks or (and more frequently) the asteroid you’re mining vanishes. I’ve created a loop where the agent constantly checks to see if all three asteroids are locked and if they are not it can detect it, find another asteroid, and lock onto it.
I can tell if a laser is firing or not.
This was a tough nut to crack and I spent a solid 30 minutes staring angrily at my computer about it. The problem is that there is no where on the EVE client that clearly indicates whether or not a laser is firing. There’s just a green glow that envelopes the laser. I used an array to gather pixel colors of the green glow over time and used that as an indicator of the laser’s status. It isn't perfect, or even close, but it's functional.
I can tell if the mining hold is full
At least in theory. This was the last bit that I didn’t get to test out last night because it was so late, and it will be the first thing I try when I get home. For this I’m simply looking for a “1” where there’s only blank space normally. Not too difficult and the tests I did try (just using point sniffing and time) seemed to indicate that I could tell when the hold was full
And that’s it! I believe that the agent is now fully functional and capable of endless mining. Well, sort of! There are new problems to solve with this design but it’s a huge improvement over the last one. And that’s kind of how programming works – baby steps until the end.
I’ve got an idea for my next EVE Agent. Instead of macro mining I will tackle pirate hunting. The code’s mostly written in the other Agent, I just need to port it over. But that's a job for another day.