Can 2D images cause performance issues with weak computers, or even strong ones?

I am using Unity3D to develop a 2D game using entirely 2D images on planes.

My question is— can too many quality 2D images cause a lot of lag?

There will obviously be different images for each object. The ground tiles are an image, the character is an image, his equipment are images, GUI, inventory UI, hotbars, animated characters, particle effects, etc.

If I had…let’s say… 40 2D characters on screen at one time, all performing animations, along with an animated background (lets say an animated waterfall or river, and sprinkling leaves falling from a tree) along with particle effects for all abilities and spells going off…would it cause even powerful computers to lag?

I only ask because I naturally assumed that by using purely 2D images, I would be able to make a game that can work with ANY computer, even a crappy netbook, as well as become a browser game (possibly).

3D is so complex, it must do trillions more calculations, which I assume 2D images displaying and animating would require significantly less processing, and thus display smooth, even if hundreds of characters were on screen at one time.

This also takes into considering loading characters who go on and off screen, as the game screen is smaller than the game world.

The game is a RPG which plays sortof like a MMORPG, so imagine Ultima Online.

Thanks!

Displaying 2D pictures and a lot of high quality 2D pictures does indeed require some processing power and you won’t be able to do anything you want for crappy hardware… A lot of parameters are part of the equation pretty much like for any other 3D games, though some parameters are more important in this case. You have to remember that 2D images rendered with unity are in fact rendered in 3D, even if some simplifications may occur to simplify some calculations (ortho camera, simple unlit shaders, etc…).
Obviously you’ll have a hard time reaching the polygon limit video cards can render, but you might want to keep an eye on video memory consumption, the number of draw calls for extremely crowded scenes, and the fillrate capacity of different hardwares (the ability to render large layers of pixels on top of each other).

Would a simple solution be to have 3 versions of each image?

one is a high quality, high resolution version. (100x100 sprite, in 100x100 resolution)
one is a medium quality, medium resolution version (100x100 sprite, in 75x75 resolution)
one is a “Loading” quality, low resolution version (100x100 sprite, in 25x25 resolution)

Basically all are loaded first as a fuzzy, then medium, and only lastly high resolution.
Of course, this is an option. Anyone with a good comp can turn settings on highest, which never sees the fuzzy characters loading.

I don’t really know what I’m talking about-- but I assume having different resolutions based on hardware settings might help?

Such as letting players have the option of selecting how many characters can be on screen at once before any additions to that # become medium, or low quality. Everquest 2 does this, allowing you to set how many High Detailed characters are allowed on screen at once (drawing the nearest first) while Low Detail characters for any above the set maximum (usually further away).

I guess I will just have to see, won’t I?

I have both a powerful Crossfire 5800 i7 setup, and a crappy Intel Atom Netbook.
I will test the game on both, hopefully getting it to run on both.

Exactly. Testing on your target hardware is the only way to know how your game runs on your target hardware.

Note that while using built-in planes and individual images/materials is relatively inefficient, it might be Ok for your purposes.

However, to use 2D images that are not powers of two, and to do 2D efficiently in general, it is a good idea to atlas your textures. I recommend using something like Sprite Manager 2 if you are not comfortable writing the scripts to generate atlases and geometry yourself.

Yes, I will definitely be purchasing Sprite Manager 2.

I don’t really understand what you mean by “atlas your textures” and 2D images being “powers of two”

I actually am going to be making every image a .png, and the same universal size for sprites, etc. This way I don’t have to offset the hundreds upon hundreds of images. Although I did notice SM2 is capable of doing that!

But I will have too many animations to do that with each frame.

I am interested in handling 2D images to be the most efficient they can be without sacrificing quality. Performance is always something I want to have in my game.