The VG Resource
PGE Project - 2D platform game engine - Printable Version

+- The VG Resource (https://www.vg-resource.com)
+-- Forum: Creativity (https://www.vg-resource.com/forum-126.html)
+--- Forum: Game Development (https://www.vg-resource.com/forum-129.html)
+--- Thread: PGE Project - 2D platform game engine (/thread-26914.html)



PGE Project - 2D platform game engine - Wohlstand - 03-30-2015

http://wohlsoft.ru/PGE/

It's a developing free and open source platform game engine and toolkit which gives the ability to create games of the platform genre. The project is based on the Super Mario Bros. X fangame engine reverse engining (SMBX64 Standard) and fully compatible with it. The main and important idea of the project - to give possible for any user to creating platform games from exists media which you have or which you can draw yourself. This idea which is present at SMBX fan game laid the foundation of the PGE project, but a main deficiency of SMBX is a strict data standard and closing to the Mario fan game series.

[Image: Pge_editor_mainwindow.png]

[Image: Pge_engine-0.2.6-alhpa-window.png]

Package has multiple components: Editor (which now is using by community of the old SMBX Engine because compatibility is kept), Engine (a part which allows playing levels and episodes, still be in alpha state, but it's can play most of the old levels, even some features aren't implemented yet, or working incorrectly).

The project is cross-platform: there are binaries for Linux, Windows, and Mac OS X. Also planned to have engine working on the Android. Outdated editor application also is available for Android, (but that was a small and unstable experiment, so, be careful with it)


RE: PGE Project - 2D platform game engine - Gors - 03-31-2015

does this program accept tiles bigger than 16x16 as graphics? looks really neat.


RE: PGE Project - 2D platform game engine - Wohlstand - 03-31-2015

Yes ;-)
What about size of graphics: The standard size of tile is 32x32 px, but is not strict. Here is a full freedom of GFX size.
Why not 16x16? This thing came from SMBX engine where author made sprites 2x bigger with performance reasons [SMBX written in VisualBasic 6, PGE written in C++]. Tiles aren't jailed to grid and can be placed with any alignlent (multiple 1!).
Old SMBX engine has strict standard: when you will customize tiles, they are may be cropped [because size defined internally, my engine reads size of tile directly from image file].
Also presented thing like sizable tiles - sprite divided to 9 pieces which are sides, corners and center. Unlike SMBX [strictly multiple 32 sizes are allowed, or glitch will appear], my engine gives able to draw sizable tiles with any size.

By anyway the standard size of tiles and default grid size can be defined by you own in each config pack.

For example: glitches in old SMBX engine:
[Image: SizableBlocks_SMBX.png]

And same result in my developing engine part:
[Image: SizableBlocks_PGE.png]


RE: PGE Project - 2D platform game engine - TheShyGuy - 03-31-2015

Quote:This thing came from SMBX engine where author made sprites 2x bigger with performance reasons. Old SMBX engine has strict standard: when you will customize tiles, they are may be cropped [because size defined internally, my engine reads size of tile directly from image file].

How do you get the size of a tile directly from an image file? Are image files restricted to a single tile or tile type? If so, that's not good for performance to only have a single tile type per image (texture). The GPU will have to keep switching textures per tile type which can hurt performance, more so if you're not sorting and batch rendering sprites by texture.


RE: PGE Project - 2D platform game engine - Wohlstand - 03-31-2015

I get's image size when read file into memory and saves it into internal variables. Old engine had pre-defined tile-size for each item-ID [Blocks, BGO's, NPC's on the level, Tiles, Paths, Sceneries, Level entrances - are different types and usually have individual method of working with image]

Level graphics:

Blocks - sizes are equal to size of original image loaded file [when file loads, size values are saving into variables and uses on render and defines physical size of collidable block]. Except is sizable block which have item-object specific size values which giving able to draw same item but with different sizes. The algorithm of render uses divided to 9 pieces image.
BGO's - sizes are equal to size of original image loaded from file. [in the old SMBX engine size values was hardcoded and violating of them on customization will cause cut-off of result image].
NPC's - has individual method of GFX size definition: it may by how pre-defined [height of 1 frame] or may by calculated automatically on initialization from number of frames by special formula.

World map:
Tiles, Sceneries, Paths, Level entrances - like BGO's.

It's about graphics size, but also a lot of things about grid aligning. Blocks, BGO's, Tiles, Sceneries, Paths are aligns relative to left-top corner, but NPC's and level entrances are aligns relative to bottom-center or bottom-center with "half of default grid size" offset.

While I researched old SMBX engine, I made a documentation about internal content here: http://engine.wohlnet.ru/pgewiki/SMBX64 - It's an SMBX64 standard - research document about internal content standard of old SMBX engine.

PGE extends everything which presented in the SMBX and provides new features [and new file formats too].

________________________________
Also, I don't loads everything which presented in config pack: I loads only used on current level.
I.e. if tile of than type is using on current level, it loads as texture. Each tile/item/element has individual texture.

in the editor I loads everything which is not uses OpenGL: everything loads into RAM. If some PC's are slow, the ability to stop animation is presented. [For example, it perfectly works on Pentium 4 with 2.4 Ghz without hurting to performance].
Unlike editor, engine part is "tiny" for CPU/GPU and works quicky and fast [Box2d and OpenGL. By anyway I will replace Box2d with own physical engine because usage of Box2d is not good for my case. But first and hardest thing is a collision detection].

By anyway you have to try out the old SMBX engine which presented here: http://www.supermariobrosx.org/
SMBX 1.3 - is a LAST version of engine which released in 2011'th year and no more updated. SMBX 1.3.0.1 just a COSMETIC work with modifying of EXE file and with fixing of included GFX files, and it still same SMBX 1.3 internally. It uses software graphics and works creepy slow on single-cored CPU based PC's like Intel Pentium 4 or AMD Athlon 64 with 2.4 Hz even under Windows XP.
New PGE Engine uses OpenGL hardware acceleration and works smoothy and quickly. Each level file loads FASTER than in the SMBX. Also stupid Microsoft MCI in the SMBX works too slow [to take playing of music file you should wait some time while file will be loaded, PGE uses SDL and SDL Mixer to play musics and sounds (I also making some mods over SDL Mixer to improve some things in them).


RE: PGE Project - 2D platform game engine - Kelvin - 03-31-2015

Oh, please tell me you plan on building this for OpenPandora. If you don't have one, I can ask on the OP forum if anyone is willing to build it for you.


RE: PGE Project - 2D platform game engine - Wohlstand - 04-01-2015

I think, it should be built for this platform because it usually builds under regular Linux x86 and x86_64, Linux ARM should work too


RE: PGE Project - 2D platform game engine - Wohlstand - 11-22-2016

Bump.
Updated screenshots and links


RE: PGE Project - 2D platform game engine - adriano gt - 11-22-2016

very cool project.... good luck and sucess
will this have multiple languages?


RE: PGE Project - 2D platform game engine - Wohlstand - 11-22-2016

(11-22-2016, 05:15 PM)adriano gt Wrote: very cool project.... good luck and sucess
will this have multiple languages?

Thanks for support Smile

Yea, it already supports multiple languages: Editor is already translated into English, Russian, German, Spanish, Portuguese and Polish, and some other translations in a process by guys who wanted to translate it. The engine also supports multiple languages and now has English, Russian and Dutch translations. Also on my Wiki you can find a guide to make translation for any yourself