Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics


A member registered Apr 20, 2016 · View creator page →

Creator of

Recent community posts

Thanks for this, I wasn’t expecting as many issues with this setup. If you don’t need post processing, then it is better to use 1 main camera and the pixel perfect component. It works slightly differently than the method that we’re doing here. Next year I’ll be sure to include this as well.

Appreciate this, works in Unity as well.

For anyone wondering, if using TMPro with this asset is as easy as going Window > Text Mesh Pro > Font Asset Creator

Then just select the font, select “RASTER” render mode at the bottom and then generate font asset.

Heyo, if you don’t care about URP or post FX, you can just use the pixel perfect camera component. There is one made for the built-in pipeline included in a 2d project. Once you have that added just change your UI Canvas to world space and set the camera to the one you have the pixel perfect camera component on.

You can reference my old guide for some additional details.

(1 edit)

Two updates I’ve made.

I forgot to add that the “Game Camera” needs a “Pixel Perfect Camera” component as well. This component needs to have a pixel per unit size of 6 and a resolution of 64x64

The second thing is that the “Render Camera” needs to have its “Audio Listener” component removed.

Both of these are now in the guide, but if you used the guide the first or second day of the compo then you are probably missing those steps.

Hi, the thing I forgot to put in this guide is that the “GameCamera” also needs to have a “Pixel Perfect” component added to it. This component needs to have a pixel per unit size of 6 and a resolution of 64x64

Hi, the thing I forgot to put in this guide is that the “GameCamera” also needs to have a “Pixel Perfect” component added to it. This component needs to have a pixel per unit size of 6 and a resolution of 64x64

Let me poke around at this for a bit. I’ll see if I can give some answers to it.

(3 edits)


This also exists as a GitHub Gist, which is easier to read IMHO

It’s that time of year again. Time for the #LOWREZJAM!!!

Almost every year so far, I’ve created a guide to getting 64x64 resolution working as natively as possible so this year is of course, no exception. This is not for absolute beginners but if you’ve done some tutorials for unity then you should be fine here.

This guide is going to go beyond just using the default pixel perfect camera and such and the goal is to have Post Processing, UI, and the normal artwork ALL being forced into the 64x64 resolution. I want to warn you, this is janky, but it DOES accomplish those goals. Every time I’ve tried to do it in a more clean fashion, I end up with UI that is affected by post processing, or UI that isn’t interactable, or some edge case in the Pixel Perfect Camera component.

Last thing, if you don’t care about post processing, this is actually much, MUCH easier, you can scroll to the end for that. Anyway lets jump in.

Project Setup

