Middleton’s Spaghetti Bolognese

This recipe is a combination of a Jamie Oliver and The Good Food Guide recipe. It’s great to freeze. Each spaghetti has it’s own instructions, but I think fresh is best (way better), with salt and olive oil added to the pan. If you cook too much spaghetti, don’t feel like you should serve it all, as you’ll diminish the amazing taste of the bolognese. Plate what you need, not what you greed! Garnish with parmesan or mozzarella (there are no rules).

Replacements: If I don’t have red onion, shallots will do. If I don’t have port, I make up the liquid with more red wine. If I don’t have fresh herbs, or garlic, I’ll use dried and guess. If I don’t have bacon, find something else salty. I don’t use any added salt in this recipe because of the bacon. It’s actually hard to get this wrong.

When I say splashes of Worcestershire sauce, I mean, it’s one of those bottles you can pop open and shake towards your pan to get the contents out. So it’s not an accurate measurement.

I’ve got proportions listed for 6 and 4 servings. If cooking the larger of the two, unless you have the world’s biggest pan, you’ll have to cook off the beef in batches.

For 6 servings you will need at least a 25cm wide, by 12cm tall non stick pan with a lid. And of course, another pan for the spaghetti, if you intend to eat the same day (not recommended, it tastes much better if left in the fridge for a day).

tbsp = table spoon (15ml). tsp = tea spoon (5ml)

If you wish your bolognese to be more meaty, then add 25%-50% more beef.  It’s ok if you have a 750g packet for 6 or a 500g packet for 4. Don’t worry.

Let me know if you like it. I’ve been told adding some dark chocolate can make it even better, or god help me, ketchup!


Ingredient Serves 6 Serves 4
Beef mince 500g 333g
Medium Red Onions 2 1.5
Garlic cloves – finely chopped 2 1.5
Tomato Puree 6tbsp 4tbsp
Oregano – dried 2tsp 1.5 tsp
Black pepper 1/2 tsp+ less than 1/2 tsp
Red wine 150ml 125ml
Port (optional) 60ml 40ml
Paprika 1tsp 1/2tsp
Worcestershire sauce 4  splashes 2-3 splashes
Diced carrots 4 medium 2-3 medium
Rosemary sprigs 3  (or 1tsp dried) 2 (or 3/4 teaspoon dried)
Smoky Bacon rashers – diced 4 2.5
Balsamic Vinegar 2tbsp 1.5tbsp
Bay Leaves 4 2-3
Tinned chopped tomatoes 1000g 660g
Beef stock cube 1 1/2


  1. Dice the onions and garlic – place in a bowl to one side. (Bowl 1)
  2. Put the pepper, rosemary, paprika, oregano and pepper in a bowl to one side. (Bowl 2)
  3. Dice the carrots, place in a bowl to the side.
  4. In a measuring jug, add the wine, port, stock cube, Worcestershire sauce and balsamic vinegar and mix together.
  5. Finally, cut the bacon and leave on the chopping board.
  6. Heat a large pan and fry the bacon until it’s cooked but not crispy – if not too hot, the fat from the bacon should be enough for the next step.
  7. Add the onions and garlic, fry until translucent.
  8. Now add the beef, and all the herbs from Bowl1 evenly,  and fry until the beef is brown, but don’t overcook.
  9. Turn the heat down, add the tomato puree and quickly mix into the beef so it’s spread around evenly, followed by the chopped tomatoes. Mix it in, then bring to a a simmer.
  10. Now add the wine mix, stir in.
  11. Add the bay leaves.
  12. Partially cover and simmer for 20-30m stirring occasionally, and taste half way to make sure it’s seasoned well, and add more salt/pepper if required (I’ve never had to). If it’s looking too dry, keep the lid on, maybe add some wine+water mix or some more tomato juice, if it’s too runny, keep the lid off.
  13. Leave to cool for an hour.
  14. Decant into Tupperware into sensible portions for refrigeration or freezing.
  15. Leave to cool some more before transferring to the fridge or freezer.
  16. Eat the next day (remove the bay leaves!).
  17. To defrost leave in a fridge at least 24 hours beforehand.
  18. To reheat – gently simmer for 5-10 minutes until piping hot.



Hyper-V: The application encountered an error while attempting to change the state of ‘your vm’. The Operation failed because the file was not found.

