Posts by ddabrahim

    I have not even considered build time. But yeah that is a good point.

    I think for those who for some reason dislike the web stack and JS but would like to target HTML5, there is not many reliable options. Most of them are slow or complicated to setup or having compatibility problems.

    AGK was a convenient option but with that out of the way, I can’t think of any better option than CX.

    Propably Cocos2D is the best alternative to CX for targeting HTML5 for those who dislike the web stack and JS. But not as simple to setup as CX.

    Raylib also seems to have good HTML5 demos but again complicated to setup.

    To compile Cerberus-X to specific syntaxes to run on specific hardware sounds like an exciting challenge. Personally I don't know enough to do that the "proper way" yet.

    Maybe I am looking at it with untrained eyes from a wrong perspective but with ZX Basic doing the hard work, I imagine CX only need to translate CX code to BASIC possibly ignoring mojo specific commands. I am playing with the idea for a long time to write some sort of translator and tools for this but I always get distracted and of course I also lack knowledge, it would involve lot of experiments and unoptimal solutions on my part.

    I feel that I want to mention that as I have a love for retro machines I actually have been working on a minimal "engine" for retro graphics inside Cerberus-X. I would never call it an engine bc it's too simple. What it does is it allows me to use retro resolutions on Android iOS macOS Windows Linux and Web (maybe Pi later on). Without a shader or overlay this is of course just a simple mechanism that everyone uses in their games nowadays. But i wanted to start there.

    I can simply select a centred pixelperfect scale, perfectscreenscale, cover 100% screen, or 1:1 native pixels. I plan to use shader on this to simulate my favorite machines. On top of this I took the C64, the Amiga, the Spectrum, the MSX and a few more that I love, up to Neogeo and I analyzed what kind of graphics they use, how it is limited and how they are similiar and unique and I made myself a fake retro machine out of this in a way. I simply had the insight.. it does not have to be very special or complex at all.

    Sounds like you did put in lot of effort in to this project. The only thing I have done to sort of emulate the look is I draw everything on to small 320x200 canvas and scale it up to whatever the actual screen size is.

    I always felt like CX need more 3rd party projects like this. Libs, engines, frameworks that offer basic building blocks ready to use. I did also worked on an “engine” kind of thing but as always I lose motivation half way in and Mikes Fantom engine was already better than what I have done.

    But what you have done sounds pretty interesting. Maybe worth sharing on itch with documentation if you feel motivated to do so. Could also drive more attention toward CX.

    I'm getting really obsessed with the ZX Spectrum and being able to use my machine only 20 minutes at the time is not enough, I decided to take a look at ZX Basic.

    It is basically just a compiler to compile Sinclair BASIC code/text in to either a binary or tape images. I am certain the language has many benefits and the fact we can write our code in VS Code is very convenient and familiar. But in order to run what we did we do need an emulator. Since we need an emulator anyway, personally I find it much more convenient to just use the emulator to code for the ZX Spectrum the classic way using all the annoying keyboard shortcuts and combinations. I think it is just a nice classic experience and the emulator basically offer an all-in-one development environment where we can write and run the program and we can also save/export it in to tape image files to share it with others. Not only that but using a good old cassette recorder connected to a headphone jack, we can also record the tape from the emulator on to the cassette and play it on real hardware.

    I have just ordered my 3rd ZX Spectrum because I continue to prefer to use real hardware over the emulator. Asked the seller specifically if the machine continue to operate after longer period of time. Answer was Yes. Let's hope it is going to last at least a few months. In the mean time I am also inspired to learn a bit about electronics and see if maybe I could fix the faulty one. I am certain it does not have a serious problem. Maybe need to swap only a capacitor or a chip, I also learned that overheating was common with these machines and people often install a heat sink to help with that. Maybe this is all I need to do.

    So how could Cerberus-x come in to this picture?

    Since ZX Basic allow us to simply compile BASIC code in to tape images, I can't see why CX could not generate Sinclair BASIC code and then use ZX Basic to split out a tape image. Of course limitations of the ZX Spectrum need to be taken in to account and maybe offer some ZX Basic specific commands, for example the platform is limited to only 8 colors so CX could potentially offer some constants like ZXBlack, ZXYellow, ZXWhite....etc

    So Why would someone use CX instead of the emulator or just ZX Basic?

    Obviously there are not many people who interested in targeting a vintage platform and to use a classic programming language, on the top of that coding on the ZX Spectrum is a weird experience because you don't type the commands letter by letter, but you need to use key combinations which can quickly scare people away. Forexample key P is PRINT, key F is FOR and Key Shift + F is TO..etc

    So CX could offer the convenience to use a more modern programming language and environment instead of a classic and more limited one. On the top of that we could also preview the project using mojo, but when we export it for the ZX Spectrum platform it would split out ZX Basic code which could potentially look a bit different in emulators and on original hardware. Limitations of the target platform certainly need to be kept in mind and considerd when someone use CX to develop for it.

    Why the ZX Spectrum and not C64, Amiga?

    Frankly it seems to me the ZX Spectrum is a bit overlooked, the community seems very small, there is not a huge demand for ZX Spectrum games and hardware so I don't really have a good answer for this one. Maybe the only reason I can say is that ZX Basic is written in Python and super simple to use to compile tape images.

    Personally I really enjoy the limitations of the ZX platform, some games not even have audio only a beep sound for the weapon and that's it. As I mentioned the platform support only 8 colors which is create a unique ZX Spectrum look and feel that sit somewhere between an Atari 2600 and a NES. Some games are extremely minimalistic, only few pixels, only single colors while other games maybe a bit more colorful. ZX Spectrum offer a wide range of experiences because as far as I can tell ZX Spectrum machines are backward compatible so you can play ZX80 games on ZX Spectrum 16, you can play ZXS16 games on ZXS48, you can play ZXS48 games on ZXS Plus 128 and Plus 2. Not sure if Plus 3 is backward compatible though, it uses a completely different cartridge. But up to ZX Spectrum Plus 2, you have an extremely huge collection of games to choose from going back to the ZX80 which supported only 2 colors black and white. So the range of games you can find for the ZX Spectrum platform is pretty big depends on which ZX computer was the main target platform.

    The primary reason I picked the replica over the original hardware was the fact the old hardware tend to break often which I can’t fix.

    Unfortunately the ZX Spectrum prove this. First I got a 48k but after couple days stopped working. The seller fortunately offered me a refund. Then I went and bought a Plus model but it is overheat after 20 minutes after which I need to wait 5-10 minutes to use it an other 20 minutes again. This seller this time was ignorant claimed he only stated it is power on which is true. It does power on.

    But regardless it is pretty fun. I am seriously inspired to make retro games either for the original hardware in Sinclair Basic or for modern hardware using other tools. I love the simplicity of the 8 bit graphics and the games. So much less clutter and detail to think about. Of course people want shiny HD candy today do I don’t expect making any commercial success, I do it only because I enjoy it.

    Some retro shaders in CX would certainly be really awesome.

    Last year I have purchased a C64 replica with very high hopes of developing games for the C64, but I did find programming for it a bit beyond my head, it was nothing like what I was hoping. The only thing I managed to do is draw and move a sprite across the screen but then I was discouraged from going any further.

    With ZX Spectrum it is the opposite, after just a week I managed to put together a tic-tac-toe game and a simple shooter thing, can’t really call it a game and it is not fast graphics, animation is a bit choppy but it is the buty of the Spectrum games and I am super inspired to go further and develop for the ZX Spectrum.

    What is interesting there are even tools, game makers available for Windows, Mac, Linux to develop for the ZX Spectrum. One such project is ZX Basic. But there are others too.

    Just for fun I got a 1984 ZX Spectrum Plus and as I was searching for books and tools, I was surprised to see people did publish books only few years ago to teach Sinclair BASIC and there are some modern tools for Windows, Mac and Linux to develop for the ZX Spectrum.

    I don’t have a lot of history with BASIC but indeed Sinclair BASIC seems very friendly. With the ability to draw shapes and graphics on the screen with just a simple line, as a kid I would have spent hours coding nothing but graphics.

    Even today it is pretty fun to be honest. Unfortunately the machine I have is overheating, so I guess I’m going to be forced to fall back to an emulator very soon.

    I can see it is an old topic but yeah from what I see BASIC is mostly pushed by people grown up with it. As those people are in their 50s and older now I think we are going to see less and less tools in the future using or offering the BASIC syntax and those good old BASIC tools currently exists slowly and some are quickly dying.

    I think BASIC is perfect for beginners, very simple, convenient. But less and less educators considering BASIC and those who do, they normally pick Visual BASIC just as a quick introduction to Visual Studio and programming but with full intention to switch to C# toward the end. I was exploring paid bootcamps last year and every single one of them was either Python or JavaScript. It is the 2 most popular options right now. Those people growing up with Python and JavaScript today very unlikely going to go toward BASIC.

    So many people followed Unity for the candy

    Yes especially people with 0 experience tend to go after the candy and engines their favourite games made with.

    I remember in the beginning I was looking at engines only because of their tech demo or a community project.

    XNA = car racing template
    Unity = sci-fi FPS template
    Leadwerks = the terrain and shadows in general love the way it looks to this day
    Torque3D = because of the destructible environment and vehicles
    FPS Creator = the sci-fi assets
    DarkBASIC = a YouTube video of a project someone was working on
    Blitz3D = again a YouTube video of a project and lots of nice looking projects I have discovered after

    UDK = obviously was an instant try because of the Unreal assets and games. I loved it but then its system requirements kept growing to the point my system could not run it and unfortunately it has not changed. I can't keep up with Unreal. The first couple of few months of UDK was great but then it is begin to slow down for me and only getting worse since.

    Unreal 4 = running my GPU so hot I am genuinely worried it is going to kill my GPU.

    Unreal 5 = tried it once but after waiting 40 minutes just for a project to load in the IDE I never looked at it again. I don't have the rig to run it. Wish I had. I was considering a few times to get a beast only to try Unreal 5 and for gaming in general but I can't justify the cost. I don't game that often and it is very unlikely I am going to make anything with Unreal 5. It would be just a toy for me to kill some time with.

    I was a complete beginner at the time so my experience doesn't worth anything but I was getting lots of runtime errors and crashes with DarkBASIC, it was also super slow. Anything more advanced was running only at 2 FPS on my PC while Blitz3D was fine.
    My local game dev community did also use Blitz3D for the same reason and the projects they showcased were very inspiring and they have also shared lots of learning materials and libraries for Blitz3D. I could not find much learning material for DarkBASIC at the time.

    I did find lots of eye candy for Blitz3D which did inspire me to choose it over DarkBASIC. One of the best looking tech demo I remember was a house in a grass land with a river a tree and grass blown by the wind. It was very atmospheric. And there was one indie FPS game called Techno or Tecno can't remember, made in Blitz3D and was looking really good.

    So the reason I choose Blitz3D was more of astetic and not so much technical reasons. I was a complete beginner I had no idea what to look for, I was follow the candy which Blitz3d had plenty.

    I think also worth considering the market has changed a lot in a very short amount of time.

    When I was searching "easy game programming" and discovered the Blitz language family, Windows PC was the only platform worth considering for an individual and there was not many other options out there and most of them was paid. It was an era when purchasing the software you are using was the normal thing to do.

    And then what it feels like a blink of an eye to me because I didn't keep up with tech, we had Ubuntu, iOS, Android, HTML5 entered the scene in a very short amount of time with macOS sitting in the back watching the mess everyone is trying to deal with.

    Around this time most Windows only tools but also cross platform tools decided to offer a free personal license which allowed people to use the tools at home as much as they want for free with the limitation it is not possible to build a stand alone executable or the executable had a time limit.

    Suddenly Blitz had to compete with free alternatives such as


    I remember I was looking at the Blitz website and it was still paid while we had all these free options to play with not to mention the big boys Unity, UDK and GameMaker Studio.

    Anyway, I do appreciate he has released the source and I understand it was very difficult times. I think he deserve a second chance. Since he plan to add Python language binding to his new lib I'm going to definitely check it out, Python did grow on me a lot and I am also looking for an easy C++ lib that does not bashing my head in to the walls with linker errors.

    If Blitz3D2 was cross platform, that would be interesting too. But I think he did mentioned somewhere on his new forum he has no intention to make a new cross platform IDE and compiler he just want to replace the 3D engine as proof of concept as an experiment to promote the new lib. Not sure if I'm going to be interested in that, but I wish good luck to him.

    Wondering what is motivating him to do an other C++ lib and why Blitz3D 2 instead of Monkey 3.

    I have some good memories with Blitz3D I am honestly battled how but I was able to build an FPS by copy/paste code I did not understand. But then I ended up using FPS Creator by TGC. I did always find Blitz3D exciting though but at the time programming was beyond me.

    I would be also happy to pay $100 a year for nothing but support and bug fixes.

    Just would like to add to the discussion, while $100 maybe ok for me and others, on the TGC forums when the devs announced they are considering an annual fee, many people expressed their concerns they can’t afford $100 because they are student, living in a poor country etc and the most they can afford is $20 or not even that.

    It is created such a heated discussion many people was banned and TGC scared to go ahead with the plan.

    My recommendation was a Tier system Free/$20/$100 I have already talked about here.

    Something to consider.

    And with this I think I take a break.
    Wish you good luck guys with whatever decision and business plan you choose to go ahead with if any 👍

    Other systems I have considered are:

    Unity = too big and overly complicated for simple 2D games?
    Godot = feels very prescriptive about how to do things?
    AGK Studio = concerns about longevity?
    GameMaker = new licensing does make it attractive, but its language looks odd?
    Love2D = my other current top pick!

    One thing that is important is never having to compile the tools myself. I have zero interest in setting up Visual Studio or any C/C++ compiler on my laptop.

    In that case AGK Studio is the most convenient option. However their BASIC style programming language is very high level which can prevent you from growing as a programmer and their next level C++ is steep for some people.

    But even if that was not a problem for you, the biggest concern is their lack of transparency and roadmap. Currently the rumor spreading on their forums the devs do actually plan to drop AGK. Nothing confirmed as always. But TGC currently hiring a React developer to work on their driving app that was made in AGK. Not sure how React and AGK is connected. I would imagine they plan to port the app from AGK to React.

    Love2D is an other very beginner friendly option, there is not much I can say against it. It does not have an IDE but also doesn’t need one. You can code in anything you want and to package your game for desktop is convenient. However, to target web and mobile you need to setup Visual Studio.

    With Cerberus I find it very convenient an IDE is included and we can build to web and desktop easily.

    Just would like to add that much, even if you answer the questions with no but you have never done any game programming before, Cerberus-x can be a very beginner friendly introduction to the topic and going to teach you fundamental concepts you can transfer to any other engine or framework.

    One of the most valuable lessons you can learn with Cerberus-x is low level thinking and how to work with the system to achieve what you want and not against it. It is something you can apply everywhere not only in Cerberus-x. Especially in engines that require high level abstract thinking, to be able to think at a lower level is extremely useful skill to find a way around any problems, limitations, bugs you may go up against.

    This community is also super friendly, you won't find any better place to ask for help with programming.

    I would recommend to put aside your ambitions for a bit and have some fun with Cerberus-x before you choose to use something else. You are not going to regret it.

    Amazing the clever techniques people did come up with. I think in this regard Unreal 5 got to the point it is impossible to beat. We slowly get to the point where I think Unreal going to have a final version and no more work needed. From one side Unreal become Real, look and feel exactly as reality. Nothing left to improve. On the other side devices get so powerful they can run anything, no more optimisation needed.

    Just had a quick read of the terms we need to agree to when register on the forum and this is what it says:


    You are granting us with a non-exclusive, permanent, irrevocable, unlimited license to use, publish, or re-publish your Content in connection with the Service. You retain copyright over the Content.

    These terms may be changed at any time without notice.

    So as far as I understand, eve if user accounts can not be transferred, all the posts, topics can be transferred. If not, the last sentence should grant permission to change the terms however you see fit to transfer all the content. We all agreed to this.