Monday 19 September 2022

PocketCiv is now playable on itch


Low effort post today as I've not managed to finish any longer posts over the last few months. Having enough energy to create things is hard :/

Monday 6 June 2022

Programming Projects, where are they?

 

I think it must be a common situation for any person who creates things that you start a whole lot more projects than you actually complete. I've been messing around with programming projects for a significant fraction of my life and have lost count of the number that have reached a certain amount of progress and just... stop.

Even among the projects that enjoy good progress and reach a point where I want to share them there can be issues in terms of what form to share them in. There can be quite a lot of work involved in uploading and presenting projects online. Often the impulse can be it throw them up on the likes of itch.io and be done with them.

I, uh, should probably have mentioned sometime in the last couple of years that I have an itch.io page with projects on it... https://alexmulkerrin.itch.io/


So many fine projects that have never gotten a dedicated blog post are there.

Having been posting about programming projects online for about a decade now the form of how I've uploaded them to be shared has changed over time:

  •  Initially I would just put the JavaScript inline on the page to be rendered into an html element which was neat but it did run into issues when more than one projects code was on the page at once and there were variable name collisions. 
  • I could alleviate that somewhat by making it so only the intro to a post appeared on the blog homepage and you had to click through to see the running program. The issue then became when I wanted to write bigger projects and the code became too big to have all in one html file.
  • I could split my code into dedicated script files if I had someplace to host them. Initially there was such a hosting functionality built into Google Drive that let you not only host files publicly but also embed JavaScript projects directly in another webpage.
  • Alas this was only provided for a short time, then discontinued leaving mysterious Google error messages on the pages that used it, such as my initial post here about Swarmlord. Looking for an alternative I came across rawgit that let you host projects from a repository on Github. I already had a GitHub account so it was an excuse to be a more dilligent developer and use git as part of my development process.
  • Sadly last time I checked a rawgit link it wasn't working either. At that point itch.io had become a thing so I eventually moved to hosting projects on that including old and recent Ludum Dare entries, another thing I have been neglecting to blog about!
Long story short, from now only any programming projects I share will be hosted on my itch.io page where, hopefully, they will remain accessible and continue to work.

I would also like to get back into the habit of posting on here about projects I am currently working on. Even going so far as to provide links to in development projects not 'officially' visible on itch.io. For example this:


It's a world map generator which lets you zoom in super close just like Google Maps :D
Super secret link here

There's a whole lot of work to do on this but the essential algorithm to allow you to zoom in and out focused on the mouse cursor's position is solid. For now I simply adapted the Civilization terrain generation algorithm and tile types. It's crazy to think that on a properly scaled planet each tile is 500km across :o

Monday 28 March 2022

Dropfleet Commander Kickstarter Fleets


 I'd like to share some photos of a slightly different hobby project that I've completed recently. Miniature spaceships for a tabletop wargame called Dropfleet Commander. Firstly, here's a shot of all the different faction's fleets together:

The complete collection

That's 28 ships in total over 4 different factions, including light frigate sized ships and bigger cruiser hulls. I'm pleased with how the colour schemes I chose for the different factions came together and make it clear which ship belongs to each faction as well as make it apparent what the different armaments are.

As an aside the kickstarter that launched Dropfleet Commander as a game (page viewable here) in my opinion is the most successful kickstarter with the most benefits from additional milestones ever seen. They blew past their initial goal of £40,000 in less than a day and reached a staggering £629,000 raised from 3900 backers in total. Their success was such that they were able to bundle in additional ships for each an every backer. I only backed at the lowest level to receive one fleets worth of ships; the PHR (the ships in orange above) giving me 4 frigates and 3 cruisers. But because of the addons I received an extra frigate sprue as well as a cruiser sprue for each of the four factions, meaning I have a small force for each! :D

The kickstarter funding period ran for a month over November 2015. I actually received the package containing the rules, extra backer rewards and unassembled miniatures still on the spruces around November 2016. While it didn't take me too long to assemble the models and play a few games with them I didn't get them painted until last month. They have spent rather a long time being packed away in a box under my bed but that is a not too uncommon fate for such miniatures I find :P

Anyway, here are some photos of the individual faction fleets:

UCM fleet

 First the UCM (United Colonies of Mankind), the main human faction. After the Scourge invaded and occupied the core worlds, including earth, the UCM was formed to take back the worlds lost. I gave the ships a very utilitarian colour scheme based on a plain white undercoat with a black inkwash over the model to pick out the seams of the armour plating. I took the time to pick out some of the plating on the tops of the models in grey and white to denote different ship types. Other details to note are the railguns with a light blue inkwash over a metallic colour, missile pods picked out in red and engine pods metal with a yellow inkwash and bright yellow thrust.

One part I was particularly pleased with how it came out were the hangar bays on the cruiser. Painted in white and then given a light blue inkwash to give the impression of light streaming out of the opening. Here's another closer view:

Cruiser closeup

Next are the Scourge themselves:


Very organic looking ships that reflect the fact that Scourge pilot their vessels by merging with their machines. Their playstyle revolves round being sneaky with stealth systems or hiding in atmosphere to get close to their targets before unleashing devastating weaponry at close range. I'm really happy with how the combination of a light blue basecoat combined with a purple inkwash looks. The models have all this cool, organic detail that an inkwash works really well on. The Scourge main armaments are oculus beam weapons which I've done as reflective red eyes by using a transparent red paint over a metallic base colour.

Another alien fleet are the Shaltari:

Shaltari fleet

Aloof and mysterious their ships look and act very differently to the other factions. They get lots of special rules such as shields and most importantly utilize teleportation technology for the gameplay of getting their troops to the planet's surface. This is done through Void Gates, the little circular ship in the top left. Being such an advanced race their ships have a really alien look to them and it's difficult to work out what parts are ornamental or functional. I experimented with different base hull colours on the small frigates at the front but if I were to paint more of this faction I would probably use the colours on the large cruiser at the back; a earthy yellow with a brown inkwash. I went for a wooden look to these ships with browns and greens. The little lights were fun to do being just white dots with a wash of a ghostly green contrast paint.

Lastly but by no means least are the PHR:

PHR fleet

The PHR (Post Human Republic) are a different set of humans who got involved with a mysterious alien artifact and are big on robotics and self-modification. Their ships look absolutely great, highly advanced, sleek hulls with manoeuvring fins and loads of guns in a broadside configuration. The official colour scheme is quite subdued with a bleached bone look to the hulls so I decided to go for something a little more exciting; bright orange with stripes. They already look quite fishlike so why not go the whole way and have a fleet of tropical fish in space? :D

Like the UCM I gave the launch bays an inkwash to depict light sources, green in the case of the PHR which can be seen on the ships in the top right. The PHR ships have lots of detail along the sides and the rear which were easy to pick out with a bright metallic base layer with a black inkwash. I love inkwashes, they work so well on highly detailed miniatures like these :) For the orange hulls I used masking tape to block off where the stripes would be and then painted the rest in the brightest orange I could find. As a finishing touch I put a layer of varnish over the hull to give it a reflective quality which I'm rather pleased with.

Well that's what's being keeping me occupied over the last month or so :) I've also been playing a few games of Dropfleet with family and being enjoying that too. Perhaps in future I'll find some people locally who are interested, fortunately I already have painted fleets which we can play with. There are loads of new models which have been released since the success of the kickstarter, including a whole new fifth faction so I'm likely to pick some of them up to paint sometime. Thanks for reading!

Monday 28 February 2022

Part 2 of Insyrosept

Second part of Insyrosept, in which we are introduced to more of the crew in the run up to the space ship's launch, enjoy :D


Part 2


The crew of the Insyrosept spent ten real-time weeks running on the Oxbridge computing cluster. During this time they experienced one week of subjective time. Even with the world’s fourth most powerful supercomputer it was impossible to run a simulated mind faster than this. Not needing to sleep saved them some time but the classic slow-sim problem left them out of step with the outside world.


The week of experienced time was run mostly to make sure the crew had adapted to their new existence. There were tests to be made on how well a simulated mind could interact with the spacecraft’s system. With the proper assistant programs, a human mind at a tenth normal speed could handle orchestrating the entire spacecraft’s systems. In theory at least.


