Search This Blog

Wednesday, June 21, 2017

What's wrong with Game Guru?

Long post warning!

Let me start off by saying I don't want to diminish Lee's hard recent hard work.  A little context before we begin.  About a year ago, Game-Guru had stagnated.  A great many of us felt that the project was being let go in favor of another, bigger project.  After all, we've been through the following already:
  • Several kickstarters
  • FPSC X10's failure
  • A C-code rewrite
  • A few years of semi-active development
  • A few "big updates" that were little more than content drops.
  • A rebranding (Reloaded to Game-Guru)
  • Several new product launches for unrelated projects (AppGameKit, MyWorld, etc)
  • A very long stagnation period (on the order of about 6+ months).
Despite not reaching stated milestones for the initial project, I think it was felt that this project was probably nearing it's endpoint and that we wouldn't see much coming in the future.
I for one, started to drop off the radar.

Then, suddenly, Lee really got his shit together.
Like monthly updates became a thing but not only that - they were substantial.  The EBE (easy building editor) which was stagnant for like.. literally around two years got off the ground.  This is, was, and will remain seriously fucking cool of him. 

Multiple codefixes were done.

Major updates were included with some hard work by one forum member who rewrote a number of shaders and was selling them separate.   Lee opened up the LUA code significantly.

Yet recently I dove in to try to get my weather system finalized for sale (it is, though I have to get it on the store yet which is always a monster, monster chore).

So my son has been making some really awesome stuff lately.  My weather stuff is almost done for the version 1 weather and time of day system...

That's when we run into problems.  Things which are glaring, GLARING monsters in the room that need addressed.  I'm going to go into them in no particular order.

Culling, culling, and more culling.

If there's one thing that absolutely DESTROYS this engine, it's the seemingly total lack of culling being done.  Here's a prime example.

My son built a nice little house using the EBE.

Not my son's house, but a good representation nonetheless.

This house had probably a few hundred trees around it. They weren't anything special.  Trees, by the way, are the Anti-Christ when it comes to Game-Guru.  They have too many polys at too odd of angles and it just nukes performance.

EVERY DAMN TIME

So anyways, we're inside this house and literally there's nothing in there - just a few floors, no windows, and some solid walls comprising a room.

And at this point I notice it's running like a leg-less dog.  I mean it's just absolutely CHUGGING - 8 fps.  12 fps.  My machine is no slouch.  I have a  quad core AMD 3.2 GHZ, 16GB of very fast gaming DDR ram on top of a gtx 960.  It isn't top notch, but it's damn quick.

8 FPS is just painful. So I open up the tab screen and check and it's got massive computations for polygons that aren't even showing.  I notice it's only happening when I look in the direction of the trees.

There's ZERO good reasons for this.  Those trees should be completely occluded (occlusion was at 100%) and completely out of the graphics processing pipeline, for all intents and purposes.

Performance is a major issue right now and culling would fix 75% of this, by my estimate.

Trees for instance would be significantly less obtrusive if they weren't trying to render all of them simultaneously (including ones three layers behind the current front row).

The goddamn sun!

So obviously this one is near and dear to my heart.  The Sun is a fixed object, immovable from a level standpoint. While some good progress was made by breaking out the sun's shadows into their own source, it is something that I just cannot see being a viable thing - a fixed sun makes level building difficult on so many areas.  Your skies have to be perfectly aligned or it looks absurd. Sci-fi levels (in space, no ground/etc) always have a mystery light coming in.  Nighttime maps have 5pm shadows.  On and on it goes.

The inconsistent handling of third party objects by AI.

AI supposedly has come leaps and bounds over the past few months.  I honestly couldn't tell.

One of the biggest benefits of using Game-Guru versus any other engine is the massive library of cheap or free objects.  These objects give you a huge amount of models to work with at a tiny fraction of the cost you'd spend in other engines.

 
Let me just stand here, at this fence and try to figure out why I can't walk through it.


I use a wide variety of objects and while there are fixes for this, they don't work most of the time.  AI still doesn't know how to navigate around half of the stuff out there, specifically dealing with interiors.  It's frustrating to have them just stand there unable to move while you have this beautiful level made up.

Water levels and terrain generation.

Over the past few months I've tested out other engines (Unity, Unreal, Lumberyard) and come to discover they have a major advantage in terms of rendered terrain.  I will say I'm happy to see the random terrain generator has returned to it's previous iteration but that's not to say there's not room for improvement.

