• 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

starting cerberus and some questions

nobiagames

New member
Joined
Sep 6, 2017
Messages
9
hello everybody! :)

i wanna start programming again and after discovering monkey last year and fiddling around with it, i now found my way here. i'm really glad you guys adopted monkey and put some fresh energy and ideas in the project. the website looks great and i love the name cerberus.

anyway, i want to start programming again and cerberus seems like the way to go. some years ago i got some experience with different "gaming-basic-languages". i started with darkbasic, then mainly used blitz3d and later tried some glbasic. but that was all some time ago and now i almost feel like a beginner again ;)

i have a lot of ideas for games, although some of them may be overambitious to start with. but beside games i would also love to create some music production apps for mobile targets. i don't expect to create a completely new synthesizer or anything fancy, but i will try out what is possible. so what is possible in cerberus regarding sound and audio features? as far as i know you should be able to play, pause and stop a number of sounds, set the stereo position for each sound and the volume. can you also set the speed/pitch of a sound? would it be possible to play a simple waveform without the need of an external audiofile? would filter effects be possible? are there modules you can easily implement to do stuff like that and if so, would that work on all platforms (iOS, Android)?

thanks in advance :)
 
Welcome! :) Glad you found your way here. Good thing is that Monkey aka Cerberus was somehow in a good shape and could be considered "complete" even though there are still things missing which would be nice to have.

It's absolutely doable to create non game apps. And yes, those will run across all targets (actually Windows Phone 8 is broken atm but that's dead anyway).

You just should keep in mind that Android itself has a huge problem when it comes to latency using sounds. This is a well known Android issue which could make problems for your synthesizer, but that's nothing we can do about.
 
hello, thanks for the answers! :)

