Hi All, I wanted to share a project I've been working on for a bit. I know there are several folks here with a lot of gaming experience and I would love some feedback.
In the process of working on several 2d game projects I was noticing that I was needing to write a lot of game "plumbing" for each project. I wanted to see if it would be possible to create a generic game API and engine for QB64 that could support a number of different types of 2D games (platformers, top down, isometric strategy, etc.). GX is the result of this effort so far.
The goal here is to create a flexible, event-based game engine. Based on your game requirements you can use as much or as little of it as you need, but the engine will take care of the main tasks of managing the game loop and screen buffering for the display. The current alpha version has support for:
- Scene (viewport) management
- Entity (sprite) management
- Tiled map creation and management - Including a world/map editor (built with Inform)
- Bitmap font support
- Basic collision detection
- Basic physics/gravity
- Device input management
- Keyboard, mouse, and game controller
- Interactive debugging
I've made an effort to document the project here:
https://github.com/boxgaming/gx/wikiThere are several samples included in the project and even a tutorial here:
https://github.com/boxgaming/gx/wiki/TutorialYou can download the pre-release here:
https://github.com/boxgaming/gx/releasesI'm still in the process of documenting the API, so not all of the calls are there yet, but there is a good start. I've tried to make the style similar to the QB64 wiki.
Additionally, I'm working on a export to web feature that I will be committing in subsequent updates that will convert a GX-based QB64 game into a canvas-based javascript game that can run in the browser. It's not quite ready for primetime yet but I've included a screenshot of where I've converted one of the sample projects.
I would appreciate any and all feedback.
- dbox