First things first, here's a quick screenshot of the OCR finally in action. Boy was that a pain in the ass..
Alright, next to each of the title is a (very) rough completion percentage.
Layout60% I'll probably stick with this single-window-assload-of-tabs layout.
OCR75% Not sure about having the OCR as a separate app., while it does somewhat speed up the bot app, it seems unnecessary. I've also switched to tessnet2 libraries for convenience.
API25% Progress on the API is painfully slow, it's boring as hell.
Compiler100% Ported from the old version, no changes planned.
Game Overlay?% Simple overlay, showing user defined OCR rects and whatnot.
Patreon preview link:
I'll be updating this post regularly.
//Update 2017-06-23 19:05:53 Ditched the server app, added direction recognition aid (DRA). The direction detection is dead on, but slowing down the bot considerably. The Tessnet2 library puts quite a load on the CPU, as do all OCR libraries, but combined with the DRA algorithm it's eating my i5 4210H alive, CPU usage doesn't go below 90% with the bot+game running.
//Update 2017-06-23 23:56:10 Navigation95% Finished implementing the navigation system, this includes loading/saving profiles, waypoint calculation algorithm, character control etc.
It seems that Tessnet 2 libraries will not work for the purposes of this bot, it's just way too slow and resource intensive. I'll probably have to switch to Emgu CV, their libraries are way faster, but the license is around $200.
Just passed the 2,000 lines mark on the main module.
//Update 2017-06-25 13:37:01 Switched to EMGU for testing. Everything checks out except the OCR still not being fast enough for direction detection.
The best course of action would be to rewrite the memory reader module and have these values pulled straight form the memory. I'll probably release the half-assed version sometime this week to get more performance info.
//Update 2017-10-03 17:46:47 - Change of plans >have these values pulled straight form the memory. This. I'll write a proper update later.
It's become clear that memory reading is the way to go if we're looking to maximize performance. Optical character recognition is just way too demanding, slowing down the bot considerably while providing little information. Not to mention the information is never quite 100% accurate, hence the need for various recognition aids to tailor it to suit our purpose.
Then there's human error, with the added complexity of having to manually position the locator each time, the bot relies on the user knowing what to do. And unless you've read the somewhat extensive set-up guide, and spent a decent amount of time using the application, using the bot can be a frustrating experience.
The OCR also has issues with different screen resolutions, app scaling.. the list goes on and on..
It's not all bad though, while it's certainly not the ideal solution it has one thing this new method doesn't, and probably won't have for quite a while. It was unpatchable. While the memory reading method can get all the information in an 'instant', using a fraction of the resources compared to OCR, it will cease to work once the game client has been updated.
What does this mean for the end-user? Well, unless I abandon ship and ditch the project, nothing really. But if I do, the bot will die after the first update comes along. Using OCR the bot can go without updates damn near indefinitely, unless they change the radar layout, which is very unlikely.
TLDR; Ditched OCR to maximize performance
Pros: + Fast and 100% accurate + Little resource requirements
//Update 2017-10-08 00:14:41 Now we're getting somewhere.
//Update 2017-10-13 21:56:30 Initial testing of a simple sweating script.
The bot is currently capable of: -flawlessly monitoring health, position, equipped tool usage, nearby players and NPCs -the simple sweating script can run for hours on end, provided the GUI interaction module has enough resources for bitmap recognition. If it does get stuck at revival, simply screen capping the message boxs 'ok' button and adding it to the resource folder will fix it, and expand the bitmap recognition capabilities.
Like I've already mentioned in previous updates, this version of the bot if not update proof, sometimes even a system reboot breaks the offsets, which means I might need to add a signature scanner after all.