The fact there are two modes really doesn't escape any new users.  Flat level vs 'Random Terrain'.  Cool.  I'm not asking for much more than that.  I would, however, love the ability to actually import my OWN terrain from an actual terrain generating system that provides far more realistic looks and value than what's available from me spending probably on the order of hundreds of hours making my own terrain.

I'm lumping water in with this because the fact the water plane cannot be adjusted in-game is a major travesty.  This simply not tenable to have a single water layer that is completely and utterly immutable.  I don't know what else can be said on it.  Before any other work is done with water, we need controls inside of the GUI which will allow adjustable water planes or better yet, MULTIPLE water planes with their own individual controls.  Now that, right there, would be some seriously cool stuff.

A real development environment.

I've said this before, and I'll say it again:  I would be willing to pay more for a professional-grade version of this product.

Simple? Yes.  But it feels like using crayons to try to paint a Rembrandt.

This is tremendously important to me.  I use several enterprise-grade tools in my day job as a Linux Systems Engineer at a Fortune 500 company.  I've grown to appreciate their simplicity on the surface while having a deep undercurrent of customization for those looking for it.
I've also worked with a plethora of engines in my 20+ year journey doing indy-video-game goofing around  and let me tell you that unequivocally this is one of the worst interfaces I've ever used.


To be fair, at least it's not Blender Game Engine...
I don't know what it would take, but I'm tired of the tool being aimed at people making indy games but having kiddy-pool level controls.

There is literally NOTHING I hate more than the inventory management system. NOTHING.


It just seems like a cop-out at this point.  I mean how hard would it be to add a simple set of checkboxes for options that are ALREADY in the engine?  It can't be that difficult.  These are settings that are already being assigned.  Why not have a search function or meta tags for your objects?  Why do we *HAVE* to scroll down through that terrible little list on the left of objects for our levels?   Why not have a simple game properties pane?  Something where you can adjust settings outside of being IN a test loop of the game?  I shouldn't have to load the damn thing just to configure it.  This is *ESPECIALLY* onerous when you have a large level that needs a simple edit and you spend 10+ minutes waiting for the AI to compute it's paths (which don't work anyways) just so you can change the skybox or fog levels.

We need an option for level properties.  A properties pane.  A way to pass variables through the GUI to objects (say to pass a specific starting value to AI).  Lots of little tweaks.  I don't mind if you keep the kiddy-tech exterior, but give us more under the hood here! 


Better component pieces.

Let me just say the Character Creator has REAL potential.  The EBE was a great piece and if he keeps at it, it will add a massive amount of value.  These pieces come to us raw and unpolished though.  The original thought is good.. mostly.  But the implementation is kind of ugly at times.

This is about as good as you can manage for a custom character.
The female characters, for instance, have some godawful hairstyles available.  But moreover, there's a lot of potential for the character creator.  There's a huge amount of variability there and it really gives the engine the feel of being a REAL engine with big boy pants and everything.


Conclusion..

I realize this comes off as a bit of a bitch-fest but we're talking several years of development and it's just ... disappointing.  Less so than previous years, but still disappointing.  The performance is abysmal.  The interface is atrocious.  The fixed sun is a throwback to 2004.  The AI is embarrassingly bad.

All that aside, it's come a long way.

Given Lee's current pace I can only hope he sees this and gets inspired to bang out some quick, meaningful changes that will produce big results from low hanging fruit.

With all that I just want to say thanks to my readers for sticking with me, the community for Game-Guru for sticking with the engine, and Lee for sticking with the project.  It's been a long road and there's miles to go but we're getting there one patch at a time.


Wednesday, May 17, 2017

WTF is up?

I've been super busy with work.  I work as the Chief Linux Systems Engineer for a fortune 500 company so I'm ... pretty loaded down right now.

I want to release my weather system code soon but I can't get time to do it.

I may talk to Lee Bamber directly and see if he's interested in it as part of the game-guru package.
The fact is the money I make these days makes anything from Game-Guru store sales peanuts so it's not really worth me doing much with as is.  It's hard to find the time aside from that with two kids, a wife, homeschooling, etc.

