v2.0 is now available!


Well here it is, v2.0 from almost a year ago now. There’s been enough progress made since that I think it’s probably fair enough to release this older copy now.

Not sure if I’d stated anywhere before but all new releases inc. this one will be under GPLv3, and I realise some of you might not be happy with having to make your own changes open-source on release as per the terms of the license, but I feel like it’s fair game we all help each other out I guess?

To make things a little easier too, I’ve also gone ahead and included the third-party dependencies this time round. Last time was just a bit of a drop and dash, sorry about that.

Keep in mind that there’s a lot here that’s not finished (surprise) and a lot of really really dumb decisions made implementation-wise - this was pretty much thrown together for a jam. Since this version a lot of it’s been pretty much gutted or overhauled too, so don’t expect me to be able to provide much help on getting anywhere with it right now (though I expect things to settle more as the engine matures).

Below is a fairly rough list of changes on what was introduced here since the last release.

    - 'platform' has been split up into 'plcore', 'plgraphics' and 'plmodel'
    - 'yin' has been split up into 'common', 'launcher_sdl2', 'game' and 'engine'
    - Binaries are now under runtime/<platform>/
    - Content is now stored under either game-specific sub-directories and/or packages
    - Console interface, which can be pulled down via ` key
    - .node configuration language, for both serialisation and deserialisation
    - User modified variables are now automatically saved/restored
    - Discord integration (currently disabled)
    - WAD replaced with new 'pkg' format, with support for compression
        ~ Introduced 'pkgman' command-line utility for packaging content
    - New memory manager
        ~ Automatic garbage collection based on references
        ~ Debugging functionality for tracking memory usage
    - Scheduler, allowing multiple concurrent background events
    - Introduced first iteration of Yin World Editor
    - New World format for storing sectors, portals, level meshes and more
    - Significant improvements to collisions since last version (i.e. they exist now)
    - Audio via SDL2 Audio
    - Support for additional graphics APIs via plugins
    - Shader programs are now registered in via .node files provided under materials/shaders
    - Materials are now supported; can specify specific shader, multiple passes, blend modes
    - World and actors are now culled based sector/portal vis
    - World geometry is now all batched, alongside any additional sub-meshes
    - PNG, TGA, JPG, BMP and GIF image support
    - Introduced own GFX image format which provides some reasonable compression
    - MD2 and PLY model support
    - Post-processing pipeline
        ~ FXAA
    - Supersampling up to 2x display resolution
    - GLSL shaders are now pre-processed on load, with support for #include directive
    - Texture-blending via blend and blend_3layer shaders
    - Normal-maps are now supported; tangent/bitangents are now generated alongside normals for world
    - There's now support for variably sized bitmap-based fonts
    - Toggable debug overlays are now available for profiling
    - Actors are now spawned by an id string, rather than by index
    - Simple particle system

I was hoping to finish v3.0 this year but it’s looking like that’s not going to happen. Lots going on life-wise right now and little motivation. Anyway below is a teaser of what’s in the works.

Files

2021-09-12 (v2.0 Source Code) 26 MB
Jul 31, 2022

Get APE Tech

Leave a comment

Log in with itch.io to leave a comment.