Developer: The Cyberix3D Team
Cyberix3D is one of several hidden gems in the game maker genre. As the domain name states, users can create 3D games using a Scratch-like programming language combined with a 3D visual editor. Created games can be published on the Cyberix3D website, exported as an APK, or compiled into a Windows EXE (with media folders). Unlike most free game creators, a Cyberix3D watermark or logo is not mandatory inclusion in your published games.
The Tools and Process
For better or for worse, everything you need to code and create a 3D game is packed into one screen.
The Cyberix3D Editor is divided into three sections – Code Blocks, Properties, and a 3D World Editor. There is also a tab to switch to “Source” mode, and we’ll get to that later.
- Code Blocks – Like Scratch, Cyberix3D uses a block-based visual programming language. The first column is the categories of blocks (Actions, Conditions, Variables, Models, etc). The second column is the collection of options within that category. Blocks are added by dragging and dropping them into the desired location in your code, located above the Block Properties. More on that, below.
- Properties – This panel changes to represent the available properties and their current settings for the selected Code Block. Values can be set using the scroll bars or entered manually. Properties that require media assets have a “…” button that opens a window to select media assets from your gallery.
- 3D World Editor – Object placement and movement can be quickly and easily done in this panel. The majority of your world/level building will take place here.
All of this is translated in the background to XML-style source code which can also be edited through the “Source” tab mentioned earlier. Here is the source for the selected wall in the image above:
<Cube collision=”1″ static=”1″ castShadowsEnable=”1″ width=”8″ height=”128″ depth=”128″ x=”128″ y=”64″ z=”-512″ texture=”Material10″ scaleU=”3″ scaleV=”2″/>
The Source tab is completely devoid of editing features but does come in very handy when you want to search and replace textures or values across a large group of objects. One caveat is that it is easy to make a type or make a mistake in nesting. Cyberix3D is sans debugger, so you are left to your own devices to sort out any typos or editing errors.
Cyberix3D comes with a set of starting templates for several genres of games, including ball physics, open-world, first-person shooter, and vehicle-based. I learned a good bit from the provided templates, and I strongly recommend poking around them to learn the ropes. Of course, there’s always the option to start with a blank slate.
Back to the code…
The combination of a relatively limited language, color coding, and visual code nesting really reduces the learning curve in Cyberix3D.
Like ClickTeam Fusion and Raycasting GameMaker, your code will be separated into levels or scenes. Each level will have its own ‘setup’ code to set variables, backgrounds, controllers, and such. The rest ends up in a massive game loop for that level. In the image to the right, the outside loop is checking if the variable “live” is greater than zero. In this case “live” is hit points, so if the player has at least one hit point, they’re alive so let’s check for combat and walking.
While Cyberix3D benefits from a fast learning curve, that’s also due to the absence of depth to the commands available. Variables, Arrays, and Strings are present, but they are limited in function. You can import/play sounds, but there is limited control. For example, you can’t stop a song from playing – you have to change the volume to zero. If you want that song again, you raise the volume and hope it’s somewhere in the song that works for the scene. There are lots of features here, but many are simplified or limited in scope.
Even a newcomer to coding will catch on quickly and starting building out their game in no time. They’ll also learn that this tiny half-panel designated for their code was one of the most bizarre decisions made by the Cyberix3D team. Even with the ability to group and collapse code, one finds themselves regularly scrolling up and down the oddly limited space in this shared column. So while it’s very convenient to have everything you need in a single window, if I was to suggest any changes to the environment, it would be to allow some kind of pop-out, font scaling, or separate window for the block code section.
Adding Custom Assets
Asset adding is easy – the user uploads their music, art, and sound to their personal online asset collection. Since the code and the assets are online, this presented a certain unexpected cool feature for us. We were able to collaborate on making a game by sharing a login. Anything one of us coded, created, or uploaded was online for the other person to access when they logged in to work on the game. It is certainly no GitHub, but it was the first game maker we worked with where we didn’t have to use our media server or a shared directory.
3D Graphics: More support than meets the eye
Behind Cyberix3D’s innocent-looking, big-bold-font, seemingly basic appearance is a 3D engine with a pleasantly surprising amount of features.
I had expected the ability to change the texture of an object and maybe support for shadows. Cyberix3D goes well beyond that, letting the user create materials with all the expected knobs and levers to control their appearance, including support for normal, diffuse, and splat layers. Having this level of control completely changes what the user *can* do with the quality of the visuals in their game.
Adding static meshes (.obj and .awd are the supported formats) is very easy. Add the object block, add the materials, set your variables. Done. Even adding terrain is very simple. Add a terrain block, add your maps, add your textures. Set width, height, and depth. Done.
Adding animated models threw me for a loop. Cyberix3D uses the MD5 mesh/anim system. Maybe it’s popular in 3D circles, but personally the last time I heard or saw mention of it was about 15 years ago, so I was totally unfamiliar with it and did not know where to even begin. After a while of trying to figure out how to convert FBX or anything else to MD5 I just gave up. To be fair, I attribute a portion of the problem here to my lack of expertise in 3D modeling/animation, but it seems odd to support only one format here without conversion support, especially when using a proprietary file type.
Support and Activity
The developer provides video tutorials, a forum, and an official wiki for users to get help with the editor and their projects. There is mention of a Discord channel but the link seemed to be expired. The forums are very quiet and the latest wiki updates are mine from several months ago. It also looks like development is ongoing, as there were recent updates to the editor – one to address the sunsetting of Flash and the other to add a new loader for EXE and APK exports.
The weird thing is that I couldn’t find the dev’s name or company name anywhere on the site, the wiki, or the forums. I used the Contact Us form to reach out and heard back within the week:
“We are not registered as a company or developer. We are just a few people who built this site as a hobby.”
Not bad for a side project! 🙂 They had also mentioned that several schools were using Cyberix3D in their courses but had not mentioned any by name. However, they did provide some interesting numbers…
The Cyberix3D site has over 65,000 registered users and there are over 7,000 published games on the site. One should take those numbers with a grain of salt, but hidden among those games are some diamonds in the rough.
Some of my favorites:
- The Pest: Chapter One – A first-person adventure horror game.
- A Long Night – a Five Nights at Freddy’s style game.
- ASCII Invaders – exactly what you expect it to be. 🙂
I began with an FPS but I found I was spending waaaay too much time making the map. Not because the system was difficult, but because it was easy to use and I was having a ton of fun doing it. 🙂 I also found, as mentioned above, that the code was getting unwieldy and tedious to search/scroll through. But then there was this alien (to me) animation system to deal with yet, so I scrapped that idea and tried to come up with something different.
Brainstorming out loud around an 8-year old can do wonders, as he chimed in with an idea. “Can you make Hamsterball?” Hamsterball is a game where you control a hamster in an exercise ball, and roll him from start to finish through a maze. Cyberix3D actually does have a couple of templates to base something like that off of, so I told him, “I’m sure you and your brother can.” And with that, my kids sat down to make him their own personal Hamsterball.
…and that night Ballroller HellTower was created.
Since my eldest loathes typing almost as much as he dislikes writing, the little one took the helm at coding. Other than the lines of text to display onscreen and entering some variables, coding was mostly drag-and-drop. Cyberix3D’s copy feature allows you to copy nested sections of code, so he was very quickly able to build an entire list of “If time is x then do y” routines.
The tools they used to create their media were Paint3D for the textures, GoldWave for the sound editing, Microsoft Music Producer for the background music, and NormalMap-Online to create normals. As mentioned above, adding assets is an easy, intuitive process, and the kids needed no help in getting their media into the game.
The graphics in this game are very primitive, but that should not be a reflection on the engine. If anything it should be a feather in the Cyberix3D Team’s cap that two kids with very little 3D knowledge could create the functional sprawling mess that they created and have it look as good as play as smoothly as it does.
Will people recognize a game is from this maker/creator?
Not sure anyone would recognize this one other than the handful of people that seem to be currently using it. However, it is a safe bet most games created with it would get panned for dated graphics and missing basic features.
In my ratings, I gave it a 70 out of 100 for Originative, which is how capable it is of generating something original or creative. “The Pest” seemed like a great window into what can be made with Cyberix3D. Yet that level of creative or unique work seems to be very lacking. It’s hard to tell whether the barrier is in the audience it attracts or the hurdles of building anything complex or extensive.
Cyberix3D is fascinating and deserving of much more attention than it gets. Its block-style programming makes it an excellent teaching tool for budding coders and young game developers. Its multi-platform support makes it extremely accessible and very easy for game developers to publish and share their games. It was good to read that the developers already have Cyberix3D in some classrooms, and I look forward to seeing what the future has in store for it. Check it out at gamemaker3d.com.
- Easy to use visual coding
- Good 3D Editor
- Web, APK, and EXE output
- Asset/code online - team projects possible
- Sporadic but active development
- Very limited string/variable handling
- Codeblocks panel is cramped/limited
- Very small user community
- It's a hobby, not a focus, for the developers