NES DOOM logo (lots of snapshots and text)

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
NES DOOM logo (lots of snapshots and text)
by on (#202198)
The "Modern game logos are rubbish" thread inspired me to demake the DOOM logo for the NES. I'm always trying to remember to document things i draw, so i can learn from them at some later point or solidify the experience. But i stayed up all night so i kind of lost track in the end, so the snapshots got sparse in the late end. Anyway, this is a record of the progress i'm making. This OP will be updated in at least three parts. I'll probably do a more full writeup too, here or on the blog.

Goals:
-Make a BIG, screen filling DOOM logo
-also make it as detailed as possible
-which hopefully doesn't eat up all of char space halfway in the process
-and beats the modern iteration.
-keep it personal, just not a pixel for pixel true copy of the original.
-but stay true to the aesthetic
-Draw to find out if all this works

Progress:
Session one: Get things going - DONE
Session two: 'finish' the background layer. - DONE
Session three: Add coverup sprites, adjust bg layer to match. -DONE

Left to do:
Session four: software/hardware test, final touches. - NEXT
Post Session: Reflection and full writeup.

SESSION 1:
I started out with the premise that:
-To be able to conserve maximum amount of tiles, and be able to foresee possible reuse of tiles, Photoshop is out of the question. It can probably be done, but not by me. Drawing in NESST is optimal for this purpose, even if 'seeing the big picture' is a bit harder.
-When i draw a new tile, test where it can do double duty or more. I can add more detail later if there's space still available.
-That at least the 'holes' in D, O and O should be attribute aligned, and hopefully much else too, so that i could reuse patterns, and as a bonus make more out of the full palette. Image
Coming up with a bunch of ersatz tiles like this helps planning out the layout. I didn't bother with getting the angles right for the mid leg of the M, etc - it serves as a representation. This layout would work from an attribute grid perspective.

Image
Adding the 3d angle made me aware that i had pinched the M by far too much in my objective to fit evything into the grid and at the same time keep it centered

Image
This remedied the pinching, at the cost of being off center. No problem, i'll just scroll it 8px left in code, eventually. This seems to be something i run into sometimes. The 'wrecking balls' logo had to be adjusted like this, too. The bottom of the M looks a little troublesome, but it's still using rough tiles, so i want do do something fun now.

Image
Adding a texture to the insides of D and reusing most of it for the first O. The intuitive way here is to draw in diagonal lines (like i first did the the '3d' effect on the upper right part of M), but i stopped myself there. I wanted to add something of a rough texture, which is hard to apply on top of lines. I can always add directional lines later if i want to; that's easy.

Image
Beginning to fill in the letters was easier than i had anticipated. It required less tiles than i first thought, to name a thing. It felt a bit like drawing blocks for a level, so i leaned on that prior experience.

Image
More fill work and a splash of colour. Attributes are beginning to show, especially on those attribute cells cut in half diagonally. This is where i'll put sprites to work, eventually. I will get away with precisely 8 sprites per scanline where needed.

Image
Filling in much of the blue. A bit too much, so it feels extremely noisy. Noise is okay, but this is too saturated with it. My plan from here is to roll back and have a little border/drop shadow effect to let it 'breathe'.

It is currently using $8C / #140 tiles, so it looks promising. It looks like i'll have plenty of room to fix the troublesome bottom part of M and will still have a handful of spares for nice touches

That's it for 'today'. I sat up all night in a manic rush. :lol:

===============================
Session 2:
===============================

Image
Getting diagonals right that aren't 45 degrees proved to be a pain in NESST. The mid leg got all wrong here. It was also around this time that i noticed that the v cut in the M was way too shallow. That could've been avoided if i was done withe the layout before starting on the actual graphics. This is where it's good to break out photoshop (after all!) and do a few angle measurements with the line tool.

Image
Speaking of 45 degree slopes. It proved geometrically impossible to get an even bottom line on the M without its right leg getting way under the base line. of the D. This is because is way broader than the other letters. Two things are different from the original logotype. Measuring it, it appears that all bottom slopes are approximately 37 degrees. The width of the letters are made to fit this number. I can't do that since i have the tile and attribute grid to mind, but i *could* convert all bases to 37 to get it more original like.

Image
Skipping snapshot #11 as it is nearly identical to 12. I started to try on angling it differently. Ugh. It would of course look better if i rebased all of the letters and looked at it then, but 37 just isn't raster friendly. The pattern goes something like this: first pixel. diagonal pixel. on-level pixel. two more diagonal pixels. one more on-level pixel. And so on. It can of course be anti-aliased. But there's also the problem that non-diagonal tiles take more RAM space since there's need of more unique tiles. And i'm still not getting a smooth base line for the M, so no thanks. Moving on...

Image
That's more like it. Given the limits, i think this is acceptable for the background layer. There's #$44 / #68 tiles to spare. That's more than enough for, say, a numeroalphabet and some luxury tiles to brush things up when it's time to do the final touches.

That's enough for the second session. Next things to do: aligning the picture and covering up attribute clashes with sprites.

===============================
Session 3:
===============================

At first, i was going to paint the sprites in NESST aswell and then manually fit them into place using .db statements, then adjust back in NESST, rinse and repeat. But it only took me a few minutes before i realized how slow (and worse - impacting on the end result) that would be. Besides, what's the point? I have 64 sprites at to my disposal*, and up to 256 patterns to use.

*well, one could multiplex their positions while rendering and get 128 or even up to 240 (still 8 per row) sprites on screen since the cpu isn't doing much else anyway... i got greedy and started opting for this.

So, time for photoshop. What i did was i ping-ponged between PS and NESST. Drawing some sprites, oh - the background should look this way instead to help - over to nesst. export. import in ps. back and forth. It'd be a bit convoluted and and probably wearing to include all the iterations. They don't tell me that much in hindsight anyway. Here's a distillate:

Image
This is hopefully a good overview. Keeping sprite tiles in separate layers is good not just for toggling on/off and moving them without using Marquee, but especially for controlling how how they are cut into 8x8 entities when converted to a pattern binary (i use NESST for this). I didn't need to keep literally every sprite in a separate layer, though - only keep them separate enough to for the optimization to work. All that are aligned to grid are in one layer. All that can count as one sprite if cut off-grid gets its own layer for separate export. Some others still get layers so they can be toggled. Besides, i have the terrible habit to forget which layer i'm working in all the time. Keeping the count less meticulous means less mistakes that needs to be corrected.

Another method for making 8x8 tiles out of a canvas is the good old slice tool, but partial exports to NESST supercedes it because it can also generate metasprite data for me if i need to.

Image
Here's all sprites in place.

The grid feature is super handy for this. Toggling visibility back and forth via ctrl+' is a breeze. For toggling between 16 and 8px grid, it's ctrl+k, grid tab, subdivide by 2. After a while, I hotkeyed opening the grid tab to ctrl+<.

Almost all sprites are aligned to the 8px grid for convenience, except a few where i could get more coverage per scanline otherwise. For placing them in code, that means i all i need to know is which grid position the sprite has (a quick look suffices) and then muliply that by 8.

Image
Here's the composited result. It took a lot of bouncing between PS and NESST (editing the background when sprite drawing made me aware of things i wanted to change).

There's still 60 or 3C unused bg tiles in there.
1 sprite colour is left unused, too; in the 'highlight' subpalette.

I am way overtracing the 64 sprite limit which means the sprites HAVE to be multiplexed (if that's the correct term).

What's still left:
-Adding sprites in software (this is all photoshop and nesst so far)
-Hardware test
-The very final touches, if needed
-Figuring out if it's done or if there's some use for it
-Write some final thoughts
Re: NES DOOM logo (lots of snapshots and text)
by on (#202200)
That's looking pretty damn good!
Re: NES DOOM logo (lots of snapshots and text)
by on (#202207)
Looking really impressive indeed, looking forward to the finished thing! The inner drop shadow idea sounds good to me.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202233)
Thanks for the kind words! It means much. I was going to let it rest for a week, but i did part 2 today. Updated the OP.
Attaching a 200% gif here so it's easier to see (click for pixel perfect sharpness!). As always, any comment or critique is welcome!
Re: NES DOOM logo (lots of snapshots and text)
by on (#202238)
I find myself idly wondering whether tactical use of black would obviate needing sprites to cover the attribute clashes...

Of course, then the question is "what are the sprites doing instead" so it's probably not useful.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202245)
It's already flashier than most NES title screens and it's not even finished yet. That's damn fine work.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202246)
Wow!
Re: NES DOOM logo (lots of snapshots and text)
by on (#202250)
It's looking really amazing, great work!

lidnariq wrote:
I find myself idly wondering whether tactical use of black would obviate needing sprites to cover the attribute clashes...

Of course, then the question is "what are the sprites doing instead" so it's probably not useful.

I don't think he applied the sprites yet. You can see the diagonal transitions are missing, but by using sprites he can use custom color instead of black.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202257)
It's look very good!

After seeing that logo I want to see a mock for a game. Maybe a simple shooter, instead of 3d you see from a top view or something.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202258)
Getting permission from Idthesda for that might be a challenge though, especially given a cease-and-desist sent to Mozilla.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202260)
Even though i made it for another purpose - Doesn't this already fit the bill? ;)
Attachment:
1c3.bmp
1c3.bmp [ 30.12 KiB | Viewed 7145 times ]


Quote:
permission


Yeah, it started out as a fun fan commitment, but i've been thinking about that.

Zenimax are the rightsholders (even if Bethesda are the developers).

They did request a "takedown" of DoomRL (really just the DoomRL site as it was) under threat of legal action. Both takedowns were very reasonable, though. Kotaku is being a bit sensationalistic about it here. Kisielewicz' fan game wasn't a problem for many years up until he made the mistake and started using it commercially (allegedly using it as marketing strategy for a kickstarter campaign of another game), thus (as far as i understand it) making the usage of the brand name and IP fall under "brand dillution" under US law, which rightholders need to take action against to keep their claim of said IP watertight. Also note that they didn't request a takedown of his fan game per se (unless that falls under their definition of 'media'), but to remove keywords, meta tags, logos, and other IP from his site. That's rather moderate/considerate if i'm not getting it wrong. Sort of a "the least possible amount of force" principle.

Mozilla is likewise a commercial actor even if their software is freemium.

I think the right approach for a hypothetical fan game would be to play with open cards, and being very meticulous about not stepping into commercial territory. For instance, i wonder if i in that case shoult stay away from hosting a free fan game on a site on which i also offer my time as a contracting artist. Probably...

The alternative is seeking permission/license clean and proper, or even ask them if they'd like to own a nes entry into the franchise. They probably wouldn't be interested, though.


My thoughts right now is perhaps make 2a03 covers/rearrangements of the DOOM soundtrack and have a music player to go with the title, and distribute it freely.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202261)
FrankenGraphics wrote:
My thoughts right now is perhaps make 2a03 covers/rearrangements of the DOOM soundtrack and have a music player to go with the title, and distribute it freely.

Use of Bobby Prince's music would need permission, and he has been one of the few to send a notice of claimed infringement to the video game MIDI site vgmusic.com.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202262)
Would be great a Doom-like game using something like Tokumaru's Raycaster engine!!
But I think the good old NES don't have enough power to do that...
Would some kind of "co-processor" on the cartridge make this possible?
Maybe it's possible but not doable.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202263)
Huh. That's interesting... I just watched a youtuber mention that he's been criticized for plagiarizing various rock/metal bands in the doom soundtrack, refering leaked notes that were included when John Romero released unused songs. :shock: Not that i think it is relevant/important if that happens to be the case.

Thanks for the heads up.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202264)
Oh man, bobby prince doesn't want his rip off songs to be shared? Weird stuff :lol: Perhaps he's embarassed and wants everyone to forget those songs.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202267)
I've mentioned before that Doom all but copied a tune from Klax. Hey, it was the nineties.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202269)
This, however, must be the best version of e1m1.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202276)
Actually, it being the 90s is a very good point, and i can see how it would be reasonable to request a takedown of analysable, modifiable, interpretable and easy to come by midi files, especially with fans of video games and/or music making allegations openly on the web - who knows if something will catch fire, right or wrong?

