Hi all, looking for a bit of advice. 4 colours for the 16x16 draw, from what I have read it's the same for sprites, so when doing characters is it possible, to have 4 different colours in a different 16 x 16 that are attached to the same Sprite. Il post a pic that may show what I mean.ignore the colours displayed, I know there not nes, I'm just experimenting.
All sprites are 8 pixels wide and one of 8 or 16 pixels tall, selectable at any time (but is shared across all sprites).
Each sprite has three colors, plus transparent.
Each sprite can choose one of four three-color palettes, entirely separate from the background.
Multiple sprites can be overlapped.
Games almost always combine multiple sprites (even without overlap) in order to make something larger; on this forum we call those things "metasprites"
In other words, there's no such thing as a 16x32 sprite, that is the game's code (you), making sure they move together to give the illusion of a bigger sprite. This means that the NES doesn't know any difference. It treats mario's feet the same way it does mario's head and goombas: single, independent sprites.
Just remember, there is a 8x16 sprite mode in NES, in that case both the upper and lower part of that sprite use the same palette.
Ok I think I get what your saying. Unlike the background loading up 16x16 that uses only four colours in 8x8 tiles from the 16 available background pallete(1 colour in each pallete of 4 being the same. The sprites 8x8 tiles can use 1 pallete of 4 colours from the 16 available colours(1 same colour being used for transparency in each) unless I would use the 8x16 Sprite mode, in which case 2 8x8 tiles next to each other horizontally or vertically would have to use the same 4 colour Pallete?
most of or all the NES games I have seen at least would suggest that the 8x16 Sprite mode was used a lot, why is that, PAL systems? Be interesting to know.
I appreciate your comments helping and I apoligise if you are find yourselves going over old stuff here. I'm not a nes dev, I'm just amateur pixel artist learning the trade, and trying to create genuine looking nes assets, so I want to get it right as much as i can, so your advice is crucial to my research and learning.
Chasersgaming wrote:
The sprites 8x8 tiles can use 1 pallete of 4 colours from the 16 available colours(1 same colour being used for transparency in each)
Sprite palettes really do have 3 colors only. There's no physical memory to hold anything for palette entries $3F10, $3F14, $3F18 and $3F1C... whatever you write to those addresses will overwrite the values at $3F1x (i.e. the background palettes).
Quote:
unless I would use the 8x16 Sprite mode, in which case 2 8x8 tiles next to each other horizontally or vertically would have to use the same 4 colour Pallete?
Sprites are either 8x8 or 8x16 (vertical), 16x8 (horizontal) is not possible on the NES. Also, this is a global setting, so ALL sprites on screen must be the same size.
Quote:
most of or all the NES games I have seen at least would suggest that the 8x16 Sprite mode was used a lot, why is that, PAL systems? Be interesting to know.
Early games tended to use 8x8, which are conceptually simpler to work with, but as time went on people started expecting video game characters to be bigger, and using 8x16 meant, in theory, that the coverage was doubled. In practice, that was not the case, since some of the sprites would contain empty space.
The posts above are correct. But just to add a visual, the lower right corner of this image shows how >3 color characters work:
Ok, No colour for transparency, just nothing written to those pallete entry's.
8x16 vertically, not horizontally, gotch ya.
So if I have a Sprite that's uses 9 8x8 tiles to create a boss character, I have to use the same amount of tiles for another character even though it's smaller in size let's say 4 8x8 tiles the rest is just empty tiles. That sounds odd. Or do you mean if I use the 8x16 Sprite mode then every other Sprite needs to use the same, that sounds right. Just making sure I understand what your saying.
Just going back to what I posted first, can I use a different pallet selection for each 8x8 tiles when using sprites, and if in 'Sprite mode' different pallete for each 8x16.? (See pic) sorry for the scribble. Have I got it right?
Chasersgaming wrote:
So if I have a Sprite that's uses 9 8x8 tiles to create a boss character, I have to use the same amount of tiles for another character even though it's smaller in size let's say 4 8x8 tiles the rest is just empty tiles.
No.
Quote:
Or do you mean if I use the 8x16 Sprite mode then every other Sprite needs to use the same
Also no.
If you have a sprite that's 16x24 pixels, that would be six 8x8 components ... but it's still four 8x16 components.
If you have a sprite that's 3x3 pixels ... that's one component regardless of whether it's 8x8 or 8x16. And all of these unused bits in both versions have to be filled with transparency, so there's a lot of empty-seeming space.
There's nothing that says the individual components have to be aligned on the grid. Skewing things sometimes can help.
There are 64 sprites. In any given frame they must all be displayed as 8x8, or they must all be displayed as 8x16. The hardware is 100% unaware of what you'd consider a "character". Any character can use any number of sprites. But if the total of all the characters currently on screen requires more than 64, the NES couldn't display all of it in the same frame.
You've got it right palette-wise. But also realize sprites aren't on a grid like the background. You can put them on any pixel. Edit: Ninja'd by lidnariq.
This shows boxes around where each sprite is. (That is thirteen 8x8 sprites.)
That's great everyone, really appreciate the help here, the background thing really through me out with the same colours being used for 16x16 grid, I wasn't sure if the same rule applied to sprites. Other than the 8x16 I'm pretty much free to draw 3 colours from the 4 pallets in any 8x8 Sprite. Thanks for clearing that up.
For the example sprite at the top of the thread, you could have the top black-pink-white and the bottom black-blue-red.
Here are a couple more examples of Kasumi's observation that sprites don't have to be on a grid. My character from
PyFHBG is carefully drawn so that his coat and cap don't extend more than 8 pixels wide.
The naïve way: 6 tiles representing 16x24 pixels of each cel
The smart way: 3 to 5 tiles each representing the same celsSometimes, as with
Sendo's "Noir Guy", you might have to fudge the outlines slightly to get it to fit in fewer tiles.
Left to right: before (8 tiles), after (6 tiles)
Hi, i have read all your posts, and i think i get it, i didn't know about the sprite layering, which was great. So this is my thinking so if you could let me know, yes thats right, or no thats wrong i would really appreciate it.
this was a character i created last month, now with knowing what i know i had another go but ive explained my thinking behind it based on what you have all said.
I'm not sure I understand all of your notes. You mention "not sprite mode", but what's there couldn't be displayed using the background, nor could it be displayed without sprite overlays. The only meaningful difference between the tops and bottoms seems to be the number of palettes used.
The top left isn't six sprites as you have it laid out.
The top 16x16 area would use four sprites of the palette marked green. This would leave a white area that needs another sprite.
The legs would be two more sprites using the palette marked red.
An additional sprite is needed to display the white in the top using the palette marked yellow. That's seven.
The bottom left wouldn't be six sprites + four sprites. It's be six + three. There's no need to draw or store a sprite that is fully transparent, so it's just the the three sprites as palette 2, and six as palette 1.
But you could optimize it further, I'd bet. Can you post it non-scaled?
For the top right, it wouldn't take eight sprites, it'd take 5. Two of the green marked palette for the top of the body, one of the yellow palette for the white area, two of the red palette for the feet.
For the bottom right, it'd take either 6 or 7. (Hard to tell when the image is scaled.) If you post it unscaled I'll break it down in a few different ways. I think you're still thinking too deeply as this being a grid.
Like, from what I can tell, the legs seem to only be eight pixels across, so they only need one sprite.
Edit: Well, nevermind on that last point. The one row of pixels at the bottom of the hands forces the leg area to be too wide for one sprite.
This is how I would do that character, it does not require complicated overlaying, but it does use up 3 palettes:
- Sprite tiles can be mirrored
- As Kasumi pointed out, make the arms 1 pixel shorter to use only one sprite for the legs (position it off grid). This is good because it reduces horizontal tile count, reducing the chance for sprite flickering.
- Only the sword is positioned on top of the other sprites
You could use 2 palettes instead of 3 if you made the shoes black and then used white instead of brown on the second palette, like so:
This optimization balance is the key to good, varied NES graphics. Make the most of your resources, because they are limited.
hi, sorry for my late reply.
OK, dam, i thought i had it figured out, you all must must think i'm an idiot. that's cool, me wife does as well.
Let me just explain what i am trying to do as i think i haven't explained myself properly. I am not creating a game, nor am i developing a game with a NES system.(i may one day, but not yet). I am trying to learn how to create genuine NES looking game assets. Assets that keep to the limitations of the systems capabilities and colour palettes. In order for me to do this i am creating them using the tools such as NESST and YY-CHR. but sometimes i have a few questions which the software im using doesn't have the answer. I understand the background, but 'metasprites' are a bit of a riddle. I understand the colour rules to some degree and i want to get them right as much as i can, or a least have it where i can be confident that it can be done.
The image i showed previously has been scaled, and it wasn't created in any NES software. it was a sprite sheet that was made for another game engine in mind, but using the NES colour pallete in a way that it could be seen as a genuine looking NES game asset, because it had been created as if it was being created for a NES system. Which is something i am doing as well. The assets will of coarse be available in a chr file, or bitmap file, so they could be used for guys like yourself who still develop for the NES system, they may not be your cup of tea, but hey they might help someone here oneday.
Which is why i ask the horrible questions,
so i apoligise if some of you feel you may of wasted your time, but i can assure you, your advice is well received.
I am a little confused now though? so a sprite is not an 8x8 tile then? i'm sure i read it was, im writing this and i can't qoute now who said what, haha. i feel i have followed what has been posted. Some of you are alarmed by my grid in the image, i suppose you need to ignore that as its not a NES thing. i just wanted to show you how i get the 8x8 sprite tile, use the colours and how id set it up, its not perfect i know, but colour wise is it not doable?
i cant send the original unscaled version of my image i posted just yet as its on another computer, i can do it tommorow if you would still like to assist?
thanks everyone
thank for your responses.
I see, that's great then! Always good to have free assets
To answer your question, yes a sprite is 8x8 or 8x16, and it uses one palette of a transparent color + 3 colors. It can also be positioned anywhere on the screen, and 64 of them can be displayed at any time. What exactly got you confused about what a sprite is?
The thing is your image was kind of confusing, and for a not too complicated character. So it didn't really need different sprites just to show the skin color for example. For that particular character design, it's probably best to do it the way I described, unless some specific resource necessity calls for a shift in resource usage priority ("resources" being palette usage, CHR usage or sprite usage, for example).
Although people would probably not use free assets "as they are", it's going to look better if the assets are designed with some degree of optimization for the desired platform. In this case I feel that 4 CHR tiles, drawn using 6 sprites with 2 palettes is a good way to go. Some of your examples use 6 CHR tiles, and/or 10 sprites, and/or 3 palettes.
If you open this game on fceux:
Then you use spidey's lua script that shows hex values for the sprites on screen you'll get this:
It shows exactly everything that is not a background, and how they are positioned on the screen. It's a nice way to see what are sprites.
Yes mr nesrocks, you are quite right, and you image you posted first with my sprites is exactly how I would do it for a chr file. I have a software that will remove duplications and images that are mirrored. Optimising it as you say. No one might use the assets, but il make them anyway as its part of making my assets more universal. They are released public domain anyway so they could be used and edited, modified in whatever way the user wanted, so may be useful just for a demo or conceptual works.
I really appreciate your last post, il check that software out as I haven't experimented with that one yet. Also what I will do is post the image again of the character with the chr set up.
Thanks for your help.
To answer part of your confusion, there are kind of two parts to displaying sprites.
There's the sprite itself, which is always 8x8 or 8x16.
Then there's the set of sprite tiles which are used to display sprites. If you use 8x8 sprites, each sprite uses 1 8x8 sprite tile. If you use 8x16 sprites, each sprite uses 2 adjacent 8x8 sprite tiles. But even using those two 8x8 tiles, it still only counts as 1 sprite.
So in theory, with 8x16 sprites you can cover twice as many pixels of the screen as you can with 8x8 sprites.
what our your thoughts on this tile set i'm working on?, the idea is it covers Sidescrollers, like, Platformers, Shoot em up, Beat em up genres of video games.
The black grid of the tool is distracting. Any way you could post it without the grid?
sorry,didnt realise i left that on.
Now the scaling is distracting
Why isn't it 1:1 or 1:2 ?
Scaling? the first screenshot with the grid is an 8x8 grid, the other image is the same without the grid, im not sure what you mean by scaling 1/1 or 1/2, its just a screenshot of my workings so far,
, maybe the sprite colours heading is off putting as this isn't sprites, its a background, so they are background tiles. although not formed in a NES chr set up(i can do if asked/required). id love to hear about the scaling you mentioned, if it helps me create more realistic/genuine looking NES assets.
The image you uploaded is 951 by 610 pixels. What was the original size of the image before you enlarged it? The answer to that question would suggest more useful ways to enlarge the image for display.
He meant that the scaling is uneven. The image is scaled up, but some NES pixels are 1 screen pixel wide/tall while others are 2, and it really hurts the dithering effects and the overall shapes of things, not good for judging at all.
I don't know what tool you're using, but be sure to set the zoom to 100% or 200% when capturing images, otherwise the image will look distorted.
You can see the problem clearly here
The uneven scaling produces the errors, as tokumaru pointed out. Take a pixel perfect screenshot with zoom to 100% or 200% or 300%, etc. (n x 100)%, and the problem will go away.
Oh I see!, the image is distorted, my apologies.il upload another, looked ok my end. Il make sure it all fits within the grids, some are loose and scattered about as its a wip.il tidy it up a bit.
thanks.
OK here is another screen shot, its just the platformer type tiles. original is 256 x 240, and then upscaled x4 1024 x 960. hope thats better to see now.
Since this is an outdoor scene, the gray color seems a bit unnatural. Consider other options. If the idea is a stone wall, then redesign its pattern.
Trees look good.
Edit... since green is in the palette with the gray, consider some random green dots / dithering on the gray to make some moss or vines, would make it seem more natural.
Also consider some cracks or defects.
"Since this is an outdoor scene, the gray color seems a bit unnatural. Consider other options. If the idea is a stone wall, then redesign its pattern."
your quite right there and i agree with you, but over the coming year i'm planning on lots of different variations of sets, which will feature a more rock design look and better themed, at the moment this is the only one i have designed which is going to be used as a template for now whilst i get my head around the colour and background limitations. There will also be orthographic, isometric versions and differences to a side scrolling game, such as 'beat em up's and the 'platformer' you see here. So if i can get the templates set up as i want i'm hoping this will make it easier in the long term, and i can focus on the enviromental themes better.
"Trees look good."
That's great!, thanks for that, i did wonder about those, proportions to a character size may be an issue, but i can tinker with that nearer the time.
"Edit... since green is in the palette with the gray, consider some random green dots / dithering on the gray to make some moss or vines, would make it seem more natural."
Yep, i do have tiles with vines, add a different climbing aspect then just the ladder.
"Also consider some cracks or defects."
Oh yes, school boy error there, that should break up the monotony a bit.
I appreciate the feedback so thank you for taking the time to look at it, i'm pleased that there was no mention of colour mistakes, or that i had produced something the NES couldn't actually do, colour wise. think i'm getting the hang of this now.
That looks ok, but one thing I don't like is the fact that everything but the green parts only use 2 colors at a time, giving the scene a sort of a "ZX Spectrum vibe". NES graphics are expected to have more depth than that. Your palettes look terribly underused, with the same greens repeated all over.
I guess you're too hung up on avoiding attribute clashes, and that's making you use those extremely repetitive palettes, in order to accommodate all possible color combinations. That's generally not how good NES graphics work. I think the trick is not to avoid the attribute clashes, but to use them to your advantage. Or you can abuse the global background color (black) in palette transitions to preserve color slots.
Another thing that looks weird to me is that, judging by their size, the trees are supposed to be distant, but they're as well defined as the grass, which's closer. Background elements with too much contrast and details as the foreground are confusing in platformers. It would probably be better if the trees were a little faded (bluer, with less contrast - no black!) and not as textured.
Hmm, interesting feedback, and absolutely get what your saying, I need more practice. I am conscious of the attributions, and at the same time was trying to save colour space to add other elements,such as the fence/sky/water maybe I ought to lose the highlight green from the trees to shake out the contrast and consider another colour that can be better used throughout. Il have another go taking on board what has been said and try and focus on colour management instead of the attribution stuff. Thanks for your feedback.
Another downside of being overzealous about attribute clashes is that you used up all 4 background palettes on that simple scene. There's none left for game items or anything that might need to stand out. You can only use sprites now, which means that you can't have items in abundant quantities, such as the coins in Mario games.
I really like the trick used in Blaster Master, for example, where a palette containing black, gray, orange and green is used for both the grass and the dirt/rocks under it. Black and gray are used for shading and highlighting, respectively, both the grass and the dirt. That works well because gray blends with the surrounding colors, specially in NTSC. If you can do something like that, you get a lot of freedom to draw slopes and such, all while using a single palette.
When you're working in an environment with such limited color capabilities as the NES, it really helps to think outside the box and experiment with unusual color combinations, instead of doing it the straightforward way and giving everything its typical cartoon colors. Reusing colors is the key if you want to get something colorful out of the NES. What serves as the base color for one object, might work as the highlight color in another... I guess you have to experiment, and not assume that object X must use color Y just because that's the typical color used for said object.
OK, i have had another go and this is where i'm at now. its not perfect, needs work here and there, but had a better go the colours i think and tried to manage them a little better without focusing to much on the attribution, hopefully still adheres to them though.
Didn't think about using background tiles for things like coins and such, thought that would be sprites, but i have thrown a chest in there.
thanks for your feedback.
oh that's the wrong palette in the image!
Ah, that's very nice! I like what you did with the grass and the rocks! The attribute grid is a bit to obvious on the rock pattern though, you could probably have it tile more seamlessly. Another thing that caught my eye is that the section of darkened rocks under the grass is a bit too thick, considering how thin the grass itself is.
Anyway, much better use of color overall!
It is indeed way, way better! Congratulations on the visible improvement! Repetition is boring because it's predictable. You've managed to break it with unique elements, seamlessly. That's the right way. One thing you can try is make the wooden support on the structure that is submerged to utilize the water attribute, it can give a nice effect.
Wow, this is a pretty huge improvement, honestly. This looks really good.
Thanks for the positive feedback! It was a massive change in direction, your comments have really helped. Needs tidying up as you say, but I will do that after the Xmas hols and release in the new year. Have a happy holiday!