the problem with the sound latency on android is a huge bummer and i actually forgot about it. i once bought an android tablet, sent it back after one day and got me an ipad instead, because i specifically wanted to use some synthesizer apps and did not know about the weak sound performance of android.
well... i have to try i guess. but the music app is something for the future anyway. i decided to start with a simple game to get into programming again.
and now that i am making the transition from monkey to cerberus i came across some problems... (not sure if i should have started a new thread for this. hope it's ok here)
1. whenever i start cerberus or compile, i get an error message saying "transcc_winnt.exe - no disc in the drive. please insert a disc in drive D:" (roughly translated from german). when i click cancel several times, the error goes away and cerberus opens and seems to work normally. i already reinstalled and the error persists. it is really annoying and i would be glad for any advice to get rid of the error message.
2. the only target available in cerberus is html5. and sometimes there is no target available at all, so that i have to restart cerberus.

in the latest version of monkey everything works fine. i'd love to use cerberus though.


Edit:
ok, i found the connection between both these problems. the paths in the config file are wrong and all set to "D:". now that i set them to "C:" i got rid of the error message, but i still don't know the right paths to set up the targets. i think i have installed everything for the android target for example, but could it be the names of the files have changed? has the android sdk been renamed into "android studio"? and how do i get the windows target to work?
help would be appreciated, but i'll do some searching now...
 
Last edited:
Welcome to the club.
If you have android studio installed and use it's SDK manager, then you will find the path to where it's installed in the setting of Android Studio. If you don't want Android Studio installed, then on the bottom of Android Studio download page you will find the stand alone tools. The downside now to using these is that you have to use the command line; there's no GUI anymore for them.

Once you have the SDK install and paths set correctly in the Cerberus config, and a recent release of Oracle's JDK; then you should be good to go.
 
oh god, i'm so frustrated right now. i've spent five hours on getting the targets to work, i installed all this stuff, the java sdk, the android studio, this tdm-gcc thing... and i still can't get android or desktop target to work. html5 is still the only target that works for me.

i mean, for android i get a succesful build, but on my device it just says the file format is not supported, when i try to open the cerberusgame.java (that is the right file, right?).

and for the desktop target (glfw3) the build just fails with the message:

../openal/libs/Win64/OpenAL32.lib: error adding symbols: File in wrong format

collect2.exe: error: ld returned 1 exit status

Makefile:53: recipe for target 'Release64/CerberusGame' failed

mingw32-make: *** [Release64/CerberusGame] Error 1

TRANS FAILED: Error executing 'mingw32-make CCOPTS=" -m64 -O3 -DNDEBUG" LDOPTS=" -m64 -L../openal/libs/Win64 -L../curl/lib/Win64" OUT="Release64/CerberusGame"', return code=2
 
../openal/libs/Win64/OpenAL32.lib: error adding symbols: File in wrong format
That is a known error as a result of using MinGW/tdm-gcc above version 4.9. It's a problem with those compiler tools. The work around is simple and requires a few small modifications and installation of some dynamic link libraries.

Android:
Install an Oracle JDK. The default paths could be either Program File\Java\jdk_version_directory or Program Files (x86)\Java\jdk_version_directory depending on the operating system architecture and the JDK binary architecture. Set the JDK_PATH variable in config.winnt.txt to it's location.

If you have downloaded and installed Android Studio, the SDK's will be installed to the default of Users\user_name\AppData\Local\Android\Sdk. Set the ANDROID_PATH variable in config.winnt.txt to that path.
If you installed the NDK via Android Studio, then it will be installed to Users\user_name\AppData\Local\Android\sdk\ndk-bundle. Set the ANDROID_NDK variable in config.winnt.txt to that path.

NOTE: That you should make sure that you have at least Android API Level 24, 19 and 13/14 installed.

Edit: And don't forget to restart TED for the changes to take affect.
 
Last edited:
For android you have to copy the app-release.apk and install it. It's located in
android\app\build\outputs\apk

If you're using an android virtual device, you can simply drag'n'drop it onto the running virtual device. If it's a real device, you copy it somewhere where you'll be able to find it again, browse to that location on your mobile and install it. You have to enable "third party apk sources" or something like that or you won't be able to install your app.
 
hey guys, thanks for all the help!

so the android build works now. my stupid mistake was to copy the whole android folder to my device, without actually building the apk in android studio. i thought cerberus would do all the work for me :D

the desktop target still doesn't work though. i read the thread on how to build for desktop in this forum and i knew about the known error and the workaround, but i still didn't get it to work. first of all, i have two desktop targets glfw3 and glfw3_angle and only in the makefile of the glfw3_angle target did i even find a -L flag. so i assume that is the right target? i never saw the "angle" mentioned here. anyway, even building for that target does not work, although i did manage to get another error message there.

here is what the console says after building for glfw3_angle: (german though)


"C:/Program Files/Cerberus/bin/transcc_winnt" -target=Desktop_Game_(Glfw3+Angle) -config=Release -run "C:/Program Files/Cerberus/projects/Game1/Game1.cxs"

TRANS cerberus compiler V2017-07-31

Parsing...

Semanting...

Translating...

Building...

Microsoft (R)-Buildmodul, Version 4.7.2053.0

[Microsoft .NET Framework, Version 4.0.30319.42000]

Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.



Die Projekte in dieser Projektmappe werden nacheinander erstellt. Um eine parallele Erstellung zu erm�glichen, m�ssen Sie den Schalter "/m" hinzuf�gen.

Der Buildvorgang wurde am 10.09.2017 22:44:16 gestartet.

Projekt "C:\Program Files\Cerberus\projects\Game1\Game1.buildv2017-07-31\glfw3_angle\msvc\CerberusGame.sln" auf Knoten "1" (Standardziele).

ValidateSolutionConfiguration:

Die Projektmappenkonfiguration "Release|Win32" wird erstellt.

Das Projekt "C:\Program Files\Cerberus\projects\Game1\Game1.buildv2017-07-31\glfw3_angle\msvc\CerberusGame.sln" (1) erstellt "C:\Program Files\Cerberus\projects\Game1\Game1.buildv2017-07-31\glfw3_angle\msvc\CerberusGame.vcxproj" (2) auf Knoten "1" (Standardziele).

C:\Program Files\Cerberus\projects\Game1\Game1.buildv2017-07-31\glfw3_angle\msvc\CerberusGame.vcxproj(18,3): error MSB4019: Das importierte Projekt "C:\Microsoft.Cpp.Default.props" wurde nicht gefunden. Vergewissern Sie sich, dass der Pfad in der <Import>-Deklaration korrekt und die Datei auf dem Datentr�ger vorhanden ist.

Die Erstellung des Projekts "C:\Program Files\Cerberus\projects\Game1\Game1.buildv2017-07-31\glfw3_angle\msvc\CerberusGame.vcxproj" ist abgeschlossen (Standardziele) -- FEHLER.

Die Erstellung des Projekts "C:\Program Files\Cerberus\projects\Game1\Game1.buildv2017-07-31\glfw3_angle\msvc\CerberusGame.sln" ist abgeschlossen (Standardziele) -- FEHLER.



Fehler beim Buildvorgang.



"C:\Program Files\Cerberus\projects\Game1\Game1.buildv2017-07-31\glfw3_angle\msvc\CerberusGame.sln" (Standardziel) (1) ->

"C:\Program Files\Cerberus\projects\Game1\Game1.buildv2017-07-31\glfw3_angle\msvc\CerberusGame.vcxproj" (Standardziel) (2) ->

C:\Program Files\Cerberus\projects\Game1\Game1.buildv2017-07-31\glfw3_angle\msvc\CerberusGame.vcxproj(18,3): error MSB4019: Das importierte Projekt "C:\Microsoft.Cpp.Default.props" wurde nicht gefunden. Vergewissern Sie sich, dass der Pfad in der <Import>-Deklaration korrekt und die Datei auf dem Datentr�ger vorhanden ist.



0 Warnung(en)

1 Fehler



Verstrichene Zeit 00:00:00.66

TRANS FAILED: Error executing '"C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" /p:Configuration=Release', return code=1

Done.




so, i think the problem here is that "C:\Microsoft.Cpp.Default.props" could not be found. what is that file and where can i get it?
 
For android there should be no need to copy anything manually to a device. If the device has developer mode enabled in it's settings, the Windows Android USB driver installed, Cerberus will build and install it ready for testing.

Use the GLFW target, the GLFW_Angle (Almost Native Graphics Layer Engine) is a API wrapper for converting OpenGL API calls into DirectX API calls. The idea is because OpenGL driver support can be flaky on Windows, to redirectect GL calls to DirectX. The GLFW_Angle target has not been updated yet as far as I know and the best person to ask on the status of it and Visual studio support would be Martin.

Edit: GLFW_Angle is 32 bit only.

Edit: And if I translated the German correctly (not used it since school over 30 years ago!). You will need Visual Studio's MSBuild path correctly set up for the version of Visual Studio that you end up using. There has been a few changes made over the last few years on where it's stored and VS2017 location is completely different.
 
Last edited:

cool, thanks for that. and thanks to everyone trying to help me here.
it's weird, after a long time i have the motivation to code again and i thought a basic language like cerberus would be easy, but setting up the targets feels to me like you need to be some super-hacker. i have no clue about all that stuff, msbuild, visual studio, MinGW. and after two days of searching and installing weird stuff, i have put 10gb worth of programs on my harddrive and it still doesn't work. i don't get why on monkeyX the desktop target worked out of the box without any setup.
anyway... i may just setup my pc again with a completely new windows installation soon. it is overdue anyway and if i'm lucky it solves these problems aswell.
but first i'll try to finish a really small game with just testing on android. cause at least i have the android target working now in the convenient way of just clicking "build and run" and have it start on my android phone (that was another hassle i had to go through yesterday, cause my phone always had a problem connecting via usb).

so, if anyone has an idea for me to get the desktop target working, i would still be very glad about it. but besides that, i will just start coding my first small cerberus android project now.

thanks everyone! :)
 