This is a mostly unhelpful message – if you encounter this, try going to Media-> DVD Drive->Eject… It could be that the .iso file you’ve attached no longer exists.

It would be nice if it would tell us which file was not found in the UI. The log files will probably tell us, but why make me work so hard?

Mac Book Pro 2013 Black screen

I’ve had an issue appear twice now, where my main screen is black, the keys light up, I can connect an external display, but can’t recover the main screen – it’s just black, no loading logo, nada.

I tried all the NVRAM resets, and other tricks you can find on google – doesn’t help.

The first time I fixed it by taking it to the Apple Store, and they told me exactly what they did.

They opened the MacBook, and unplugged a cable, that’s near the escape key, and plugged it in again.

If you don’t have the star-shaped key, I’ve since discovered a quick-fix, simply by pinching together the top-left part of my macbook’s keyboard, about one to two inches in from the edge, it pushes the cable back into place – hey presto problem solved.




Games taken off app stores

I’ve temporarily taken Tap Phrase and Very Simple Solitaire down from the App Stores as I close the limited company I used to hold them.

VSS is still available on facebook, and Tap Phrase will soon be coming to facebook, and potentially more portable to other devices.

Very Simple Solitaire – Launched

On the Apple App Store, on the Google Play store and On Facebook (desktop browsers, use Chrome or Edge).

Simulator Screen Shot 29 Apr 2017, 08.50.32

Well done, but.. How did it come about? There’s a billion of them!

Like most days, we sat on the sofa, watching TV and fiddling with our phones. The o/h is addicted to two games at the moment, Genies & Gems and Solitaire. Unfortunately she’s never been interested in my game TapPhrase, nor the epic space adventure I slaved over, nor even the Dachshund game I’m making. I’ve always wanted to make a game she would play, but never managed to hit the mark. Then I hear her grumbling about adverts interrupting her solitaire game.


Now, at this point, sane people find the highest rated app that has either a ‘no adverts’ purchase option, or a paid app without adverts. But after further discussion her criteria was:

  • No adverts, ever.
  • Free.
  • No silly animations.
  • No clutter on screen.
  • No score visible and no time visible.
  • Absolutely no sound, ever.
  • Absolutely no Facebook or social gifting or achievements/game centre.
  • No in app purchases.

The next day, as she left for work, I grabbed Unity, downloaded a pack of cards from the Asset Store for a few dollars, and set to work. By the time she’d come home, I’d already built the first version and put it on our Nexus 7 tablet.

She immediately found bugs, which I fixed and iterated.

The first version just used flat icons for buttons, didn’t even keep score. It didn’t even know when the game was finished. There were silly bugs but it was playable. And she started to play it in preference to the one she’d downloaded.

What did you do next?

I soon realised that when I fixed a bug, another got introduced. The game logic was all over the place (what do you expect from a day?). So, it was time for the really dull bit. Automated tests. And introduce a new test every time a bug is found that I hadn’t covered.

This is something I do day in, day out, so I wasn’t unfamiliar with what I needed to do. And I was also depressed with the volume of work ahead of me.

