Please help with publish Cocos Creator's game

Hi everyone!

I’am going to publish my test-game (just classic minesweeper). Publish to: AppStore, GooglePlay, Steam, Facebook, Vkontakte, Kongragate.

I has try to use Cocos Creator for this.

Test-game is mostly finish with Cocos Creator. You can check current version here: https://anlide.online/minswer/

But as you can see: background texture quality is extremely poor. Cell textures extremely poor. I am unable to find way to fix it via Cocos Creator fow a few week. This is reason why I write this post.

Reason of texture quality is extremely poor is: texture is large and render place is small.
Application is resizeble ( Cocos Creator can build cross-platform game. Right? ) - so we can not precreate all possible sizes of textures before runtime. We should scale textures, or use mipmaps or use RenderTexture + shader. Probably I should use other way?

  • Scaling textures is implemented now - looks poor.
  • Shader (https://github.com/colin3dmax/CocosCreator blur example) works - but eat unacepteble amout of resources. Use shader once + RenderTexture will be perfect solution. But RenderTexture is not implemented at Cocos Creator as cross-platform feature.
  • MipMaps also implemented only for web-platform.

So… it is impossible to fix this visual bug via Cocos Creator now? Does we have some roadmap where RenderTexture or MipMaps will be implemented?


This is test-game. Also I have main game and found 2 additional critical problem at Cocos Creator.

  1. TileMap is uselles when we need to create map dinamically - seems like it is possible after ~200 hours, but it is extremelyhard. SpriteBatchNode in Cocos Creator also not implemented as cross-platform feature - so if I want to use custom “map”: I should generate it at server side - send to client and use it as big-background. Poor workaround. Right way is using “texture.initWithData(…)”, but it is also implemented only for web build.

  2. Add property to component as SpriteFrame seems like very good tool. But it is have critical bug. Visual as very poor texture quality at pixels which alpha values not “1” or “0”.
    cc.Class({
    extends: cc.Component,

     properties: {
         test: cc.SpriteFrame,
     },
     ...
     renderStuffWithAlphaBug() {
         this.layerObjects = new cc.Node();
         var tmp = this.layerObjects.addComponent(cc.Sprite);
         tmp.spriteFrame = this.test;
         this.node.addChild(this.layerObjects);
     }
     renderStuffWithoutAlphaBug() {
         this.layerObjects = new cc.Node();
         var tmp = this.layerObjects.addComponent(cc.Sprite);
         tmp.spriteFrame = new cc.SpriteFrame(this.test.getTexture());
         this.node.addChild(this.layerObjects);
     }
    

    })

Bug with rendering alpha-pixels. And strange workaround.

So… when Cocos Creator team planning to implement SpriteBatchNode as cross platform feature? And what is this whit alpha pixels?


I’am thinking about stop using Cocos Creator and try to use Cocos2d-x C++ for non-web builds. And Cocos2d-html JavaScript for web build.
But… it is really bad way use 2 large source code for 2 game clients (it is about main game)… And I like Cocos Creator.
Please help me find way to publish my test game via Cocos Creator.

Let me ask our engineering team to read this thread.

1 Like

Poor workaround was founded.

There are 16 tiles in game. So each tile have pre-rendered 15 sizes 10x10, 20x20,… 150x150.

Now it looks good.
Why workaround is poor? Because it eat a lot of memory.

Do your tiled maps have different tile’s size?

Visual size - no different. Pixel size - sure, I have 15 types of sizes.

Also not a useful - 240 properties of Cocos Creator component.
Because Cocos Creator have no dynamic access to assets (by string for example).