====== Sprites ====== Sprites are the 2D graphical representations used for all visual elements in Remixed Dungeon, including heroes, enemies, items, effects, and level objects. ==== Sprite System Overview ==== The game uses a sprite sheet system where multiple sprites are packed into larger texture atlases. At runtime, individual sprites are extracted and rendered. ==== Sprite Categories ==== === Hero Sprites === Hero sprites are composed of multiple layers that are rendered in a specific order: * Body, head, hair, armor, helmet, weapons, accessories * See [[en:rpd:int:hero_layers|Hero Sprite Layers]] for detailed layer order * Separate sprites for modern and retro graphics modes * Class and subclass variations (e.g., Warrior, Warrior Gladiator) === Mob Sprites === Enemy and NPC sprites: * Standard mobs: Rat, Skeleton, Gnoll, etc. * Bosses: Tengu, Goo, DM-300, King, etc. * NPCs: Shopkeeper, Wandmaker, Ghost, etc. * Special variants: Elemental mobs, minibosses === Item Sprites === Items use a sprite sheet system (items.png, 256x256, 16x16 grid): * Weapons, armor, potions, scrolls, rings, wands, artifacts * Mapped via ItemSpriteSheet.java constants * Some items have custom sprite configurations in spritesDesc/ === Effect Sprites === Visual effects and particles: * Speck particles (blood, smoke, magic) * Wound damage numbers * EmoIcon status indicators * Spell effects and animations === Level Object Sprites === Interactive and decorative level elements: * Chests, statues, pedestals, wells * Barricades, traps, doors * Custom objects with Lua-scripted behaviors ==== Sprite Processing for Wiki ==== Wiki sprites are enhanced versions of game sprites: * Source: Raw sprites generated by FactorySpriteGenerator (sprites/ directory) * Tool: `tools/py-tools/scale_sprites_for_wiki.py` * Enhancement: 8x scaling, nearest-neighbor, background, frame * Output: wiki-data/media/rpd/images/ * Naming: snake_case with entity type suffix (_mob, _item, _spell, _buff, _hero, _npc, _level_object) ==== Naming Convention ==== Raw sprite names follow patterns: * Mobs: `mob_[Name].png` → Wiki: `[name]_mob.png` * Items: `item_[Name].png` → Wiki: `[name]_item.png` * Spells: `spell_[Name].png` → Wiki: `[name]_spell.png` * Buffs: `buff_[Name].png` → Wiki: `[name]_buff.png` * Heroes: `hero_[Class].png` → Wiki: `[class]_hero.png` * Subclasses: `hero_[Class]_[Subclass].png` → Wiki: `[class]_[subclass]_hero.png` * Level Objects: `levelObject_[Name].png` → Wiki: `[name]_level_object.png` ==== Wiki Usage ==== In wiki pages, use centered format with an existing sprite: ``` {{ rpd:images:tengu_mob.png|Tengu }} ``` ==== Source Code References ==== * Sprite Definitions: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/sprites/|sprites/ package]] * Hero Sprites: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/sprites/HeroSprite.java|HeroSprite.java]], [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/sprites/ModernHeroSpriteDef.java|ModernHeroSpriteDef.java]], [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/sprites/RetroHeroSpriteDef.java|RetroHeroSpriteDef.java]] * Mob Sprites: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/sprites/MobSprite.java|MobSprite.java]] * Item Sprites: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/ItemSpriteSheet.java|ItemSpriteSheet.java]] * Sprite Generator: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/utils/FactorySpriteGenerator.java|FactorySpriteGenerator.java]] * Sprite Descriptions: [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/assets/spritesDesc/|spritesDesc/ directory]] ==== See Also ==== * [[en:rpd:int:hero_layers|Hero Sprite Layers]] * [[en:rpd:items|Items]] * [[en:rpd:mobs|Mobs]] * [[en:rpd:hero|Hero]] {{tag> rpd graphics sprites technical}}