i don't get why on monkeyX the desktop target worked out of the box without any setup.

If you refering to the free version, that shipped with MingW, it was basically preinstalled. Installing MingW topday shouldn't be a problem. Visual Studio, I could imagine that. Android studio was a pain for me too, regarding the licensing of the SDKs but I got it working.
Yes, CX and also Monkey was not so easy to get running on some targets.
 
@nobiagames Did you saw this topic?

https://www.cerberus-x.com/community/threads/how-to-build-desktop-target.30/

There is a zip folder of MingW. Unzip that and change the path in your bin/config.winnt.txt file to that location where you place MingW.

Mine looks like that:

upload_2017-9-12_18-51-52.png


If you did that, what error do you get?
 
@nobiagames Did you saw this topic?

https://www.cerberus-x.com/community/threads/how-to-build-desktop-target.30/

There is a zip folder of MingW. Unzip that and change the path in your bin/config.winnt.txt file to that location where you place MingW.

Mine looks like that:

View attachment 114

If you did that, what error do you get?

thanks, i actually got it working now :D

i saw the thread and i did exactly that... well maybe not exactly. i did one thing differently and your post just made me try again. you said i should just unzip and place the MingW folder somewhere. what i did was installing MingW. in the unzipped folder, there is a folder with an installer and i used that. it looks like it pretty much just copies the contents of the folder, so i didn't think there would be a difference. but now that i uninstalled it and just unzip/copied it, it works :D

thanks Mike, now everything seems to be working just fine :)
 
Over the years I have found that setting anything up such as compilers and software development kits on Windows is a pain and even on OSX it's starting to become a big problem. There are times when I've found it easier to use Linux to cross compile to Windows, take for example building wxWidgets from scratch. You have to jump through hoops, where as all you need to do is install the MinGW cross compiler tools and then you can pass a parameter to ./configure.
 
Back
Top Bottom