I traced my old working cocos2d 2.x project and indeed calling drawscene at the appropriate time does redraw the scene (whenever I want it to!). cocos2d 3.x removes the drawscene declaration in ccdirector.h so you cannot call it. I put it back and the expected behavior returns; I can control when my scene repaints.
I enabled CCSetupShowDebugStats = YES and I did notice that the FPS freezes when my Artificial Intelligence (AI) runs. My AI is simply a loop that figures out what each artificial poker player bids.
The source code does state that drawscene runs once every FPS, but if FPS isn't being updated then the scene is not being redrawn unless I do what I stated above.
So let's call the referees here!!!!!
Is this a nerf of a function or a design issue? At the lowest level I have a scene remove a node, then add a node and I need it to repaint immediately. This functionality is a show stopper so it needs to work. Should my code be in an update loop? Should my AI code be running in a background thread talking to the main (UI?) thread? Is it something that simple?