Tuesday 28 February 2023

Will I ever Buy a Laptop Again?

Will I ever buy a laptop again?  This is a significant question, PC's themselves are going the way of becoming locked down, indeed UEFI was the first step on that road, requiring secure keys and other literal dongles is becoming quite common for the home PC Builder; or even small assembly shops.

Laptops are an even more confused space, building your own is sadly incredibly rare, but even rarer is being able to buy a laptop and it being upgradable.

Now, I accept laptops have soldered on components, they are an all in one solution for most vendors.  So it was four years ago when I specced up and bought my current laptop I had three requirements from it:

1. Upgradable Memory

2. Upgradable Drives/Storage

3. Changeable Battery

At that time I settled on the Lenovo E480, with an 8th Generation Intel Core i5 inside.

For point 1 I was able to buy it with 4GB of RAM (a single stick of DDR4) installed, saving me over £110 on buying an upgrade to 8GB direct.  I simply received it, opened it and installed a 16GB kit (pair of 8GB sticks) for £83; so I saved and had more memory.

For point 2, I was again able to get deliver with a single 500gb mechanical hard drive, and for merely £65 I was able to get a really nice M.2 nVME SSD and install that the moment it arrived.  I am still able to replace the standard 2.5" SSD SATA drive if I want.  And I was also able to install a 1TB MicroSD card for more cold storage of large files when on the move and disconnected from my file server.

For point 3, being a Lenovo is a huge boon, there are a lot of resellers of their components and the battery is no exception, plus it's a battery just installed with a sticky pad and a single 4 pin connector, very simple to open the chassis and swap it out.  After four years mine is due a change, it has gone from around 9 hours on a full charge to only 4.

The machine is simple to work on, it's got lots of external ports, it can drive all the devices I want, the wfi, bluetooth and just quality of the Lenovo build is very nice.

So, what could possibly replace it?

I am coming up blank, I've been looking and looking, I do not want to support Apple, as much as I like the look of their hardware the total lack of any repair or upgrade paths in the M1/M2 space annoys me, their GPU is custom too, and I want to be working in open source wherever possible (read Linux).

Asus are similarly offering lots of options but so very many of them are locked down, there are RAM upgrades for some, but that's about all.  And crucially battery replacement is sketchy, it's hard to even find out what battery a unit offering has.

Very similar results in my search with Toshiba, Acer, Dell (including Alienware) and a custom builder here in the UK.

I did look briefly at modular options, such as the ones touted recently by Linus Sebastian, but getting them here in the UK is a massive pain in the rear.

So simply put will I ever buy a laptop again?  I don't know.

If I can find something meeting my three previous requirements and include adding an external GPU via USB-C to it, that maybe a selling point, but I'm really not willing to give up on the first three requirements I had.  They are the very definition of a laptop to me, you live with a locked down CPU and GPU, but at least you can expand the utility of the unit in other ways.  Except, vendors want to ship thinner, sealed, easy [for them] to support units with a limited [est 2 year] shelf life; after which you are cast to the winds.

As I understand it my Lenovo now being 4 years old, an 8th Gen Intel, makes it positively geriatric.




Want to read more about my quest for a laptop in 2018, why not read this one http://megalomaniacbore.blogspot.com/2018/12/deep-thought-about-new-laptop.html

Or even my laptop purchase from 2012, http://megalomaniacbore.blogspot.com/2012/01/custom-laptop-for-virtual-deeds.html

Sunday 19 February 2023

Home Game Engine : Physics Debugging Tool Progress

The last week has been invested into the Physics Debugging tool, it connects to the main game world; whether that is running in the client with it's own vulkan renderer, or into the server, for I am planning to have the server be authorative over player position at least, to prevent some of the strange hackery doo of the client being in charge.

Here's a silent video of that progress, as I'm recording from my Ryzen Workstation and I don't have a mic in here.

There is actually a lot going on in the background here, though the scene looks largely unchanged.

The most obvious addition since the last scene update is the replication of the rotating object, which is just a box, but that is being rotated on the client.  My controls here send a message to the client, which then sends the status update to it's GameObject.  The same frame the GameObject queues a message out and the scene updates to the physics representation; which means I get near real time (minimum of network delay + 1 frame) of the replication of an object back and forth.

However, I don't plan on expanding that too much, the number of messages is getting silly.  For example, I have an object for a position update (3 floats) then I have one for a position and a rotation (6 floats) and then a whole other one for position, rotation and scale (9 floats) which I call a transform.  I could just replicate a transform each frame, but then the amount of data gets very much larger.