Assume you'd wrote a book on a subject, and all is/seems fine. It's not THAT serious, right? It happens to get immensely popular. Then, some 20 years later for some reason, there is new legal implications and circumstances for what you wrote back then. But since it got so popular, it's out of hand. It gets quoted, spread, remixed, attributed, maybe even modified; each time being a potential risk to your person. I can see why you'd seek to minimize that risk. The example is a bit exaggerated; but you probably see what i mean.

Post-metallica/napster, internet isn't the same, and neither is the legal apparatus.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202297)
Looking at the Doom logo mockup, another thing you can do involving sprites is make a reddish gradient along the outside of the letters instead of dithering blue with orange. The width is small enough that you only need one sprite horizontally for two letters.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202316)
That's very helpful, thanks!

My current list of what sprites should do, sorted by priority:
-blue/violet wiring details over yellow/red attribute cells
-possibly some pastel highlights in a few select spots, if it looks right.
-added/off grid blue wiring details to break up the reuse; maybe introducing a grey tone.

Didn't think to mix/replace the raster shadows with a contrasting tone, so i'll experiment with that.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202318)
This logo looks great. Basically it looks like NES' sometimes annoying attribute table limitations are gone.
Re: NES DOOM logo (lots of snapshots and text)
by on (#202346)
Thanks! OP updated. :) It's getting very close to being finished.

