Introducing Swift - the tech behind CraftMine’s performance.
Swift will revolutionise people’s expectations of Minecraft modpack performance. For the modpack industry in general, packs are currently expected to require up to 5 times more RAM than Vanilla and to run at significantly lower framerates on identical settings as well as much longer loading times. Swift is based on CraftMine’s performance optimisation bundle codenamed “Rapido+”, and further expands on the possibilities.
@Paint_Ninja Uhh getting exited. Any details on this?
@Bent Swift is currently heavily in development and at its early stages, so there’s not a great deal of detail yet. I posted about Swift in this hidden admin-only category so I could work on drafts of the post/announcement and then move this post to the public CM news category closer to the date.
Swift is a really crazy idea that’ll do the same thing v4 did to sound - but to the visuals. CMv4 already looks unbelievably good but there’s still room for improvement and I want to replace the rendering engine entirely.
With Swift, we’re working on rewriting the entire rendering engine from scratch in C++ using OpenGL4.5 rather than the current Java with OpenGL2.1 renderer in Vanilla (in CMv4, we use a Java rendering engine with mostly OpenGL2.1 as well, but we use OpenGL3.x for some shader functionality and lighting calculations). Originally we were going to rewrite it with Vulkan but due to its immaturity and it being a bit complex to use at the moment, we ended up going with OpenGL4.5.
With an entirely new rendering engine based on a really modern graphics API, we’ll be able to leverage incredible features in modern GPUs which are currently being unused in MC and CM (when you’re using an old graphics library like OpenGL2.1, any graphical features you want to do that aren’t supported by the graphics library have to be done by the CPU, which explains why Minecraft in general is so heavily CPU-bound). It’s likely that we’ll see significant performance boosts with Swift compared to Optifine or even CMv4 Light (potentially 100-300fps increase, maybe more - it’ll be similar performance to the Minecraft Windows 10 Edition which I’m able to run way above 100fps with all video settings maxed out)
Currently the project is being worked on by Matthew Sitton and the progress being made is at an amazing rate. It’s estimated to take around 6-10 months before we have a stable version and roughly 12-20 months until we have a version with full mod support. Swift will be based on Matthew Sitton’s open source work and will further optimise the game - just like Rapido+ or Optifine further optimises the current Vanilla Minecraft rendering engine.
This almost sounds as a late april fools joke but this is awesome! I hope that you keep up on this. I’ll do my best to support you “marketing” this when we are ready for this. Let me know if you need any help on this.
Also how exactly are you involved into the development?
Keep me informed about the progress! I am looking forward to this.
I have actually never thought about such a “admin only” area but well why not!
@Bent I’m not really involved much yet, but I have been watching and following development since 4 days after he first started. When I saw it at first I thought it was another one of those april fools jokes as well but checking the source code and seeing his first filed issue about how to compile it is what made me believe it’s real and wanting to get involved. In the last couple of weeks he’s done a lot - he’s set out a full timeline of all the ideas he has and what he’s working on atm, what’s planned, etc… as well as setup a Twitter account and actually starting work on texture rendering (when I came along he litterally only had code to make it start up with the game and load the PNGs into memory).
Overtime I plan on stepping up my involvement in the project by offering him advice, more ideas and hopefully the Swift branding and mcmod info file, etc… Once some public compiles are out I’ll be a very frequent tester and report any issues as quick and detailed as possible and once the stable version’s out I’ll build upon it to further optimise the game (just like I do with CraftMine atm where I further optimise Optifine with custom default settings, add custom rendering hooks, implement new optimisations from scratch, make multiple optimisation mods compatible with eachother, and so on…)
Marketing for this would be fantastic, especially if CM is one of the first to implement this new rendering engine with my custom further optimisations. :D
Development of Swift is underway and will initially be a more simplified version of the earlier idea. Instead of rewriting the rendering engine entirely, it will instead add adaptive graphics support for per-device/device-specific optimisations.
What adaptive graphics does is automatically adjust your graphics settings depending on your current average framerate to provide the best possible visuals without any lag. This also can provide better performance than if someone manually adjusted their video settings - as not all scenes will provide the same complexity - some areas might be a busy built-up town with lots of stuff to render, other areas might be a nearly empty world like a spleef minigame for example. With Swift, when you join that spleef minigame and get insanely high framerates beyond what your monitor can provide, Swift automatically increases your settings so the game looks better while still being as smooth as your monitor permits. When you enter that busy town, Swift’ll detect that you’re lagging and will automatically turn settings down in a conservative manner, in an attempt to improve performance without downgrading the visuals too noticeably.
Additionally, Swift will notify you if it detects that you’re still lagging after it tries everything it can to improve performance, giving you advice on what other things you could do to improve performance that are out of Swift’s reach (e.g. it might recommend you to get a better graphics card, or switch from integrated to dedicated graphics, or it might recommend that you close anything else you have open that’s CPU-intensive like Google Chrome, or to update your drivers and how to do so, etc…)