We’re going to start with a NEW, 2D URP project on Unity 2021.3.6f. I want to stress that this will work for 3D as well but it DOES require URP and for you to install the pixel perfect packages from the package manager. (It’s actually easier in the Built-In pipeline but you end up with a similar setup to this. You can reference my old guide for that.

Once we have that setup, make a new scene and save it as “64xTemplate” or something similar. In this case, we’re using a LIT 2D (URP) scene. At this point, I like to add a 2D sprite rotated at 45 degrees so that we can see our results.

first image

Game Camera!

  • Create a new folder in Assets called Camera Rig.
  • Inside this folder create a new Material that uses the Universal Render Pipeline > Unlit shader. Name it “Main Render Mat”
  • Also in that folder, create a new Render Texture and name it “Main Render”
  • Assign the new Render Texture to the “Main Render Mat”’s Base Map texture


  • Set the render texture to have a resolution of 64x64
  • Set the render texture Filter Mode from Bilinear to Point
  • On your main camera, rename it to “Game Camera” (it should keep its MainCamera tag so it continues to work with Cinemachine)
  • On your “Game Camera”, tick the box for Post Processing
  • Now, on your “Game Camera” , set the target render texture to your “Main Render” render texture.


  • IMPORTANT If you are using 2D art assets, you need to add a Pixel Perfect Camera onto the “GameCamera”
  • The Pixel Per Unit size needs to be 6 and the resolution needs to be 64x64


Render Camera Rig

Okay, so… this is where it gets… Janky.

  • Create a new camera and call it “RenderCamera”
  • Remove the Audio Listener from this camera
  • Move it FAR out of the way, for example: 0, -1000, -10
  • If possible, use that position as it’s easier to setup if your X is 0, and your Z is -10
  • Set your Camera Projection to the following settings:
Projection: Orthographic
Size: 5.333333
Clipping Near: 0.3
Clipping Far: 20


Next, add a Pixel Perfect Camera component to it with the following settings.

Assets Pixels Per Unit: 6
Reference Resolution: X64 Y64
Crop Frame: Windowbox
Grid Snapping: Upscale Render Texture


Rendering Object Setup

  • Create a new 3D Plane (Yes, even in 2D).
  • Make it a child object of the “RenderCamera”
  • Set the transform to the following:
Position: 0, 0, 10
Rotation: 90, 0, 180
Scale: 1.06, 1.06, 1.06


  • Now add that material we made earlier. Main Render Mat!

You should have something that looks like this now!


Post Processing

Add a Global Volume to the scene and create a new volume profile on it. For ease of testing, add a couple of effects that make it easy to see. After that you should have something like this:

image image

Easy right? All the effects are pixel perfect and show as you might expect!

Finally… UI…

This is the last little bit here, it’s the reason for all that annoying setup. This is probably the last year this tutorial uses UGUI based on the roadmaps I’ve seen, but I could be wrong.

Right click in the heirarchy and create a new UI > Panel.

This should have added a few new objects into the scene

> Panel

On the canvas, set it up with the following settings

Render Mode: Screen Space - Camera
Pixel Perfect: YES
Render Camera: RenderCamera
Plane Distance: 5
Sorting Layer: Default
Order in Layer: 1000


I won’t get into UI specifics but you can adjust your panel or add buttons and they will show up overtop the game scene. Most importantly, they won’t have any post processing applied to them.


For fonts, honestly I have not come up with an ideal solution. There are some pixel fonts that I’ve found look good but it’s a matter of getting them aligned properly so they don’t get destroyed by the pixel processing. In the past I’ve cheated by hand-aligning them all where they looked good but your mileage may vary on that.

This is a pretty good starting point depending on what kind of game you are making. This setup will work in 2D and 3D with no differences except you will need to import the 2D pixel perfect package into your project.

If you don’t care about post FX

On your main camera, add a Pixel Perfect Camera component and give it the following values

Assets Pixels Per Unit: Depends on your project, its up to you!
Reference Resolution: X64 Y64
Crop Frame: Pillarbox
Grid Snapping: Upscale Render Texture

Make a new Canvas and set it from Screen Space - Overlay to Screen Space - Camera and assign your main camera to it.


UI will work as usual and will adhere to the pixel perfection. The only issue, is that this UI setup gets affected by Post Processing if you use it.

This is really great, I liked the art, the audio, the gameplay, all of it. One thing I’d say is that it’s a bit easy. You could increase the lives to 5 and then take away a life every time you press the wrong button.

I liked this game a lot, I love small scale dungeon crawlers like this a bunch. The concept is nice, the art is cute, and the audio and sounds are perfect.

I did get frustrated by the movement though, the player is too sticky and some of the corridors are small which makes the problem worse.

I really like this game overall though as that is literally my one dislike.

I liked this game a lot, love the concept and would love to see more of it.

It was however a little buggy as I couldn’t see all of the text and I got stuck in the walls and ceiling a lot. Couldn’t make it to the end because of getting stuck.

I did like this concept a lot though.

I got spooked. Love the visual, love the gameplay. Took me 3 tries to get all the way to the end. Nice work

So I think this is really cool as a concept, if you update it post jam I will definitely be back to try it.

I liked this concept a lot. You can’t take damage, but the other ship can. I like that your body can block shots too.

Art style is simple yet pleasing.

Only bad thing I could say is that it isn’t very long, but neither is mine.

I liked this game a lot more than I thought I would. I don’t know why but I really liked the music. It’s funny but also catchy.

I dig this game a lot. Got 20 on my best attempt. I felt like when jumping over boxes, the collision wasn’t perfect but other than that it was everything I’d ever want it to be :D

Thanks, post-jam update coming after the voting period ends that makes the game play better :D

Yeah, I sort of guessed how much time a player needs to do this; it was like when I had less than a minute left of my 3 hours. I already made a post-jam update that will go up after voting is done that adds proper timing, a bit more interesting gameplay and music/sounds.

I was pleasantly surprised at how this all game together visually; I appreciate the compliment.

I’m open to any suggestions on how to fix the camera. I thought about letting the player orbit the camera but wasn’t sure that was the right play.

Dark Souls of shooting galleries.

(1 edit)

I could not beat the one with the bird cage. I even tried bugging the game by getting the turtle to YEET out of the water but no dice.

I loved it though.

Nice! I always got messed up and got assigned the ones in the back and would never make it.

Yeah maybe I’ll intentionally add flickering in the next update. I definitely liked the colors I had for most things but definitely needed some more time.

You actually need to match the color of the loading zone, it’s sometimes deceptive because the colors can be picked similarly or like all white which doesn’t help. I wanted to put numbers on the cubes along with the colors.

(1 edit)

Dang, apparently, I had it set to “Restricted” still. I definitely only had one brain cell on duty yesterday. Thanks for letting me know, I fixed it.

Game is super unfinished. I bit off a 5 or 6-hour project for a 3 hour one. I like the concept a lot, so I’ll definitely update it post-jam. If you’d like to watch me stumble around for 3 hours on-stream you can see it here. Part 1 and Part 2. Will have a YT vid to follow.

Thanks for giving this a play.

I agree fully with this and I’m sorry you couldn’t find the cave. Maybe I’ll give it another update to boost the resolution up by one more step.

For sure, add me on discord and we’ll get you going TylerCode#3165

(1 edit)

Heyo, have you teamed up with anyone yet? I’m a programmer with lots of unity experience over the years. I’ve also gotten an artist for the jam.

If interested or have questions add me on Discord TylerCode#3165

Yeah I’ll probably do a 8.2 with them popped back in. It’s supposed to hold them until later rooms but I forgot to set the generator to make enough rooms for them to start spawning.

I had a feeling but wasn’t sure if maybe there was some heavy wizardry going on.

(1 edit)

Okay, so I did have fun on this, I didn’t really know where to go always so an arrow pointing to the direction of the task would be nice. Overall we had fun with it though. I am curious. How did you do the 2d lighting? Are you just using normal lights and abusing the fact that unity’s 2d is just 3d? or did you do something fancy? I only ask because 2d lighting (to my knowledge) isn’t supported in v2019 of unity.

Overall very polished for a jam game. Nice work!

I had a lot of fun on this, I thought I was being cheeky digging straight down but the game saw this coming. Then I built some stuff and jumped around since it sometimes bugs and sends you flying 11/10.

After that I decided to get to the bottom of things again and once I got there it seemed like the chunks above me refilled themselves. So I put blocks on my player position, got stuck, physics lost its mind and YEEETED me to space, then the game crashed.

I do really like this, I did a little crafting looked around and then yeeted myself again. I had fun and I’m impressed with all the systems in here for a jam title.

Thanks! I feel like the ability to mute music in-game is one of the more important things in jam titles.

“The Dark Souls of platformers” - IGN “11/10 gameplay” - GameSpot “Why can’t my brain understand this jump?” - TylerCode

Yeah and that sounds like one of those bugs you have to go deep into a rabbit hole to fix.

Thanks for playing and thanks for the feedback! We did talk about that and potentially adding it in the future or maybe making a larger scoped version with it. I’m glad you liked it regardless.

I liked this game a lot. Audio wasn’t as bad as you described on chrome and the visuals were really pretty. Very polished and loved it.

I’m really glad you liked it! This was the first game ever for the artist and the music was just ridiculous.

Yeah I think after the jam is done we’ll tweak the timings on the drink bonuses and the delay between customers. Definitely shouldn’t feel like an unfair loss.

Thanks for the feedback and thanks for playing!

Thanks, the music was so ridiculous and perfect! Glad you liked it and we’ve already thrown around the idea of adding a small tutorial after the jam is done. Thanks for giving it a go!

(1 edit)

I really like this. It reminds me of Metroid X DigDug. Class system was a nice touch

Hell yeah, I’ll give it a go after work, you should play/rate/comment on other people’s games so that they come back here and know to rate yours!

For sure, definitely wouldn’t mind giving it a go. Also I totally get that. It ended up being a 72 hour jam for us cause we could not get motivation until like the Thursday before. Either way, glad you participated and jamming is definitely the best way to get into the groove of making games.