making MASSIVE textures

Just out of curriosity, does anyone know of a paint program that will allow you to deal with massive (like gigs and gigs massive) image files?

The reason I’m asking is that for as long as I can remember I’ve always been interested in working on a game that has the entire game done as one giant painting.

Like if someone sat down and painted all of Link to the Past or Symphony of the Night as one giant image. With everything in it unique and not repeated.

I know that I’d have to cut up the image and load it as tiles, but I’m wondering how I could work on such a massive project seemlessly without having to constantly juggle the tiles.

Surely there has to be a program to paint massive image files, right?

Not sure how massive we are talking about … but photoshops psb format usually work.

Massive enough that it couldn’t be reasonably be stored in the RAM and would need to stream from the hard drive.

So like, as large as a hard drive could hold.

Like I said, I’m talking about doing something like the entire map from Symphony of the Night as one large image.

http://amplify.pt/unity/amplify-texture-2/

it’s been in beta for a long time though. Not sure how long they will take to finish this.

whats your computer specs?

Not great, but that really shouldn’t matter. I think I may not be phrasing my question well.

I would like to (potentially) make a 2d game where the entire map is hand painted. Not just hand painted object that I lay down, but have EVERYTHING hand painted individually. So that the entire game is essentially one big image.

I would cut up the image and load it in chunks as the player moves about the world.

I know what I would need to do for all of that in Unity.

What I’m struggling with is how I could paint this as one big seemless image, and not have to work on the tiles individually.

Doing them piece by piece just seems nightmarish and multiplies the workload several times over.

So I’m thinking that surely there HAS to be a program out there that specializes in working on massive images by streaming from the HD to the RAM it as you work on it.

I know that there are massive image files in games like RAGE for its megatextures or Skyrim for its skybox source images. How does Id and Bethesda work on those massive textures?

You specs matter a lot. Ram is going to be an issue.

Try working with an image larger than 8k by 8k and you will see what it’s like. Saving and loading etc.

I think it’s better you accept that tiles is the best solution.

2 Likes

Photoshop also accomplishes this using “Scratch Space” which you configure to tell it where to hold the temp data. I will tell you though that performance would be degraded significantly. Best to invest in more RAM as it’s not that expensive. I use 32GB of Ram and actually even disabled my page file on my Windows box.

You couldn’t feasibly expect people to get 32GB of RAM to run a game. The idea is that the texture would be streamed from disk, therefore specs wouldn’t matter much. You could theoretically write some kind of system to page in data as needed, and while you’d still be dealing with tiles behind the scenes, it would be invisible to the user. However I doubt this can be done effectively in Unity due to the Texture.Apply() hit you would have after loading data, unless there’s some way of directly accessing VRAM that I don’t know about. I think this is something that would need to be integrated into Unity itself, rather than trying to do it in user-land.

–Eric

That’s precisely what amplify texture solves. Otherwise if you want to do it manually you can just stream in cells in unity as you progress through the level, or use sparse textures, which is in the unity docs (although thats for dx11 only).

Amplify should run just fine on a low end computer if you’re only streaming basic textures. Although for 2D I’d have written a tool to slice a massive texture up into cells and load them manually.

I was speaking from the standpoint of authoring giant textures with Photoshop. You’d need to use something like Amplify to break them up and stream them in when using them in game.

The basic solution I’m thinking of is to simply paint your textures, and then divide them into sub-textures based on simple logic. So long as you only need to see two or three sub-textures of the level at a time, you can dynamically load those textures in based on the location of the camera. What’s really important isn’t what size your world is going to be, but how much of that world can be seen at any given time.

If I was you, I would create a simple two-color version of my world initially, and use that as a base texture for testing sub-dividing your world into sub-textures. That way you can get the dynamic loading working the way you want to before committing to painting the entire world.

From my experience both Krita and GIMP are good at this. Both allow images to get as big as RAM allow so if you have 64bit OS + 64bit Krita/GIMP + some insane amount of RAM that most people don’t have (say, 32GB) it should get it done.

One thing: Krita is painting program, so if you want to have that hand-painted look, use it for making “world texture”, while GIMP is more conventional graphics program so anything else goes here.

//edit: Of course this is on artist’s side. Player won’t have to have such insane specs as everything would be streamed as OP mentioned.

Yeah, I knwo what I need to do on the Unity side of things no problem. I just want to edit it as one big image in a 3rd party tool. I was wondering if there was a program that would let me do it on limited RAM.

If I do get to the project I think I’ll end up doing the 32 gigs thing.

My big issue is that I’m stuck using a laptop because I need to work on the go.

Mischief
https://www.madewithmischief.com/mischief

1 Like

YES!

AWESOME!!

Thank you ZG!

Adding to zombiegorilla’s answer, if you want an android version of something like that, there’s Infinite Design. There’s a free version too here.
I used it a bit but its a bit buggy and my phone is not suited for development on the go at all. :stuck_out_tongue:

1 Like

Thanks!

Mischief is a great little drawing tool. I also use it a lot for planning. It’s like zoomable, massive virtual white board.

Cool. How well it works with mouse/touchpad?