I also have flash backs of delivering data from a server on a provisioned box, where you pay by the megabyte per monthly usage (and I honestly don't know why I couldn't host a service like this server publically on my massive 500mbit home fiber, which has no cap on data, it's all I can eat) but practically, I'd not like to host this here, except for debug, and if I were to make a game, it'd need to be on an AWS instance or something.

Anyway, that's all very much future stuff, my next problems are all about the game, improving and cleaning up my game object authoring, improving my model making skills (I might actually have to double down and actually learn Blender) and the working out a few issues I know exist in my control scheme.

More about all that in March though, for the rest of February, I have to tidy this stuff up.

If you want to know more, or follow some of my other older projects and videos, my YouTube Channel exists https://www.youtube.com/@LordXelous and of course this blog is always ticking over!

That Subscribe button really helps!

Saturday 18 February 2023

Programming the Thought Triangle

As a programmer I spend a lot of time with my mind on the problem space I'm tackling, my hands are on the keyboard, my eyes are on the screen and this trinity is my creative process.


If you start to talk to me from a room away, if you come to my door and start to wave at me to get my attention, if you keep calling my name, if you keep calling my phone or sending me texts... Do you know what you are doing?

That's right, you are totally derailing my thought process and creative flow.

You, the interrupter are pretty much responsible for costing me a complete mental problem space unload and a complete mental space reload.

That is very stressful for a programmer, it's a huge amount of mental gymnastics, which is tiring, difficult and above all unnecessary.

If you have a child at home who shows any interest in programming, and they're busy doing it, or "playing" on the computer, but there's no actual game showing, just let them, leave them be.

You don't need to train them to program a computer, you need to train yourself to not interrupt them, that screen to fingers to thought triangle needs to be left where it is they need to be left alone.

Social Media!!!  Now, I have to add a prickle problem into this, you maybe training yourself to leave a creative alone and leave them in their screen to fingers to brain triangle of creativity.  Now, is the same true of someone deep into social media?

Well, sort of, the key different I find is creativity, are they being creative in their little bubble?  Are they learning?  There are clear flagging indicators of a problem, where you do have to step in.

Communication?!?!  Even more confusing is where we come to the screen to fingers to brain communication items, I can certainly relate to being deep into typing an e-mail and someone is saying my name over and over; that person does not respect that I'm actually doing something, they do not lend any value to the fact I am trying to write an email.  Immediately I point out that I am in the midst of a creative effort, that person therefore needs to train themselves to not interrupt.  They're being rude and disrespectful.

However, is the same creative tag so easily applied to having a chat?  To having a visual chat with someone over WhatsApp for instance, no.   I don't think it can be, when two people are talking face to face you can interject; you can say excuse me I just need to tell you.... and speak, this is completely normal interruption.

The distinction interrupting someone on WhatsApp talking to a friend is simple, it's a leisure, it's not live and death.

Until it is life and death!  I had this argued with me, that you can't interrupt someone if it's life and death, and I agree.  But you know what, if you're telling someone something on the "live and death" scale of humanity over WhatsApp... Get a life!

In short, I think I keep meeting with rude, self centered, selfish people, who lack empathy and don't value that when I'm sat at my computer; I am actually doing something.  And I work at my computer, and I work at writing computer games, so you can not assume because there's a game on the screen I'm not busy.

However, if you see that 2 foot fixed gaze, my fingers flying and I am clearly engaged with the work a head of me... well it's pretty safe to say you should GO AWAY!

Tuesday 7 February 2023

The Old Lady and the Server

No, this isn't some strange nursery rhym (though I wonder if it could be) no this is a story of a literal old lady whom I believe was trying to collect as many notches on her bed post as possible...

Let's start at the beginning, I lived in a house I rented, I had a spare bedroom and my younger brother broke up with his long term girlfriend.  He came to live with me, quite unsuccessfully, as his life was very chaotic, and indeed in the end I threw him out in the end.

But in the nine months he inflicted himself upon me he had a few lovers through his door.  One of them was said "old lady".

I say old she was maybe early to mid-forties, with children, but that was old, my brother was nineteen... heck I was only twenty two.

He was going through a series of different jobs at the time, and somehow he met this woman, who promised him a bunch of things; like a car, and MR2 if I call correctly.  Which he went on about constantly.

These rewards never appeared, but one day she did, one morning to be precise, I came down into my own kitchen and there was this woman in my non-smoking house smoking.  If looks could have killed she would have murdered me when I asked her to go outside to smoke.  Until she realised this was my house; so the stories clearly went both ways between them and my brother.

"Where does server come into this xel?"

Well, when my brother broke things off with her she continued to communicate with me, I'm not even sure how she knew my contact details to be honest, I think she had a nominal business address or something, in fact thinking back now, I think one of the mysterious things she promised my brother as she bedded him was to get me a job; despite my not asking.

But it seems she was looking for a NOC engineer.

Indeed, I spoke to her briefly where she was talking to me about setting up BSD servers, "My servers run BSD".  She never explained what her servers were doing (I suspected porn).

She did however offer me a job, at £4,000 a month.  That's £48,000 a year.  At the time I was in a £21,500 job doing network maintenance (which I hated, and have commented about in earlier posts).

So her offer was interesting, I took a weekend to expose myself to BSD.  I'd not really used it before, just early versions of Linux, ScoUnix and Windows.  BSD was interesting, different, but nothing I had experience with.  She kept talking about her current NOC guy.

Either way, it came to nothing, and I think that's because I never came...

Sunday 5 February 2023

Physics Debugger in my Home Game Engine

It may not look much, but this is a huge step forward in my home game engine development.  This is a physics visualization tool I've written, to show me the shapes I register with my physics simulation, it communicates with the game client one frame behind the client, and lets me zoom a camera around the world to see whether shapes line up and to take a snapshot of the physics/collisions being resolved this frame.

The whole physics system is pretty much a bag of spatial checks at the moment, for instance I ray cast from a given point to the four corners of a cube to test whether the point is within, that's pretty compute-intensive.

But at least now I can see there is only one such cube (the purple/pink) one in the scene.

I can also clearly see the ground mesh (the yellow/red triangles).

Infinity is just the blue.


Also, this rendering of the physics world is using yet another renderer I've put together, again integrating ImGui as my defacto GUI in such circumstances.

I need to do a lot of work on this, but it's just a fun project.

And recently having a bit of run, something you can tinker with, something which just makes you think and relax is perhaps key to improving ones skills.

Before I started this whole home game engine (despite working on games at work) I had no idea how to put a renderer together; even as badly as I have; and certainly no idea about a physics engine, now I have the rough knowledge of both.

My home project backing up my experience at work, and also the home project lets me try things I might not otherwise do at work, like totally break things... Oh no wait, I break things all the time....