I started to write out names of functions for my tests, and these described the expected behaviour I wanted my game to exhibit. I then started to look into how you can do automated tests in Unity, and how I could rearchitect using inversion of control principles and dependency injection, whilst fitting into Unity’s MonoBehaviour classes. With Unity, nothing is ever straight forward, so this was initially harder than normal (struggling with .Net 2.0, C#3 or 4). There’s also the problem that Unity relies on the update loop and processing for coroutines, so I had to fake that too!

Anyway, in short, that took me a good month or so of evenings and weekends to re-architect with interfaces, my own minimal IoC class, time service, swappable shuffling services (so I could fake near-wins), input interfaces, so I could pretend I was dragging cards from code – you name it – it’s mockable. In all there’s 86 tests, and there’ll probably be a few more yet as I haven’t tested everything!

What about those flat icons?

I can’t draw. So I looked around at tutorials on how to draw buttons, and I managed to combine flat icons and a glass effect bubble button using Inkscape.

Here’s some iterations:Screen Shot 2017-04-25 at 20.21.28

So what you going to do next with it?

Well, my mind was buzzing, I wanted to add a disco mode with unicorns, rainbows and laser beams. Turn 3 variants, multiple card covers, background changes, funky music, achievements, social timed battles.

Then I remembered – KEEP IT SIMPLE. VERY SIMPLE.

So at the moment – there’s no planned improvements. Unless people follow the Facebook page and tell me they want them, even then, if it interrupts pure play – it’s not in.

I’d rather create a new game and charge 99p for the all-singing all-dancing unicorn laser disco super happy fun fun version.

How do you make any money?

I don’t.

I’ve learned from TapPhrase, that if you set out with money in mind, you’ll pour hours and hours into the game, you’ll worry about capitalising on it, you’ll fret about the minor things and try to include every thing you can to make the customer happy, or to meet their expectations. And then the realisation hits you.


Paid advertising, tweeting, Facebook sharing, asking for reviews, avoiding getting banned from reddit – It’s not easy. It’s demoralising, embarrassing and unappreciated. No one appreciates the effort you’re putting in. It can be quite soul destroying. All those hours, all that money, was it worth it? I had a 72 hour marketing plan for TapPhrase, and it just didn’t take off.  So I stopped doing it for the money – and did it for the hell of it –  It makes it less painful to walk away!

So are you really doing it for free? Why not just give it to the o/h and ignore everyone else?

Well – I figured other people might like what she likes.

Nothing makes me happier than to hear someone is playing my game, or has enjoyed it.

Really? There’s no ulterior motive?

Ok, there’s a tiny, microscopic chance that other people will love Very Simple Solitaire, and maybe follow me on twitter/facebook. Then, out of that tiny pool of people I might amass some kind of following. Then, when I release my next game, I might just have a few thousand helpers who might just do me a solid and like/share the game to get me started.

BUT, I won’t advertise in Very Simple Solitaire. Nothing will break my integrity on the original promise.

Back to reality, – I’ll just take the satisfaction and notch up another released game on the app store!

Do you plan on bringing it to Android? Windows? Mac? PC?

Yes. But that takes time – just to fill in the details and provide the appropriate screenshots and legal documentation – YOU WOULDN’T BELIEVE IT.

I tried searching for it on Facebook – why isn’t it there?

It takes time for games to be listed, upto 4 weeks – and I’ve not (at the time of writing) submitted it to the App Centre. Mainly because I have to draw about 5 different icons for it! Even then, they don’t approve any old rubbish!

Cheesy Potato Bake Surprise

A fantastic vegetarian friendly dish. Sorry there’s no picture – we ate it all! This is a variation of this  Creamy Cheese & Potato Bake.

Time: 1hr 50.  Preparation 40m, Cooking time  1hr 10m. 200C.

(Serves 6)


1.5kg (once peeled) of Maris Piper or King Edward potatoes

2 Punnets/300g of mixed woodland or oriental mushrooms.

100g of spinach leaves (or a big handful)

75g of gruyere Cheese – grated.



Two cloves of Garlic, or one large (crushed)

Two knobs of butter, and some for greasing.

1 red onion, finely sliced or diced.

100ml White Wine (yes – you can drink the rest).

300ml Milk

400ml Double cream

50g Cheddar – optional cheese monster edition.

Tools (don’t eat them)

A large oven proof dish – approx 30cm x 20cm x 5cm deep

Kitchen foil


Potato Prep

First, peel the potatoes. This made me grumpy, so play some happy music. Put them  them in a large pan of cold, salted water and bring to the boil, boiling for no more than 5 minutes. We’re just getting them softer. Drain and leave to cool down enough so you can manhandle them. Grease the dish with butter.

Mushroom Prep

While the potatoes are cooling, chop the mushrooms up into slices and crush the garlic. Add some butter to a frying pan and sauté the mushrooms and garlic till reduced and ready to eat. Don’t do it, they are tempting little buggers.  Drain the excess oil off and place the mushrooms in a bowl and save for later.

Cheese Prep

Those potatoes are probably still hot – so grate your cheese, keep the two types of cheese separate to confirm your OCD.

Spinach Prep

Chop up the spinach and put aside.

Potato hell

Now, with a nice large kitchen knife slice the potatoes to approx 5mm thickness. They should be nice and easy after being softened. This takes forever and is sticky work. Drinking wine helps, until you cut yourself. Layer the slices in the dish, until you’ve laid out half the potatoes. Or two layers.

Now lay out the mushrooms & spinach on top. Add half of the Gruyere cheese and half of the Cheddar if going full monster. Slice the rest of the potatoes, but do not place them in the dish yet. Move onto the sauce when they’re all sliced.


Add a knob of butter to a large pan and fry the onions until golden and soft.

Do NOT add the milk yet, it will curdle.

Add the wine first, that’s super important, simmer to reduce & remove the alcohol.

Add the cream next, and stir in.

Now add the milk. Hopefully it won’t curdle!!

Give it a few good grinds of salt and pepper. Did I mention you can drink the rest of the wine? Gently heat the sauce until about to boil, then pour half the mixture evenly over the bottom layer of potatoes/mushrooms/spinach.

Add the rest of the potatoes to make two more layers then add the remaining sauce evenly over the top layer. Add the remaining cheeses evenly.


Cover the dish in foil (shiny side up!), and cook at 200C for 30m (or 40m if you cut things too thick).

Uncover the dish and cook for approximately 40m, until the dish looks amazing – with crispy cheese on show. The ultimate test is that you can push a fork into the dish and hit the bottom without much force, but not so little that the potatoes have turned to mash. Serve with something other than carbs or gravy.

Tip: If you can’t live without meat, remove the salt content and add chopped bacon in the middle layer.

What’s the surprise?

Either the mushroom layer, or the fact you still like potatoes after slicing hell!

Coding meetups around York (UK)

Here’s a list of development, hacking or process related interest groups who meet up around York (that I’m aware of). You may see the same faces at some of these groups, York is small! 😉

Agile Yorkshire (Leeds)

Agile Yorkshire meets on the second Tuesday of each month. Sometimes features coding / tech intros, but mostly focused on Agile processes and sharing experiences.

Twitter: @agileyorkshire


Code & Coffee (Leeds and York)

A spin-off from Agile Yorkshire, Code & Coffee is an early morning wake up call in Leeds and York. For those who don’t like a lie-in! Meets every Wednesday early doors.


York Geek Club

The York Geek Club Meets on the first Thursday of each month at The Habit on Goodramgate, 8pm.

Twitter: @yorkGeekClub


York Code Dojo

The York Code Dojo meets up every month, focusing on pairing up on different topics.

Twitter: @yorkCodeDojo


York Hackspace

York Hackspace meets Wednesday evenings, every week, to hack something, hopefully not someone ;-).

