The Frank Engine is an open sourced game engine written in C++. The mission is to have a fun and fast way to create large open world games with state of the art 2D 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 well documented and includes a simple starter project to build on.
- To download a snapshot of the latest release or access the SVN repository you can visit the Frank Engine project page on SourceForge.
- You can also download the Frank Engine Demo, which is an example project that shows some of the basic features. This has all the engine features like the integrated level editor and debug console for you to play around with.
- To compile games for the The Frank Engine you will need to install Microsoft Visual C++ 2010 Express and the DirectX SDK.
- Open source with MIT license on SourceForce
- Focus on simplicity, flexibility, and fast iteration
- C++ with object oriented architecture
- Huge streaming worlds
- Dynamic lighting, soft shadows, emissive, specular, and normal maps
- Integrated physics using Box2d
- 2D sprites, deformable terrain and particle system
- Integrated level editor with pause-tweak-unpause functionality
- Sub frame interpolation using fixed time step with delta buffering
- Detects if assets changes while editing and refreshes them automatically
- Stereo sound effects using Direct Sound
- Music using Ogg Vorbis
- Keyboard, mouse, gamepad, and Xbox 360 controller input
- Integrated with The DirectX Utility Library (GUI, fonts, sound, etc)
- All assets can be compiled into the exe (excluding music)
- In game debug console and debug rendering system
- Dev environment is Microsoft Visual C++ 2010 Express
- Graphics SDK is Microsoft DirectX 9
- Uses precompiled headers for faster build times
- Native wide character support
- Integrated tile sheets support
- Custom font rendering using BMFont
- User friendly editor features including cut, copy, paste, undo, and redo
Basic Engine Commands
These commands work by default in all games made using Frank Engine, so you can use them with pretty much ever game I’ve made.
- Tilde – Brings up the debug console where you can enter debug commands. Try typing “help” for more info. There are a slew of commands, everything from vsync to tweaks for specific gameplay variables.
- F1 – Shows debug information like frame rate and engine stats.
- F2 – Shows an Box2D debug physics overlay.
- F3 – Reloads textures and sounds from disk. This feature has been deprecated since assets are automatically reloaded when they change.
- F4 – Toggles edit mode. Edit mode is where a designer can create the terrain and place objects. There is a help bottom in the lower right that will pop up some more info about how to use edit mode. The controls are built around a WASD hand position to mesh with normal game controls.
- F5 – Takes a screenshot and saves it to the /snapshots folder.
- F6 – Opens up the profiler which uses very precise timers to help track where the frame time is being spent.
Use F4 to switch bettween the editor and the game. The editor uses a WASD hand
position. Use number keys to change which layer you are editing/selecting. You
can use right mouse to select multiple tiles/objects. By default you will select all layers but you can hold alt to select only the current layer. In tile edit mode you can draw
with the left mouse button. In object edit mode you can move objects and
change their attributes. Cut, copy, paste and undo/redo are all very functional.
When you switch out of edit mode back to the game the player will automatically
be moved to the mouse cursor to make iteration faster.
1 – Background layer
2 – Foreground layer
3 – Objects layer
Middle Mouse (or Left Mouse + Tab) – Move camera
Mouse Wheel (or Right Mouse + Tab) – Zoom camera
Mouse Right - Rectangle select
+ Alt – Single layer select
+ Shift – add to selection (only for objects)
+ Ctrl – remove from selection (only for objects)
Mouse Left – Draw tile data & select/deselect
+ Shift – Draw line
+ Ctrl – Eyedropper
+ Mouse Right – Block erase
Alt – Block draw
Z – Flood fill
X – Flood erase
Mouse Left – Object select
+ Ctrl – Scale object (only can be done when 1 object is selected)
+ Shift – Rotate object (only can be done when 1 object is selected)
Z – Add object
X – Remove object
WASD – Move in quick pick box
Ctrl+Z, Y – Undo, Redo
Ctrl+X, C, V – Cut, Copy Paste
Ctrl+S, L – Save, Load
Shift+Ctrl+C,V – Copy, Paste the entire patch under the mouse
G – Toggle grid
B – Toggle block edit