I like the changes I've been seeing with the release to Lua code for GG which allows full FPS/3rd Person controls.  This should really allow the engine to take off and while I realize some people want this engine to be a simple cookie cutter builder I believe that this is an important step towards legitimacy and allowing people the real tools to work.  I'm a huge fan of open source and crowd sourced intelligence.  Let me quickly explain my rationale on that.

Let's say you're a highly intelligent person.  You design and make an awesome widget.  This widget is a revolutionary leap forward and as such, it provides the common man access to high end tools at a fraction of the cost.

However, it's laden with side work such as debugging, test, analysis, etc.  These unavoidable components which simply eat up your time.  Progression falls behind and soon the product is unavoidably behind even the worst competitors.  Sound familiar?  It shouldn't.  It's the story of Game-Guru.

So given your inability to pay for a large service staff you're forced to do all that work on your own.  This eats up your one truly finite resource: TIME.

Now imagine you take say 30% of that widget and you open it up in a modular fashion.  You break out components into individual chunks which are easily digested.  You then allow several hundred people access to do whatever they want with it, but it won't modify core components.  This is effectively what Lee has done. 

Now what you've done is created a human parallel processing array of sorts.  It's an engine of great power; you have hundreds of people all designing and modifying - creating new things you'd never have time to even conceive of, let alone implement.  It provides a near-permanent longevity to systems that dedicated people will use out of familiarity even in the face of something newer or better.  Take the Fallout New Vegas modding community which is STILL extremely active to this day and makes fantastic, HUGE projects that are whole games in and of themselves.

THAT is the power of open sourcing your code and allowing modding to really take it's course.


Monday, May 15, 2017

How to actually get a job in high-end IT and/or overcome huge odds doing it - Part Two

So last time (see part one) I went into depth (ok, a little too much depth) about my past as a bit of background to show two key features of my life which I feel are important for the readers of this to know.

  1.  I am of minimal formal education.  As such, I am not a massive proponent of going to college (especially with the modern emphasis on useless degrees instead of more rational ones like comp/sci).
  2.  I have been through some serious shit* in my life.
*serious shit includes but is not limited to: family upheaval, near fatal physical illnesses, crippling bills, lack of income, tremendous pain/physical injury, emotional turmoil from relationships, etc. For a more complete (but still partial list) please reference the 'part one' link above.

While I am grateful to eventually to have ended up being a 'phone monkey' it was a massive downgrade from being a junior sysadmin or programmer and I wasn't content to stay there.  For years, I tried in vain to get out of that position.

For reference on how soul crushing this kind of work is to anyone of meaningful intellect, watch this video (which was actually given to us as part of our training at Earthlink, if you can believe that).


As you can see, it's a miserable experience.  A minimum of forty calls a day.  I moved up quickly to other things in the company (livechat support, email, etc).  But at the end of the day, it was all the same only more of it.

Then came the day Earthlink fired us all.

Well that's not necessarily accurate as it happened in waves, but the first wave came and I recall it being the largest.  They got severances, good deals, etc.  The latter groups (such as mine) were basically screwed on the way out.  No big deal, water under the bridge at this point.  Even at the time, I was happy for it.  I hated working as a support person.

So I tried opening my own business with some seed money from my grandfather.  And while the business was successful in the sense of generating money, it was unsuccessful for a lot of other reasons - namely insufficient money to pay the bills.  So it was income positive but insufficiently so.  The time came for me to find another job.  I heard through the grapevine Sprint was hiring and so I went there.  They paid well but the work was savage.  The environment was extremely rigid; the calls non-stop.  At least at Earthlink it was laid back and there was a break.  That said, it was "real money" so I was satisfied at least once every two weeks (i.e. payday).

After six months I realized this place was even worse than the last in terms of spiritual drain.  So I tried everything I could get out of it. I applied at state jobs.  I got my civil service exam done.  I received offer letters to interview then never got calls back.  Something was torpedoing me and I couldn't figure out what.

Seven years pass.  During this time I sought internal promotion, got it several times, but was still unsatisfied. At some point it was recommended I talk to a headhunter.  I did this, but really not on a broad enough basis to matter (as we will discuss later).

The headhunter promptly lined me up with one phone interview (for a woefully underpaid Linux Asterisk Server Admin job) that I didn't pass because I didn't have existing experience with Asterisk PBX.  Well news for you buddy, no one is going to take 50k a year for a job that pays 90+ when they have the experience.  But hey, that's life, right?

Which brings us to our next lesson:

