Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

Screen characters are formed by a collection of 8 bytes, 256 bytes apart from each other.  One simple way is to have a "character map" of 768 bytes (32x24) in memory to store the characters at each screen location, then the colour attributes would not matter.

I was gonna make the collision system in my game work by detecting the tile graphics themselves and their positions. (for example, a dude moves if there is 8 pixels of space next to him, and can't move any further if there is a brick tile right next to him without any space inbetween)

I would need to see some code example to know how to make it.

If you have MPAGD then take a look at EngineZX.asm then search (if memory serves) for "cang" as those routines check if a 16x16 sprite can move in the 4 directions.  It's all commented.