Quick pic:
Image

400% resize for close scrutiny here.

Can anyone spot the hidden Alien reference in there?
Re: NES DOOM logo (lots of snapshots and text)
by on (#202561)
An interim update (pacing grows slower as i stepped into trial and error territory).
Just wanted to share this technique for arranging and editing sprites (in the context of bg overlaying sprites) that i've found to be really useful/effective:
Overview of my workspace:
Attachment:
Untitled-1_07.png
Untitled-1_07.png [ 21.22 KiB | Viewed 6246 times ]


In my previous post, i bashed the slice tool for not being versatile enough. I take that back.

Setting up the tool for optimal spritework is quite easy:
Attachment:
Untitled-1_03.png
Untitled-1_03.png [ 7.9 KiB | Viewed 6246 times ]

1) Set it to fixed size, h16 w8 (or what you need). Go on and make templates so you don't need to manually enter the numbers from project to project.
2) Under ctrl+k -> slice tab, unselect all the intrusive HUD elements so you only see the bounding boxes.
3) Under ctrl+shift+alt+k, make a hotkey for showing slices so you quickly can toggle the view on and off.
4) In the slice toolbar, click "hide auto slices" (all the excess slices PS needs to make for the user slices to function.)

Tips for editing:
1) I find it very useful to have the "slice select" tool selected and, when i need to generate a new slice, simply hold control to toggle it temporarily to slice tool
2) When viewing slices, the pencil unfortunately 'snaps to slice'. There might be an option to turn this feature off, but for now i just toggle back and forth.

