CocosSharp v1.7.0.0-pre1 release notes

RamiTabbaraRamiTabbara AUMember, Xamarin Team Xamurai

All new embeddable game view and Xamarin.Forms support


You asked for it and we have delivered! In this prerelease, we have substantially changed the way a user initialises their game with the new CCGameView class that allows users to embed their game view within a native application.

Additionally, Xamarin.Forms users are also covered with the new custom Forms view, CocosSharpView.

To get started, we strongly recommend reading more about these design changes here.

Installing the prerelease packages


From v1.7.0.0-pre1 onwards, two packages will be made available to users — CocosSharp and CocosSharp.Forms, with the latter package required for Xamarin.Forms users.

Please keep in mind that as this is currently a prerelease, your NuGet package manager may not be immediately able to locate these packages. In particular, in Xamarin Studio, make sure to tick the Show pre-release packages option when adding packages, while in Visual Studio's package manager, ensure that you change the dropdown box from Stable only to Include Prerelease.

Project templates


We have also updated our suite of Xamarin Studio and Visual Studio project templates to reflect the changes in initialisation. Remember, to install these templates for Xamarin Studio and Visual Studio refer to the guides here and here respectively.

Samples


Over the next few weeks, we will be updating the CocosSharp samples repository xamarin_forms branch to incorporate both the new embeddable native and Xamarin.Forms views, as well as modernising the code-base to reflect other API changes and more generally polishing up the quality of these samples.

Pitfalls


  • The design document here covers some of the limitations of using the new CCGameView.

  • Additionally, for Xamarin.Forms users targeting the Android platform, please ensure that you're compile target is set to API 23 (6.0).

Other breaking changes


  • Fixed Content directory: We have fixed the location for where the Content root directory should reside to be in the folder Content. In practice, providing the users with this flexibility to specify the location gained them nothing and, in the worse case, forgetting to set the root directory resulted in a missing content exception being thrown. So just like other platform-specific resource files, there’s a consistent location where content should reside and a user doesn’t have to worry about specifying it during initialisation.

  • CCSimpleAudioEngine has been marked as obsolete and replaced with CCAudioEngine: Currently, CCSimpleAudioEngine is under the CocosDenshion namespace while all other classes reside within CocosSharp. This resulted in the odd situation where users were required to import this additional namespace to use audio. Hence, we have moved to replace CCSimpleAudio with CCAudioEngine which resides in CocosSharp.

  • CCScene: AddChild has been marked obsolete and replaced with the AddLayer: In an attempt to further differentiate the roles of CCScene and CCLayer, we have replaced the CCScene:AddChild(CCNode) method with CCScene:AddLayer(CCLayer) to emphasise that a scene’s sole role is to house game layers. In subsequent releases, we will move to make this type-safe, so that a user is unable to add nodes that aren’t layers to a scene.

Other fixes and enhancements


  • 319 [wp81] fix for CCUserDefaults.Flush corrupting files — thanks to alexsorokoletov
  • 318 Update mono path to reflect el capitan — thanks to Therzok
  • 317 Fixed typographical error, changed aggresive to aggressive in README — thanks to orthographic-pedant
  • 223 Assigning CCLayer.Viewport throws uninformative exception
  • 64 Significant Stutter on Android
Sign In or Register to comment.