====== All about BadNavs ====== A BadNav is what happens when the player gets stuck in Improbable Island and can't move around. There are three types of BadNav: A **Normal BadNav** is not, strictly speaking, a fault or an error. Try going to the World Map, heading out into the middle of nowhere, and then going to improbableisland.com/village.php. That sneaky little trick should take you to the Outpost without having to Travel or use a Teleporter, right? OH SNAP! We're too clever for that! Yeah, the page just refreshes and you go to badnav.php - and the game basically says "Wanna try that again, smartarse?" You can then click on another link and the game will carry on as normal. This is actually the Nav System working as intended. A **Looping BadNav** is where clicking on links just refreshes the page, and nothing further happens. The address in the browser's URL bar will end in "/badnav.php", and it's identical to the scenario described above - except that the player didn't cause it by trying to cheat, and finds herself unable to move from the page because every link leads to badnav.php. Whoops. A **WhiteScreen BadNav** is more serious - this is where a redirect has failed. You don't even get an out-of-date page; the screen goes completely white except for a "Click Here" link (that reattempts the redirect) and some bumph about BadNavs, and if the link doesn't work, the player must Petition to have his or her navs fixed. ===== The Nav System ===== The Nav system is what makes it so that you can't, for example, kill a monster and then keep on hitting Refresh until you've got All The Requisition. In a small, non-technical nutshell, it accomplishes this by adding a counter and a timestamp to the end of each link in the left-hand navigation column (you'll notice the "&c=" variable in the browser's URL bar). If the counter is wrong, or the page you're trying to visit isn't in the "allowednavs" variable stored in our database, you won't be able to go to the page. When the game thinks you're trying to go to a page that you shouldn't be able to get to, it'll just show you the last thing you saw. When it somehow forgets what you should be able to access, or when it knows what you can access but none of the links line up, it'll keep on refreshing the page over and over until CMJ or a mod can sort you out. ===== What can encourage BadNavs? ===== Here's a list of things that can lead to BadNavs: * Using Back, Forward, Refresh buttons; * Typing in a URL of a game's page instead of clicking on a link; * Trying to play the game over multiple browser tabs; * Having more than one character logged in at the same time, from the same computer (this is possible, using Private Browsing mode - but not recommended, because it leads to BadNavs); * Double-clicking on links; * Clicking a link and then going "Oh bugger I didn't mean to do that" and clicking a different link; * Clicking on links while the page is still loading; * Timing out during a special event; * Being unlucky, especially when the Island is under heavy load. See "Inexplicable Mystery BadNav", below. Anything that pre-scans links in your browser will invariably lead to BadNavs, such as: * 'Web Accelerator' plugins or toolbars - these things are really nasty. They work by visiting each link in every page you load and then caching them to disk, so that the pages appear to load faster once you've clicked them. They seldom actually speed anything up, they're usually bundled with malware, they leech bandwidth from web servers, and they cause BadNavs. * Crap anti-virus programs - as above, except they pre-scan each link so that they can tell you whether they're safe to click on or not. * Malware / virii / spyware / any sort of crapware that spies on you by watching what you're looking at on the Internet. * Some older mobile browsers work like this too. * Believe it or not some ISP's do this. ===== Why hasn't anyone fixed this? ===== The BadNav problem has plagued Improbable Island and other games based on Legend of the Green Dragon original code since... well, since LotGD was invented. It's been going on for more than half a decade, and still nobody really understands what causes it every time, because of the rare **Inexplicable Mystery BadNav!** ==== The Inexplicable Mystery BadNav ==== The Inexplicable Mystery BadNav is when this happens: * YOU: Monsters! Travel! DK's! This is the best day ever! Woo! :D * GAME: BadNav! *giggle* :D * YOU: D: * GAME: hee hee! ;D * YOU: But - but //why?// * GAME: Because fuck you, that's why. :) * YOU: :( * GAME: ;) The presence of The Inexplicable Mystery BadNav That Happens Sometimes For No Reason Whatsoever has led to many, many programmers going down the BadNav RabbitHole. ==== What is the BadNav RabbitHole? ==== This is when a foolish programmer attempts to Solve The BadNav Problem Once And For All. After all, it can't be //that// hard, right? //Right?// He starts by trying to trigger a BadNav so that he can examine the state of the database and figure out what's gone wrong. He quickly realizes that there's no reliable way to actually make a BadNav happen on purpose - they never, //ever// happen when you actually want them to happen. He goes on to examine the game's code in detail, and finds no reason why Inexplicable Mystery BadNavs should ever happen at all. Then he looks for bugs in specific PHP versions, and again, finds no fault. Then he checks out MySQL and Apache, then he pokes and prods at Linux itself, then the HTTP protocol upon which the Internet is built. Around about the time that the sodding birds start squawking outside his window, he's researched network managing protocols and is beginning to wonder how much the Earth's poles affect the speed of light in fibre-optic cables. His wife will then find him, dark-eyed and sullen, and ask why he didn't come to bed last night, and he will reply "I went down the BadNav RabbitHole again." If you're a PHP programmer, you're more than welcome to check the game's code out of our GitHub repository (see Improbable Labs) and find out whether you can solve the mystery. If you manage to pull it off, you will be showered with kudos. If you fail, the BadNav RabbitHole will claim you forever. ==== So what ARE we doing about BadNavs? ==== Very recently, we made a new feature that tries to detect Looping BadNavs and pops up a message giving corrected links. This is addressing a symptom rather than the cause, but since the cause lies somewhere down the BadNav RabbitHole, it'll have to do as a temporary measure. We've also been adding debug information to every redirect call, and we've been asking BadNav'd players for operating system and browser version numbers, to see if we can detect a pattern. ==== What have we learned so far? ==== * Most BadNavs happen on Windows machines, running FireFox or Internet Explorer. Under Linux, I've found it impossible to trigger a BadNav no matter how hard I try - and they very seldom seem to happen on Macs, either. There are far more Windows/FireFox users than there are Linux users in total, so it's likely that the small sample size is skewing the results - but based on what we know about BadNavs (and what we know about Windows), it's also likely that virus infestations are responsible for a large number of BadNavs. * BadNavs happen more frequently around periods of heavy load (such as system-newdays). This could be because people are getting impatient and clicking links twice, it could be because the extra time taken to load a page merely exacerbates whatever other problem leads to BadNavs, or it could be because of something else entirely. ===== What can I do if I keep getting BadNavs? ===== If you're getting BadNavs //all the damned time//, then follow these steps to narrow down where the problem might lie. STEP ONE: First, check whether your browser is at fault by installing a completely different browser. If you're using FireFox, try installing Chrome. If you're using Chrome, try installing Opera. If you're using Internet Explorer - what the bloody hell are you doing using Internet Explorer?! - try installing FireFox. You get the idea - just use something completely different. Can you play okay in the freshly-installed browser? If yes: go to STEP TWO. If no: go to STEP THREE. STEP TWO: Disable extensions in your original browser, one at a time, until either the problem goes away or you've run out of extensions to disable. Did that solve the problem? If yes: Problem solved! If no: use the browser you just installed, or try STEP THREE. Or, use the browser you just installed and move on to STEP THREE if you keep getting BadNavs. STEP THREE: If you're **not** using Windows, skip this step and move on to STEP FOUR. Otherwise, run a complete virus and malware scan. Microsoft Security Essentials is actually pretty okay. Norton/Symantic virus scanners are a waste of time. HijackThis is a useful tool if you've got something persistent. Hell, if you use Windows, you know the drill by now. Did cleaning your machine solve the problem? If yes: Problem solved! If not: STEP FOUR. STEP FOUR: Contact your ISP and ask them if they use any sort of prefetching technology, and if so, how the hell do you turn it off? If that all doesn't work, please Petition with your operating system, ISP, browser version number and any other information you think might be relevant, and we'll take it from there.