Practically however, Ivonne was finding that the emergency drills were much more difficult to deal with when everything could go wrong ten times as fast. Even though she had helped design them she complained to Kim that the sub programs he had provided were useless for the task at hand.


    “Did you fiddle with their workings while my back was turned?” she angrily said to him as they viewed the grim results of another containment breach simulation. 


    “They're so twitchy it’s like picking up a grain of sand with a toothpick!”


    “I can turn down the feedback sensitivity on the locomotion,” Kim replied. “but I think we're really going to have to add another layer of automation to the reactor controls.”

    “We both know that would never work, I've never seen a meltdown go down in the same way twice.”


    “Well if you help me with the agent settings-”


They continued like this for several more minutes, each one tired of the string of failed simulation runs. Fusion torch drives were marvellous pieces of technology but required quick, decisive action to stop a breach of the reactor from destroying the entire vessel. Ivonne had been piloting experimental space craft for years and was renowned for her ability to judge when a fusion drive was about to go critical. The debate they were having was mostly to protect her ego, both knew that there wasn't any way to get around their slowed down reaction times.


    “Fine then, have it your way,” Ivonne relented, “try distilling a lifetime of experience into just a few lines of code. If it messes up in even one test I want it scrapped.”


    “Of course. So, the same tests tomorrow?”


    “That long? You take too long to code these things Kim. Isn't there anyone else you could ask for help?”


    “Well James is no good, too busy trying to cram the 'sum total of human knowledge'  into the ship’s memory. I'd ask Claire but she's never outside her quarters.”

    “Oh yeah, our resident computer genius. Think she could come up with a way to make us run faster?”

    “Hey, be nice to her ok?” Kim replied as he exited the simulation space. “She seems awfully young to be on a trip like this and mock hero worship won't help.”


*


Claire Sinclair had been holed-up in her quarters for most of the crew's simulated existence. It was not a case of her being work-shy. The ship’s Doctor had been in constant correspondence with her as she reviewed the minutia of the crew's simulated body readouts. Claire felt very out of her depth discussing deviations of neuromuscular response with someone who had so much real world experience. Her research had always been about the mental side of simulated human experience. 

Sally, the ship’s psychiatrist, had been less stressful to talk with. Her queries were more about mental states the crew might experience. Claire had to be careful not to let too much computing jargon slip into her replies. Sally had not approved of her suggestion of rebooting from a backup mental state in the case of a crew member’s mental breakdown.

Tonight she had some free time as her meeting with the captain and the ship’s pilot had ended early. Both had been brief in asking about the potential simulation capacity of the spacecraft whilst in flight. The captain had seemed happy with her explanation of the number of minds supported at once being inversely proportional up to normal limits. He was nice, Clark the captain. The other man Lewis made her nervous with his stony expression. 

Claire was reclining in the soft lighting of her quarters, absent-mindedly manipulating the neural net hovering in the space above her. She had been meticulous in laying out her furniture in the same manner as she had back at her office at Oxbridge Computing department. An neat ordering of desks and terminals that she had refined over years of work. Other than the furniture the space of her quarters appeared empty with no visible walls or floor. She floated in the centre of her sphere of displays and holographic projections in a simulacrum of zero-gravity. Ever since she had visited low orbit Claire had longed to escape the Earth's gravity. Her simulated body might not have the dull joint aches her organic body had but the subconscious desire was still there. 

As she was panning around a particular fractal network design, there came a knock at the door. Or rather the sensation of what a knock would sound like if there was a door into her personal space. One promptly appeared hanging in the blackness, beyond Claire's circle of light. As the knocking came again, this time from the newly instantiated wooden door Claire connected to a visualisation of the corridor outside. The person standing there was a crew member she had seen at the initial group meeting but had not had any contact with since. According to the crew manifest she was Ivonne Blaskowicz; head of engineering.


    “Uh hello,” Claire projected into the corridor “can I be of help?”


    “Hi there,” Ivonne replied, startling her by looking straight at the default camera’s position at the top of the door “how about letting me in, got a question you might be able to help with.”


Somewhat flustered, Claire mumbled her assent and the doorway blinked open. Ivonne only hesitated for a moment on the threshold before confidently leaning into the zero-gravity of the interior and pushing off from the floor outside. 


    “Cool room.” Ivonne said as she floated forwards, “Didn't realise we could pick the interior decorations quite like this.”


