Let's try some journaling and devlogging.
The idea is a crossover of Viscera Cleanup Detail and any dungeon crawler: you descend into a dungeon/basement/sewers and clean off blood and such, and fight against monsters as well. Certain monsters spread filth, too, and it should add a… strange strategic layer to the game.
Day 1: Sprite selection and maps
The idea had been floating in my head for quite a long time. But at one moment some puzzle pieces snapped in my mind ( 🥁🍽️ ) and I went for a 1-bit texture pack I knew exists. I also discovered two 1-bit icon sets from the same author.
Then I went to my Palette generator and picked the Sin City palette. I actually ended up adding one dark shade of grey to the palette. In Aseprite, I selected the sprites and textures I wanted, and shaded them. I also drew an animated character, and some additional sprites.
Later, at home, I opened ASCII map editor by NoTimeToPlay, the mod of itch.io's Discord server, and drew some corridors, arenas, and starting/lootings rooms.
const pathwayRooms = [
`......####.
####..#--##
/--####---/
##------###
.########..`,
`###########
/---------/
###########`,
`...######
####----/
/----####
######...`,
`......#/#
......#-#
......#-#
......#-#
......#-#
......#-#
#######-#
/-------#
#########`,
`...#/#
...#-#
...#-#
####-#
/----#
######`,
`..#/#..
..#-#..
###-###
/-----/
###-###
..#-#..
..#/#..`,
`..#/#
..#-#
###-#
/---#
###-#
..#-#
..#/#`
];
I also coded a lot of incomprehensible functions to help to make dungeons later.
const flipRoomHorizontally = function(string) {
let output = '';
const rows = string.split('\n');
for (const row of rows) {
let newRow = '';
for (let i = 0; i < row.length; i++) {
newRow += row[row.length - 1 - i];
}
output += newRow + '\n';
}
return output.slice(0, -1);
};
const flipRoomVertically = function(string) {
return string.split('\n').reverse().join('\n');
};
const supersampleRoom = function(string) {
let output = [];
const lines = string.split('\n');
for (const row of lines) {
let newLine = '';
for (let i = 0; i < row.length; i++) {
newLine += row[i] + row[i];
}
output.push(newLine, newLine);
}
console.log(output);
return output.join('\n');
};
That was the first day of development.