Project Migration

Did someone try to migrate a 1.0 project to 1.1? Does this work? Or is it recommended to recreate the projects because the project files are too different? I hope there is way to update the 1.0 projects to load them in Paradox Studio 1.1.

Core systems are changed so no, there is no migration for this update. Only manual.

“manual” means, it’s recommended to create a new Paradox 1.1 project. Copy all the assets in the new project, edit the properties and copy the source code in the new visual studio project? Or what is the best practice?

Do everything necessary. Developers refuse me with hints or anything so I was thinking that it is not that hard. And it is not. Migration has become a re-creation of some parts. But new things worth it.

For this release, changes were too significant for us to support an automatic conversion tool to migrate projects from 1.0 to 1.1. As @Timurid is suggesting, it is best to re-create the project from scratch, copy/reimport your raw assets to the new project. In future versions, we hope that we will be more able to smooth transitions between versions and provide project/asset upgrades.

I am almost done with the migration from 1.0 to 1.1 . However there is one thing which I haven’t figured out yet.

In 1.0 beta I could control the order in which scenes are rendered by the sequence in which they where added to the pipeline.

// 1. background
RenderSystem.Pipeline.Renderers.Add(new BackgroundRenderer(Services, “Background”));
// 2. game renderer using SpriteBatches
RenderSystem.Pipeline.Renderers.Add(delegateGameRenderer);
// 3. UI renderer
RenderSystem.Pipeline.Renderers.Add(uiRenderer);

The UI (3) was always drawn on top of the SpriteBatches (2) rendered by the game renderer. Now in 1.1 I can’t explicitly fill the RenderSystem.Pipeline with the different Renderer Services.

I did the same as shown in the example SimpleSpriteBatch:

// spriteBatch Rendering
var scene = SceneSystem.SceneInstance.Scene;
var comp = ((SceneGraphicsCompositorLayers)scene.Settings.GraphicsCompositor);
comp.Master.Renderers.Add(new SceneDelegateRenderer(RenderGame));

However now the spites will always be drawn top most. How can I define the order in which my different renderers are drawn?

  1. Background entity
  2. Sprite entity
  3. UI entity

I managed to solve this issue with a work around. Instead of using the Background Entity I created a background script with custom sprite batch rendering to draw the background. (as it is used in the Jumpy Jet Example).

Now I could define the order in which Renderers are draw by using

comp.Master.Renderers.Insert.

Now there are 2 remaining issues for me when migrating a 1.0 project to 1.1. The first is that a paradox project doesn’t run anymore on Windows Phone Hardware. (2 devices tested). It does run in the simulator. But it creates a runtime error when deploying and running it on a phone.

{System.InvalidOperationException: No screen modes found
at SiliconStudio.Paradox.Games.GraphicsDeviceManager.FindBestDevice(Boolean anySuitableDevice)
at SiliconStudio.Paradox.Games.GraphicsDeviceManager.ChangeOrCreateDevice(Boolean forceCreate)
at SiliconStudio.Paradox.Games.GraphicsDeviceManager.SiliconStudio.Paradox.Games.IGraphicsDeviceManager.CreateDevice()
at SiliconStudio.Paradox.Games.GameBase.InitializeBeforeRun()
at SiliconStudio.Paradox.Games.GamePlatform.OnInitCallback()
at SiliconStudio.Paradox.Games.GameWindowWindowsRuntimeSwapChainPanel.Run()
at SiliconStudio.Paradox.Games.GamePlatform.Run(GameContext gameContext)
at SiliconStudio.Paradox.Games.GameBase.Run(GameContext gameContext)
}

The second issue is a compile error. When adding a reference to another third party library such as the MS ad SDK the Windows Store project will not compile with the error message.

Failed to resolve assembly: 'Microsoft.Advertising.WinRT.UI, Version=8.1.30809.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’
1> Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'Microsoft.Advertising.WinRT.UI, Version=8.1.30809.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’
1> at Mono.Cecil.BaseAssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters)
1> at Mono.Cecil.DefaultAssemblyResolver.Resolve(AssemblyNameReference name)
1> at SiliconStudio.AssemblyProcessor.ComplexSerializerCodeGenerator…ctor(IAssemblyResolver assemblyResolver, AssemblyDefinition assembly)
1> at SiliconStudio.AssemblyProcessor.ComplexSerializerGenerator.GenerateSerializationAssembly(PlatformType platformType, BaseAssemblyResolver assemblyResolver, AssemblyDefinition assembly, String serializationAssemblyLocation, String signKeyFile, List`1 serializatonProjectReferencePaths)
1> at SiliconStudio.AssemblyProcessor.SerializationProcessor.Process(AssemblyProcessorContext context)
1> at SiliconStudio.AssemblyProcessor.AssemblyProcessorApp.Run(AssemblyDefinition& assemblyDefinition, Boolean& readWriteSymbols, Boolean& modified)
1> Failed to resolve assembly: ‘Microsoft.Advertising.WinRT.UI, Version=8.1.30809.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’

Should I put these issue in GitHub?

Thanks for the feedback.

Currently mobile platforms are not working in 1.1beta, but that should be fixed shortly.
Your second issue shouldn’t happen, could you create a GitHub issue please?