Claire could do little but mutter as she orientated herself upright and scattered the various programs she had open back to non-existence. 


    “Coming through!” Ivonne exclaimed as she headed towards a desk piled with minimised files and folders.


    “Wait-” Claire squeaked, “you'll hit it!” sending the halt commands to Ivonne's simulated form.


    “Huh, weird.” Ivonne said as she slowed to a stop, hovering in empty space after accepting the simulation commands. “I did wonder how you managed to keep everything hovering like that.”


    “It’s, uh, just the same commands you, er, you could use to move in any simulated space.”


    “So I don't have to walk everywhere?” Ivonne's eyes lit up as she grinned. “Sweet.”


    “Well, um, only in environs without gravity, elsewhere you'll just locomote as normal,” Claire replied, “But you really don't have to be walking around inside a simulated space if you have teleport privileges...”


Ivonne was grinning ear to ear. “I knew the creator of all this would have all kinds of secrets to share. So what else do I have to learn?”


    “Oh no, I didn't create any of the simulation agent interface, that was around long before me. I hardly did anything except work off what had been done already.” Claire instinctively deflected the praise she felt was unearned. “Ah, I forgot. Do you want a seat?”


Flustered, Claire summoned an office chair into existence beside Ivonne.


    “Thanks, so can I sit by doing the same thing you did before?”


    “Oh, um yes. If you define it as your target and um...”


Ivonne floated down onto the chair, coming to rest as if she were still on the Earth's surface as her hair continued to drift in zero-g. Ivonne gave Claire her ‘best-friend’ smile as she began to speak:


    “I was hoping you would be able to help me with a small problem I've been having with reaction times as we are now-”


    “Oh you too?” Claire chimed in without thinking, “Lewis- I mean... It’s quite a common issue when operating machinery adapted to human response times.”


    “Anything you might be able to do, make us able to run faster perhaps?”


    “Oh no, no, no. A full human simulation puts definite limits on how fast it can- the barrier of Moore's law at subatomic scales- I can't do anything about all that. It’s just a fact of computing that any sufficiently complex process reaches limits of parallelisation and, and...”


    “That’s okay,” Ivonne replied, putting up her hand to stop Claire's rambling, “I was just wondering if there was a way to make snap judgements faster. You know, the way that a human being can react faster than thought due to muscle memory.”


    “Not really, well I guess...”


    “Oh?” Ivonne remarked leaning forwards.


    “I suppose if it were for only a very brief moment, less than a second. There is perhaps a way, I don't know for sure.”


Ivonne gently nudged her along, patiently returning Claire to the topic at hand when she got lost in thought. Together they planned out a method to give a simulated human much improved responses.


Half an hour later: 


    “It’s all down to balance right?” Claire reiterated, “So much of a human mind simulation is keeping the feedback loops inherent in the organic nervous system from going out of control. If the algorithms for calculating the stable equilibria of simulated brain chemical concentrations aren’t exact-”


    “It all collapses into noise in a matter of moments.” Ivonne finished, “But if you don't need a simulation to stick around for that long.”


    “Right, then you could get significant speedups due to using a cruder approximation. It'd be a kind of look ahead function of the simulated mind’s response."


    "So how hard would it be to set up such a thing?"


    "Well computer storage isn't really an issue, the changes to the whole crew's minds are recorded every thousand cycles with complete backups made every hundred thousand." Claire pondered for a moment, "I don't see why one of those snapshots couldn't be passed as input to a software assistant to act upon."


    "Brilliant Claire" Ivonne said, "I knew you'd be able to help"


Claire could only smile nervously at this compliment.


***


There are a lot of characters in this story so I did my best to bring across their personalities in their introductions. Writing their dialogue has been fun!


I've been busy with other projects over the past few weeks so it took a while to get this written up. I've still got lots more of the story to go but the next part is mostly just a rough outline and notes. It may take a while to write but I am determined to post all of it.


Thanks for reading and I'd be happy to answer any questions or hear your feedback :)



Friday 11 February 2022

Part 1 of Insyrosept: a science fiction story

Last update to this blog was in 2017 which is, yikes 5 years ago. Things have been difficult since then for unhappy reasons. Regardless I always wanted to come back to blogging, one of the reasons being for the likes of this:


Insyrosept was a short story concept I wrote about for NaNoWriMo in 2015. It was unfinished but the first serious attempt I gave to writing a full short story. I never shared it with anyone since, yet it was a piece I was quite proud of. So here for the first time is Insyrosept, part 1 of 10(?)




Insyrosept

The journey to the stars

By Alex Mulkerrin


Part 1 Launch


    “-Continuing in the footsteps of the Daedalus probes of the 22nd century the LSA, along with cooperation from the rest of the solar system, will be launching a new mission in two months time. The Insyrosept, the largest near-FTL craft ever built, will be the first ever crewed mission to another star. The target, Alpha Centauri, has received renewed interest ever since the Daedalus flyby revealed that two of the inner planets had a-”


Pauline closed the stream, having lost interest in watching the Lunar cooking show now that she had been reminded of the upcoming life-changing event. Looking out of the apartment window she could see the evening sun shining through the Autumn leaves of the park outside. She had never been to Earth before, let alone London and had been taken aback by the urban sprawl intermingled with so much nature. It had none of the tidiness of Arboretums back on the moon and looked so different from most of the images of Earth you saw on TV.


Still thinking about how odd it was to be in an almost rural setting on the most heavily populated planet in the solar system she shifted herself to sitting upright and began writing about the corners of the Homeworld that seemed to be throwbacks to an earlier time. She had no interest in publishing this piece, content to unwind her train of thought as she browsed images of the rural British countryside on the net. Her professional writing had become rather single focused since the announcement of her acceptance, this was a way to take a break from that.


It was a relief when what she had come to think of as 'day 0' finally arrived. Travelling to the Oxbridge campuses she was invited into the Medical Imaging facility by Dr Erin Hirst. She escorted her to the changing room and ran through the imaging procedure with the same warm enthusiasm that she had shown on the guided tour only weeks before. Pauline liked Erin and was glad she got to talk with her as she lay down within the concentric metal rings of the scanner.

   

    "Now that you're comfortable let's start on the first questionnaire." Erin said brightly. 


    "I suppose you couldn't ask the same questions as last time could you?" Pauline replied.  


    "I could but it wouldn't be of much use then."    


    "Well at least I get to have a nap afterwards."


    "Now question one, oh I'm afraid we're starting with the numeric puzzles again-"


After half an hour of general knowledge questions on everything from language to Intersolar sports teams Pauline was already yawning before Erin had time to administer the sedative. She had tried to answer as many questions as she could but, like most 23rd century citizens, she really struggled on topics outside her own area of expertise when denied net access. Erin didn't mind when she ummed and ahhed over an answer saying that they were some of the most useful responses for this scan.


    "Right, that will make you nod off in a few moments. I'll be seeing you on the other side then."    

    

    "Whichever side that is." Pauline muttered in response before entering a dreamless sleep.


*


When Pauline awoke it was to find herself in a medical bed in an adjacent wing of the facility, autumnal sunlight streaming through the windows contrasting with the cool blues of the indoor lighting. As she sat up a projector next to the bed flickered on producing a full size hologram image of the doctor. Other than the smiling image of Erin the room was empty.

    

    "Good Evening Pauline, I hope you're feeling rested."

    

    "Yes thank you, I suppose we'll be right into more questions then?"

    "Nearly done now."


The second set of questions was much simpler, many concerning how Pauline was feeling and whether anything felt off. She jokingly replied once that the gravity was much too high but other than that she felt completely normal. Or as normal as someone could feel in such a situation.


Once she had reached the end of the questions. Erin closed her handheld terminal and beamed at Pauline.


    "All done now dear! Now all that is left for me to do is to properly welcome you to the crew of the Insyrosept." she exclaimed whilst extending a hand towards Pauline.


On instinct Pauline grasped the proffered hand, finding the hologram’s hand to be as solid and real as the doctor’s actual hand. She was too taken aback by the implications of Erin's statement to really notice.


    "So this means I'm the clone then?"


    "Oh don't sound so disappointed dear, this means that you get to be the one to go on a once-in-a-lifetime trip! Or should that be twice-in-a-lifetime?" Erin laughed.


