Invincible Mystic Foiled

60 posts

Flag Post

Greetings Dream World. April Fools’ Day has passed, the day fools are kings and when I meant to make a fool out of kingk, but it seems the joke is on me. Against all odds someone at Playmage fixed the bug I was going to exploit to build another invincible Mystic.

Some of you may remember that this is not the first time this has happened. A guild with the initials ’84 once built a Mystic, which could not be hostiled. The bug was supposedly fixed, but the fix only consisted of forcibly changing the guild initials to remove the apostrophe and preventing new guilds with special characters in their initials from being created. Only, this did not fix the bug at all.

As some of you already know or suspect, I have had my main account suspended, presumably for scripting, although I never received any response to my question why. It may interest you to know that besides scripting, I made numerous other improvements to the game, including a fix to hostiling guilds with special characters in their initials. It occurred to me that I could do a favor to my old guild and troll the developers at once by building a Mystic no one else could hostile and damage except my friends, and three weeks ago I put my plan into action. I spent that time gathering stones with the intent of building a Mystic on the first of April, and telling only my friends how to hostile it. As it turns out, Playmage fixed that bug just in time to allow ZS to wipe out my Mystic within minutes, wasting its potential for near-infinite coins.

It may occur to you that I tried this as some sort of revenge. I want to make it absolutely clear this is not the case. This game has bored me for a long time, and I only kept playing to support my guild, and because it had become an unhealthy obsession. Once I got over my surprise for being caught, I felt relieved. I am not bitter or angry in the least. I planned this long before I was suspended, and the only difference that made was that I could go through with it with no fear of reprisal. I was only sorry for my guild, which had to endure the loss of four of its strongest players in quick succession.

Now, besides helping my friends, there was one other reason I wanted to do this, during a special event no less, and that was to get the attention of Dream World players and developers alike. I want to make an offer. I would like to phrase it as an offer Playmage can’t refuse, though I have obviously lost my trump card, and I never had Luca Brasi holding anyone at gunpoint to begin with. Still, I would love to see what sort of excuse they could come up with to reject me.

What I offer is bug fixes and graphics upgrades. I have fixed a dozen or so bugs, I have not kept an exact count. I also improved the layouts to make scroll bars unnecessary in shop and battle screens, and was about to start on the inventory and bank screens when I was hit with the suspension. I overhauled the tutorial system just before that, just because the original was painful to look at. Given the chance, I could do a lot more too. My coding work on this game has served me well as practice, and what I learned was an important factor in getting me my last job. In that way, I have gained something far more valuable than levels from my scripting. Like any programmer I like knowing my work is being put to use, so I am offering to share it with everyone, free of charge.

Oh, and just in case the nature of my offer is unclear to someone, I am not offering to share the scripting part of what I have created, only bug fixes and other improvements which do not affect how the game is played. Maybe some keyboard shortcuts for changing classes or allies, the game needs those rather badly. If you want them, let kingk and the Playmage staff know that you do.

Comments and criticisms are welcome. I have my own criticisms of this game I may post later. Playmage fixed one of the bugs I did, but there are many more left, and as bad as the visible bugs and problems in this game are, there is something much worse hidden underneath in the game architecture.

 
Flag Post

Yeah, we need ally switching shortcuts.

 
Flag Post
Originally posted by Feysal:

Comments and criticisms are welcome. I have my own criticisms of this game I may post later. Playmage fixed one of the bugs I did, but there are many more left, and as bad as the visible bugs and problems in this game are, there is something much worse hidden underneath in the game architecture.

I’m gonna ignore the fact that you scripted, doesn’t matter much in this case. However, I’m quite interested in getting to know what you believe is so bad about the game architecture? And if you actually can give those things to Playmage all for free then I’m not against it. I even think it would be foolish of Playmage not to accept that offer. They’ve said it themselves that they can’t put down enough resources on this game simply ‘cause it’s not profitable enough.

 
Flag Post

Yes, it was good to wipe your ass. :) Though I’d say close/delete this thread since it has 0 helpful information, just a scripter/cheater’s plan of revenge against playmage. Nice. Thank you for leaving the game.

 
Flag Post

Did you not read the post? Or is it that you are too lazy to even read through it?
Not for revenge, but a last gift to our guild. Sorry you can’t seem to comprehend that.

 
Flag Post
Originally posted by kingasofnow:

Did you not read the post? Or is it that you are too lazy to even read through it?
Not for revenge, but a last gift to our guild. Sorry you can’t seem to comprehend that.

A gift to one guild that screws with the rest of the guilds seems more like revenge than anything else. It would have very much been a “Haha, you all have to wait on kingk to fix this while these 40 members get to collaborate and figure out who gets to make the most use out of something no one else can hit.” Anyone outside the guild benefiting is losing out on a chance of a no defender mystic which is pretty bad. Sorry you can’t seem to comprehend that.

 
Flag Post

He mentioned, assuming you read the post as well, that he did have much interest in the game. Rather he was playing to help the guild. Then why would it be revenge if he found it a relief that now he was caught? Revenge is a retaliation for an act that brought injury. Did he not state he found that now he could break away from the game because at last he was caught. There was really no injury to him at all since he only continued not for himself but in order to keep the guild alive.

The original intention of the Mystic was not just so we could enjoy it all to ourselves, but to show kingk that he needs to take the game more seriously if there are still bugs left and right that could be exploited. Now look, I don’t want to turn this thread into arguments. What I would like is for kingk to actually care about the game enough to address the bugs and perhaps give us meaningful updates. Hell is just a new iteration of mines, and here is someone offering something to better the game. Why not consider it?

 
Flag Post

You’ll be banned too soon. Like WP’s top players all the time ^^

 
Flag Post

Just ban WP. :P

 
Flag Post
Originally posted by RaptorKris:

Just ban WP. :P

Prolly the best option. 90% of the hackers are from there. :/

 
Flag Post
Originally posted by mrwiggs8:

Anyone outside the guild benefiting is losing out on a chance of a no defender mystic which is pretty bad.

My only response to this is that if you believe everything that does not benefit you is harming you, your vision is extremely narrow. Would you prefer that I had never built the defenseless Mystic at all, so that no one would have had the chance to hit it? Even if I had succeeded, I cannot see what possible harm it could have done to anyone. King of course knows why I did this since I explained it to him. My goal was to get attention for my offer and to highlight how even supposedly fixed bugs still remain in the game.

Originally posted by omark96:

I’m gonna ignore the fact that you scripted, doesn’t matter much in this case. However, I’m quite interested in getting to know what you believe is so bad about the game architecture? And if you actually can give those things to Playmage all for free then I’m not against it. I even think it would be foolish of Playmage not to accept that offer. They’ve said it themselves that they can’t put down enough resources on this game simply ‘cause it’s not profitable enough.

To make it very short and simple, the way this game is built, it consumes way too much bandwidth and memory for no reason.

To mention some details, this game uses HTTP for everything. Every time the player does anything, a request is sent to the server over HTTP, just like when visiting any web page. The response sent by the server is a piece of HTML markup, which is then placed into the correct place on the screen. There are also some invisible tags in the response for updates to energy and such, but at the basic level all updates are done this way. The problem in this is that the server sends preformatted HTML, much of which is static and never changes, and when it does, no checks are made whether it has changed and an update is necessary. In short, there is a massive overhead of unnecessary HTML markup in the responses from the server. To make a cautious estimate, the amount of bandwidth Playmage is using and paying for could be cut at least by half.

To give an example, take the class selection screen. Every time it is opened, the server sends all of the HTML shown, even when nothing has changed. And when the class is changed, instead of deactivating the old class and activating the new one, the server again sends a complete copy of everything. Nearly 100% of the server response in this case is unnecessary overhead, a single byte to indicate the class change was successful would be enough. This is not an isolated incident either. Removing a single item from bank results in reloading the entire bank screen, and the response contains a copy of the inventory table as well. When changing the equipped weapon, the response contains new copies of the inventory and equipment tables – two copies if done from the inventory screen – as well as a new skill table and other smaller updates. Nearly all of that is information the game already has.

What makes matters worse is that the way the game layouts are built is extremely outdated. Every screen is made of tables nested within tables, which is absolutely terrible. There is just no other way to put it, there is no excuse to still build layouts like that during this millenium. The proper way would be to use styles, which would significantly reduce the amount of markup needed and thereby reduce the overhead.

The single worst mistake though is the fact that since the requests are the same as loading any normal web page, they also get cached as such. When the game is played, the browser cache quickly fills up with countless copies of battle action responses as well as every screen and view you could think of. While I was still playing actively, this would cause any browser I tried the game on to slow down and eventually crash. This is even more unintelligible since there exists a HTTP header named Cache-Control which would be perfect for preventing this. If Playmage used it that is.

