1<!doctype html> 2<!-- The <!DOCTYPE> declaration is NOT case sensitive. --> 3<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang=""> <![endif]--> 4<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang=""> <![endif]--> 5<!--[if IE 8]> <html class="no-js lt-ie9" lang=""> <![endif]--> 6<!--[if gt IE 8]><!--> <html class="no-js" lang=""> <!--<![endif]--> 7<html lang="en"> 8<!-- OR USE GOOGLE's NEW 'AMP': <html amp lang="en"> --> 9 10<head> 11 <!-- Phaser Full Screen Traditional Example --> 12 <meta charset="utf-8"><!-- must be within 1024 bytes! --> 13 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> 14 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 15 <meta name="msapplication-tap-highlight" content="no" /> 16 <meta name="format-detection" content="telephone=no"> 17 <meta name="HandheldFriendly" content="true" /> 18 <meta name="robots" content="archive, index, follow, noodp, noydir" /> 19 <meta name="apple-mobile-web-app-capable" content="yes" /> 20 <meta name="apple-mobile-web-app-status-bar-style" content="black" /> 21 <meta name="apple-mobile-web-app-title" content="MMo Game Prototyping with Phaser JS Gaming Framework."> 22 <meta name="viewport" content="minimal-ui, user-scalable=0, width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, shrink-to-fit=no" /> 23 24 <title>Adventurers of Renown⢠(ARRA) - The Hero Questthe Ruins of Able-Wyvern </title> 25 26 <!-- Social Networks & SEO --> 27 <meta name="Description" property="og:description" content="Adventurers of Renown⢠- The Hero Questthe Ruins of Able-Wyvern (ARRA) is a free, browser-based, interactive real-time massive multiplayer online (MMO) fantasy role playing game (RPG) of High Adventure created by Stephen Gose Game Studio. This browser game has innovative elements such as multi-player Battles Arena Combat, character renting, magic conbat, Rare Items and much more. An Online game with a large Community!" /> 28 <meta name="keywords" property="og:keywords" content="Adventurers of Renownâ¢, lord, massive multiplayer, Browser Game, Browser Games, Online Role Playing Game, Free Games, Game, Free, Combat, War, Online-Game, Science Fiction, mmorpg, Role playing, Space, Browser game, Computer Game, MMORPG, Fantasy, Multi player, RPG,real time,massive multiplayer,online, mmo, game, rpg, role playing game, fantasy game, pbmcube,Hero Quest, Dark Tower,pbm3, dungeons, dragon, D&D, AD&D, tagoria, warhammer ,adventure, quest, renown,play by, recreation, renown, adventure, entertainment, Adventurers of Renownâ¢" /> 29 30 <!-- Social Networks & SEO metadata --> 31 <!-- Open Graph data --> 32 <meta property="og:locale" content="en_US" /> 33 <meta property="og:locale:alternate" content="en_UK" /> 34 <meta property="og:type" content="game" /> 35 <meta property="og:title" content="Adventurers of Renown⢠| The Ruins of Able-Wyvern"> 36 <meta property="og:description" content="Adventurers of Renown⢠- The Hero Questthe Ruins of Able-Wyvern (ARRA) is a free, browser-based, interactive real-time massive multiplayer online (MMO) fantasy role playing game (RPG) of High Adventure created by Stephen Gose Game Studio. This browser game has innovative elements such as multi-player Battles Arena Combat, character renting, magic conbat, Rare Items and much more. An Online game with a large Community!" /> 37 <meta property="og:url" content="<?php echo base_url();?>" /> 38 <meta property="og:site_name" content="Adventurers of Renownâ¢"> 39 <meta property="og:image" content="<?php echo base_url();?>assets/images/title.jpg" /> 40 41 <!-- Twitter Card data --> 42 <meta name="twitter:card" content="summary" /> 43 <meta name="twitter:description" content="Adventurers of Renown⢠- The Hero Questthe Ruins of Able-Wyvern (ARRA) is a free, browser-based, interactive real-time massive multiplayer online (MMO) fantasy role playing game (RPG) of High Adventure created by Stephen Gose Game Studio. This browser game has innovative elements such as multi-player Battles Arena Combat, character renting, magic conbat, Rare Items and much more. An Online game with a large Community!" /> 44 <meta name="twitter:title" content="Adventurers of Renown⢠| The Ruins of Able-Wyvern"> 45 <meta name="twitter:site" content="@pbmcube" /> 46 <meta name="twitter:image" content="<?php echo base_url();?>assets/images/title.jpg" /> 47 <meta name="twitter:creator" content="@pbmcube" /> 48 <title>Adventurers of Renown⢠| The Hero Questthe Ruins of Able-Wyvern (ARRA) | a free Browser game - massive multiplayer Fantasy Role-playing Game.</title> 49 50 <meta name="author" content="Stephen Gose"> 51 <meta name="revisit-after" content="1 days" /> 52 <meta name="distribution" content="Global" /> 53 <!-- Dynamically select index for front page; all else noindex, nofollow --> 54 55 <!-- all style sheets must load and run prior to any JavaScripts --> 56 57 <link rel="stylesheet" type="text/css" href="fonts/fonts.css" /> 58 <link rel="stylesheet" type="text/css" href="css/main.css" /> 59 <link rel="icon" href="assets/launcher.png" type="image/png" /> 60 61 <!-- Google Requirements for Progress Web App (PWA) --> 62 <link rel="manifest" href="manifest.json" /> 63 64 <!-- DNS pre-fetched domain --> 65 <link rel="dns-prefetch" href="https://pbmcube.com/" /> 66 <link rel="publisher" href="https://www.stephen-gose.com/" /> 67 <link rel="dns-prefetch" href="https://www.stephen-gose.com/" /> 68 <link rel="dns-prefetch" href="https://www.renown-games.com/" /> 69 70 <!-- http://iconogen.com/upload.php --> 71 <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> 72 73 74<!-- Creating Client WebSocket -->
75<script > 76 function WebSocketTest() { 77 if ("WebSocket" in window) { 78 alert("WebSocket is supported by your Browser!"); 79 // Let us open a web socket on local development site; 80 81 //TODO: Change the URL to point to your live production server. 82 //Classic OOP style creates object/function: 83 var ws = new WebSocket("ws://localhost:9998/echo"); 84 85 //OLOO style; note that false warning 86 //var ws = Object.create(WebSocket("ws://localhost:9998/echo")); 87 88 // 89 //============================ 90 // 4 WebSocket Protocol Msg 91 //============================ 92 ws.onopen = function onopen(event) 93 { 94 // Web Socket is connected, send data using send() 95 ws.send("Test Message sent"); 96 alert("Test Message away, away ... Captain!"); 97 }; 98 ws.onmessage = function onmessage(event) 99 { 100 var received_msg = event.data; 101 alert("Incoming Messages ... brace for impact, Captain!"); 102 }; 103 ws.onclose = function onclose() 104 { 105 // websocket is closed. 106 alert("Connection is closed..."); 107 }; 108 //============================ 109 // End of WebSocket Protocol 110 //============================ 111 } else { 112 // The browser doesn't support WebSocket 113 alert("WebSocket NOT supported by your Browser!"); 114 } 115 } 116</script>
116 117 118<!-- Facebook Instant Game deployment??? --> 119<meta property="fb:app_id" content="xxxxxxxxxxx" /> 120<!--
120<script src="https://connect.facebook.net/en_US/fbinstant.6.0.js"></script>
120 --> 121 122<!-- REMEMBER Phaser v2 IS NOT COMPATIBLE WITH PHASER v3 123Phaser Official version
124<script src="https://cdn.jsdelivr.net/phaser/2.6.2/phaser.min.js"> 125 </script>
125 126 127Phaser Community Edition active
128<script src="https://cdnjs.cloudflare.com/ajax/libs/phaser-ce/2.11.0/phaser.min.js"> 129 </script>
129 130 131 Phaser v3.x.x (20180322); WARNING ANTI-PATTERN REMOVED 132 // CORS: Remove anti-pattern! 133 // - https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS 134 // - https://enable-cors.org/ 135 // Avoid this anti-pattern of omitting the protocols schemes in script "src"; 136 // Cross origin requests are only supported for protocol schemes: 137 // http, data, chrome, chrome-extension, https. 138 // - ***anti-pattern is:*** 139 //
139<script src="//cdn.jsdelivr.net/npm/[email protected]/dist/phaser.min.js"></script>
139 140 /////////////////////////////////// 141 142***Remove this anti-pattern; it is missing the protocol:***
143<script src="//cdn.jsdelivr.net/npm/[email protected]/dist/phaser.min.js"> 144 </script>
144 145 146***use this:***
147<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/phaser.min.js"> 148 </script>
148 149 150***ALWAYS use minified version for deployment***
151<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/phaser.min.js"> 152 </script>
152 153 154***use normal version for assisted development***
155<script src="//cdn.jsdelivr.net/npm/[email protected]/dist/phaser.js"> 156 </script>
156 157 158*** NEVER deploy your own compiled version per Yahoo Report ***
159<script src="js/lib/phaser3.min.js"></script>
159 160 161 REMEMBER Phaser v2 IS NOT COMPATIBLE WITH PHASER v3 162 -->
163<script src="https://cdnjs.cloudflare.com/ajax/libs/phaser-ce/2.16.1/phaser.min.js"> 164</script>
164 165<!-- ANTIPATTERN: using multiple js files in header!! --> 166<!-- Game Development uses multiple files to easily find bugs 167 in live deployment always use defer -->
168<script defer src="js/main.js"></script>
168 169
170<script defer src="js/state/boot.js"></script>
170
171<script defer src="js/state/credits.js"></script>
171
172<script defer src="js/state/demo.js"></script>
172
173<script defer src="js/state/exitGame.js"></script>
173
174<script defer src="js/state/language.js"></script>
174 175<!--
175<script defer src="js/state/load.js"></script>
175 -->
176<script defer src="js/state/help.js"></script>
vendor: 2 bytes, line 176
176
177<script defer src="js/state/help2.js"></script>
vendor: 2 bytes, line 177
177
178<script defer src="js/state/menu.js"></script>
178
179<script defer src="js/state/play.js"></script>
179
180<script defer src="js/state/story.js"></script>
180 181 182<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements 183 and media queries --> 184<!-- [if lt IE 9]>
185<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"> 186</script>
vendor: 2 bytes, line 186
186
187<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"> 188</script>
188 189<![endif] 190--> 191</head> 192 193<body itemscope itemtype="https://schema.org/Game"> 194<!-- facebook -->
195<script> 196 window.fbAsyncInit = function() { 197 FB.init({ 198 appId : '919022092241209', 199 xfbml : true, 200 version : 'v9.0' 201 }); 202 FB.AppEvents.logPageView(); 203 }; 204 205 (function(d, s, id){ 206 var js, fjs = d.getElementsByTagName(s)[0]; 207 if (d.getElementById(id)) {return;} 208 js = d.createElement(s); js.id = id; 209 js.src = "https://connect.facebook.net/en_US/sdk.js"; 210 fjs.parentNode.insertBefore(js, fjs); 211 }(document, 'script', 'facebook-jssdk')); 212</script>
212 213<!-- 214This content 215© \u00A9 © copyright 1990-2017, Stephen Gose Game Studio, LLC. 216Folks, a lot of hard work went into this final production. 217Please do not create anything shady with this. 218Much appreciated! 219 220NOTE: Phaser library must be loaded prior to any game logic. 221 We load script files here to avoid windows.onload call. 222 Now days, Window.onload is rarely used for many reasons, and 223 phaser doesn't wait until all resources are loaded. 224 225The DOMContentLoaded event triggers when the page is ready. 226It waits for the full HTML and scripts, and then starts. 227This is explained in greater detail in 228 "Phaser III Game Design Workbook". 229 https://leanpub.com/phaser3gamedesignworkbook/ . 230 231NOTE: per the Phaser III Game Design Workbook, you may place the following 232script externally or as the last head script using `defer`. 233 234///// T E S T: //////////////////////////////////////////////// 235 236https://stackoverflow.com/questions/588040/window-onload-vs-document-onload 237The general idea is that window.onload fires when the document's window is 238ready for presentation and document.onload fires when the DOM tree 239(built from the markup code within the document) is completed. 240 241Ideally, subscribing to DOM-tree events, allows off-screen-manipulations through 242 JavaScript, incurring almost no CPU load. Contrarily, window.onload can take 243 a while to fire, when multiple external resources have yet to be requested, 244 parsed and loaded. 245 246Test scenario: 247 248To observe the difference and how your browser of choice implements the 249aforementioned event handlers, simply insert the following code within 250your document's - <body>- tag. 251--> 252<div id="sse"> 253 <a href="javascript:WebSocketTest()">Launch WebSocket (Manually)</a><br /> 254 <p>Review: Boot.js for last chance to start WebSocket automatically.</p> 255</div> 256 257<div id="gameCanvas"></div> 258
259<script> 260console.log("%c >> Timing test Started: document.onload vs. window.onload << ", "color:white; background:red"); 261window.tdiff = []; fred = function(a,b){return a-b;}; 262window.document.onload = function(e){ 263 console.log("%c >> End Timing test: document.onload << ", "color:white; background:red", e, Date.now() ,window.tdiff, 264 (window.tdiff[0] = Date.now()) && window.tdiff.reduce(fred) ); 265} 266window.onload = function(e){ 267 console.log("%c >> End Timing test: window.onload << ", "color:white; background:red", e, Date.now() ,window.tdiff, 268 (window.tdiff[1] = Date.now()) && window.tdiff.reduce(fred) ); 269} 270 271</script>
271 272 <!-- Google Analytics: change UA-55825320-2 to be your site's ID. --> 273
273<script> 274 (function(b,o,i,l,e,r){b.GoogleAnalyticsObject=l;b[l]||(b[l]= 275 function(){(b[l].q=b[l].q||[]).push(arguments)});b[l].l=+new Date; 276 e=o.createElement(i);r=o.getElementsByTagName(i)[0]; 277 e.src='https://www.google-analytics.com/analytics.js'; 278 r.parentNode.insertBefore(e,r)}(window,document,'script','ga')); 279 ga('create','UA-55825320-2','auto');ga('send','pageview'); 280 </script>
280 281</body> 282</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.