Over the last year I've been experimenting with writing my own home game engine, initially I spent time writing my own line rendering and then a wrapper with SDL2 all using my own mathematics library as a refresher.
A blog about my rantings, including Games, Game Development, Gaming, Consoles, PC Gaming, Role Playing Games, People, Gaming tips & cheats, Game Programming and a plethora of other stuff.
Friday, 19 August 2022
Home Engine - Set Course for Vulkan
Friday, 5 August 2022
I hate FizzBuzz and Will Analyse anyone who uses it
One FizzBuzz Interview so far.... News flash... The moment I am asked to write FizzBuzz during a technical test I intentionally stop and ask the questions from there on out. I've done this a couple of times. And you know what I learned... I learned a whole lot more about the interviewer and their processed than they found out about me.
Let me take you back to a technical interview I had about five years ago.
I drive up to the building, it is way out in the sticks; just about still in my home county, but so obscure it's in a part I have never ever been in.
It is a sweat shop. I was not only right, but so happy I'm driving off.
Prior me: Just coming into edit this before it goes live on Friday, guess what I'm watching...
Friday, 29 July 2022
Embarrassing #3: Source Control
We spin far forwards not to around 2016; and the development manager wonders over to me and asks my opinion on source control software. GIT. Is my reply, just Git no other shenanigans. But he wants a report.
I duly go take a look... I've suffered CVS, SVN and a myriad of other source control solutions, Git has always worked solidly for me, in over a decade I've had one fault with it - and was able to recover from that problem easily. That is fabulous uptime for me and nearly zero support because anyone using my repo's could just learn (or google) a bit of git.
SVN was the other main source control solution I advocated, it's issues are many, but it worked for the problems I was dealing with (indeed on my youtube you will find subversion tutorials from back in the day).
This manager however wanted more than opinion, I wrote him a pro's and con's, I went to the public for their opinion and looked at a few closed source alternatives; like perforce.
Cost was a MAJOR issue for this company, the cost to install Git was zero. The cost to install Perforce was nearly £27,800. It was a clear win win for Git and vouched for it again, arguing it'd be better to pay for a whole other junior developer; or paying the ones we have now that little bit more each than going for Perforce.
(And I'm being harsh here, but I don't like perforce, I see the "game industry" using it as a default goto, but I do not see why, it has bitten me more than a dozen times in four years of heavy use - I compare that to once in over ten for git and it's just a no brainer even before the costs; and git will do the huge repo's and do them better than perforce can - which was the default argument before that git didn't do huge repo's or source tree's... erm, hello, Linux is completely on it and huge.... Microsoft have moved to it, so windows, edge and so much of their stack is all hosted on git repo's - stop arguing for perforce, it's embarrassing, seriously).
So this manager took away my report.
They bought Perforce, six months later, he's getting the nagware for license renewal, per seat. £12,000. This just beggars belief.
The manager was wrong, the money was spent, the company still disappeared with a whimper, it was a waste. He should have been embarrassed by that; I doubt he was.
But the management should have been far more embarrassed letting him operate the way he did.
Friday, 22 July 2022
Embarrassing #2: Threads
The next story of embarrassment is one of my own, after my experience in my degree I literally specialized in the Borland implementation of the C++ compiler, and the Turbo Pascal one before it. Java was new on the scene, and so my first job was to go port old Pascal programs into C++ all using C++ Builder.
At a trade show I was poached by the head of finance of another first, not a rival, a completely other market sector, but she wanted me to work for her... I therefore did. And this meant a physical house move in the process.
This woman being the head of finance would be important later down the line, as she had an idea where I would sit in the business and I duly showed up. In actual fact I showed up so early I entered the property without permission through an open door and caused a bit of a stir because I was all alone; and could have been anyone not just a new employee.
So I began work and the data processing they wanted was incredibly slow. This was the era of the Pentium III being king, and my machine was a 400Hmz machine, not a slouch for that year. But still it was very slow, you had to take a feed of data from IO and process it live; not all of it could fit into memory; so you often had the process spinning waiting on the disks.
I delivered the first iteration just like this, a single inline 1:1 just get her done. It was horrifically slow. My embarrassment? I didn't even understand why it was slow, the manager looked at me; sternly, this kid he didn't really want, and pointed me to "BeginThread".
There wasn't any internet access, no stack overflow, you had to learn by the seat of your pants. So I cracked open the windows headers for threading in Windows 95 (I forget the SDK version) and start to look at starting a thread. I had to read about MFC too and a bunch of other stuff in this Microsoft compiler which was not in Borland's; or was different.
With these old eyes I look back at this episode and I laugh when kids today complain about std::thread, lambda's, Futures, Async dispatch. You guys do not know how lucky you are!
And I was embarrassed by not knowing this stuff, worse still was going home to my machine at home, and not being able to follow any of this up, I could read about things, make notes, but not implement any of it; for my machine at home I only had the Borland stuff (and a pretty penny I paid - unbeknownst to me they would soon give away C++ Builder on PC Magazine cover discs).
Ultimately today, to me, this is a lesson in the history of compiler differences between vendors, but at the time I was mortified. I promised myself I'd never fall behind or out of step like that again, and I've so far achieved it. Though I had to admit to being off the boil with C++20 right now.
Friday, 15 July 2022
Embarrassing #1: Plagarism in Academia
And why am I doing this? Well, in the move from immaturity to now I believe a true part of blossoming as a software engineer has been to embrace ones own failures and not repeat them, and identify them in others and work around them, encouraging them to improve.
Unfortunately my first story can't say it improved me or the person whom embarrassed me... We spool the clock back to 1997. I was in the middle of my degree and I received a very worrying letter between two semesters, my exam results were on hold... Because of plagiarism.
This is presenting someone else's work as your own, I think I was and am a pretty decent software engineer, so I was a bit perplexed. What was the topic, Data Structures?
This was a (looking back on it) rather inane module in my degree's second year and revolved around our implementing out own versions of the classic data structures, so yes list, linked list, map, doubly linked list and so on. These were all really annoying things to write and 99% of sane people would today reach for the standard implementation of their chosen programming language than waste time writing their own. I was very much of that opinion and well aware that C++ was receiving the STL at the time I had zero interest in implementing these things.
Luckily in 1994 when I began programming in Pascal there were no such data structures in Pascal, indeed I had written my own TPU in Borland Turbo Pascal with several of them in; and with a little fandangling I had them ready to hand in for this rather insane idea of a C++ based module. Did doing this improve my programming? No, did it teach me much? No, it was all very old concepts and solved with code which was nearing four years old.
As you might image I didn't invest much in this project or module, I thought it would be an easy win. Little did I know it would derail my belief in my whole degree course.
None of this is my embarrassment, no the embarrassment comes from the lecturer who reviewed the code.
Unfortunately the lecturers, well they were solving for closed source, they were comparing like for like solutions and coming up with plagiarism accusations.
And you know what's more embarrassing? The lecturer just said "why not modulo by 2" instead of asking WHY.
This is my overwhelming memory of my degree, lecturers who didn't ask why you had come to a solution, they had their concept of what their solution was and woe betide you if yours differed because you were marked down. It was too much effort for them to think outside the box, too much effort to actually understand there was rhyme or reason in your solution. No you were the student, they the lecturer, you learned from them very much not the other way around.
Its embarrassing to think how much that course was worth and how wrong it was in a lot of places; the few very good lecturers were often marginalized, or they were young and yet to be broken in.
Thursday, 28 April 2022
YouTube Advertising Standards in the Gutter
I'm no prude, I quite like a bit of fun, but I do think that the YouTube advert algorithm is a bit poor; since I get censored for saying rude words and even a video of me IN A HOT TUB... yes Me... ME... In a hot tub talking got pulled....
But this is their advert....
Discover more eh? She's not much more to reveal
And as you can see, it totally fits my stream of suggestions... (facepalm)
