toddw123 / RotMG_Clientless

Compatible with version X16.0.0
MIT License
11 stars 4 forks source link

GUI Client #38

Closed VoOoLoX closed 7 years ago

VoOoLoX commented 7 years ago

I just started working on the GUI for the client and I'm wondering if anyone would like to help, or is it just a waste of time? http://i.imgur.com/S2RQawF.gif (Moving the player using the arrow keys)

toddw123 commented 7 years ago

.....what are you planning to make a gui for? I dont really see the point of it honestly. I guess you could have a listview that holds all the clients and various information about each that are running, but other then that there isnt much else a gui would be useful for that i can think of.

But dont let me stop you if you want to do this though, if you want to go and make something unique off this code i fully support that idea! If you have some idea in your mind that you want to make using this code i would love to see what you put together! So dont feel like you are wasting your time if this is something you want, i can always make a new branch that you can add this too (apart from your own of course) if you want it to be with the other stuff on this project 👍

VoOoLoX commented 7 years ago

My idea is to somewhat replicate current production client, render a basic preview of what you'd see in the actual client without all the features, since that would be too big project for me to manage and maintain

toddw123 commented 7 years ago

Gotcha. I have 0 desire to make a full client, but dont let me stop you from doing it. I just dont see it being possible or making too much sense when this program is intended to support multiple clients/accounts at a time. Not sure how that would be rendered lol. I think there is atleast one other person who watches this project that wanted to do a custom client, so you could always work with them if you decide to actually go that route.

I will say though, one thing i do recall about a couple different bots for some older games i use to play that i really liked was they would render a minimap in the gui (that was the only graphics, the rest was just text values/buttons/etc). So instead of seeing the standard game, the bot would have just a black and white image of the current map (guess this wouldnt work that well with rotmg since you dont get the full map right away) and then it would put a dot on the map to show you where it was in the game. And it would add other dots for mobs and whatnot. This made it slightly easier to keep track of where your bot was at and what it was doing. I guess even copying the minimap style/system from the game client and having that in the gui would be neat. But thats something i dont have any priority for right now, especially since i cant say that i would really want that in the end.

alanbaumgartner commented 7 years ago

I also thought about trying to recreate the prod client in someting other than flash so that I could run the game better. My desktop's processor is very old and struggles to run realm. It's a shame that a gtx 760 doesn't have much impact because the processor is shit. Good thing I plan to get a ryzen soon :^)

toddw123 commented 7 years ago

There is a lot in the client that i would rather not deal with making. In my opinion, the reason they used flash to make the game instead of a better/faster language is because they wanted to do it quickly. The game was originally made during a game program contest (https://forums.tigsource.com/index.php?topic=10310.0), and from the dates on the contests starting post and ending post, they made it in about 2 months. So they went with flash because you can create a game pretty quickly with flash, whereas other games you have to do a lot more work for the same exact output. Plus flash can be played in a web browser directly from a website and i think that was something they wanted instead of having to download and install everything.

I know there have been attempts to make customer clients in the past, one of the resources i attempted to use when i started this project (but ultimately ended up being useless for me) was Oryx Hates C. There was also something like JOryx or something that was a custom client in java that was actually very close to being finished before it stopped being worked on.

So while i have no plans to take this project in that direction, this code is free to use and i fully support anyone who wants to do something unique with it.

VoOoLoX commented 7 years ago

I'd like to recreate the client fully but it's way out of my skills set, even this simpler/basic client idea that I have will be hard to make.It's gonna be a client for single account (pretty much a clone of prod client but way simpler and with way less features.... that is if it all goes well). I've seen both Oryx Hates C and jOryx, I updated jOryx for the private server while back but it was a total mess.

alanbaumgartner commented 7 years ago

I didn't mean that in a way where I was asking you to do it, meant it like I had similar thoughts and think it is a cool idea to try although I would not want/try to do it myself.

ebf34e12952930cf commented 7 years ago

i wouldnt mind helping @VoOoLoX

Zeroeh commented 7 years ago

I wouldn't mind helping @VoOoLoX It's possible to easily draw the minimap to a seperate window for what the bots see. I'm also working on making a new client from scratch. With c++ and sdl.

toddw123 commented 7 years ago

See, there you go VoOoLoX. Told you there was a few watching that wanted to go the route of a custom client.

And yes i imagine it would be fairly easy to draw just a minimap for each client the program is running, i might eventually want something like this, but right now its not on the list of things i am looking to add. In the future maybe!

Zeroeh commented 7 years ago

Adding a map gui is simple, just take the xml data, the height and the width from the mapinfo packet and render it.

jalius commented 7 years ago

https://www.youtube.com/watch?v=Ys3PRMZsi28

scellow or izilife made a really sick client, actually a few of them. check this vid :)

i've been wanting to try my hand at this as well :)

toddw123 commented 7 years ago

I recall seeing that uploaded before. It looks like, from the comments, he made it in C#. Pretty neat.

I just dont have any desire to make and then maintain a custom client. A lot goes into that compared to just making a bot. A bot i only have to worry about the packet structure and a few other things. A full on game client i have to do way more, and thats not what i started this project to do. I started this project to build a bot that would play the game for me, not make a client for me to continue playing the game 😃

toddw123 commented 7 years ago

If you guys do get into making a custom client, ive never really played with graphics much besides a few directx/opengl tutorial, but ive heard some decent things about Oxygine (http://oxygine.org/). Its a graphics engine in pure C++. Not sure what you used to make the gui in the top post, if it was just win32 or if you used something like smfl (which ive only looked at never used).

Zeroeh commented 7 years ago

Not too fond of game engines. I'd rather just use raw graphics buffers and manual rendering via opengl.

toddw123 commented 7 years ago

Why reinvent the wheel? Engines are built to make life easier. And by engine I'm talking actual game engine, not a game maker sorta crap that does everything for you with very little customization.

Zeroeh commented 7 years ago

I guess I'm just doing it for the learning aspect rather than making life easier.

toddw123 commented 7 years ago

Gotcha. Learning it is different, I think it's good to learn how to do it the hard way first, gives you more understanding of what's going on and appreciation later.

VoOoLoX commented 7 years ago

Mini progress update: http://i.imgur.com/p1KqkpY.gif Rendering wood floor tiles as a pixels (Gotta work on proper rendering, this is just for testing)

EDIT: More progress 😃 http://i.imgur.com/wOqZpnU.gif

toddw123 commented 7 years ago

neat. you never answered, what are you using to render gui/graphics right now?

VoOoLoX commented 7 years ago

Must have missed that in the text, I use SDL

EDIT: I need help to make movement smoother.Currently it just changes currentTarget on key press, I tried different values but it's just not what I'm looking for http://i.imgur.com/UkIKLGH.gif

toddw123 commented 7 years ago

gotcha, i was looking at sdl the other day. And yes you will probably have to modify movement to work differently, technically the bot only moves every 200ms, but that would be very choppy to watch.

Zeroeh commented 7 years ago

You'd have to do frame interpolation to make it not so jumpy.

toddw123 commented 7 years ago

Closing this topic. If anyone wants to continue this discussion or ask for a GUI branch to be made or something just let me know.