Making Code Happen

The Frank Engine

Frank Engine is a game development framework with a built in editor written in C++. The goal is to be a fast way to create large open world 2D games with high quality graphics. Everything necessary to create a fully featured game is included: physics (Box2D), rendering (DirectX), level editor, dynamic lighting, particle system, sound, music (Ogg Vorbis), gamepad input, GUI, and debug console. The code is fairly well documented and includes simple starter projects build on.

Features

  • Large streamable worlds with small memory footprint
  • Integrated level editor, instantly switch from editing to playing!
  • Integrated Box2d Physics
  • Deferred rendering with diffuse, normal, specular and emissive maps
  • Supports a ton of dynamic shadow casters and shadow casting lights
  • 2D sprite, terrain, and particle system
  • Stereo sound effects with Direct Sound
  • Music with Ogg Vorbis
  • Integrated with The DirectX Utility Library (GUI, sound, etc)
  • Sub frame interpolation using fixed time step
  • Keyboard, mouse, and joystick input binding system
  • In game debug console
  • User friendly editor features: cut, copy, paste, undo, and redo
  • Also compiles to WebAssembly to run in a browser, rendering through WebGL 2

Piroot Game

I’m using this game engine to build a large metroidvania type game to show off what the engine can do.

19 responses to “The Frank Engine”

  1. […] engine is fully open source so if you want to take a look at the actual code or make a game with it you can get it right here. This entry was posted in Development and tagged 2d light map, faster blaster, game engine. […]

  2. McFunkypants Avatar

    Wonderful work! Thanks so much for being awesome, using the MIT license, and creating something truly impressive. Good luck at the upcoming Ludum Dare!

    – McFunkypants

  3. Jeremy Stark Avatar

    This looks amazing! Love the lighting work, can’t wait to try it out! Good luck in Ludum Dare!

  4. […] was my 4th Ludum Dare, I planned to use my own open source game engine and was eager to experiment with the new dynamic lighting system I added. When the theme was […]

  5. Gerald Howes Avatar
    Gerald Howes

    i just tried compiling this one vs2013 but all the lighting is messed up
    how can i fix this please

    1. Gerald Howes Avatar
      Gerald Howes

      same with 2010
      using win7

    2. Frank Avatar

      I am using Visual Studio Express 2010 with Win7. First try updating both your graphics driver and DirectX. Then verify that the pre-compiled version of my engine demo looks correct. If that doesn’t work you will need to be more specific about the problem you see.

      1. Gerald Howes Avatar
        Gerald Howes

        precompiled game works. dxjune10 is installed correctly. driver updated to latest. here is a screenshot of my problem. http://imgur.com/9Q2ZW6U

        1. Frank Avatar

          That is weird. Did you download the project directly or sync to the repository? The only thing I can think of is if you aren’t up to date and it is a bug that is now fixed.

          1. Gerald Howes Avatar
            Gerald Howes

            straight from sourceforge

        2. Frank Avatar

          I’m not sure what could cause that. Looks like the light buffers aren’t being cleared properly. I’ve tried building on a few other pcs and it seemed to work fine. Can you send me the exe?

          Edit: This bug has been fixed, many thanks to Gerald.

  6. John Doe Avatar
    John Doe

    Great work on this, looks excellent.
    Especially great since it’s MIT.
    Unfortunately its uses are probably limited due to poor performance (demo has resource usage on par with modern 3D FPS engines), but an optimized version could be a winner.

    1. Frank Avatar

      Thanks! From my testing it runs much better then a typical FPS game with a much smaller memory footprint then even other 2D engines. It is already fairly well optimized and there is not much more low hanging fruit. It is very simple to reduce the graphics settings for slower PCs, the bulk of frame time is spent rendering the deferred lighting. My PC gets about 150 fps on the starting area in the demo and uses about 50 meg of ram. When I turn off lighting it jumps to around 2000 fps.

  7. Frank Gennari Avatar

    I downloaded the Frank Engine source code and tried to build with MSVS 2015 and ran into many problems. I’m guessing that no one has tried using this new a version of Visual Studio. I had to change various lines of code to add casts to float and bool. I had to change hash_map to unordered_map. I had to fix the following line, which seems wrong:
    swscanf_s(text.c_str(), L”%d %d %d”, oldTileID, newTileID, count);
    should be:
    swscanf_s(text.c_str(), L”%d %d %d”, &oldTileID, &newTileID, &count);
    In the end I wasn’t able to fix all of the various type conversion warnings and incorrect scanf format strings, so I had to turn off “treat warnings as errors” and try to ignore a thousand lines of errors printed to the console. I was able to hack things up enough to get it working and everything seems to be okay. Let me know if you want a complete list of the warnings and everything I had to change.

    1. Frank Avatar

      Thank you for the notes. Currently I am only supporting Visual Studio 2010 with DirectX 9. It compiles without warnings in that environment. I would like to update at some point but haven’t gotten around to it yet!

  8. Andy Avatar

    seems awesome. nice effort. all the best to your game engine.

    1. Frank Avatar
  9. […] I had been wanting to devote some time to. I fixed a huge backlog of issues with my game engine “The Frank Engine” and added some new features like the incredible looking dynamic lighting system shown in the video […]

Leave a Reply to Jeremy StarkCancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.