Twitter: @YorkHackSpace


York Game Developers

The York Game Developers group meets up in a beer slipper on the second Thursday of every month.


Any more?

My Unity/Blender Notes – Working with animations

This isn’t a well-crafted blog post. Not this time – it’s just a dumping ground for workflow/findings when trying to use Blender->Unity for animations.


Adding armatures and bones for unity

Select the object

Press Shift A

Add the armature with a single bone


Name the armature (good practice)

And make sure you rename the bone too – you will regret it if you don’t when all you see is Bone Bone Bone in your animation editors.


Select the object only, then shift select the armature (make sure you can see it)


Now we are going to parent the bone to the object.


TIP: Before doing this,  if you extended the top face of this cube many times, you could create many bones from this single bone that are all connected (go to edit mode, click the top circle, and press E for extrude on the bone), then the above step will AUTOMATICALLY connect all your faces to the bones – Instant win. Press enter to confirm its position. If snapping is on you can press ctrl to disable it temporarily while moving.

This option adds a vertex group to the object AND assigns the bone to the group – saving you from having to do it. If you want more control over vertices you have to this yourself. Your bone name must match the name of the vertex group.

To see this association, select the cube, and enter Edit mode, then highlight Cube Bone as below, and deselect/select the vertices associated with the vertex group.


You’ll also notice that this action has added a deform with armature modifier to the cube

Now select the armature

Enter the pose mode


Press R to rotate and move the mouse – you’ll now see that the cube moves with the armature

If you want to see your armatures/bones click XRay




You might want the new bone to control different vertices – simply create another vertex group with the same name as your new bone and assign the faces it should interfere with.


Don’t forget to name the bone


Now add the vertex groups for the cube


Using the select faces tool, select the faces that should be affected by that bone, and press Assign.

Select/deselect each vertex group to see if things are good. You may need to remove all vertices from the original vertex group if you’ve extruded faces from it, but here’s what you should be aiming for. The top should bend as you bend it.


However, the first bone we created doesn’t independently move the base – it moves the entire object because it’s the root bone. You can extract another bone beneath it to properly react to the independent movement. Here’s another CubeBoneBottom – and the main bone has no vertex group assignment.