Employers always ask for more than they can feasibly get.  If they ask for 10 years, they'll take five.  If they "need" a degree from college, they'll take substituted years in work experience.  If they want you to know x,y, AND z but you only know x, q, and b - that's probably enough. 

The above is *MOSTLY* true.  However, as I found out later, sometimes they use unreasonable qualification lists to disqualify American candidates to hire H1B workers.  Video for emphasis:


I've been to the second round interviews for companies like this.  You'll know pretty quickly by their ambush-style tactics and methods that they don't want to hire you.  Just dust yourself off and move on.

So after ten years in internet telecommunications doing support work of varying degrees and rank I decided it was enough to take drastic action.  I applied to dozens of jobs and emailed my old boss (the one who I quit from shortly before being sick).  I devised a plan to get a good job within five years.

He invited me to lunch and we discussed Linux, work, home/family life and providence.  Providence, for those who don't know, is effectively 'God and his subtle guidance on your life.'

I was offered a job strangely at 1am the next day (a Saturday).  The pay was an approximately 15,000 dollar reduction but the experience would be solid gold.   I took the hit for the experience which I realized was crucial to get where I wanted to be.  A nice side bonus is I'd work more normal hours, vs the awful schedule I had at centurylink (which is what Sprint, LTD eventually morphed into).

Lesson: Sometimes you really do need to go a few steps back to go many steps forward.  It's a completely accurate platitude.


The next few years were hard.  I had frequent clashes with my boss the first year; our personalities were still very abrasive to each other.  I made stupid mistakes that he in turn got frustrated with.  I learned, however, and improved.  I scraped my way to higher pay, though it was ... not enough.  I ended up making slightly less than I did at Centurylink and after 3ish years I ran into another situation with my boss at the time.  Ironically I was going to ask him for a 5k pay raise (which from 52k was not exactly significant).  However he came in that morning and raged at me about something absolutely stupid.  While normally this would be depressing I instead got furious.  I held back my tongue and immediately applied to several Linux Admin positions I saw online.

THIS TIME THEY REPLIED.


Why?  Well, in retrospect several things of note happened during this time:
  • I got relevant work experience.  I had it before, but now it was in my recent history. 
  • I asked for a copy of a resume from a co-worker so I could compare against my own.  I don't recall how this went down but he advised I clean mine up using his as a template.  I did.  I think this alone had a huge impact on return contacts.  Simply put - get your resume professional revised or find someone who has a good resume and copy it's format.
  • I accomplished some actual things of value.  This is important because employers will ask you for specific situations during interviews and you need to be able to say "Yes, I did this".
What's important here, and I can't stress this enough, is you have to put in your time.

For some people that time is college.  Other people, like me, do it through work experience.  For almost a decade though, I was trying to jump the line to my 'Linux admin dream job' and only after I  took myself down a few pegs mentally and went to do some grunt Linux work did I actually get a shot at a real job.

