Project Solution | Architecture | Scenes and Views - unity3d

Im new in Game Dev and new in development with Unity
(Come from Windows and Web development)
Now I want to make my first game. This will simple game (but with retrieve data from API etc.)
So I have some basic questions:
1) How to decide if I need to make new scene or build just make a lot canvases and switch between them?
In my game I see
1 scene - Loading
2 scene - Main screen with buttons--
1 button - open Store
2 button Open leaderborad
3 button - open something like map
etc...
Now I think
I need make 2 scenes - Loading and Game scene
In Game scene make some canvases
(MainState Canvas, Shop Canvas, MapCanvas, Leader board canvas etc...)
And when user clicks on button - show this canvas (its must be display like Popup)
2) If I want that map will grow up with more and more stop points (like in Candy Crush) - I need to set its to Assets Bundle and load new bundle ?
3) Best practices for Login/Authorization
I check many sites and I see that best practices for Game Authorization today - this is Google/Apple Game service and not Facebook. Right?
If I understand not correct - Can you guys give me a links what I need to read/learn ?
Thank you guys so much.

I suppose you are targeting mobiles.
1) On mobiles the decision is simple in this case. One simple scene, that is loading fast, to show your logo, game title etc. and the second scene to all other stuff. If the game has very complex levels you can start thinking about more scenes. (If it's simple and easy to change to next level, e.g change background, some enemies etc. like in your case I would use one scene)
2) Sorry I don't know what you want to achieve, but you can read about Asset Bundles here and in unity docs. Again it depends on the complexity of the project. For a simple game it may not be a big difference. Official unity video on Asset Bundles and about Bundle browser
3) I have no idea about Apple Game service so I will talk only about Google Services. It's really simple to setup. However some steps may be tricky, but take your time and try to setup everything as you need. The github page of google play games plugin for unity, where you can download the latest build of the plugin, contains a lot of information on how to configure it. Docs I mentioned above and some testing was enough to implement it in my games. However if you have troubles with setting it up there are a few videos on youtube when you can see how to configure it step by step. Also here is the site on which you can see how your code should look after implementing google play games

Related

Struggling with Mobile build on phone, looking different on phone and Pc

Firstly I'm still fairly new to coding, saw people making games and fell in love with the idea of making your own game. So the past few months I've been learning unity tutorials and practicing basic games. I've come so far to be basically done with my first game. Everything is ready and I want to load and post it on playstore, but there's one last issue. When I run it on Unity on my pc it looks perfect but I loaded it onto my phone and the UI and some objects is either not showing or looking different than on the pc.Example1Example2Example3 These are examples of my problem. The IMG above is the way it should look like and the one underneath is how it shows on my phone when loaded.
It doesn´t look the same, due to the different resolutions.
Try to use a Canvas Scaler component. Set a reference resolution and the mode how you want to scale it.
If you want your UI elements to be anchored to the center/top/left etc. you should also set the anchor points. Here is a good Tutorial
A good way to instantly check the result is the "device simulator" It is a unity package
That's because of your Canvas settings & your UI GameObjects Anchor. But I think the easiest way to solve this for you - because you don't have that much experience about it - is to separate canvases for mobile & pc. This is the code:
private void Start()
{
if (Application.platform == RuntimePlatform.WindowsPlayer) // If your game's running on android
{
pcCanvas.SetActive(true); // Use PC designed canvas
mobileCanvas.SetActive(false); // Disable Mobile designed canvas
}
else // Your game is running on mobile
{
pcCanvas.SetActive(false);
mobileCanvas.SetActive(true);
}
}
Add this to a GameObject, Design 2 Canvases & assign them to script. (This will be a litte complicated, but will work) This link for more info
But if you want to use 1 canvas, you have to set its settings & its GameObjects anchors.

Create custom AR Quick Look experience without using the device's camera

I'm wondering if there's a way to recreate the "Object" experience when viewing a .usdz file through Apple's AR Quick Look. I want an experience that showcases a 3D object without "augmenting reality".
Some options that I'm thinking of that might be able to recreate this feature:
1) Using ARKit, disabling the camera and setting my own background with a custom image. I would then set the usdz/object in the center of the device's screen while having all the interaction functionalityfor the 3D object.
2) Web AR - recreate this 3D experience elsewhere and showcase this on a webview.
Any guidance or discussion about this is much appreciated - thank you!
You can use Google's model-viewer if you are going with the web solution. Another easy and effective solution would be echoAR (full disclosure, this is where I work). You can simply upload your models there and then get a link to thier model-view. You can upload models in different formats (obj, fbx, glTF, glb, USDZ) and it'll automatically convert it to the format you need to view on any device.