3) In the slice select toolbar, click the "slice options" icon. From there, you can add metadata and alter the filename of each individual file that's going to be output. I find it useful naming them RR_S_P where R is row number, S is sprite on that row, and P is priority. You could add exact sprite positions to the filename, too, and mark if they're used in several positions.

Export and import:
1) Use save for web (legacy) - maybe there's some other way. Since the slice tool featureset was originally developed for webdesign work, it doesn't support a bmp file container, which kind of blows. Your reasonable options are GIF and PNG.
2) Then find or write a nonlossy batch file converter. I've yet to do this. Anything beyond this point under this header is untested since i'm not yet done with sprite ordering.
3) Import them in NESST. Marking a cell in the attribute table should import it starting there, not overwriting previous imports.
4) Once they're sorted as they would appear on a nametable, hit 8x16 interleave. NESST does the job for you.


The rest should be straightforward.


So, what's the benefit? Apart from being able to clearly see where sprites are, slice metadata is kept in its own layer system of sorts. That means that you can move sprite boundaries as you please without touching your raster layers, making it easy to identify optimal placements where sprites can be of the most use, as opposed to strictly keeping at a grid.

-You can also simulate a preview of sprite priority by sorts by sorting overlapping sprite slices in its own ineherent layer system (note of warning*).

