Cubuesque project

Hi guys !

here is my game called “Cubuesque”, hosted on itch.io : Cubuesque by Mokauno

visuel_02
Simple and fun, this new game concept could make you addicted.
An average game takes 5 or 10 minutes.
Rotate the cube with the arrow keys of your keyboard.
To make a great score, you will need speed, luck and concentration.
You can rapidly earn points with combos.
The game is really easy on first levels, but become insane on next levels.
When the green bar is empty, the game is over.

At the time I publish this game, I can reach level 8. Can you beat me ?

Have fun, please share with your friends, and if the game please you, I will add content in the future.

Any suggestion or remark is welcome.

I made the entire game with Armory 3D & Blender.

Thanks,

Mokauno.

8 Likes

Hi, Armory guys !
I hope some of you like my game.

Please tell me if I should write something about my experience with Armory to create this game.

I could explain at what points Armory helped me, what worked, what didn’t work, some tips, and what could be improved to ease that sort of creation.

Thanks,
Mokauno

Hi, thats a nice game, pretty good idea :slight_smile:

A few things I noticed:

  • Do you use images for the buttons with the text on it? It doesn’t look that sharp compared to the game title
  • An ingame explanation of the buttons would be helpful if somebody doesn’t read the description on itch.io

But it makes a lot of fun to play that, as I said I really like the concept behind it.

That would be great, maybe there are some things we can improve with Armory (even without too much work probably).

Also: what about a page in the Armory wiki dedicated to games made with Armory? Kha has a page like that:Games Built With Kha · Kode/Kha Wiki · GitHub

Thanks,

as the game is finished, I’m really interested in sharing my experience. The laziest way would be to share the project files, but I think it would not be enough.

Armory Engine gave me the tool I dreamed to make a game. I loved the logic nodes, and the way it is integrated in blender. It was really better than the old Blender Game Engine.
Armory is a great tool, but it was also painful to achieve a working game.
Please feel free to ask questions about how I made things, I’ll be happy to answer. By the way, I can publish the project files if you want. Feel free also to ask me if you think this game game could be a part of Armory documentation as an example.

to @timodriaan :

  • images were used to make buttons and game title, image button are just surely not at good resolution, so they may appear blurry. Canvas could have been used, but in my opinion, it’s too limited.
  • explanation ? Do you mean I need to say “use your keyboard arrows” ingame ? Surely. Didn’t do it because I didn’t know if the game was only playable on PC. I still hope I can offer gamepad or touch controls for mobile devices.

Thanks again to the whole community, QuantumCoderQC, M_Ent8h, Naxela, Hikibob and others. I almost time got an answer when I asked.

Mokauno

2 Likes

And that’s exactly what I’m interested in :smiley: What are the challenges you’ve had making this game? Maybe there is something that can be easily improved.

Like that, yes. It could be displayed either on a screen that’s accessible via the menu or before the game starts. You could display an image of the arrow keys with a text saying “Rotate the cube using the arrow keys” or something like that. Not sure though how you would handle that with mobile, if you use Haxe you can check to which target the game is exported to.

It definitely could be. Is it ok for you if I create such a page in the wiki tomorrow with a screenshot from your game and a link to itch io and this forum entry? You can always edit that of course, GitHub wikis can be edited by everyone.

There are some other games that could fit there but I don’t know the authors so if somebody knows who created “Offroad Mania” for example that would be great. Of course it is allowed to just write about that game but I don’t know if I can paste a screenshot of that. There are more games (smxhams game jam entry for example) and there also is a mobile game made with Armory, maybe I find the author of it with a discord search.

I don’t know well GitHub, but yes, I’m OK for a wiki page.

There it is: https://github.com/armory3d/armory/wiki/Games-made-with-Armory

2 Likes

nice :slight_smile:
now I will try to regularly post some tips and return of experience.

2 Likes

The lighting and the animated background.