I would prefer not to be rude about it, but I cannot avoid the conclusion that some of the people who made this game were incompetent. There is no other explanation for why they would have built the game in a way that continuously wastes their money on unnecessary bandwidth.

 
Flag Post

Very well, all of it is reasonable. And the reason it’s built the way it’s built is ‘cause I assume it was built with no intention for it to become as big as it did. And then when the game did become such a success then they didn’t see the need to improve a working concept. But sure, if you have good ideas for how the game could look like, please share it with us all. :)

 
Flag Post

Why write a book every damn time? Worth reading? NO.

 
Flag Post
Originally posted by DeathStryke:

Why write a book every damn time? Worth reading? NO.

Someone needs to calm down. Sure he writes long posts, but then again, he has only posted 45 times. So I believe you 2 have posted about as many words on this forum in total. And there’s probably about as much worth reading in just 1 of his posts as there are in all of yours.

 
Flag Post

But that is quite an epistle to justify what is considered cheating in the game. Sharing how to fix the game in the appropriate way is much more effective than I broke the rules to improve the game. There are those of us who believe cheating is cheating no matter the justification.

 
Flag Post

I don’t believe he’s trying to justify it. He admits that he used scripts to play the game and that he had the intention to show a bug in the game. However, that’s not the main thing about this thread. I believe the reason he created this thread was to show that there’s a lot of things that needs to be fixed and he already have fixed and he gladly will share with kingk all for free.

 
Flag Post

If he is willing to help playmage make the game better i’m all for it.May I ask how you know all this Feysal? (How much bandwith they use, using tables etc) Hacked into the server? Just kidding :P

 
Flag Post

In response to your quote of me feysal, it harms everyone else by not letting them get experience from mystics when your one person guild is the only mystic left standing. That holds up mystic war progress as a whole and causes people who are wanting exp (since it is a great grinding area for time spent) to wait or use energy at a lesser rewarding location. I’m not saying benefiting your guild is bad, but making it to where other guilds are forced to slow down their play for a bit because of it is harming people.
Bring his attention to a bug? If you message him, he really can’t do anything more than he already has by banning you, so letting him know you’re aware of a bug isn’t going to be a bad option.

 
Flag Post
Originally posted by RaptorKris:

If he is willing to help playmage make the game better i’m all for it.May I ask how you know all this Feysal? (How much bandwith they use, using tables etc) Hacked into the server? Just kidding :P

Now kris, you who brags about using Arch Linux must surely be aware of the Developer’s Tools in Chrome or Firebug in Firefox. You can watch some of the coding behind the game there. And if you were to go and check out your guild list (for example) you’d see that all of this is stored in a table. With a table style and all. ;P

Oh and as for the bandwidth (this will be in chrome since I don’t use FF, but I’m sure you can do the same there too) if you open the developer’s tools (F12) and go over to the network tab. Then press the “Town Map” button in game while having the DT open you should see a little thing saying something like “x requests | x KB transferred”. Every time you go to the Town Map you’ll see that this number increases, even though nothing changes.

Oh and killing 1 mob and then pressing the explore button needs to transfer 6KB of data(images are loaded from cache after the first explore). So, a player who kills 1m mobs will have to transfer a total of 6GB data. Sure that’s not an awful a lot, but add it all up from all the players who have played this game and still plays it and you get a pretty nice amount of data transferred. Now if that can be cut in half then it would result in quite a change.

 
Flag Post

Heh, yeah true, but not explored Developers Tools before. But thanks for explanation and i’m going to go check it out. :P

 
Flag Post

im sure KingK/playmage would love to take feysal if he is agreeing to work on it for free and i hope it results in making DW somewhat more fun and bring more people which may make more money and then if it has really good luck it can have more regular updates and a lot more work on them (which i doubt tbh) but its an idea.

 
Flag Post

To those lacking the patience to read another long post from me, I’m listing here the bugs I’ve found and fixed, and providing screenshots to the graphics improvements I’ve made. Feel free to skip if this does not interest you.

Using items during mob battles can cause two bugs I’m aware of. If you are too fast using a fairy dust, which easily happens when using the number key shortcuts, the fairy dust may disappear but nothing else happens. It is also possible to use a fairy dust successfully, but it does not disappear from inventory. I believe that the Magic Talisman can be affected by these bugs as well. These bugs are linked, and I fixed them both the same way.