Unity Google Street View

I am trying to make a street view 360 viewer. Which should work on 2 screens.
One is a monitor and one is a oculus rift.
The first user will be sitting in front of the monitor and selecting street view images from a list / database.
The second user will wear the oculus rift and can see the street view images.
There is a plugin that can download panoramas from street view https://www.assetstore.unity3d.com/en/#!/content/28512 ,
but this will only work in the unity editor.
Well here is the problem. I need to update this programm once in a while. So maybe there will be new images every week, the user should be able to select them. If they start the programm, there will be a screen saying that there is an update available. The programm should than download all new images and after that, they will be available for the users.
So I am wondering if it is possible to download panoramas from street view in runtime? Like there will be a database with all url's to the panoramas, the programm will check that database, download all new one and convert them to skybox oder 6-sided pictures.
Thanks.
I am using unity 5.4 and it should work on a PC
You can download the images using the Google Street View API: https://developers.google.com/maps/documentation/streetview/?hl=en
Example URL:
https://maps.googleapis.com/maps/api/streetview?size=600x300&location=46.414382,10.013988&heading=151.78&pitch=-0.76&key=YOUR_API_KEY
Please not that the images will be 400px * 600px, to get higher resolution you'll have to pay.
You'll have to make a different request for each camera angle (the max allowed FoV is 120, meaning you'll need three images to make the whole horizontal circle).
Honestly, I would do the whole image managing and updating thing server side. I would set up an interface in the browser where you can add new interest spots, then the server downloads the images and creates the cubemaps. The Unity client will just ask the server for a list of all the interesting places and once you chose one it will download the cubemap. Maybe it's because I have a web dev background, but to me it makes more sense than doing everything inside Unity.

Video recording of IPhone screen of total game play

I want to record screen video recording during application running and unfortunately apple didn't provide any scratch code on it.
The scenario is there a 'RECORD' button and a 'STOP' button. when I touch 'RECORD', I need to take a video of the entire gameplay (Screen Video) and stop recording when I touch 'STOP'.
Is there any other method besides the screenshot method to do this?
For example - Talking Tom, Angry birds, etc.
Instead of taking a video, you could record the user interactions and replay them. If you use a PRNG for random events, you should also make sure to seed it with the same value while replaying a game.
Screen capture in iOS has a few problems, one of which being performance, and the other being the fact that some animations are not captured because they happen at some low level, out of sight for normal screen capturing methods.
This, of course, will only replay the game on screen.
if we talk about angry birds, that has been developed in COCOS2D and if your game is also developed in cocos2d, you are lucky..!! Maybe if you dig-in you could find a way to use it with UIKit as well...who knows..!!
there is a cocos2d 3rd party utility named -Kamcord that can be used for recording gameplay.
kamcord.com
COCOS2D Kamcord archive link
We provide an SDK called "Everyplay" that allows you to do exactly what you're looking for. It's free to use, and is lightweight.
We provide out-of-the-box integrations for Unity3D, cocos2d (1.x, 2.x), cocos2d-x, and you can of course integrate to a custom OpenGL-based game engine.
The documentation is available at https://developers.everyplay.com/doc
The documentation contains an example app key to use when developing, but you can of course sign up for your own client key at https://developers.everyplay.com/

'Embed' cocos2D in UIKit app

I've already created an iPhone app using UIKit. However, for one part of my app i will need to perform relatively heavy graphica (particles, lots of moving images). I can't rewrite the entire app in cocos2D due to my deadline. It's just for graphical purposes and i won't need user input via cocos2D. Another option i was considering was using plain openGL, but i'm quite sure cocos2D will be easier to learn.
In short: How can i use cocos2D in a small part (say one UIView) of my app without rewriting it? (User interaction is not necessary).
Edit: I found out, after a while more searching. For the record if someone else will need it in the future:
http://www.cocos2d-iphone.org/forum/topic/4708
http://www.cocos2d-iphone.org/forum/topic/9239
First, integrate cocos2d into your project.
Copy cocos2d directory into your project from downloaded cocos2d-iphone.
Modify cocos2d/ccConfig.h, #define CC_FONT_LABEL_SUPPORT 0
Copy fps_images.png into your project from downloaded cocos2d-iphone/Resources/Fonts if you want to show FPS that is implemented in cocos2d.
Next, implement to use cocos2d as cocos2d-iphone/tests/attachDemo/attachDemo.m.