• Dear Cerberus X User!

    As we prepare to transition the forum ownership from Mike to Phil (TripleHead GmbH), we need your explicit consent to transfer your user data in accordance with our amended Terms and Rules in order to be compliant with data protection laws.

    Important: If you accept the amended Terms and Rules, you agree to the transfer of your user data to the future forum owner!

    Please read the new Terms and Rules below, check the box to agree, and click "Accept" to continue enjoying your Cerberus X Forum experience. The deadline for consent is April 5, 2024.

    Do not accept the amended Terms and Rules if you do not wish your personal data to be transferred to the future forum owner!

    Accepting ensures:

    - Continued access to your account with a short break for the actual transfer.

    - Retention of your data under the same terms.

    Without consent:

    - You don't have further access to your forum user account.

    - Your account and personal data will be deleted after April 5, 2024.

    - Public posts remain, but usernames indicating real identity will be anonymized. If you disagree with a fictitious name you have the option to contact us so we can find a name that is acceptable to you.

    We hope to keep you in our community and see you on the forum soon!

    All the best

    Your Cerberus X Team

What do you wish for the next step regarding development of CX?

@Pierrou what else do you need regarding clipboard what we already have?
Please explain solution explorer. Never heard about it.
Oh yes you mean GetClipboard and SetClipboard. Indeed they are everything I'm going to need soon sorry forgot/didn't know about them.
Solution Explorer looks like this in JungleIDE :
1589452650522.png
 
Well looks like geany and Codelite will be off the menu. Building these would be way too complicated for use with Cerberus.
 
Well looks like geany and Codelite will be off the menu. Building these would be way too complicated for use with Cerberus.
Cool, but we have different plans anyway. More about that later this year.
 
in order to load things without hanging (e.g. so I can have a smooth loading animation),
What kind of animation are you going for? Something like a progressbar or do you want to keep a let's say 30 fps animation running while loading?
If yield is something like it is in Python I guess this is based on first class functions i.e. functions as variables.
 
The transs compiler could have some way of returning type information, for example, the mx2cc compiler, from monkey2, has a "geninfo" flag that you pass to analyze a file and it returns a file with type information, after parsing . It returns a file, in json format.
I believe that the compiler has some way of passing this information on, it probably makes it easier to create plugins for other editors, for example, VS Code, Atom.
For example, given the file in monkey2, it generates this.

Code:
using std..

Function Main:Void()
    Print ("This is a test")
End

Code:
{
    "endpos":"6:3",
    "flags":0,
    "ident":"fbteste2_fbteste2",
    "kind":"file",
    "members":[{
        "endpos":"6:3",
        "flags":1,
        "ident":"Main",
        "kind":"function",
        "srcpos":"4:0",
        "stmts":[],
        "type":{
            "endpos":"4:20",
            "kind":"functype",
            "params":[],
            "retType":{
                "endpos":"4:18",
                "ident":"void",
                "kind":"ident",
                "srcpos":"4:14"
            },
            "srcpos":"4:14"
        }
    }],
    "namespace":"default",
    "srcpos":"1:0",
    "usings":["std.."]
}
I've been analyzing the code on ted2go, and basically, it uses this information to generate code completion.
 
This might be a bit of a tall order, but a "yield" function would help make my loading sections a lot cleaner.

Right now in order to load things without hanging (e.g. so I can have a smooth loading animation), the only way I've figured out how to do it is with something like:
Code:
Function UpdateLoading:Void()
  Select loadingStage
    Case 0
      'load first few assets
    Case 1
      'load next few assets
    Case 2
       ....
  End
  loadingStage += 1
End

It would be great to just do something like:
Code:
Function UpdateLoading:Void()
  'load first few assets
  Yield
  'load next few assets
  Yield
  For local i% = 0 to X
    'load asset i
    Yield
  Next
End

It would particularly help for procedural generation where there's no clean way to return control to the system and then pick up where it left off.
This concept of yield is similar the keyword 'yield' on C#:
 
keep a let's say 30 fps animation running while loading?

Exactly:
240_loading_screen.gif


The hangups are on steps that I can't break up with the case statement.

Obviously, not a super-high priority — almost more for my own organization of code then how it presents to the user. Just been something that's been on the back of my mind as a wishlist item for a while. :)
 
I've been analyzing the code on ted2go, and basically, it uses this information to generate code completion.
I am surprised that they didn't use the tool to create the documentation for this kind of info. Well without a documentation, they would not be able to do so. But then again, M2 uses an approach to build all the modules first. Something that CX doesn't.
 
The hangups are on steps that I can't break up with the case statement.

The OnLoading method comes to my mind here, but it is only available in mojo1. You do asynchronous loading, do you?
 
Thanks to all for your input, it is most helpful and Philipp and I have now some work to do. :)
 
Hello, for me, I'd like to have possibility to develop GUI app with CX (iOS, Android, Java...). Also the 3D module (but for now, for us not professionnal developper, even 50$ annual fee is to high :( ).
 
Did you ment the native guis or any gui?
Java? A Java target like the standard C++ target?
Yes, I mean native gui. It'll be good to have a possibility to built apps with CX not only games. And for the Java target, as Java is cross plateform, instead of dealing with native gui (For Windows, linux, etc), why not use JFX for eg. So to be compiled with (Open)JDK.
 
Most Java apps I've seen don't bother with the system APIs either, because the work to do it properly cross platform is prohibitively expensive in terms of development; honestly this is why a lot of folks are just going for something like Node + Electron because the hard work of platform agnostic GUI work has been broken right down for you.
 
IMO Cerberus need to re-enable the XNA target with Monogame. You get all the platforms for free. (iOS, Android, MacOS, Linux, all Windows platforms, PS4, PSVita, Xbox One, and Switch ) and the targets are updated my Microsoft. Also, the XNA target is the second fastest build target and often the fastest runtime. I posted once before about getting it working on android here:
 
May never happen. Not all targets support pointers.

That is a good reason to avoid them, however there are situations that pointers are used simply to reference a variable in a different way. Take the situation where you need to access the 4 bytes in an INT. With pointers you could create a variable that points to the individual byte, but without that functionality, you have to use this:
Cerberus:
local col:int = $2d4d5f
Local red:Int = (col & $FF0000) Shr 16

Treating integers as an arrays of bytes would help, for example:
Code:
local col:int = $2d4d5f
local red:int = col[2]

The thing I miss most about pointers are Callbacks (or function variables). It was one of the first stumbling blocks I encountered when I started using Cerberus as I had got to rely upon them in BlitzMax, Javascript/Node and several other languages!

In Blitzmax they were created without using pointers in a similar way to other languages:
Code:
Function my_callback:String( name:String )
    Return name + " was called!"
End Function 

Local callback:String( name:String ) = my_callback
Print callback( "HELLO" )
 
Yip, one day I will try to tackle pointers. But first a new render backend. And Android Bundles.
 
Although VSCode is interesting to use with an almost ide, I find the solution of the NetBeans platform or eclipse more interesting, solutions that have existed for a long time. You can create a plugin that supports Cerberus to be used in NetBeans or Eclipse, or you can create an ide using the NetBeans platform or the Eclipse platform.
 
You can create a plugin that supports Cerberus to be used in NetBeans or Eclipse, or you can create an ide using the NetBeans platform or the Eclipse platform.
We need an IDE that we can ship with CX and has the functionality without installing this and that.
Or we go completely the source code only way and only provide install instructions. I could see that the later one is not favorable for many users.
 
Back
Top Bottom