Creating Symlinks to Solve the Unity Asset Store Download Problem

Note: This solution is for Windows users only - Sorry Mac uses. Linux users you should already know what you’re doing!

With the recent release of the Unity Humble Bundle, a lot of uses have found themselves left with a very full hard drive, whist others have been completely unable to download some of the chunkier audio assets due to a lack of C: Drive space.

Before we can fix the problem however, we need to know…

What’s going on.

In a nutshell, Unity uses a hidden file on your C: Drive to save the assets that you download from the store. Once downloaded, you can then import them into any project you like without having to re-download it every time. This reduces the traffic on their servers and also makes things a lot quicker for you - especially if your internet connection is a bit on the slow side.

Now, is this the best solution? Probably not. It would be nice if you could specify your own save location for these downloads. But, it’s been years since this problem was brought to their attention so it looks like we’re still stuck with it for now.

What’s the solution?

The solution dear reader is symlinks, or Symbolic Links. This approach will allow you to point to a folder and that link will then appear to be the same to Windows. Think of them like advanced shortcuts.

There are a few different types of Symlink available to you, including hard links and soft links, but to solve our Unity problem you’re going to want to use a directory junction.

How do I do that?

This is where things get fun! Follow the steps below and you should be set up in no time.

1. Locate the folder

This is located at: ”C:\Users\[YourUsername]\AppData\Roaming\Unity\Asset Store-5.x”

If you can’t see your AppData folder, then go to “View > Hidden Items” to reveal it. It will look slightly fainter than the other folders in the list.

2. Rename the folder

This is just a precautionary measure, in case you want to revert back during the process. You can rename it to whatever you want but I’d just prefix it with an underscore for simplicity.

3. Create a new folder

Create a new folder at your desired location. This can be anywhere you like and called anything you want. I went with the folder structure “Unity Assets\Cache“ on my E: drive.

4. Open Command Prompt

Go to “Start > Cmd“ and right-click to run as administrator.
Once this is open you should be in “C:\WINDOWS\system32“. If not, it’s not a big deal, just make sure you’re somewhere on the C: drive. You can do this by typing “cd c:\”

5. Create the Junction

To create the directory junction you need to use the mklink command, which follows the pattern:

mklink /J “AppData Folder“ “Your New Save Location“

So in my example, I would use:

mklink /J “C:\Users\[YourUsername]\AppData\Roaming\Unity\Asset Store-5.x“ “E\Unity Assets\Cache“

If you’re successful then you will see a message that the junction has been created. If it fails then follow the advice in the error message. A common one is that the file cannot be created if it already exists. This means that there’s a folder in AppData with the same name that you’re trying to use. This is why we renamed the original in step 2.

Note that the AppData folder must be named exactly as it was originally, that is “Asset Store-5.x“. If you name it anything different then Unity will not recognise the folder.

Once this is all done you will notice the new folder in AppData will have a small return arrow on the folder icon, signifying that it is now a type of shortcut. If you open it then it will appear as if contents are within that folder by they are actually stored in the other folder you created.

6. Testing

Now that the link is created, test it by opening up the asset store from within Unity. The program will quickly complain if something isn’t right but you may also want to try downloading a small asset to make sure that everything is connected up properly.

You will see that the asset is downloaded to your new save location. It will also be visible in the folder within AppData but will not be taking up space on your C: drive.

7. Clean Up

Now everything is working you want to clean up the last few things.

First, you may want to copy over any assets from the original AppData folder to your new save location. This may throw up a couple of problems within Unity, but you should be fine. If not, just re-download them from the asset store.

Finally, delete the original AppData folder that you renamed. This is no longer needed so you may as well get rid of it.

8. Celebrate!

Congratulations, if everything has gone according to plan you should have everything set up and working. Sit back, relax, and feel like a boss!

Disclaimer: I bear no responsibility for any damages or loss of work caused whilst following these instructions. These instructions are presented “as is”, with every effort being made to ensure that the information contained is accurate and safe. Users should make appropriate backups before beginning the process and use this guide at their own risk.

First Unity asset is live!

I wrote a few weeks ago that I’d submitted an asset to the store and it was just awaiting approval. Well that day finally arrived and my ‘CVD Filter‘ asset is now live on the Unity Asset Store.

You can find it here (https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/cvd-filter-127303?aid=1100l3Ndu&utm_source=aff).

It’s only a small asset but I’m really pleased to have it out there and I’m hoping that other developers will find it as useful as I have.

CVD Filters for Unity

I was watching the latest episode of Game Makers Toolkit (GMTK) the other day and they were covering the subject of game design in relation to color blindness.  Feeling inspired I've gone ahead and created a new asset that allows developers to quickly switch between various post processing profiles that simulate the various forms of CVD (color vision deficiency).