You can then import the .blend into Unity.

Then drag the object into the scene and bring up the animation window.

Adding ‘properties’ adds the bits you want to animate (position, rotation, scale)

You can enter big values to simulate multiple rotation as well as negative values to rotate back.

You can also edit the curves to produce different interpolation.

Click the timeline to move the keyframe position.

If you lose the animation, drag the newly created controller into the ‘animator’ component.

You can also drag-select a box over the keyframes and move them to a new timing.

However, you can’t change the shape of the curves much – so if you want elastic effects you have to do this in blender using the NLA editor, action editor, curve editor and dope sheet.

That’s a whole world of pain!


P.s.  I know I haven’t mentioned Actions in blender yet, but be warned…

Sometimes you want a single 3d model to contain many moving parts of separate sub-jects, as part of one animation. That’s many armatures under one action – however, blender doesn’t like this one bit. So to do this save each action as a new file e.g. model@action.blend and tie the actions together in Unity.

If you only have one armature with many bones – you’ll be fine. (e.g. a character or single set of swinging doors.




I wrote a book on Open Source Software Licensing, but why?

One part of my role, over the last 15 years, has been to police the flurry of software components developers want to leverage. In response to that I developed internal systems, processes and gained experience of interpreting licence agreements. I’ve always been trying to keep on top of such things because I didn’t want to be distracted with any repercussions. I just want to get back to code.

During a recent customer deal, my experience expanded when one client insisted that as part of a software escrow deposit, any hint of open source contamination could trigger code exposure to the customer for investigative purposes. This swiftly followed by a highly elevated level of scrutiny over our codebase; leading us to outsource independent verification of our findings. We wanted to have confidence that we have taken all reasonable and diligent steps to protect ourselves and our assets. Being competent, confident and responsive to 3rd Party component usage information requests have also made further deals and engagements progress more smoothly for all involved.

Over the last year, I bought a number of books on Open Source Software Licensing to solidify my knowledge. It quickly dawned that not many provide pragmatic advice on how to start taking control of the problem, or how to manage it day-to-day. They are often filled with more information than (I) needed.

When I work, every minute is precious – I hate being inefficient or ineffective, and I’m sure others do too. So I decided to write a book that was going to get straight to the point – helping people like me who really just want to get back to coding as soon as possible.

I thought it was going to be easy – I was wrong.

At first I wanted to focus on the pure pragmatic advice, and forgo dull introductions, build up, terminology. But it soon became apparent that I needed to build some foundational knowledge in the reader before laying out my experiences. This started to pollute my vision but felt a necessary evil; and I suddenly understood why many books do this. Everyone needs to be on the same page (pun by design). I also wanted a quick-fire Q&A section, but realized that it would mainly be a copy & paste of the content in the book, as it was already fairly minimal.

I was writing during the evenings and most weekends, and I soon realized that writing on such a topic seemed hard going. Every time I wrote a sentence I doubted what I was saying was fact, and  believed it was just my crazy opinion; so I then had to research and find corroborating support from books or online articles. This obviously slows down the process while adding legitimacy, and protecting me from embarrassment. Further slowdowns were caused by writer’s block, or as I like to call it word blindness and imposter syndrome.

During the process I discovered many articles and useful web sites I just had to try and include in the book. Unfortunately that broke the planned structure. In the end I rewrote it about fifty five billion times – give or take one. Rewrites and reorganizations take time, and you also then get confused with what you’ve reviewed and if you’ve already talked about a topic. Rewrites also introduce more grammatical errors, something I’m already terrible at.

Eventually I just decided to stop worrying about it, dump all the content into the book; then go through linearly (many times, in both directions) to make sure I hadn’t stated the same thing twice (or at least not verbosely). Then streamline some more, making sure the pragmatic ethos is applied. After drawing some pretty diagrams and formatting headings, adding emphasis on the correct words and getting page breaks right, I felt ready to publish. The PDF was ready.

Little did I know that it would take another month to publish. But kind words from those I gave pre-release copies to really helped push me on. @MrRio and Laura Turner to mention a few.

If only I’d have googled ‘how to write for a Kindle device’, things would have been a lot smoother. No one set of formatting seemed to work well on iPhone/iPad/Fire reader.  After many nights of pain, I had to drop Apple Pages, and use Microsoft Word. All the beautiful formatting and indentations were lost, artwork had to be redone. The Amazon cover page creator is seriously rubbish too, I started to lose the will to live.

It almost got to the point that I was going to publish regardless of how scraggly it looked, and never read it again. After telling my friend Amelia, a professional copy editor, about my Kindle woes – she just constantly nodded; as if she’s heard it all before.

I’ve sworn not to write a book ever again, the process has been so traumatic. Not something I enjoyed, but I don’t regret doing it. After-all, It’s kinda cool to say I’m an internationally published author!

As for sales, I’m not going to retire anytime soon. At the time of writing I’ve had one purchase in Japan, one in North America and 70 normalized pages have been read through the Kindle Subscription services. I knew this was going to be a niche market; so no surprise there!

I do have some plans to neatening the book up a little; for a start the bibliography and references section needs help – I was largely at the mercy of Microsoft Word->ePub conversion, and I gave up the fight.

I could also do with adding recent events regarding the Oracle Java API case, and elaborate more on some of the popular licences in play and their associated risks/permissiveness.

I’m dreading the first reviews – it’s been a rough experience and reviews can be quite brutal. I just hope the audience appreciates I’ve tried to respect their time by keeping it minimal and pragmatic – Given Kindle pays per page read, I’m not surprised there’s some oversized books on the shelf!

Here’s the book in all it’s glory, it’s fun to see what it looks like in Japan’s store..

Amazon US

Amazon UK

Amazon JP










GameDev Diary – SpaceLife #7

It was all going so well.

I placed some pre-canned planets procedurally, as well as making planets farthest from the sun be gaseous. Then I decided to be a fool and turn on lighting. Producing some lovely results as you can see below:


Yay! That looks cool.

But then I discovered something quite awkward.

The sun is in a mini, scaled down solar system 30,000 units away. So that’s where the directional lighting is.

The ship and asteroids are NOT in the same place. So we’re actually getting the right shadows by luck rather than by judgement. If I warped behind the sun, we’d get the shadows on the wrong side because it’s all been faked. We will also find that shadows of planets will only fall on other planets and not on the ship or asteroids, because the light is coming from a different direction and length (we won’t get the correct cone of shadow).

I’m not 100% sure what to do about this. I need to prevent light bleed from both locations, yet represent the light in both locations.

If I create a fake light in my ‘local space’ and curtail the light effects of the mini solar system so they do not bleed into us, then we still won’t get shadows falling from planets.  That will manifest itself when we start to add space-stations. If a space-station is near a planet, and the sun is behind the planet, then the space station’s rear should be dark too. But because I’ll be faking a local light that’s not got a planet in the way – that won’t be the case.

So I either work out something clever, or I keep this simple-stupid.

Time to read up on lighting I think!


Using a point light in the scaled-down universe allows me to get an area-of-effect light but curtail it’s distance. That’s the solar system lit up nicely! You can see here that a planet further away is bright as day but the back side of the planet near us is dark.

2016-06-04 13_53_03-Start.png

However, if I were to add some asteroids or change the camera to see the cockpit, it won’t be lit up yet. Time to add another spotlight that lives in our near universe – mimicking the position of the sun.

This is achieved by a spotlight 5000m away in the +ve Z axis, pointing at us. Here’s a picture of how it all pans out.


Now the trick will be to keep the sun in the correct place; remember – the floating origin trick? Well, if we do nothing, and keep our local sun as a root game object, it will work. But you’ll see the intensity of the light get higher and higher until our player reaches the threshold for the floating origin ‘push back’. Suddenly the lighting conditions will appear to flip to a darker scene. So we have to keep the local sun at the same distance away from us, and if it’s starting position is different (maybe in future, we’ll warp to a planet the other side of the sun) it will keep in the same elevation/position relative to the mini universe specifications.

What have we lost? Shadows from planets. But in reality, they player probably won’t even notice.

After adding some ambient light, our scene looks nice, like the first images of ‘fake success’.

2016-06-04 14_34_30-Unity Personal (64bit) - SkyboxTestScene.unity - SpaceLife - WebGL_ _DX11_.png

2016-06-04 14_38_50-Start.png

Next I think I need to tidy up the current code, start thinking about how to warp near planets to get to their space stations – if they have them. One day I’ll get rid of the lame warp-up/down etc. That’s just to play around with.