Pauline got out of the bed with Erin stepping aside, the hologram now fully real in the hospital room. A thought struck her;


    "I wonder how the... other me is taking this." she wondered, having stopped herself from saying the 'real me'.


    "She took it rather well, I believe she is already writing up her experiences to publish."

    

    "Wait, so you didn't wake us at the same time?"

    "Sorry dear but even if we had the other you would have been long gone by now, what with the difference in perceived time for us."

    "Oh, of course." Pauline replied, "I hadn't thought of that. So does that mean that every minute we experience will be..."

    "Ten minutes to anyone else at the very least." Erin finished Pauline's comment.

    "How weird."

    "I think that is going to be the theme of this whole experience!" Erin exclaimed as she led Pauline out of the room to get changed. "Now let’s go and meet our fellow explorers."


'So I'm now a computer upload?' Pauline thought to herself as she was reintroduced to the other members of the crew. Part of her was relieved that she had crossed that point of no return and no longer had to worry in what form she would be waking up in. No doubt the other version of her was feeling that same relief tempered with quite a lot of disappointment. No, what was perturbing her thoughts was that she really didn't feel any different from how she had felt when she was flesh and blood. Somehow she had expected to experience an immediate sense of artificialness. Instead she might have never realised it if Erin hadn't told her.


Spirits were high in the conference room in which they had all gathered, all of them fresh off the operating table as it were. Most of them were experiencing the same existential surprise as Pauline was even if they weren't showing it. That was with a few exceptions.


    "Well of course I knew as soon as I woke up that I was a computer person now" Markus guffawed, "seeing as I woke up with twice as many arms as I went to sleep with!" Swinging the new limb about for all to see. "The missus would have such a shock to see me symmetrical like this"


Erin was busy chatting to the ship's psychiatrist, presumably comparing notes on how the procedures had gone, leaving Pauline to stand around. She smiled and nodded at some familiar faces but was content to leave the more gregarious members of the crew to socialise. Some of the people in this room she had only met when doing official interviews and was still anxious in their presence. One of these, mission commander Clark, made his way towards. the podium at the front of the room. Evidently she wasn't the only one keeping her eyes on the old man's movements as the conversation dissipated before he began to speak:


    "Good evening crew. Now that we are all assembled here I would like to welcome you once more to the Insyrosept mission. We have an exceptional duty ahead of us and I commend you all for accepting this responsibility." Clark calmly continued, giving an overview of the mission as a whole, voice somewhere between a politician and school teacher. "Now before we embark there will be a week of more trials and tests using the prototype spacecraft hardware-"


Pauline let her mind drift as he reiterated the planned actions for the flight crew and surface teams. As a non-LSA member she would be exempt from most of the pre-launch activity. Indeed she had previously had to haggle over how much contact she would get with the crew to interview them before they left. She knew that her reporting once the mission began would be at a much more infrequent rate so was determined to get as much done before they left planet-side as possible.


    "-On the 16th we will be transported to Lunar Two in order to board the Insyrosept. Once pre-flight checks have been completed the estimated launch time will be the 24th, with possible launch window extending to the 29th. I thank you for your attention and will be seeing you all tomorrow" Clark stepped down from the podium to a smattering of polite applause and left the conference room with the second in command in tow.


With the commander gone, various conversations continued for a while among the people who remained. Pauline politely declined Erin's offer to watch a match of zero-g tennis with her and her friends, acutely aware of the countdown displayed at the end of the room, showing how many hours were left in this simulated day. She wanted to have time to write down her thoughts before going to sleep. Regardless of the artificial nature of the coming rest she didn't like to go to bed with thoughts still on her mind.

 

Leaving the conference room she entered a shimmering portal to the copy of the space complex at Cape Canaveral. Checking her handheld terminal she navigated herself to her virtual room, amused at the thought of having to walk to get somewhere in simulated space. On entering her room she immediately sat down to start writing her very first article as a simulated person: The Life Silicon - Novel yet Familiar?.


***


Thanks so much for reading. I hope you enjoyed the story so far and I would love to answer any questions you might have :)


There will be many more parts of this to post so expect to see some activity around here again.


Until then; would you take the choice to become an artificial clone if it meant you could undertake a journey to the stars? What awaits the Insyrosept at the end of it's journey? :D