If you have a Guardian Doll in your inventory and die, the Guardian Doll remains visible in inventory when it should be gone. You can only see this when the inventory is visible in battle, such as in PVP. This is more an omission than a bug, since the game currently does nothing to detect when a doll is spent.

In Monster Arena, using items between battles can be treated as if it was done during battle. This typically occurs after the third battle, when you open inventory, store the fairy dust away and try to use the energy potion, which closes the inventory and glitches the battle log. I was able to partly fix this client side, but it should be corrected on the server side.

Under specific circumstances, the skill type icon in battle screens fails to update while changing weapons. This is the only visible symptom I know caused by leaving invisible tags from past updates on the page, where they can interfere with later updates.

Under specific circumstances, detecting when inventory is full may fail in shop screens, allowing the player to try to buy items without space for them, resulting in an impressive glitch. This is one of the dumbest bugs of them all, caused by a convoluted system of indicators for free space and no space. Why not just check the length of the inventory table?

Linked to the above, number key shortcuts may not work in shops as intended. You may only have four visible items, but the key for using the last one is 5, because one of the inventory rows is taken by a free space indicator.

Having used Dream World on different browsers, I noticed that at least on Opera, item prices in shops are space delimited instead of comma delimited. But, the code for checking whether you have the coins to buy them always assumes they are comma delimited. This can easily cause failures to detect whether the player has enough coins, resulting in impressive glitches.

Most of the time the game assumes correctly which part of the screen to update when it receives a response, but there are times when conflicts occur. For example, you can open a demon gate and then visit the healer. Updates from actions in the shop will go to the gate opening window in the background.

It is also possible that the required part to perform an update does not exist. This can easily be reproduced with an enhance potion or skill book. Use it to open the window where you select the item or skill to upgrade, then close all visible inventories. You can select what to upgrade after this, but no update will be displayed.

Counterattacking other players from the home screen or for the imp may fail if the request stalls. This is because fighting other players like this is a two part command, and the second part uses a timer. If the first part, loading the town screen, takes too long, entering the battle never happens.

I had also fixed hostiling and viewing guilds with special characters in their initials, but that has already been detected and fixed by Playmage. I don’t know if any of the others listed above have been, I have not checked very recently. I may have forgotten some bugs, but the ones I mentioned serve fine as examples of what I’ve done.

Now, as for graphics, I have three screenshots for you.


I hated having to scroll my inventory in shops and how messy it looked, so I did this. Reworking the inventory layout and using all available vertical space produced a result that pleased my eye, and the scroll bar became unnecessary. The drop shadow you can see here was not added by me by the way, it already exists in the game images. The inventory was just made too narrow for it to be visible.


The changes to the battle screen are more subtle unless you know what to look for. The item icons are slightly larger, and the layout was changed the same way as in shops. The inventory will never exceed the available space, and scrolling is not necessary. I also altered the enemy information for better readability, and because having it all on one line would often overflow the intended horizontal space, particularly with mainland mobs with long names that can become enraged, but also with some bosses with high HP, like Mystics.


Ever since I first reached Isendel over a year ago, I knew I had to do something about the layout. The way Hell Gate was crammed in the same corner with Queen Haderon with no regard for the original layout annoyed me to no end. Consequently, my Isendel looked like this until the Hell expansion forced me to disable my change, and I had not decided how to rework the layout before my suspension. Some details you may not notice immediately are dark areas around the five gates, with soft edges, which disappear when the mouse is over them, producing a highlight effect. The texts also have a dark shadow to make them more readable against the background image.

I intended to work on the inventory and bank screens, but did not finish those before my suspension. In inventory, the way the fifth item often falls below the edge of the screen was intolerable, and in the bank screen I wanted to change the layout so that the bank inventory would take half of the screen, with identical items stacked, to make it easier to see what you were carrying. This would have been a change in display only of course, the number of items one could carry would not have changed.

 
Flag Post

The above post was of course mine, forgot to log back on my main account after taking screenshots. Not that it is any secret what my alt was, I’m done with it anyway.

 
Flag Post

It is interesting to me that you did not point these out and offer to help until after you got caught breaking the rules. Until then you were content to exploit the game. It is much easier to be the editor than the writer.

 
Flag Post
Originally posted by Lyoness:

It is interesting to me that you did not point these out and offer to help until after you got caught breaking the rules. Until then you were content to exploit the game.

Agreed. Funny how ulterior motives suddenly became alleged good intentions.