-You can then edit your pixel art independently and without regard to sprite boundaries. Anything outside the boundaries will be cut from output (that's a great feature in itself), but you're free to surpass it and test things out without having to move sprites around. Move sprites to match.

-It also means i don't need to keep that many layers, which reduces the common 'oops, i edited the wrong layer' syndrome i seem to be having.

Pitfalls:
*It IS a webdev tool, and an oldschool one at that. On a webpage, images don't overlap (if they would it'd take a lot longer to load a page because of redundant data). PS' "save for web" export function will sub-slice any intersecting slices into smaller ones and discard any overlap.

-As mentioned, it only saving gif, jpeg and png blows. They mean well, but an arbitrary limitation like that is annoying. Besides, their not-included bmp export has optional RLE-compression, so if file size matters, what gives? Browsers not supporting a unified BMP RLE standard?

-You might still need a little bit of raster layer management to make sure your slices export with the right content.

Current workaround:
-Select and export all non-intersecting/overlapping sprite slices first. They should be in the majority.
-Then individually select and export the overlapping ones.

OR
-copy the content of a slice into its own layer.
-export layer as ...

You could probably make a script out of option 1 to do the work for you.


Other strategies/tips that doesn't have to do with slices:
1) It's helpful to keep a black layer at half or 75% opacity between your sprite layers and your backgroundlayer and toggle its visibility.

2) I found the most helpful/least intrusive way to use a 8x8 or 16x16 grid is having it set to style: dots, gridline: 16px, subdivisions: 2. This way, i get both the 8x8 and 16x16 grid without it being in the way for seeing slices and pixels. I still keep its visibility hotkeyed. Again, PS is defaulted to snap pen to grid if it is visible. I'll have to look into that, because it's not helping 98% of the time.

3) You could keep every sprite in a separate raster layer, give it a thin drop shadow under layer effects to visualize sprite overlap and priority, but having 64 layers like this is disorienting and human error prone. Keeping them like this means you can export from layer, but you need to be mindful of the 'layer canvas'.

4) make a gray horizontal 1px line which will function as a "scanline ruler" in a layer, set its blending mode to difference and move it pixel for pixel downward to se how many sprite hits you get per scanline, instead of trying to wing it. I should in fact do that right now.
Re: NES DOOM logo (lots of snapshots and text)
by on (#211737)
That's really useful. As for snapping, you can set a hotkey to toggle snapping (It's under view--snap--etc, I think). It should remember last setting (not default to snap). I mapped mine to ctrl+q since there is already a shortcut for close (alt+f4) and I just use the mouse to close the program anyway. I toggle often as I manually build my chr layouts in ps and paste into yy-chr.
Re: NES DOOM logo (lots of snapshots and text)
by on (#211742)
Thanks! I've been meaning to complete this thing, but an SSD crash made me lose all those slices. I still have the layers, but the setback means i just have to wait until i get more time on my hands again (sometime after the second compo deadline, i imagine). Then i'll write up the last bits and will probably refactor it to a more coherent process log/tutorial.

Being able to toggle snap independently sounds useful. I just went with snap-to-grid being on/off along with the grids' visibility thus far, which worked ok too.
Re: NES DOOM logo (lots of snapshots and text)
by on (#211950)
Image

v. nice!