In prep for this, I did the usual spat of pre-interview stuff you'll read anywhere:
  • I researched the job. 
  • I cleaned up my resume and tailored it for the job I was applying for. (I often use multiple versions of the same resume depending on the job I apply for)
  •  And most importantly, I bought a good suit.  I went to kohls and got a 600$ fitted suit (learn to take your own measurements first here: http://www.us.thomaspink.com/HowToMeasure/content/fcp-content which was on sale for 50% off.  I made sure to show my prospective employers that I took their job seriously enough to buy a new suit; this remains my 'get a job suit'.  Every interview I've gone to in it, I get a job.  It's that simple.

Lesson: Buy a good, fitted suit.

I got the job.  It was a contract job, which is another important piece.  So many little things here.  Most people, myself included, are scared of contract work.  However having done it, it's so much easier than regular work.  You get paid more, the expectations are lower from your employer, and you get into 'the network'.

Lesson: Get into the IT-contract pool 'network'.

There's a magical place in IT where people actively try to hire you.  They find you.  They email you. they call you.  You get offered jobs without being asked.  This only happens when you are in the contract pool network.  After I took my first contact job (making 20k more than I made at my previous full time job, mind you) .. I started getting calls from headhunters.  Eventually I moved off to another job making around 100k six moths later.

Let me reiterate.  Once I made the necessary life changes, put my time in for Linux administration, adjusted my resume, bought a suit and became willing to do contract work... I went from scraping by on a single income of 52k per year to 100k+ year.  This contract job turned into full time work paying approximately 85k/year.  This is the price you pay for security (and health insurance).   And honestly, I was satisfied with that. 100k+ was nice, but 85k and a secure job were hard to beat.

Of course, I was still in the network.  I kept getting emails.  I kept seeing headhunters - never spurn the headhunter call.  Stay on their radar as much as you can - at worst you get a free lunch out of it (they always love meeting you for lunch).  When a big job comes in, you are their go-to.

So there's a lot of moving pieces, as you can see but it's really not that complicated.

In part three, we'll go into the interview process and how to approach it.













Monday, May 8, 2017

How to actually get a job in high-end IT and/or overcome huge odds doing it - Part One

So I realize that a lot of people out there really don't come to this blog for this, but that's ok - I'm going to talk about it anyways.  This post has been a long time coming.  I've told people this story one on one but never written it down and posted it.

(The following story is true and without my usual embellishment)

First, a little backstory.


I'm an IT professional. Specifically, by trade I'm a Linux Systems Administrator/Engineer (depending on what company I worked for).  What makes me an aberration in most people's eyes is I'm minimally educated from the standpoint of traditional education.  I spent time at four separate high schools and was primarily pursuing an education in programming.  I was, at the time of my graduation, a fairly proficient C programmer.  I could program in Basic, Pascal, C, Hypercard, and a few other languages.  It was a good smattering of skillsets.  My last two years were spent in a local Vo-Tech High School.  This ultimately prepared me for my path.  My teacher at the time felt it was important for us to know Unix (specifically SCO).  So we were taught some basics about Unix and shellscripting.  I had an advantage having already been familiar with  writing some fairly complex batch files for DOS.


Anyways from there I went straight into industry.  I worked co-op my senior year (which means I spent my shop week at an actual job).  Then I was picked up by said job to work full time.

Sounds easy right?  Just turn back the clock to your late teens (19, specifically) and away you go!

Then it all went wrong.


It started with an intense amount of stress at work.  I'd been demoted because I was 'better with hardware' (code words for: "I want to pay you less and still need a sysadmin").  My boss was not an easy man to work for.  He and I clashed regularly.  I began getting sick.  I was puking every day at lunch and assumed it was the stress.  So one day, after a particularly heated moment, I handed him my "I quit papers" as he handed my "You are fired" papers.  By the way, this is a bad idea.  Let them fire you, because I found out later I had invalidated my ability to get unemployment compensation by handing him an "I quit" notice.

A week later I had a bruise on my hip that really hurt and kept me from moving much.  I also felt MUCH sicker.  The vomiting increased and the lump on my hip got huge.  Like 'literal size of a grapefruit' huge.

I saw my doctor, who referred me to a specialist.  Side note: when I quit we were switching insurance at my previous job so I had no coverage, not even COBRA.  This becomes relevant shortly.

The specialist informed me that my lymph node was necrotic (the tissue was dying inside me) and filling with fluid.  The vomiting was caused by the pressure it was exerting on my lower intestine, making me unable to process waste.  He said this was all extremely bad.  Given my age and the size/disposition of my physical symptoms it was a fair chance I had Hodgkin's Lymphoma.  I was also told that IF I had it, given my state, it was safe to assume I had three or less months to live.

This is a pretty rough thing to hear when you are 20ish.   I took it by basically going numb and saying 'well.. fuck it, not much I can do about that, right?'

Up to this point there'd been a lot more in my life that'd gone wrong.  My father was abusive.  My parents divorced, remarried because of me, divorced again.   I'd been disowned by my father about a year prior, etc, etc.  A lot happened in those previous years.  Point is, I was no stranger to problems.  This is helpful.  I think if I'd have lead an easier life, this might not have been so straightforward.

As it was I'd already lost 30+ pounds to this point from a starting weight of 155.  I looked and felt like shit.  I'd lived through some shitty years already.  Being told I had possibly three months to live was just another step in a trail of bullshit stretching back years.

The specialist then drained the black and purple bulge on my hip with a huge needle called a lance and scheduled me for surgery (a biopsy).

When I went in for surgery my blood pressure was 80/60.  I know this because the nurse said "Your blood pressure is 80/60... how are you still conscious?!"


I shrugged and got my surgical work done.  I awoke high as a kite (I recall talking incessantly about wanting to go to college for programming with my eyes closed to the guy next to me and him saying 'can I be on what he's on?').  This eventually calmed down... They then informed me that they removed two lymph nodes because they could tell they weren't cancerous because it was just laying there and not wrapped around anything.  They sent them down for biopsy and I'd hear back soon what it was for sure.

Lesson One:  Never, ever, just 'give up and die'.  And believe me, when death is hovering around like a vulture, you WILL feel like you can do that.

I felt okay for a while and they let me walk.  This is where I discovered I had an allergy to morphine.  There's nothing better than having to violently vomit after having abdominal surgery - ask a woman who's had a c-section for details.

Anyways, fast forward a bit.  I spent a week on a couch recovering.  At this point, my fiancee at the time quit her job because of stress.  So now I was neck deep in medical debt (approx 21,000 dollars) with no savings and now no income.  I had to work .. and I had to work fast.

In retrospect, I should have declared bankruptcy  or asked for more help from family at this moment.  But I didn't because I'm proud and stubborn.   Consider that lesson on the house.

At this point I was in deep shit.



Lesson Two:  No one else can dig you out of your own shit better than you.  So shut up and get busy digging.

I need a job and I needed one fast.   So I applied at <NONSPECIFIC POSTAL COMPANY>.  Now imagine this, if you will:  a sickly, pale, 121 lb waif of a man going to apply at a job that requires you to be able to minimally lift 70 lbs.

At the <NONSPECIFIC POSTAL COMPANY> center I worked at, the first thing they would do was try to make you quit.  They'd deliberately put you on the worst jobs in the building to beat you into submission.  From what I saw there, it was overwhelmingly effective.

I did not quit.  What choice did I have?  I would get up at 2:00am, throw a bandage over my still draining surgical scar and drive to work to do heavy lifting for 5 hours at so-so pay. At one point I slipped a disk in my back and didn't have enough money to see the doctor to find out what it was.. so I just kept working in excruciating pain until one day it slipped back.  To this day, I have back issues.

For the first two months I came home, looked at the full length bruises running up and down my arms, slapped on some Ben-gay, and passed out for a few hours until I had to get up to live/eat/work again.

I guess the lesson here is sometimes the best you can do is all you can do.   Sometimes it's not enough - my money wasn't sufficient to pay bills.   Sometimes you need a little faith in god (sorry to be preachy).  I'm not the begging kind, usually.  I would simply say my prayers and try to remember that sometimes these types of things served a purpose.

Lesson Three:  Trusting in god is hard, but will help sustain you.  Even if you can't, just do the best you can and know that it's enough as long as it your best.

After Six months I was at a martial arts tournament (weapons fighting with foam padded sticks) and broke my hand as well as tore a ligament in between my knuckles.

Here's the thing.  Everyone told me to go to work and pretend I did at work to get unemployment.  I couldn't do that because...

My work ethic matters to me.  (Even though I missed out on short-term gains).

This isn't a lesson really.  Just a statement of fact.  Your miles may vary, but I find that personally speaking, I couldn't be unethical. I'm not saying my life wouldn't have been marginally easier at that point.  I could have coasted by doing nothing for a while, for sure.

Instead I used my union health insurance, got my hand in a 'beer can cast' and went out and found a job by using my newfound dogged persistence.  On top of that, I was in much better physical shape.  My nickname at <NONSPECIFIC POSTAL COMPANY> was 'The Ant' - because I was one of the smallest guys there and could regularly lift more than my body weight.  Kind of silly, but I took it as a badge of pride.

A week later I was employed at Earthlink, Inc. doing basic phone internet support.  Now previously (for almost two years, mind you) I'd worked at the other company doing programming and systems administration work.  This was a big step down, but they paid really well compared to <NPC> or my previous IT/IS job.

Did I mention they had a typing test where you needed a minimum 40 words per minute to get in?  I passed the test with one hand in a cast.


Lesson Four:  It's amazing what you can do when you are REALLY REALLY DETERMINED.


That's probably enough for now.  I'll write more as it suits me, though luckily this is a topic I'm passionate about so you'll probably see more soon.

Oh and for those interested... the illness wasn't cancer.  It was CAT SCRATCH FEVER. 

And here I always thought that was a fake illness made for a song.  Nope, it's real and it nearly killed me.  So if nothing else, you learned that.