Foxtrot Engine 2D
A downloadable Foxtrot Engine 2D for Windows
Foxtrot Engine 2D is a 2D game engine based on DirectX 11 for Windows. It includes Foxtrot Editor which allows users to create & modify scene data, and Foxtrot Engine which executes the produced game based on those data. Scene data are stored as a ".chunk" file, which is a file structure that describes the game data and the required resources.
Foxtrot Engine has been developed by JungBae Park from GooCat Studio for the game in development, "SPARED".
List of Features
A component-based structure that allows to create custom Actors
Various Components to create behaviors for Actors
- Sprite renderer
- Tilemap renderer with .csv input
- Sprite animation
- Rigidbody simulation based on box2D
- 2D colliders in basic shapes (e.g. box colliders)
- User input Management & Moving characters
- etc.User-defined Components can be added as "Behavior"s
Create & Modify pre-defined Actors, "Premade"
(a similar concept to Unity Engine's "Prefab")
Getting Started
1. Downloading the Engine
Download the .zip file below and extract it.
Run FoxtrotEditor.exe from the extracted folder.
Getting Started - For Developers
0. Development environment
Visual Studio 2022 is recommended since the project is not built and tested on other development environments.
1. Downloading the Engine
Download the code from the GitHub repository
2. Check for project configuration
Windows SDK Version: 10.0
Platform Toolset: Visual Studio 2022 (v143)
C++ Language Standard: ISO C++17 Standard (/std:c++17)
Vcpkg is enabled, using Manifest. Check out the Vcpkg file for package info.
3. Use the correct solution configuration
Use Foxtrot_Debug when building a game in production.
Foxtrot_Editor_Debug is used for updating Foxtrot Editor so unless you are working on improving the Editor, it is not necessary.
4. Build the Projects
a. Building Foxtrot Editor
Set the configuration to "Foxtrot_Editor_Debug".
Build the project "FoxtrotEngine" first, and then build the project "FoxtrotEditor". The output "FoxtrotEditor.exe" should be in
"{root}/FoxtrotEditor/Builds".
The user manual is not provided yet, but you can still play around with the editor.
IMPORTANT: the files, "Game Data.gdpack" and "imgui.ini" are CRUCIAL for Foxtrot Editor to work properly. Keep them in the Builds folder.
User Manual
This section will be updated.
Plans and Goals
Foxtrot Engine has been developed not only as a portfolio but also as a tool of education to obtain game development experiences. The developer also expects to develop this project until it can produce a finished 2D game title. Here is the list of upcoming features and goals.
- Artificial intelligence for characters (current WIP)
- Spine animation renderer
- Particle system
- UI testing (this was implemented, but not tested)
- Establishment of the workflow of Foxtrot Engine; a development routine
- Finishing the prototype version of the game, SPARED.
GitHub Repository
https://github.com/Joseph-Park-dev/FoxtrotEngine
References
Gregory, J. Game Engine Architecture (Third Edition). A K Peters/CRC Press. ISBN-13: 978-1138035454.
- Used as a primary reference for engine architecture design.
Jeong-Mo Hong. Introduction to Computer Graphics with DirectX 11 [Online Course]. HongLab. https://honglab.co.kr/collections/graphics
- Implemented 2D renderer based on PART 2, Chapter 6: Rendering Pipeline.
- Used code examples from PART 2. Realtime Pipeline; DirectX 11 utility functions to load and process textures.
Madhav, S. Game Programming in C++: Creating 3D Games (1st Edition). Addison-Wesley Professional. ISBN-13: 978-0134597201.
- Referenced for designing the game loop architectures.
- Used component pattern for Actor architecture.
- Used code examples on math; Vector classes with related functions.
Nystrom, R. Game Programming Patterns. Genever Benning. https://gameprogrammingpatterns.com/
- Applied Command pattern for undo and redo system on Foxtrot Editor (Chapter: Command)
Published | 2 days ago |
Status | In development |
Category | Tool |
Platforms | Windows |
Author | GooCat Studio |
Tags | 2D, 2d-game-engine, custom-engine, Game engine |