They Do Not Die: character reskin

I know the arrows in They Do Not Die aren’t popular. But luckily for anyone that didn’t know already you do have options. Mr Reaper provided some sweet looking people sprites to put in their place a while ago and has even updated them to work correctly with v0.4 of the game. He even made a matching homebrew browser icon to go along with them.

Get the replacement people sprite set
Get the replacement icon

To use the new people sprites just drop them into TheyDoNotDieMediaGame in place of the pre existing people.png file.

24 thoughts on “They Do Not Die: character reskin”

  1. Hi, liking this. One question though, do the zombies respawn or is there a set amount per level. every time I think I have a part of the map clear, more seem to appear. is it just me?

    Are you going to be including super zombies eventually?


    1. The zombies respawn ๐Ÿ™‚
      I don’t have any plans for super zombies in the near future but its definitely something that I might do eventually.

  2. Hey do you plan to support alpha transparencies in future versions? I hate doing transparencies like this, because its “all or nothing”, unless im mistaken. And i hate having jagged edges on my reskins.

    1. Long Answer: maybe.
      Short answer: no.

      Drawing anything with partial transparencies is always considerably slower. SDL’s surface blitting is already slow. SDL’s surface blitting is especially intolerably slow when drawing a sprite onto another surface (such as the screen) with a different bit depth (the game runs in 16bit which means no alpha channels so the people would need to remain 32bit or some other bit depth that is not 16 to retain their alpha channel). Moving the game in its entirety up to 32bit would make it slower. Slow things are slow.

      I can get away with support for alpha transparencies in something like The Video Game because there isn’t much on screen at a time. But in They Do Not Die there are just too many people and the frame rates already fallen apart (which is actually largely to blame on the transparency of the border darkness and injury induced redness that covers most of the screen).

      Admittedly I haven’t actually tried it and it with this game and those specific sprites. Maybe the frame rate would still be tolerable. But I seriously doubt it. If you just want it to smooth the edges then I’m not sure it would be noticeable when playing the game anyways. It would definitely make screen shots look better but unless they are playing the game on PC via emulation or their TV is doing something really abnormal and awesome when it comes to up scaling the image then I doubt anyone would be able to tell the difference. Wii games are too blurry for anti aliasing to really matter.

      1. Hmmm, maybe its my tv… The images are very “sharp” and the edges look jagged. I find that blurring jagged edges make it look like higher quality. I guess ill find something else to reskin.

        I dont understand why wii can play something like mario cart or… call of duty in eye popping 3d yet it struggles with homebrew. Does it have to do with whatever method of rendering, maybe the 3d engine of 2d games whatever im making a shot in the dark.

      2. Aww now your making me feel inadequate about how my TV makes Wii games look… lol. Are you using component cables (I’m still using the packed in composite cables)?

        I don’t know why other peoples homebrew sucks but for me its mostly to do with my choice to use SDL. Unless I’m mistaken I’m pretty sure that the graphics card isn’t helping to do anything when rendering my games. The processor does it all. I’m not sure why the people using GRRLIB for rending don’t seem to have accomplished anything particularly impressive though.

        The ProjectGMC demo is the only real exception I can think of to the “homebrew games are ugly and perform poorly” rule. I’m not sure what if any middle ware was used for it but it was awesome.

      3. Ookay i did some googling. So sdl uses 100% processor, GRRLIB allows use of graphics card? Well cosmo raketti and plasma raketti were pretty impressive.
        Im still using the cables that came with it.
        Hmm, i think i want to make some homrebrew ๐Ÿ˜€
        I already got started on C++ and seems SDL is C++ based.

      4. You should totally make homebrew.

        If your already at all familiar with writing C++ programs then it shouldn’t be too difficult to get going and SDL is great for it. If your using it and don’t have any dependencies on any other weird libraries then it makes testing incredibly easy. Rather then going back and forth from your computer to your Wii you can make things for PC first and then port them over to Wii (or really any platform) in just a couple minutes.

        I highly recommend Lazy Foo’s tutorials.

        I’ll gladly help any way I can. ๐Ÿ™‚

        1. Well im not all too familiar with c++, im REALLY good at css and html, a bit good at php. I started c++ with an e-book and i only made console programs. Never made anything else. The tutorial is a tad bit confusing, because I have never compiled anything except pressing F5 in visual studio.

          I basically get confused by the installation.

      5. OK. Well first of all forget about anything Wii related. Worry about that later. Its great that your already running windows and using Visual Studio. Haters are gonna hate but in this situation its what I use and therefor it is awesome lol.

        What version of Visual Studio are you using?

        1. I’m using Visual Studio 2010 Express. I just need to figure out how to stop making console apps and make some more visual apps.

        1. I found this installation tutorial to be a bit easier to understand:

          But I got stuck at:
          “6. Download and copy the PPC ported libraries to your PPC portlibs folder (on Windows this is c:devkitProportlibsppc).”

          It doesn’t say how to copy them, or to extract them, whether to merge the folders from each archive, or to create a separate folder for each one, or even which files to download (I assumed it meant every file that said ppc)

          Right after I did that step the next step gave lots of errors. Also:
          ” The browse to the root folder (‘/’) and type make and use make and make install again to install the SDL extensions.”

          Idk where “root” is. Root of C:? Root of devkitPro?
          Thanks for your help.

      6. OK so like it says download all of the PPC libraries available at

        But if it doesn’t have PPC in the filename then ignore it and don’t bother downloading it.

        Next download and install WinRAR
        you can use winrar to extract everything from the tar.bz2 files you just downloaded.

        It says to put the extracted files into c:devkitProportlibsppc but ignore that. I think the folder structure for devkitPro must have changed since that was written. I put them in I:devkitProlibogc.

        Each of the tar.bz2. files you downloaded should contain an “include” folder and a “lib” folder. The contents of the include folder should go to I:devkitProlibogcinclude and the contents of the lib folder should go into I:devkitProlibogclibwii

        1. Okay, so I assume bin and share go in C:devkitProlibogc?

          I got through some again, but i got stuck at the sdl_wii part. I checked out the svn at C:sdl_wii and then used cmd in sdl_wii/SDL and i typed make. It went fine and so did make install, then i went back to root: C:wii_sdl and did make and it gave lots of errors.

      7. Yep. Thats where I put the bin and share folders anyways and it seemed to work out for me.

        I always get errors whenever I try to make SDL_Wii. There is presumably a solution to it but I don’t know what it is. Just make install it anyways and hope it works. Despite the errors the only problem I ran into actually using Wii SDL was with SDL_Mixer which you don’t need if you aren’t using audio and in any case if you want me to I can show you how I got it working by cutting out mp3 support.

        1. Not sure. Since i havent ever coded any visuals in c++ ill probably start with something text based, as im not sure how you do graphics. I should probably find some open source simple game or example, because i always learn by examining examples and modifying them to do what I want, like i did with html, php, and css.

      8. /* Doing graphics isnโ€™t actually as difficult as it may seem. Here is a little example that I havenโ€™t actually tested but assume should work */

        //a bunch of things to include. some of them not actually needed for this example.

        //this function will load an image, set it to the same bit depth as the screen and set a certain color to transparent. No need to edit it.
        SDL_Surface *IMG_LoadOptimize( std::string filename ){
        SDL_Surface* loadedImage = NULL;
        SDL_Surface* optimizedImage = NULL;
        loadedImage = IMG_Load( filename.c_str() );
        if( loadedImage != NULL ){
        optimizedImage = SDL_DisplayFormat( loadedImage );
        Uint32 colorkey = SDL_MapRGB( optimizedImage->format, 0, 0xFF, 0xFF );
        SDL_SetColorKey( optimizedImage, SDL_SRCCOLORKEY, colorkey );
        SDL_FreeSurface( loadedImage );
        return optimizedImage;

        // this function will draw one surface onto another one. no need to ever edit this either.
        void apply_surface( int x, int y, SDL_Surface* source, SDL_Surface* destination, SDL_Rect* clip = NULL ){
        SDL_Rect offset;offset.x = x; offset.y = y;
        SDL_BlitSurface( source, clip, destination, &offset );

        //create the screen and a sprite that you want to use.
        SDL_Surface *screen = NULL;
        SDL_Surface *testsprite = NULL;

        //prep and load a bunch of things and start the loop
        bool done = false;
        int main(int argc, char* argv[]){
        screen = SDL_SetVideoMode(640,480,16,SDL_DOUBLEBUF);
        //if you dont want to optimize the image then you can just load it with IMG_Load
        testsprite = IMG_LoadOptimize(โ€œMedia/testimage.pngโ€);
        int posx=50;
        int posy=75;
        int countdown=0;
        //draw the sprite onto screen
        //display the screen
        //increase that counter by 1
        //after 1000 frames lets stop the loop and exit. there are better ways to do a specific number of loops but whatever.
        return 0;

        1. Yeah it doesn’t compile. But I guess I can find other examples too. Thanks for the help. Main thing for me is figuring out how it works when you have multiple images/sprites like your zombies and being able to move them around and detect when they touch and things like that.

      9. OK so it seems that a wordpress blog (and especially a wordpress blogs comment section) is a pretty shitty place to post code but hopefully you will still be able to learn something from the mess of text above.

        If there is anything in specific that you want to know how to do then feel free to ask.

  3. Pingback: Siskatec

Comments are closed.