It's been a while since I've made a new building in Inkscape, but this weekend
I had a crack at a building I've been admiring for a while, Manor Apartments
in Brisbane CBD.
I've been making these for a while. They're stylised vector-based isometric
building tiles that can be used in some hypothetical game I might make one day.
The colours are specifically chosen from a palette that lets me
programmatically recolour them on the fly.
I find getting the base sorted at the start is really useful. In most cases,
this just involves drawing a square or rectangle base and I have a template which
you can see in the image that lays out a standard block size of 256×128
pixels. This building is easy in that it's essentially a rectangle so I can get
away with minimal changes.
Next step is drawing windows, or other repetitive features. These can be cloned
so that they don't need to be re-drawn, and any subsequent changes only need
to be made to the original in order to flow through to the entire image. Usually
there's two copies of each feature with different shadows; one facing left and
another facing right.
This building is a little more tricky because it has the sweeping arches on the
ground floor, as well as various arched windows which are more difficult to draw
since they're not basic square shapes.
Once the ground floor is done, it's a step-by-step process to add floors until
we reach the roof. For the most part these can be duplicated from lower floors
or assets can be reused in different arrangements.
This building is fun because it has so much variety on the different levels. I
stylised or glossed over over a lot of the ornamental detail in the original
building because it doesn't fit with my existing style, but I like how it
adds a sort of plastic simplicity to the end result.
My plan with this building was to make it modular, so that I could repeat
variations of the first tile a few times to create the rest of the building.
This image shows two very similar tower pieces placed next to each other to
make a larger building. I've colourised it, and added a couple of other older
buildings to check the styles work together.
Finally, I've added and subtracted some floors, added a roof and placed a few
different sized blocks around to make a completely new building. No longer Manor
Apartments, but a series of blocks that can be configured numerous different
ways.
The end result are four separate tower pieces that can be combined or used
individually to create various large and small buildings. I think it worked
really well, and it's something I want to explore in future buildings.
Set over a month-long period, the js13k challenge is to create a compelling game within 13 kilobytes. This doesn't sound like much, but you can do a lot with it if you get creative.
Last year I dreamed fairly small, with a space invaders clone set to polar coordinates. I had fun making it, but it wasn't especially playable and this year I wanted to do something completely different and come up with a mobile friendly touch-based game.
The Concept
The concept had been rattling around in my head for a while. I've a very soft spot for city builders, and I love isometric art. While an outright city builder probably wouldn't be feasible, a subset thereof might just work.
My main inspiration was an old DOS/Windows game called Pipe Dream, in which you're given an infinite number of puzzle pieces and need to connect the start pipe to the edge of the map somewhere before the liquid spills out. Mash this concept up with the city building theme and you've got a basic connect-the-infrastructure sim.
When the theme of the jam came out as “reversed” I really struggled to find a way to align the concept with the theme, so I had to mix it up.
Ultimately I landed on the puzzle-style "arrange the pieces to fit" theme, in which you need to strategically destroy or reverse the order of the tiles as they come off the queue. It's a little less "world buildy" and a little more constrained, but I think the gameplay works, and it gives me the opportunity to expand the game with new puzzles in the future.
The Tech
The tech is also an idea that's been bouncing around in my head for a while. I've long been a fan of isometric art (pixel art as well as more recently isometric vector art and voxel art) so I wanted to do something in that style.
I had a play around in CodePen and came up with a crazy simple plan; draw everything in voxels. The algorithm to draw an isometric cube isn't all that difficult. You've got three visible sides, each side consisting of four lines and a fill colour. Turn that into a function and you can start making some cool stuff.
You can adjust the sliders on the example above to modify the cube.
Drawing voxel sprites
With the idea down, the next step was to draw a game world. There's a bunch of sites out there that have isometric code examples. I had Clint Bellanger's isometric math tab pinned in my browser for a good week, though in reality there were only two functions I really needed:
Convert isometric position to screen/pixel position
Convert screen/pixel position to isometric position
These two functions let me both draw isometric boxes to the appropriate location on the screen, and then detect where those boxes were stacked when the user interacted with them.
From there, the trick was to come up with sprites made from boxes. While it was possible to sort of work it out in your head, this was often a trial-and-error process, placing boxes and seeing where they land in the output.
Each item in the array corresponds to a coordinate. In this case the z, x, y coordinates, x width, y width and height.
In the end, my sprite list resulted in a bunch of arrays and functions that don't make a great deal of sense to the naked eye but render cute little box sprites in the game engine.
Putting it all together
With a bunch of sprites at my disposal, all that was left was to implement the game! Easy, right?
I actually took a week off specifically to work on Road Blocks, and I'm glad I did. Through the week I implemented the engine various features (some of which didn't make the final version) and tuning interactions.
Because I wanted this to be a first-class touch game, I implemented everything mobile first. This was a fantastic way to discover all the limitations of the platform at the get-go rather than having to refit a desktop game to mobile later on.
I also spent a lot of time user testing the game, be it in person or through analytics. Testing is a really important part of any gamedev process, and it was really enlightening to watch people playing my game for the first time. Many a puzzle or interaction was tuned based on feedback and watching people work out a level.
I also released my game via Twitter as a public beta to gather play statistics and weed out any errors that might crop up. I used Loggly to record a bunch of custom game stats and events, and the results were quite valuable in determining difficulty and how people were faring playing the game.
One particularly revealing fact was that most people were getting stuck on a particular level. Armed with feedback from testers and the hard facts of the analytics, I tweaked it to be not quite as difficult and pushed it from the middle of the campaign to the end to make it a sort of "final boss" level instead.
By my analytics most testers unlocked "free play" but not so many used it. Level 7 seems to be the toughest, only 4 people solved it. #js13k
As a side note, one day I got distracted and came up with a data encoding scheme for level data which helped reduce the file size in the final zip.
Conclusions
I'm really pleased with the results this year. The game clocked in at just under 13 kilobytes and made efficient use of the space.
Some notes in hindsight:
Levels and sprites should probably use a binary data scheme to reduce file size and allow the use of Web Workers.
For some reason HTML5 canvas makes the CPU spin up like crazy. I'd like to get to the bottom of this sometime.
User testing is mandatory. When developing something in isolation you can get into a weird headspace and not notice the obvious stuff.
I had initially intended to have little cars animating along the roads, but ran out of space and couldn't think of how best to do this. I need to learn more about vectors in gamedev.
Ultimately, this year's js13k was a whole heap of fun and I'm really proud of my result. There's a bunch of awesome entries that you should check out, and you should consider entering next year.
Further reading
You can play Road Blocks on the js13k website. You can also check out:
I didn't go into this weekend with a project, but I woke up Saturday with an idea I couldn't get out of my head — I want to write a music sequencer with a really low footprint for use next month in the js13k game competition.
I've written about js13k before, and took part last year. This time around I want to be a bit more prepared, and I wanted to make a tool that would make it easier for the community to make cool stuff!
So this weekend I've been working on a bunch of different tools to make this project a reality.
Mini Sequencer
Mini sequencer is exactly that: a mini sequencer implementation that can play sounds at various times to form tunes.
This was my first mini project, as I was interested to see what the performance of web audio would be like; it's surprisingly good. That said, if I get time I'd like to look into replacing it with the Web Audio API, as it's a lot less hacky and should perform better.
jsfxr is a little 8 bit synth which was implemented a few years ago for use in the js13k competition.
Since this is probably what most of my sounds are going to be implemented by, I wanted to be able to create new sounds from my sequencer. While there's a few sites out there (my favourite by Super Flash Bros) that let you adjust sliders and make new sounds, there's not actually an out-of-the-box tool you can use to plug into your own project.
So after a bit of reverse engineering of as3fxr (the original Flash version), now there is.
This actually took up a whole bunch of my time, and if I were a project manager I would have dropped this to focus on other stuff, but hindsight, right?
I got to the end of the weekend and felt like I hadn't really ended up with much to show off.
The timeline was one of the big things I'd been putting off doing because it's slightly weird and I wasn't quite sure how to tackle it, so I went all-out and implemented a standalone component (depends on jQuery but probably doesn't need to).
I'm pretty proud of this one, it's styled reminiscent of the old Fruity Loops sequencer and just looks a bit retro.
So despite having made a million things this weekend, I haven't actually finished the project I set out to do. Right now I have:
Create & manage a library of instruments (with jsfxr editing built in)
A super rudimentary timeline (edit some JSON by hand and the music will update)
BPM adjustment.
Things I need to do from here:
Plug in the actual fruity timeline so you can edit your song visually.
Implement a "piano roll" feature so you can have different pitches of the same instrument.
Stop/play/seek functionality
Export your file
Load up proper audio files (mp3/wav/whatever) so you can play with those too.
It looks like there's a lot there left to do, but I think I'll be able to get a minimum viable product done with another weekend. I'm not sure if I want to publish the code yet since it's a massive pigsty, but I'll aim to get something out before next weekend is through.
Edit: Ended up getting something together Sunday night. Try it out.
My lease was running out and I was vaguely looking at apartment prices in my area when I saw it: my dream place.
My dream place turns out to be a converted loft upstairs from an organic cafe that’s never open and adjacent to an overgrown empty lot. From the outside it’s terrifying, but the inside is all natural light, high ceilings with rafters and tacky faux-wood linoleum. It was my first choice last time I moved house (and was unfortunately off the market before I got it) but this time damnit, it was going to be mine.
So I inspected it, submitted an application, and moved in over the weekend. Couldn’t be easier!
Then I tried to get the Internet on.
Telstra Velocity Fibre Smart Community haha wait, oh dear
It’s known by various names, “South Brisbane Fibre” being the preeminent one, but Telstra also calls it “Telstra Velocity” or a “smart community” just to make things confusing.
The idea is nice, but as far as the consumer is concerned it would have been better if the rotting copper was left in the ground. Since getting their “smart” on Telstra jacked up wholesale prices, started demanding exorbitant monthly line rental fees, and throttled the network to copper-comparable speeds anyway.
Since the government prevents other parties rolling out networks that compete with the NBN and there’s none of the checks and balances the ADSL network enjoys, this is an outright Telstra monopoly and they seem to be making the most of it.
At my new place I figured I’d ditch iiNet because they were so useless and go straight with Telstra because surely being the operator of the network they’d have a better idea of what they’re doing.
Turns out not.
On my first attempt to sign-up I was told that ADSL isn’t available at my current address and that’s that.
Feeling annoyed I attempted to sign up online, where I was told that I can absolutely 100% get cable Internet and everything’s fine. Makes sense, fibre is a cable right? I signed up, submitted my order, all good.
Several days later I get a call to let me know that actually I can’t get cable (HFC) in at my apartment: I can only get fibre, and do I want to continue the signup? As a consumer, I don’t care about this stuff, I just want to get on the Internet so of course I want to continue. The order languishes for the next couple of weeks while I’m out of town.
When I call up to chase the order I get bumped through three different teams (sales, cable and finally “smart communities”). The guy doesn’t outright say they’ve lost my order, but takes all of my details again before offering me a vastly more expensive plan on a 24 month contract at which point I give him a super polite ultimatum before hanging up and punching some nearby kittens.
The plan on offer was somewhere in the vicinity of $130/month before line rental (another $30 which they don’t tell you until the price goes up at the end). This brought it to over $150/month for the most basic access to the ‘net which is totally unreasonable and I have no idea how they can get away with it.
This month’s internet bill just hit $470 not including what it’s costing to get my landline connected. When was that NBN happening again?
— Ash Kyd (@AshKyd) May 29, 2015
My next port of call was TPG who either refuse to service the South Brisbane area as a result of Telstra’s ridiculous monopoly, or just didn’t know what they were doing. I don’t blame them either way, getting online here has been one of the most frustrating things I’ve had to do as an adult and if I were a service provider I would avoid dealing with Telstra wherever possible.
Finally I called Internode who knew exactly what was going on and generally didn’t completely suck. The downside is their South Brisbane plans run between $150-200 per month for a paltry 250 GB. At this point I just don’t care because I’ve already burnt through more than double that figure this month in mobile broadband and need to get online, but it’s an extraordinary figure and I’m having trouble justifying it.
So what’s going wrong?
It’s easy to blame Telstra for being a lumbering, incompetent monopolist but how did this happen?
In both cases my address hasn’t been in whatever database they use to look things up, and both times it’s caused holdups from “we can’t find you in the system” and “you can’t get Internet” to “we accidentally disconnected your landlord instead, lol soz”.
Surely having just finished updating the network in 2013 they would have all this information? Apparently they don’t keep this around, as even my current apartment which was only disconnected the previous month is completely missing from the system.
Meanwhile I still don’t have Internet at my new place and they seem completely unwilling to help.
— Ash Kyd (@AshKyd) May 29, 2015
Further, both times I’ve had to have technicians come out to poke around to work out what’s going on. The first time took a full four hours to suss out the building connectivity, including everything from calling the helpdesk to shining lasers down the fibre to work out which cable needed to be plugged in at the basement. These visits cost $300 a pop and it’s a total rort.
That it’s the 21st century and you can’t light up an apartment within five minutes by filling in an online form is boggling, and I just don’t understand how so much human intervention is required to get the data flowing over a damn fibre network.
The clincher I think is the all-’round lack of knowledge not just within Telstra where the teams are all siloed and don’t know what they don’t know, but also within the resellers of which only Internode seem to have trained their staff. Essentially, nobody knows what’s going on.
Crazy. While both NBN & ADSL2+ are available, NBN will be speed limited to 12mbps, which less than half the US definition of broadband
— Daniel Miller (@mandiller) May 31, 2015
New developments (like hopefully my new new place) will get NBN fibre, but existing premises aren’t so lucky. As I understand it the current plan is to buy back Telstra’s corroded copper network and roll out HFC and VDSL tech as far as it will go. South Brisbane on the other hand, is likely stuck with Telstra for the rest of time since it’s unlikely the government will separate them or buy up the fibre network any time soon.
Meanwhile the alternatives aren’t many. I’ve currently got a $140/month, 50 GB LTE service from Vodafone which is a reasonably attractive offer by South Brisbane standards but nowhere near girthy enough for my needs. The best Telstra and Optus can offer are 10 GB and 12 GB respectively which is laughable. Beyond that there’s no alternative but to capitulate and give Telstra your firstborn.
Three weeks later
I’m still waiting to be connected. I’ve spent nearly half a grand on Internet (and that’s before the laying anything down for a wired service) and I’m seemingly no closer to having my fibre box light up than I was when I started.
I’m kinda starting to think think I should just quit tech and become a barista.
Alchemize is a web app which lets you easily pretty-print or minify your source code. It's been a pet project of mine for a couple of years now, and it's really useful as a web developer.
Previously Alchemize was exclusively on the Chrome Web Store, and while it's still available to install as a Chrome app I'm excited to announce it's available online for even easier access.
I've gone to a bunch of trouble to fork and patched the libraries I'm using (a lot of them don't work out of the box) and included them in the NPM manifest so you can easily get to developing. If you're interested, check out the README for instructions.
If you're a web developer and haven't checked it out yet, you should absolutely bookmark the direct link: alchemizeapp.com/app
The concept is fairly simple: make a game in under 13 kilobytes with no external dependencies. The idea is to see what people can come up with on a budget, and it’s awesome to see some of the entries this year.
My game, Polar Defender, is a basic shoot ’em up on a polar coordinate system. It’s heavily inspired by space invaders, except you have to defend various planets from all sides at once. It’s heavily reliant particles and a basic polar trajectory system to provide messy, explodey space fun.
The theme of “elements: earth, air, fire, water” is optional in the contest, but I incorporated it into my level system (an earth-like planet, water planet fire and gas planet). It’s a /little/ contrived, but I think it works well in terms of playability.
I wanted to include a playable level system with a playful narrative since there’s only so much you can do in 13 kb and I felt it would make it a more personal experience. I feel it worked out well, with six levels (including an initial training level) on various planets and varying degrees of difficulty. After early feedback stating it’s too hard to finish in one go, I adjusted the menus to make each level unlockable rather than having to start over, which really improves the gameplay in a casual sense.
Touch input is significantly more difficult than desktop input because I essentially shoehorned the same concept in where it doesn’t really fit. If I had the chance to do it again I would introduce a separate tap-based firing system on mobile.
13 kilobytes is quite a lot in terms of raw code, but also a challenge to meet when including graphics, sound, polyfills and other boilerplate.
Minification of Polar Defender was done by hand and involved a lot of code tweaks.
The ultimate deliverable needed to be compressed into 13 kilobytes of zip file, which is roughly comparable to a gzipped distribution from a web server.
Some of the things I did which aren’t necessarily best practices include:
Strip unnecessary properties and pre-compile SVG files into a JSON file to be bundled into the main JS build process. This improves compression because there’s less junk and the SVG gets compressed in with the JS which presumably improves duplicate string elimination in the zip format.
Collapse JSON structures into CSV-like strings that can be reinflated later. JSON objects are super-wasteful in terms of repeated properties, and while compression algorithms are generally pretty good with repeated content, it’s still better to remove the duplicates where possible.
Globalise commonly used functions. This isn’t something I’d usually recommend but considering the constraints what the hey. Things like aliasing window to w and Math to m reduces byte-level repetition. Additionally keeping everything in a local scope lets Uglify optimise away long function names.
Loose comparison and other sneaky tricks. For instance using 1 for true and 0 for false saves 3 bytes per bool and works in a loose JS equality operation if you’re prepared to ignore JSHint complaining a lot.
Reuse everything. I reused a basic set of drawing functions and sprite classes for everything in-game, meaning each new feature was an iteration on an existing one rather than a completely new piece of functionality. See also entity component system on Wikipedia.
Further reading
In addition to my jS13k entry, I’ve got a side-build available in the Chrome Web Store which you can install and carry around with you. The main benefit is that your scores are stored in the cloud and unlocked content goes wherever you do.
Overall I think it worked quite well and I’m happy with the result. There’s some awesome games submitted so far and I can’t wait to see how everyone goes.
Use drawImage(img, x, y) to splat any image or canvas element down into your current context.
var canvas = document.getElementById('c');
var ctx = canvas.getContext('2d');
// load an image and draw it in!
var img = document.createElement('img');
img.onload = function(){
// Draw the image
ctx.drawImage(img,0,0);
// and some text
ctx.font = 'bold 40px Impact';
ctx.textAlign = 'center';
ctx.strokeStyle = '#fff';
ctx.lineWidth = 2;
ctx.fillText('MEMES AT #brisjs',200,40);
ctx.strokeText('MEMES AT #brisjs',200,40);
I've had the idea for a while that I've wanted to do a multiplayer game with friends via Dropbox, so I roped a few people like Tate into it and we found it works surprisingly well.
After a few rounds of back-and-forth I took the liberty of rendering out a mega-screenshot and setting it up as a zoomify image. (The stitching was all done by hand, so there's a few rough edges around city borders.)
Simcity 4 is by far my favourite version of Simcity. It has a sweet 2.5D aesthetic (3D models are rendered down to 2d on a fixed trimetric orthographic projection), but more importantly it has a large community of modders and lets you build massive regions spanning multiple cities.
Newer versions in the Simcity franchise sacrifice detail for simplicity and tend to be more "town building" than "city building" sims. Of the newer games I prefer Cities XL (which I feel redeemed itself after a botched launch and a few re-releases), but it's difficult to go past the homely charm of Simcity 4.
I spoke at the Web Directions What Do You Know night in Brisbane tonight. Here's a slightly more in-depth version of what I talked about, with links to all the good stuff. You can also view my slides though they're quite large.
Recently the Google Maps Mania blog wrote a post entitled “The slow death of the Google Maps API”, not so much lamenting the demise of Google Maps as much as embracing the change that’s occurred in this space and it got me thinking.
Google Maps used to be the only real solution to showing maps online, and I’m sure you’ve plopped down the Google Maps embed code on a contact page in your day. But lately there’s been a lot more choices cropping up in both software and services so I’m going to quickly go through some of the cool stuff you can do with maps.
Mapbox: probably better than Google?
Firstly I’ll mention that in my opinion the main competitor to the Google Maps API right now is Mapbox. Mapbox has a bunch of services and APIs for both apps and the web, and you should check them out if you haven’t already (their blog is well worth a read too).
They have a sweet web interface that lets you completely customise your map styles and content, and offer a bunch of goodies for creating and managing maps including TileMill which is the ultimate map mashup customisation whatsit.
If you’re looking to plop a map onto a contact page these guys can absolutely get you there, but if you’re looking to do a full-on data visualisation they’ve got you covered too.
Leaflet
Mapbox are throwing a lot of support behind open source tools like Mapnik, Node and especially Leaflet.js which is the BSD licensed mapping library that most of their service runs on.
Leaflet is especially nice to use as both a user and a developer because it’s it’s super-fast and works well even down to IE7. It's completely styleable with CSS has excellent touch support for mobile devices which makes it really awesome if you need a responsive maps solution.
In terms of data visualisation, it uses SVG by default (with a VML fallback) or you can draw onto HTML5 canvas if you don’t need IE8. There's also a large number of modules you can use, both official and otherwise.
Heatwave Tracker
I’ll briefly mention the ABC News heatwave tracker which I did late last year, showing an animated map of temperatures for the past week.
This one was originally going to use Google Maps but had some performance issues on mobile that prompted the move to Leaflet.
This visualisation ended up using the basic Leaflet API to draw circles for each weather station and animating them using requestAnimationFrame. Under the hood Leaflet created a SVG circle for each of these points which turned out to be hardware accelerated to varying degrees across browsers, so it was super fast with around six-hundred data points updating at sixty frames per second.
There was no particularly tricky code involved in this, it’s all just using Leaflet’s standard APIs without any optimisations on the map side of things. The Leaflet port from Google Maps took about an hour which gives you some indication as to the effort involved.
This feature used a combo of Leaflet with a bunch of custom code to create a collage of maps, images, and audio showing the history of air travel. The most interesting feature is the html5 canvas-based visualisation showing all the planes in the sky over the last twenty-four hours which you can zoom, pan, and explore like a traditional map.
It's kinda mesmerising.
This one was commissioned by The Guardian and built by Kiln who I have somewhat of a map geek crush on right now. They used TileMill for the background layer (I had a suspicion!).
@k_i_l_n@AshKyd In more detail, Natural Earth polygons + SRTM30 elevation data processed with gdaldem for the relief shading layers.
But Leaflet isn’t the only client-side library that’s doing interesting things in mapping. While Leaflet is positioned as a more traditional Google Maps replacement, D3 takes a more data-driven approach to visualising geodata.
Well D3 also has geodata functionality that can do wonderful things with more of a focus on your raw data rather than a traditional map.
This demo is from the D3 geo.projection plugin shows a few of the different types of map projection you can use in your projects, and you can see the way the map is animating between different projections that the library has a lot of power over a traditional flat map.
Earth
While this isn’t something you’d usually use in itself, it does lend to some interesting ways of visualising data, such as in the Earth global weather visualisation by @cambecc.
This is a really compelling mashup of wind, air pressure and temperature projected on a 2D globe then animated to show about as close as you can get to real time world-wide weather conditions.
This demo uses D3 and Backbone.js to display data which has been pre-processed from a number of different sources. It’s using the orthographic projection of D3 which presents a sweet 2d globe effect which you can spin and zoom to explore the nuances of the planet.
Because this is using the HTML5 canvas as a 2d drawing platform, all the individual data points you see moving on the screen have to be calculated each time you adjust your viewpoint. This is all done in D3 rather than on a GPU for instance, which might not be something you'd do in a super-high performance situation, but it's a really good demo of what D3 is capable of.
Google is still good…
Google Maps is still great, but they've really been focusing more on the consumer with their offerings of late.
The new version of Google Maps is a fantastic use of WebGL and is really a showcase use for the technology, but you can't develop against it for use in your own apps. In terms of the Maps APIs they've stagnated over the years and as a result we're seeing more innovation from other players rather than Google themselves.
So next time you're looking at doing anything to do with maps, check out some of the alternatives. You might find yourself getting more done, doing cooler things and generally looking better among your peers.
What does everyone else know?
If you weren't at Web Directions What Do You Know, here are some the other talks from the night.
Just a quick rant because I’ve been trying since October to get myself set up with fibre Internet in South Brisbane.
A little background for those of us who don’t know: South Brisbane fibre is wholly owned by Telstra, and isn’t part of the NBN. The plans are different, a lot of ISPs don’t seem to bother competing here and everything has to go through Telstra’s wholesale division.
The unit I moved into has never had a landline connected so I got hit with a ~$300 connection fee straight up. Initially Telstra thought there was a connection at this address and disconnected my landlady next door, taking out her phone and Internet for the better part of a week which was a massive pain. After that it took about a month for them to get around to installing the network stuff in my unit and another month for me to convince them it wasn’t working and come out to actually plug the fibre in at the comms room.
It literally took four hours for the poor tech to unravel the network here and get it connected. In the process I think he unplugged the line into another unit where the tenants were trying to get their own Internet connected, so they’ll probably be hit with the $300 connection fee as well.
The tech was a funny guy. Reasonable enough, although he asked me to fix his computer while he was working which was a bit awkward. When he finally got the line connected he confirmed with me that it was 30 mbit, at which point I mentioned I was trying to get 100 mbit and that something must be wrong. Before telling me that 30 mbit should be more than enough for my needs he mentioned that Telstra Wholesale only goes up to 30/1 mbit and that I’d have to sign up for a Telstra plan if I wanted to go higher.
I was pretty mad at this point, but hey, I had Internet for the moment.
Since then I’ve spent another month chasing iiNet trying to get the bottom of the 100 mbit situation. iiNet themselves have never heard of the 30 mbit limit, they’ve verified on their end that I should be getting 100 mbit, and have been super reluctant to chase it up for me. I’ve complained by phone, email, Twitter, all the while being told that someone would chase it up for me and give me a call back, or email me, or follow it up internally somehow.
I just called up now and they have no record of any of the email or phone correspondence I’ve had, the guy has reiterated that “it should be fine, have you tried power cycling your modem?” and asked me to plug my PC directly into the wall. (I’ve already done this when I initially reported the problem, I even had to borrow a laptop with Ethernet from a friend to do so.)
There is something really wrong with this line but I’m so damn tired of chasing telcos to get it fixed. pic.twitter.com/ooJvBPmb1q
Meanwhile my practical speeds with two separate modems are fluctuating between the full 30 mbit and 0.5 mbit/second depending on the stars. I actually had a 700 millisecond ping to Speedtest.net this morning.