Roadmap 2021

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
2,845
Hi folks and friends!

Ahhh, another roadmap I hear you saying! If it is of no interest to you, then please pass by. :p

This is a list of things that imho need to be worked on in 2021 to keep Cerberus X working on all platforms and make it more attractive.
Will this goal be achieved is a different matter but it is always good to remind myself and everyone that is working on CX already. ;)
I had numerous and lengthy talks with Philipp on the phone last year and we both agree that CX needs a bigger push to stay and become even more relevant in 2021.
Who wants Unity, right? :p So from the top of my head....

  • Implement a new graphics backend for mojo and mojo2, so they run on the Apple platforms using Metal. (WIP)
    Currently I am testing aka getting familiar with Sokol, but that backend can change. With Sokol, I am getting about 2x the performance than what mojo/mojo2 is providing currently. Albeit is is currently a very simple test but it shows promises. Regarding Metal, it seems that GLFW is then out of the option. Sokol comes with its own Window managing part, but it lacks controller and input support.

  • For the VSCode lovers, I hope that @Holzchopf will be able to come up with a plugin that brings at least current TED functionality to VSCode. (WIP)

  • @Phil7 is working on restructuring, rewriting and enhancing the docs. (WIP)

  • Add an UI module. CX code only, so it runs on ALL platforms. It needs to be skinable. (WIP)
    I have already started one.

  • Add a 3D module to CX. (WIP)
    Vortex is a good candidate but I keep that path open. I have added direct OBJ and B3d loading already but need to work on the normal calculation. Something is off there. If it becomes the one, the docs have to be updated and maybe it has to have more functionality. Right now I am missing some stuff while porting my game. At the end, I always loved the way Blitz3D handled things, so that will be the ultimate goal. Minus DirectX7 :D

  • Make sure we have an IDE that runs on Apple Silicon.
    One of todays post indicate that TED does work but we have to be 100% sure.

  • New/more/better examples that are that and not demos. New flashy demos that show what CX can deliver. We know this but new developers don't.

  • Add app icons via CX to Macos and Linux. Check if it works with Android and iOS.

  • Add support for Google Play App Bundles on Android. (done, ready for testing on GitHub)

  • Update CX to use the current SDKs for Admob and IAP.

  • Replace any depreciated API calls for Android and Macos/iOS.

  • Make iOS apps support Macos.

  • Change Android to use the NDK, so it has a better performance regarding graphics.

  • Look into new audio backend options.

  • Enhance the controller support for CX.

  • Add support for TransCC, so it can produce and use DLLs. I think @dawlane has done it already for his fork but I am not sure.

  • Investigate into setting up Android on other platforms than Windows. Seems to be problematic.

  • Add Physics, Collision detection, pathfinding, Animation, INI-Files (done) and XML support to CX.
    For some there are solutions already out there.

  • Add a new network module that is not so low level like what we have and targets games.
    Maybe, just maybe add something like GNET was back in the Blitz days.

  • Looking into WebGL2 for the HTML5 platform.
    There is definitely a performance improvement possible.

  • When the UI module is done, add editors for bitmap fonts, tile maps, sprite sheets, physics shapes, sprites and animation to CX.
    Add a module/target manager similar to ModMan back in the Monkey days.
    Imho CX needs to ship with its own toolset.

  • Create a new, more flashy and more informative homepage. Getting rid of that portal thingy and rather use a static site.
    I prefer MarkDown for its source code, maybe enhance MakeDocs so it could be used for this.

  • tba

A lot of work and when I see this list, it is overwhelming. Overall this list it is a reminder for myself on what needs to be done.
Nothing is black magic or sorcery, just damn hard work. I admit, some parts I have to teach myself but Google and YouTube is my friend here.
Some parts I will not be able to work on 100%, as I am lacking the Apple hardware and Apple Appstore account. But who knows, things might change during the year, which just has started. Or someone spends their precious time and helps out?!

If you don't see me hanging out in the forum as much as before, don't worry. You guys don't need me holding hands.
But I have a wish. Please post about your projects more often than before, so people see that CX is actually used for production.

And now let the flood gates open up... :cool:

Cheers
Michael
 
Last edited:

Pierrou

Active member
Joined
Jul 6, 2017
Messages
186
Once again, thanks for everything. Each of the tasks listed here looks huge! For myself even if I wanted to and had some time to do it I couldn't contribute to CX, but we are all aware that even for highly trained coders like you it all means countless hours of (free) hard work. I really hope that CX gets the user base it deserves because all those efforts lead to a very mature language and a powerful and easy tool...

I 100% agree about everyone posting about their projects. Every now and then, either on the old Monkey forums or on this one, people come asking many technical questions, but we never come to see what they're working on, which is a bit frustrating. Sometimes, also, people come to post about a game they just finished and it's a shame we haven't heard of it before. I don't make video games myself but I try to post about my projects and for sure I love to read about the other projects going on.
 

dawlane

Well-known member
CX Code Contributor
Joined
Jun 21, 2017
Messages
803
Add support for TransCC, so it can produce and use DLLs. I think @dawlane has done it already for his fork but I am not sure.
No didn't implement the capability for transcc to produce shared libraries, but there was an example how to write a shared library in C++, write language bindings and link against it.

I'll have to have a look to see if a shared library target would be feasible. But figuring out how to debug such a shared library would be a bit of a headache with how debugging has been implement in the original version of Monkey. The c++ (not sure even if I should call C++ with the number of C-Style casting going on) code is heavily reliant on macro's for a number of things, which is a bit of a pain in the arse.

Sokol comes with its own Window managing part, but it lacks controller and input support.
If it's the Sokol I'm thinking of, then I think that it still requires the use of a third-party code for window context creation on desktops.

I admit, some parts I have to teach myself but Google and YouTube is my friend here.
Well Google, Youtube and stack overflow would be even better if they installed a plugin to get rid of all the crap to save the hours of going down the wrong path.

Add app icons via CX to Macos and Linux. Check if it works with Android and iOS.
Don't bother even thinking about adding icons to Linux. Linux has a totally different way of dealing with icons and has to be done by who ever distributes the compile binaries. For a desktop launcher for Cerberus that should work on pretty much all of the Linux distributions that support GNOME desktop specifications. Then check out the little bit about it in the Linux How to in the Linux desktop sub section.

Easiest solution to adding icons to Apple app bundles is via modifying the xcode template to include an xcasset template and over writing the xcasset json file with possibly generating symbolic links to the images and then running xcodebuild to tie it all together. The complicated bit would be all the icon names for the types of devices.

New/more/better examples that are that and not demos.
Wonder if one of my old games may do the trick. I'd probably have to do a bit of file shrinking and a major rewrite.
 

wick

Member
3rd Party Module Dev
Tutorial Author
Patreon Bronze
Joined
Jul 17, 2017
Messages
71
Wow, that is a lot! Good stuff to look forward to. I'll try to be louder about showing the things I make with CX. :)
 

MikeHart

Administrator
Joined
Jun 19, 2017
Messages
2,845
Good morning folks.

@dawlane you can use GLFW with Sokol, that is what I am using currently for the tests. But Sokol comes also with its own app stuff. Thanks for your thoughts.

@wick cool, looking forward to it.

@Pierrou thank you. Yes, sometimes it feels like not many are using CX to create something. But we have 400 to 600 downloads every release.
 

Jimmy

Active member
3rd Party Module Dev
Tutorial Author
Joined
Jan 2, 2020
Messages
578
Thank you for your hard work Mike and the whole team! I'm forever grateful for this tool and looking forward to see the CX userbase grow even more.

I will also to be louder about showing the things I make and increase the quality of the content.
 

Martin

Active member
CX Code Contributor
3rd Party Module Dev
Tutorial Author
Joined
Jun 19, 2017
Messages
320
Yeah thanks for that and all your time you put into this project without getting paid..

Regarding MacOS I will give it a try to update to the latest XCode version and update the templates then. I plan to republish my games there anyway and will see that it works again. My M1 will arrive this week I hope...

I will also publish all my projects here, there are some games released and there are more, even though just tiny ones and mainly mobile games.
 
Top Bottom