Media Design 1 – Queer Pixels, SoSe 2025
Name | Matrikelnummer | Role |
---|---|---|
Miriam Jüngling | ****641 | Dev, Game Design, Art, Sound, … |
Played the prototype at the playtesting? Please fill out this feedback survey.
The game is online now:
Itch.io: https://mirih2o.itch.io/bittersweet-broughlike
GitHub: https://mirih2o.github.io/bittersweet-broughlike
Bittersweet Broughlike is an empowering and fast-paced roguelike games inspired by the Broughlike genre.
You play as a trans girl navigating a hostile world of conformity, judgment and inner conflict. The gameplay demands tactical movement and clever use of spells. Topped with queer symbolism and fashion as a statement of self-discovery, the game delivers an emotionally charged experience.
Movement: WASD / Arrow Buttons
Cast spell: 1-9 Buttons
Mouse / Touchpad for Menu buttons (Mute Sound, Compendium etc.)
Defeat or escape enemies, gain points by collecting treasures, and exit the map. Every 3 points you get a new spell.
Self-discovery through gameplay.
Tactical movement and clever use of spells.
Symbolic enemies representing real psychological and societal pressures.
Narrative through lore texts in the compendium.
Levels with increasing difficulty (enemy count: level + 1).
Total of 20 randomized levels.
You start with 1 random spell.
Each level has 3 treasures, collecting 3 treasures unlocks a random spell (max 9).
Bumping into enemies lowers their HP, getting bumped into lowers your HP.
Getting to the next level restores 1 HP (max 6).
Spells may damage/heal/move the player/enemies or manipulate the map.
Unlock new cosmetic outfits by getting to level 5, 9 and 13.
Enter level → Move / Cast spell → Exit → Next level
→ Defeat monsters
→ Collect treasures
Tailor's Mannequin |
![]() |
Basic enemy. 3 HP. | "Reminds you to fit the binary." |
Gossip Wisp |
![]() |
Moves twice if possible. 1 HP. | "Deadnames whispered behind your back, following everywhere." |
Cracked Mirror |
![]() |
Slow, acts every other turn. 2 HP. | "Every shard says something different about who you are." |
Old Polaroid |
![]() |
Jumps over walls to reach targets. 1 HP. | "Memories from your former self." |
Uniformed Group |
![]() |
Moves unpredictably. 2 HP. | "Conformed society, they dress and move in unison." |
Dear Diary
I keep thinking that if I dress the way I feel inside, the rest might follow. That the shape of my outside could teach my heart not to flinch.
But the moment I step out, the stares, the silence, the second-guessing, it all comes back. Like I’m wearing something forbidden. Like I’m asking too much, even when I barely speak.
It’s strange how a ribbon can feel like a rebellion. Or how styling my hair feels like taking back a little piece of myself.
Some days, I wonder what they see when they look at me. Other days, I try not to care.
Today, I went out anyway. That counts for something.
Tomorrow, maybe I’ll walk a little taller.
Diary entry of the main character, a trans girl.
You play as a trans girl thrown into a surreal dollhouse of pink tiles, grey walls, and judgmental echoes.
Each floor is a twisted trial meant to "correct" her, filled with strange creatures and reminders of a past that tried to shape her into someone she’s not.
But with every spell she casts and every cute outfit she wears, she grows stronger.
Each level brings more courage, more clarity, and more confidence.
And by the time she reaches the end of the maze, she walks with confidence, no longer hiding, no longer afraid.
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
|
![]() |
|
![]() |
Soft, pastel, cute, fashion-inspired. Melancholic but hopeful. Alice in Wonderland vibes.
Pixel art with 16x16 pixel sprites, mainly pink, violet and blue. Soft, pastel, fashion-inspired.
Subtle sound effects in retro 8 bit style. Could have whimsical background music.
Player design: girl/woman wearing Lolita fashion. Associated colors: pinks, blues, black and white.
Enemy design: stylized, abstract, symbolic. Inanimate objects or anonymous persons. Associated colors: grays.
Tiles: pink and violet floor, purplish gray walls, minimalist. Associated colors: pinks and purples.
No multi-frame sprites. Animations via code, some CSS transitions.
Examples: Player movement, Heal animation, Focus bolt.
Using Canvas for game screen. Monospace font with retro feel.
Player and enemies have health points (1-6 red dots).
In the canvas: Sidebar with level, points and spells.
Top menu buttons with options and compendium.
How to section as text box.
Tooltips on monsters and spells.
Compendium in a diary aesthetic, contains monsters and spells.
HTML5 + CSS with vanilla JavaScript (no framework) → browser game (Desktop optimized)
HTML canvas element
Local data storage for scores
Visual Studio Code, GitHub Copilot
Graphics made with Aseprite, Sounds made with Bfxr
Version control with Git and GitHub (Trunk based Development)
01.06. Core game following the tutorial (core mechanics, movement, monsters, spells, sounds)
04.06. Prototype for first playtesting (top menu, tooltips, how-to section)
09.07. Prototype for second playtesting (compendium, lore texts, story messages, improved map generation, renaming, refactoring)
17.07. Final submission (documentation)
Sprite sheet:
Player Character: alive and "dead"
- Outfit 1: (pink & white)
- Outfit 2: (navy & black)
- Outfit 3: (black & white)
- Outfit 4: (blue & white)
Enemies:
- Gossip Wisp
- Tailor's Mannequin
- Old Polaroid
- Cracked Mirror
- Uniformed Group
Tiles:
- Floor
- Wall
- Portal
- Exit
Pickups:
- Treasure
SFX/Spells:
- HP
- Heal
- Rainbow Bubbles (Aura)
- Focus horizontal, vertical, diagonal 1, diagonal 2 (Focus, Cross, X)
- Blast (Dash)
- Shield (Bravery)
- Stars (stun effect)
Unused Sprites (maybe used in the future):
- Walking animations for all outfits
- Spider (scrapped enemy)
- Empty Cracked Mirror (old sprite of Cracked Mirror, maybe for story)
- Eye (potential enemy)
- Former Self (maybe for story, reused in Old Polaroid)
- Alternative Rainbow Bubbles
- Alternative Floor and Wall tile
Sound:
- Footstep 1
- Footstep 2
- Footstep 3
- Footstep 4
- Hit 1
- Hit 2
- Treasure
- Exit
No precise documentation of invested hours, so here are estimated hours.
Tasks | Hours |
Development | 30 |
Game Design | 8 |
Art | 15 |
Sound | 3 |
Testing | 10 |
Documentation | 5 |
Positive | Negative | Consequences of negative feedback |
Cute graphics Works well Very good for a solo project
|
Too difficult Confusing (why did I die?) Unclear controls Theme? |
→ Ongoing balancing → Compendium, just play more → How-to section → Compendium, story messages |
1. Integrating Queer Themes Thoughtfully: Avoiding stereotypes while ensuring mechanics and story reflect authentic LGBTIQ+ experiences. Convey the message.
2. Asset Creation: time-consuming, reiterating, 16x16px sprites are really small
3. Monster and Spell Design: Making non-violent, metaphorical enemies and spells, balancing, naming
4. Story Integration: not distracting from gameplay, a lot of text, visual?
5. Bug fixing
Bug fixing: an ongoing task. Still looking for a solution for spells which may have no effect in specific situations.
Better sound design: maybe add background music and improve the sound effects.
Work on story integration: maybe add illustrations for the story, more diary entries …
Balancing: level 20 means 21 enemies on 64 inner floor tiles, maybe less linear. Maybe adjust health points.
Code clean-up: clearer file structure, reduce inline styles, update placeholder names, etc.
Scrapped ideas: two doors, two styles and themes for spells.
Solo development is hard. Delegating art and story to teammates could have sped up the process.
You don't have to create all assets yourself. I made all sprites from scratch, even though it slowed down progress and increased workload unnecessarily. Using available resources or assets is valid and efficient. I could have used ready-made enemy or effect sprites.
Time management is essential. Some tasks took much longer than expected. I learned to plan better, set priorities, and leave room for unexpected changes and debugging. I planned to incorporate more own ideas, but spent much time refining the functionalities of the tutorial.
AI can be helpful, if you know what you do. Generative AI helped with writing lore texts and documentation, design ideas, developing new features and debug existing issues. However, they work best when guided by someone who understands the underlying systems, story and goals.
For the enemies, I asked ChatGPT for help with sprite design. While the ideas and concepts were helpful, the generated images were not true 16x16 pixel art and often much larger or stylistically inconsistent. I used the designs for enemies like the Tailor's Mannequin and Gossip Wisp as inspiration, but created simplified, properly scaled versions by hand. This showed me that while AI can be a good starting point, the final result still needs manual work and artistic judgment.
Sprite | Outputs by ChatGPT | Final design |
Tailor's Mannequin |
![]() |
![]() |
Gossip Wisp |
![]() |
![]() |
Art & Sound: self-made
Code core structure and mechanics: Broughlike Tutorial by nluqo