These are very important elements to give the game a pleasing look.
In this project, I use NO light. The scene is only illuminated by the world environment.

This can be found in the “World Properties” panel,
image

and edited in the node Shader Editor :
image
The Shader Editor can be switched between “Object” or “World”, don’t forget to select “World” to access the nodes.
With this setup, you can choose between :

  • a normal image
    image
  • or a hdri
    image

Hdri backgrounds are 360° pictures, the mapping has to be set to “Equirectangular” to work.
If you want a free background, you can search for cc0 images or hdri online, or make one yourself.
You can also render your own hdri under cycles Blender with an equirectangular camera.

The strength of the light can also be adjusted with the parameter “Strength” in the “Background” node.

All of this will give a smooth light to your project, and give nice reflection to glossy objects.
I sometimes add a sun light, only when I need shadows.

And now, the background… In this case, this is only a big Ico Sphere slowly rotating.
image

The material applied to the object :
image

Note the Fresnel node that add some life to the sphere reflections.

To rotate the sphere, I could have add a trait with a “rotate object” node, but it would be boring.
Instead, I made the sphere a rigid body (turn off gravity in scene) and apply it some random impulses to make it rotate slowly (as for a balloon).

So I made this trait and applied it to the IcoSphere :
image

On init, and every 4 sec, a random torque impulse is applied.

2 Likes

The interface (and the camera trick)

The game has a main screen showing the game itself, but also has a starting screen with a button to start the game, a pause menu (esc) with two buttons (resume & restart) and a game over screen.

Armory has a tool called Canvas Editor to build interfaces with text, buttons and other things. Honestly, I don’t think it’s easy to use. So I preferred to make my own system for the interface (but I used the Canvas system to display the score).

I imported some images that represent the buttons with “import images as planes” and add logic nodes to manage them.
Menus are Emptys with child buttons
image
They are not spawned at start
image
They are spawned on Events when needed.
When a menu is spawned, the property “is_in_menu” is set to true, to inform other elements that the game is paused.
Then the logic of different elements is paused with the “Pause Trait” node.


When the game is in a menu, main game elements are hidden, except the background Ico Sphere.
To do that, I add a trait to elements that has to be hidden, watching the property “is_in_menu”
image
image

To check if a button is clicked, I use the “Pick Object” node.
image

But … and here is the camera trick :
the “Pick Object” node works well only with a perspective camera. Initially, I used an orthographic camera, as I want the game to have no perspective. I wanted it look flat. So to render flat objects, a perspective camera has to be really far from the object and have a big focal length
image image
image image

By the way, I used the canvas tool to display the score and the level. I never hide these information, they are always visible.
image image

When a button is clicked, a global Event is send to the main game logic, the menu object is removed, the logic is resumed. Here is the whole thing (may be a bit hard to understand at first)


The name of the button is used to know what Event has to be send.
In this case, the Event “continue_game” is sent to the main game logic.
image
The node “Split String” is very useful to extract information stored in the name of an object. It’s an alternative of object property. A good trick.

image

Well… I think all is said, please ask if you want more details.

PS : I see that @timodriaan has done a new interface tool that looks cool, here is it : https://koui.gitlab.io/
so, @timodriaan, could you create a topic on the forum, and add an example blend using your library ?

3 Likes

Thanks, those insights are really interesting!

I’m a little bit limited in time currently, but I will try to create a good example file :slight_smile: Please note that there are currently no nodes for Koui (everything is Haxe) and there is no canvas editor like Armory2D, but there is a node package in the making (koui / Koui Logic Nodes · GitLab)

1 Like

Done: Koui | User interface framework for Armory and Kha. There is no example file yet as I’m working on the node package but I will upload it soon :slight_smile: I will also ask the guy who created the design from the screenshot if I’m allowed to upload it so that we have a demo file for the Haxe API of Koui.

2 Likes

The game is now playable on almost recent smartphones, and other WebGL2 compatible devices : Cubuesque
image

5 Likes