xywh Game Engine
- Completely open source, you can modify the source code and improve it with me. The engine is still being updated
Very simple and easy to use, without sacrificing functionality
Complete information, complete development documents (currently only in Chinese), dozens of examples with lots of comments
Outstanding performance, I have done comparisons with many 2D renderers, the performance is better (thanks to FBGFX)
Complete functions, do not require game developers to change the engine while making games
True 2D engine, not using 3D to simulate 2D, so coordinate processing is more convenient
Unicode support, the current support is very good, the next version will support it perfectly
Free trial, code authorization scope belongs to public domain, you can use this engine commercially
- Graphics rendering: You can draw basic shapes such as points, lines, rectangles, circles, etc. on the screen
Image rendering: You can output a complete image or a part of it on the screen (format: BMP, PNG, GIF, JPG, TAG, XGI...)
Text rendering: XGE engine supports rendering and typesetting of truetype fonts and xrf bitmap fonts, which is very convenient to use
You can even load unsupported file formats (pictures, fonts) through a custom loader
GDI and GDIPlus image support: Although the efficiency is low, some functions are easier to implement with them
Network: Easy to use event-based TCP Server, TCP Client, UDP network library, IOCP technology high-performance 100,000 connections.
GUI: At present, it has a complete GUI mechanism and a layout system, but there are few controls and it is still under development.
Scene: Scene let the difficulty of reducing the use of code development game, a scene piece of code
Device input: support mouse, keyboard and joystick, dynamic detection or event driven
Auxiliary library: coordinate system adjustment, view adjustment, screenshots, etc.
Usability: Encapsulates file reading and writing, INI file access and some usability functions
xywh Game Engine is developed using FreeBasic, based on the FBGFX library, and the audio function is implemented using the BASS library. It is only 300KB before compression.
I am currently implementing the GUI system, but only released button controls, because my energy will be mainly on the implementation of TextBox.
In fact, the GUI system is quite complete, except that the messages of the IME part are not forwarded, the whole mechanism can probably be fixed.
My idea is to make one thing more refined, not a lot of things that are difficult to use. Therefore, only the elements of the button series were developed at the beginning, and then they will be added one by one. You can also merge the elements you developed.
A person's energy is limited. At first, I gave up SDL and a lot of 2D engines and decided to develop it myself. I set out a long development plan for myself. Now I have realized most of it.
Although 2D is lagging behind the times, obviously as an independent developer, it is very rare to be able to control 2D. 3D requires a lot of energy for mathematical calculations. I don't have that much energy, so I only do 2D.
The open source code hopes that this library can be passed on, and that some friends can maintain this library together with me. It still has many features to add, and my development plan has not come to an end.
And the experience of game development tells me that the engine can never keep up with the needs of the game, so I developed a lot of extension interfaces to make the engine as customizable as possible, but it still needs to be constantly updated.
Recently, my work is very leisurely, which also gives me time to iterate the version quickly. I hope everyone will enjoy it.
Chinese is my native language. If I want to read and write English, I need to rely on a translator. Therefore, I am not sure if anyone can understand the above words. I try to use English as much as possible for the comments and release folders(发布目录) in the game. However, it also increased my workload. Some things may require you to use a translator to translate them into English for reading.
If you have any questions, please email me: email@example.com
Source code: https://github.com/CN-xLeaves/XGE
Bin, resources and examples: https://github.com/CN-xLeaves/XGE/tree/master/release
The current version is not a stable version. The stable version will be released in the next few days and can be used for testing. Please be cautious in actual development and use.
In fact, the functions of this version have been tested and should be very stable, but the order of parameter transfer of drawing commands is not uniform. I want to make this part more standard and not change afterwards, so the SDK may be modified. The work will be completed soon (within 1-2 days).
I don’t know how to upload pictures and files. You need GitHub to download the source code. You can download it as a ZIP, and then find the part you need. If you want to demonstrate the picture, I hope to be able to upload some of it, but I am not familiar with the network outside of China. To ensure the access speed of the pictures, you may need your help to post some.
Fixed a serious bug that caused the loading of xgi format pictures and ttf font files to fail.
Added tank battle game code. This game is currently complete, and more functions will be developed in the future.
Added the xui.FreeChilds function, which can directly release the UI elements of the current scene.
Other BUG fixes and adjustments.
The scene system BUG is fixed, and the new scene switching logic is used.
The GUI system is bound to the scene. After the scene is switched, the GUI state will be saved, and different scenes have different root elements.
Added two scene-related examples.
Other BUG fixes and adjustments.