This has now been submitted to the Unity Asset Store for approval.  Hopefully it'll be successful and go on to help many developers improve the readability of their in-game visuals for people that have CVD.  

EDIT: This asset has been approved and is now live on the Unity Asset Store.
you can find it here (https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/cvd-filter-127303?aid=1100l3Ndu&utm_source=aff).

Here's a few examples of what the tool does: 

Social.png
1s.PNG
2s.PNG
3s.PNG
4s.PNG
5s.PNG
7s.PNG
8s.PNG

A quick Update

I know that I'm notoriously bad at updating this blog and it is something at which I would like to get better. I'm mainly posting here now because my site hasn't really been updated since 'Oh No, My Patio!' was released back in June. 

I'm currently working on a project in collaboration with New Breed Games, which should be released later this year. "FlickBack" is a reaction based game designed for mobile and will see a dual-release on the Apple App Store and Google Play Store. 

The best place to keep up to date with the project is on the New Breed Games Facebook page here.

And to wet the appetite, here are a few in-development screenshots. 
Note: The game is far from complete, so none of these shot are that exciting. 

FlickTracker2.PNG

As a side note, I are also planning to release the icons used for this game on the asset store later this year.  More details will be provided on this plan closer to the time. 

In other news, I've also been practicing my 3D lighting skills recently.  Check out the new 'Art' section of my site to see what I've been up to. 

The difference a week makes!

I mentioned last week that I'd decided to learn how to draw.  Turns out, you just put pen to paper (or stylus to tablet in my case) and it just sort of happens.   One thing I will say though it that it takes HOURS!  I definitely have a renewed appreciation for the dedication that artists have towards their craft.  There is so much to learn but practice really does make perfect. 

So Here's a few small pieces that I threw together in my free time over the last few days.  These would probably take a pro a few hours but these literally took me days...

 

Day 1:

I took my wooden crate from before and gave it a hand painted look.  The shading is pretty terrible and the wood-grain overpowers the piece (so I've been told by an actual artist).

Wooden Crate Painted.png

Day 2:

I took what I learned from my crate and paid a lot more attention to the blending and shading.  I'm pretty happy with how this turned out for my second drawing. The cork is a bit too big for the bottle, but it was the last thing to be drawn/coloured and I was getting pretty tired.  

Potion Bottle Evolution.png

Day 3:

This was a fairly quick piece in the grand scheme of things.  It was good to try doing wood-grain using a slightly different technique.  Knowing the techniques to throw this together quickly will definitely make my UI work look better. 

Wooden Sign.png

Day 4:

I'm pretty pleased with this one too.  I think the proportions turned out quite nice and it feels like a sword that has actually been used.   

Sword.png

So, that's all for now.  This probably won't turn into a long term hobby but is definitely a good skill to have and will certainly make some of my prototypes look better going forward.

A new skill

After taking a little time off, I'm back into the swing of things.  I've got two new prototypes on the horizon, one of which just landed on my games page (Oh No My Patio!).  The other is a simple 2D platformer that I developed to get a better understanding of the Unity tilemap features. 

I've also started working on a new skill that I've always been woefully bad at - drawing. 
This comes with learning Photoshop a little better and working hard on the fundamentals.  So here is my first attempt at something I might actually be able to use in one of my prototypes, a wooden crate!  It's not the most impressive thing in the world, but I did say I was bad at drawing! 

 

 

Wooden Crate Evolution.png

Retro Rocket Run has arrived!

Wow, it's been quite a ride but Retro Rocket Run is now in open beta on the Google Play Store!

I wanted to write a short post just to say thank you to those who have followed me through this process.  It's my first real game and I'm really pleased to finally get it out into the world.  

Now, I won't lie - it's definitely not perfect.  However, I've learnt so much during development and my games can only get better from here! 

You can read a bit more about it over on the games page here

You can also join the open beta here.

The official release date will be Friday 2nd March 2018, but if you sign up for the open beta then you will be awarded with 90 rare coins for you to customise your ship in whatever way you chose.

I truly hope you enjoy giving the game a go and I look forward to bringing you even bigger and better things in the coming months. 

feature_graphic_820x462.png

Happy New Year

It's been a while since I posted, so happy new year to everyone!  I hope you all had a nice relaxing break over the holiday period.

Retro Rocket Run is coming along nicely, if a little slower than originally anticipated.  Beta Release is slated for early Feb with the full release happening very shortly after that. 

Optimisation is mostly complete and I'm currently working on the mammoth task of getting all the art done.  Here's a sneaky peak at the new icons for the main menu...

MainMenu.PNG

I've also planned out all the achievements for the game, so the next biggest tasks will be integrating with Google Play Services.

I'm still really excited for this game and if you are too then I recommend liking the game on Facebook here.  I'm usually a bit more active with my posts there and you'll even get the chance to help guide development directly with your suggestions!

A game to finish!

Ok, I know I say this a lot but I've started a new project...

Wait, before you tune out let me explain!

Firstly, my last project is still in developement.  I haven't just abandoned it.  However, it is taking a bit of a back seat while I do some other work.

Secondly, the reason for starting anther new project is because I'd quite like to strike whilst the iron is still hot!

As many will know (if they stalk my general comings and going) I tool part in LD40 and made a game I'm really happy with (See Retro Rocket Run on the games page).  However, it's not without it's flaws and there is still a lot I want to do with the concept. 
So, whilst there is still a little bit of hype in the air, I've decided to run with my original concepts and polish it up for a commercial release. 

This will probably be a few months away but I'd like to get it to a alpha/beta phase by the end of the LD voting period, so that the concept is still fresh in peoples mind.

I've already made a strong start with fixing up some of the major performance that plagued the LD prototype so hopefully the rest of development will be just as smooth.  

Watch this space of regular progress updates and please let me know if you'd like to be involved in the beta. 

You can play see the LD version here (https://ldjam.com/events/ludum-dare/40/retro-rocket-run-has-arrived/)

New Project!

I said a while back that I'd be starting a new project with smaller scope.  

Well, it took me long enough but I've finally made a start!

My new project is an arcade-style exploration game in a similar vein to the old classics like Thrust, Solar Jetman and Lunar Lander.

I've made a modest start and got my rocket moving.  I've also implemented a very simple fuel mechanic and am able to pickup nearby objects with my tractor beam. 

I'm aiming to get the first level completely blocked out this week, so I can gauge whether the experience is as fun as I think it is.  It'll then be time to decide whether to run full steam into production or not.  

I'm hoping that this will become my first commercially released game, so fingers crossed. 

I've got a new Rig!

Sorry it's been a while since I last updated my blog (and site in general).  It's been a bit of a crazy month.

I spent a week in Italy only to come back and find that my PC had decided to kill itself.  So, after a week of waiting for parts I'm finally back in action! 

For anyone interested, here's what the new rig looks like: 

New Hardware:
CPU:  Intel i7-7700K (overclocked)
GPU:  EVGA GTX 1080 Hydro Copper (overclocked)
RAM:  Corsair Vengence RGB 16GB DDR4 3000MHz (overclocked - yep, who knew!)
MOBO:  MSI Z270 Gaming Pro Carbon

Old Hardware:
SSD:  1x Sandisk X110 128Gb
HDD:  2x Western Digital Blue 1TB
PSU:  Corsair AX1200 (I'm aware that this is too much power but I had a use for it once)
CASE:  NXZT Switch 810 Case

light.jpg

It looks especially good at night, but I don't have a good enough camera to take a decent shot of it.  The tubing isn't the best job I've ever done, but it does the trick and doesn't leak! 

So there it is - the machine that will be helping me make all of my games from now on.
Hopefully I can now get back to the regularly scheduled updates again!  

Officially Certified!

This is just a quick update to let you all know that yesterday was a pretty good day for me.  I am now officially a Unity Certified Developer!  I passed the test with over 90% too, which i'm pretty pleased with.  

Now back to work on the new project.  I'll hopefully be sharing details on that towards the end of this week.

A brand new project

When I said that I was stepping away from my RPG project for a bit I meant it.  It was getting far too big and since I had no real plans to release it I thought my energy could be better spent doing something else. 

So, I have a new project in the pipeline! 

This one is a fair bit smaller and should be far more manageable to build on my own.  I'm not revealing details yet, but once I've got the core mechanics sorted I'll be sharing it here first, so make sure to check back soon and watch this space!

 

Exams are over!

I'm thankful to say that my exams are pretty much over for now.  The only one left is my Unity Certified Exam, which was postponed to 2nd October.  This should be a cakewalk though, so I'm not particularly worried about it. 

So now back onto my RPG, right?... wrong. 

I've been pretty ill over the last few week (including for my exams which was REALLY fun!).  So upon coming back to my computer I'm just not feeling it at the moment.  So rather than charging back into something I'm not overly happy with, I'm taking a break and doing something new. 

After reading an article on hex grids I thought it'd be fun to try and implement the cubic coordinate system into a 4x style map.  Now, I'm not going to be making a 4x game any time soon, but it's nice to know that I can make a map if ever I need to again.  

I'll probably carry on down the rabbit whole this week and then back to the RPG demo (or some other side project if I get distracted again!).

 Hex map showing the cubic coordinate

Hex map showing the cubic coordinate

 Hex map with horizontal wrapping

Hex map with horizontal wrapping

Well that's it for now.  I've got a few things in the pipeline this week, so I look forward to sharing with you again soon.

I made a board game...

So first up, some news on the RPG.  It's been slow. REALLY slow.  I've got a maths exam coming up soon and have also been studying for the Unity certified exam, so I haven't really had much time for working on Blackwood. 

However, I did start a new course on game design, more specifically around board game design.

In just two days I've put together a reasonably good strategy game and am in the process of looking for some playtesters to help me with tuning. 

The game is (currently) called "Carnyx" and is a game were you try to outmaneuver your opponent in an attempt to wipe their pieces off the board. 

The theme is loosely based on the Romans fighting against the Gauls (hence the two different types of coin).  This is also where the name comes from (a Carnyx is an instrument the Gauls would play in battle).

If you're interested, the rules can be found here.  
If you're really interested and want to get involved in playtesting then drop me an email or contact me on social media.

For you're viewing pleasure, here are a couple of screenshots of the prototype I made in Tabletopia. 

 Let the game begin!

Let the game begin!

 The game is heating up

The game is heating up

Finish Him!

Today was all about combat, which is coming along nicely.  
No animations yet, but the player can use a melee attack on enemies and they can shoot the player at range.  

This combat is pretty rough and ready, so will be changed before too long.  Probably when I start looking at weapons and equipment.   

In the image below the red sphere represents the enemies attack radius and the blue sphere is their chase distance. If an enemy is chasing the player and the player moves outside the blue chase radius the enemy will return to their starting post.  This is great for testing, although I'm thinking this behaviour will be a lot more complex by the time the final prototype is finish.

 Let's start a fight...

Let's start a fight...

 

 

Unleash the Kraken!...

... Well there's a dramatic title for you! 

It's been a rather productive day over here at Central Command.  I've started trying out GitKraken for all of my version controlling needs.  SourceTree was starting to get on my nerves and GitKraken was recommended to me.  It looks quite nice and is hopefully a little more friendly that SourceTree.  Let's see how it goes...

On to more exciting news.  My RPG has taken another baby-step forward.  Literally. 
Today I primarily focused on tightening up the movement controls.  They're still not perfect, but are definitely getting better. 

I also threw in some Gizmos to help me see what the character is doing when I tell him to get his arse in gear or defend his honour.  

The health bars are all just temporary placeholders and don't do anything yet.  I'm not sure they ever will, but since my guy will be learning to swing a sword next I figured I might want to see what happens when the enemies start fighting back.

 Run Forest, Run!

Run Forest, Run!

Next up will be basic combat training, before teaching everyone to solve their problems with words.  I'm thinking that combat will take a fairly minor role in the game so don't expect anything too impressive in the next installment!

Slow Progress

Well things are on the go slow this week.   I was away over the weekend, so didn't get any work done.  I've also got an assignment due in on Wednesday, so most of my Monday was taken up with that. Hopefully things will free up mid-week and I'll have more to share by the end of the week.

On the plus side, I did get some time to code this evening! 

In a few short hours I threw together a UI drag and drop system, which I could be used as the basis of a Magic: The Gathering style clone.  It could also be adapted to work as an inventory system or anything else that requires you to move something from one place to another.  Something I may well use for Project "Blackwood".

Speaking of my RPG, I also made a small amount of progress there too.  My hero can now move with point and click controls and I've added some affordance to the cursor, so you can actually tell what you're clicking on (roughly). 

No pictures this time around - Go play the demo on the Games page!
I'll make sure to put some in next time though, or I may treat you to a little video or even a demo.   

New Blog, New Project!

Thanks for stopping by my blog.  I'm pretty new to this whole thing but figured I could use it as a way of keeping track of projects I'm working on. 

So, my next project will be an RPG!  I'm not giving away too many details yet (because I'm still deciding on the direction) but I thinking I'm going to aim for a Torchlight 2 meets Discworld kind of vibe.  The project has been dubbed "Blackwood" - Not sure if that's a person or a place yet... 

here is a shot of a prototype town square.  This was built so I could get a sense of how the main character moves in the world.  it's not much yet but it's a start! 

The project is being build in Unity 2017 and I'm hoping to share a few builds along the way, so stay tuned and let me know if you'd like to help playtest!

 View from the in-game camera

View from the in-game camera

 View of the level layout from the editor

View of the level layout from the editor