im trying to keep things simple, i want to have some simple ‘2.5D’ planed or really low poly characters, with alpha and normal maps to create a complex look. i.e. monsters with 64 tentacles, but there are in fact only 8 flat or box tentacles, with 8 tentacles alpha’d and bumped on each to look better.
can anyone foresee any potential problems in the future if ive got a lot of these monsters running around?
1 - Alpha and pixel rendering cost - There is a huge graphics cost with rendering alpha onscreen. My PC has frequent massive slowdowns rendering big particles and enemies with games like Dust: An Elysian Tail, but more complex games like Scribblenauts Unlimited which actually render 3D models and sobel edge shaders works fine. If you want to animate, this is going to take some work, but consider cutting out your sprites to the shape of the object in question. Depending on how complex you want your animation to be, this can either be super-simple, or impossible. You can have some leeway with alpha cards, but not tons. Vertex shaders are performed alongside pixel shaders, so saving on polygons will NOT make rendering pixels any easier.
2 - Memory - Most consoles nowadays don’t have too much memory issues, but if you decide to use frame-by-frame 2D animation, you will have to use sprite sheets. Dust: An Elysian Tail used 3 @ 4k sprite sheets for the main character alone, and that sucked up the majority of the Xbox 360’s RAM. Again, it’s not too much of an issue nowadays, but depending on what hardware and techniques you want to target, it will be something you need to be wary of.
Now for your suggested solution: mapping 8 arms onto a single card means those arms must be animated with frame-by-frame 2D animation. Being that there are 8 arms, your sprite needs to be large enough to accommodate for all that movement, which means even more alpha will be exposed, bogging down your pixel shading performance. This all depends on the quality and rendering style you wish to use.
its just for pc really, as a challenge to myself to actually make a small game which has a beginning, middle & end. (im a gfx/sound guy)
im trying to keep things as simple as possible. not very easy! although blueprints is something i can get my head around. its been a nice revelation, from someone who understands most game logic concepts apart from actual c++. i just cant get my head around it!
I hear you. I made an entire game within Kismet, and even though it is possible, it’s also very messy. If you don’t account for everything, then a player will indeed break your game. Scribblenauts used 3D models with a 2D camera because they were easier to animate than making sprite sheets for every single object and character. Paper Mario used character sprites in 3D worlds because it was easier for the N64 and Gamecube to render sprites than fully modeled and rigged 3D characters. It all depends on what exactly you want to do and how you want to do it technically. Do you want to have arm sprites independent of the body, allowing you to animate each arm in-game separately, or do you just want one big sprite to take care of everything?
well i just want to make a really really simple shooter with nice graphics and sound to showcase what i can do! (think serious sam but pretty) - this seems to be within my grasp using blueprints as i can visualise the A.I and other game logic, and put into practice, whereas before i was just looking at c++ and thinking ‘huh…?’
my monster models get very heavy on the limbs - a lot of polys, and with each of them wanting a nice animation curve to look nice it adds to the amount per arm (imagine a jellyfish with 64 limbs squirting through the water, then imagine a shoal of them) i was just thinking it might be easier to make them sprite-based, maybe its not…? ideally i would have them 3D but im trying to get the fps really smooth for VR support. i keep thinking to make them more simple, but then i lose the artistic edge ive established… !
what i will do is test out sprites vs 3D, but im just learning blueprint & the unreal engine (ive been trying to use source before this, as counterstrike maps or HL2 levels were the easiest to make and have them work without problems) and thought it prudent to ask here first.
You should be aware of your technical limits with any project. It is a fool’s errand to say “I will ignore technical limits and do whatever I want to achieve artistic excellence,” only to then be tasked with making the impossible and failing to do so. A good developer will know what’s easy, what’s difficult, and take full advantage of everything they can so the end result doesn’t seem like it was restrained in any way. This is why games like Paper Mario haven’t aged while the majority of other N64 games did: Paper Mario took full advantage of everything the N64 was good at and worked around everything it wasn’t.
The Wii U had some debilitating limits on how many bones a single character can be rigged with. So for the mechanical dragon, Rayman Legends just made a single very long tentacle that flows incredibly well instead of a bunch of tentacles that don’t. The end result isn’t hindered by any bone limits: in fact, they spend a lot of time showing off exactly how many bones there are, having the dragon slither in and out of the background, making full use of its ability to curl and wrap and it’s sheer size and length, and it’s nothing short of impressive. Never mind that there are more bones in Ellie’s face (from The Last of Us) than there are in the entire dragon: the dragon is still impressive.
Maybe your monster had a few arms sliced off, or cut short. Maybe it has thousands of tiny arms, but only a few big ones. Maybe some of its arms are dead ragdolls. Explore other options that will help you keep your bone limit down, and when you have a model that works, show it off. Maybe those ragdoll tentacles are covering its eyes and falling off like unkept fur on a yeti. Maybe its arms have arms. Anything else besides “I didn’t have enough bones to make what I wanted, so I made this. Lol.”
You can get away with simulating translucency on Masked materials thanks to the Engines Temporal Anti-Aliasing.
Download the content samples and open the Materials_Experimental map. It uses a special Dithering technique to give masked materials the appearance of looking translucent, which gives you all the performance & sorting benefits of Masked materials. You don’t get alpha blending of course, but that is an expensive process for any engine. Improved Translucency will come when Unreal has their Forward Rendering implementation.