RSS icon Home icon
  • Bomberman / Dynablaster DX11

    Posted on November 11th, 2020 admin No comments

    This is a quick update to the version I published many years ago. A lot has changed under the hood and yet much remains the same.

    Click on the picture to download theĀ game

    Basically, the DirectX 9 API was replaced by Direct 3D 11 and a few minor bugs was fixed. We played a lot with this version on Windows 10 so I believe it’s free of bugs.

    Added benefit of the new API is that you don’t have to download a DirectX runtime from Microsoft anymore. It should be working immediately without any additional download, at least on Windows 10.

    The menu is as plain as in the original Amiga (or PC) version. This is intentional, it’s like playing in an emulator. However, I hope I will release a more user friendly advanced version soon.

    If in doubt, to check the integrity of the game binary, these are the hashes from my computer.

    MD5: 6dfa99ff8ed4e5f4ec8de1744f2b8a3b

    SHA1: 07680b4e51e7e817ebf43acf80c14dc51ff8a6f7

    SHA256: 0c42623e7a0ea30b9f6f9630fc83138c5dd17640223c8e5642e0b0ee6dc8190d

     

    About the internal details…

    The first version was just one big source file (not counting the sound/music engine) which wasn’t really a big problem until I wanted to rewrite the whole thing. I took a big breath and separated all the key functions. Now it is easier to add or modify something.

    Replacing the DX9 required rewriting the whole sprite handling. D3DX9 comes with ID3DXSprite interface which is no longer exist. The solution was to use textured rectangles with orthogonal projection, moving in 2D coordinates. There wasn’t any substitute for D3DXCreateTextureFromResourceEx() so I have to load the texture by the help of WIC (IWICImagingFactory interface) and create a texture from it (CreateTexture2D). These seemed a lot of work in the beginning but in the end it gave me a lot of control.

    The sound and music engine still use the DirectSound API. The sound engine allocates buffers for all effects and plays immediately when required. The music engine creates four buffers for the four channels and does the sound mixing to simulate the Amiga MOD effects. The player was fine in the first version but I found some other MOD music which sounds weird. I fixed a few bugs but it didn’t improve anything in this particular project.

    The gamepads are handled by the good-old multimedia joystick API. I see no reason to replace it. Simple and still works. I can even use my XBOX controllers (on Windows of course). I may use XInput in the future when I want to support vibration.

    So, these all become a handy ecosystem to write 2D games in the future… right after I finished my ultimate Dynablaster version.

    What do you expect next:

    • Configurable controls / new GUI
    • Network play, local and internet
    • OpenGL version
    • Linux version

     

    Leave a Reply

    Your email address will not be published. Required fields are marked *