Networking for mobile games - General Questions and Answers

Hello,
I know that there are lots of posts like this, I had read lots of them already but I'm still stuck and don't know where to go.
I'm interested in developing (or learning) multiplayer games, but I don't know which libs/APIs should I use (that allows multiplatform). I keep asking myself, how is networking made in modern games.
What I want to create? For now, mobile game (2d, mainly android), with realtime client-server networking. I want to be able to connect to database (eg. SQL) for login system, but that's not a problem I guess. Server should be standalone (unlike what unity offers for free), with logic on server. I saw solutions where client and server was coded in different languages, I don't mind that. C++, C# and Java I know the most. At the moment I'm working in Unity, but still thinking if Cocos2dx wouldn't be good for doing it.
Any suggestions, how to learn networking for modern games? I'm more interested in learning it, than actually making a game.

Related

Which programminglanguage for Android?

Hey Guys,
I wanted to devolp my first Game under Android but,
But I don't exactly knew in which language i should programming it,
basicly it should be a 2D sidescrolling Hack'n Slay like Maple Stirues, so i think C++ and Java (for the controls) would be great, or?
Go for Java. However, if you're considering producing (iPad) web apps it may be advantageous to get to grips with HTML5.0 and XHTML.
Ok it should be for android, so it will be Java, do you know with what i should start first, when i want to prgramming a Game in Java? Maybe the Javabesics?
read the book Core Java, then understand the way android apps working, maybe read some kinds like head first android or other things.
I have a strong background of 6 years in Java, I cannot find the book I used my freshman year of college for Java but I have read Head First in Java. It was really nice. Every book will have downfalls because everyone has a different learning perspective. Some people can mentally grasp how certain things work, some people need visualization.
For developing on Android, I recommend purchasing the book Hello, Android. I have found this book to be very nice in creating your first android application. In the first few chapters, you will create a fully working Sudoku Game. It also has some small stuff on Widgets and Live Wallpapers.
Hope these help, best of luck!

game research questions

Looking for advice on backend servers for games. I'm kind of getting confused at some options.
I have found products like Smartfox Server, ElectroServer, Photon.
Then some products like OpenFeint, Scoreloop etc.
Would I be correct in saying that you might use something like OF or SL WITH Smarftox or ES5 etc? I had thought originaly that openfeint/scoreloop were just platforms for scoretracking only.
Looking for a solution that provides support for realtime multiplayer, with game chat lobbies/messaging/ingame chat etc.

What the best framework for cross-platform?

I tried to use libgdx and found out the its not user friendly at all. very complicated framework with no support at all.
I want to write games, that the highest level is AngryBirgds. (I'll start from something much simple).
what framework would you recommend?
what do you think about Xamarin?
p.s
I'm looking for a free framework that I can publish on Google Play
What you didn't like about libGDX? It has great documentation and a friendly community. After trying a simple game tutorial on their wiki the framework doesn't seem at all complicated.
A great benefit to it is a desktop version for really fast testing or even releasing — Spine 2d skeletal animation tool was made by one of main libGDX developers using libGDX.
Also i tried to release the iOS version of the game with libGDX, which successfully got in AppStore.
11alex11 said:
I tried to use libgdx and found out the its not user friendly at all. very complicated framework with no support at all.
I want to write games, that the highest level is AngryBirgds. (I'll start from something much simple).
what framework would you recommend?
what do you think about Xamarin?
p.s
I'm looking for a free framework that I can publish on Google Play
Click to expand...
Click to collapse
Hi,
I am not familiar with Xamrin but familiar with phoneGap. I worked in mobilepundits which offers PhoneGap mobile app development company. In the company I used this tool for mobile app development. According to this tool is really easy to use which enable you to build mobile apps even you are not friendly with it.
PhoneGap is one of the best framework for cross platform mobile applications development. It is a free tool which can be used easily. In conclusion if your app can work with more than one platform then you must use the PhoneGap.
I don't think PhoneGap and Xamarin are good choice if you want to make games. Both are good frameworks for making Apps, but if you really want to dive deep into game development you need to use a game engine, which solves a lot more tasks specific for game development.
If you want some higher-level and more user friendly framework then you definitely should try Unity.
If you want more control or just like to work on a lower level and at least a little familiar with C++, then I'd suggest you to try Cocos2D-x.
If you have a Mac, plan to support iOS, and not afraid of Objective-C or the new Swift programming language, then take a look at Cocos2D-Swift (aka Cocos2D-iPhone). Despite the name you can use it to create games for both iOS and Android (via Apportable).
There are other good game engines. But I've only worked with those three I've mentioned (and even wrote a book about Cocos2D-Swift and several tutorials on Unity).
Framework for Cross-Platform: Corona and Titanium
My vote for cross platform framework goes to Corona and Titanium. If you are developing a native app then Titanium is the best option. Titanium is best for developing a normal application. Titanium framework offers a wide range of native functionality and works perfectly with platforms like iOS and Android. If you are developing a game related application then go with Corona.
Try Unity3d its has a free version. If you want check my games in my signature, they are both made in Unity for Android and iOS.
If you would like to create a 2D cross-platform game the best engine is cocos2d-x.
In this platform you can use C++ or LUA.
Also there is a great community and it is open source. So, you can add own modules and fixes to repository.
But if you would like to create a 3D game or smth like this, the best framework is Unity.
I definitely recommend you the Cocos2d-x to give it a try.
Cocos2d-x allows you to write games in C++, Lua and Javascript. Moreover you can deploy games for variety of platforms: Windows Phone, Android, iOS, Windows Desktop, Linux, Blackberry, MacOS and Browser!
Yesterday they announced new Cocos brand which simplyfies many things and makes it more friendly
URL: www.cocos.com & www.cocos2d-x.com
119
I've been using Unity and it's working well so far. They have a large dev community. There's also an asset store where you can grab/buy plug-ins or assets to save time.
What about Marmalade?
I am working on such solution => gl.aexol.com/product
1 code = deployment to Android, iOS, Mac, Windows & Linux
It's called AexolGL - you can download for free beta web engine and you would be notified about Mobile + PC version launch.
Regards.
You can use Qt for Android, iOS, and other platforms.
Hey, Libgdx is good, just that startup time is bit high as not very friendly. I worked on it and it helps you understand basic concepts. Can be used with Java and RoboVM integration is easy which helps you make it cross platform.
Xamarin is good, it will help you create app for iOs and android. Never used it though.
Unity is one good game engine which can be used. It is very user friendly. Lot of assets and code can be bought from Unity asset store.
11alex11 said:
I tried to use libgdx and found out the its not user friendly at all. very complicated framework with no support at all.
I want to write games, that the highest level is AngryBirgds. (I'll start from something much simple).
what framework would you recommend?
what do you think about Xamarin?
p.s
I'm looking for a free framework that I can publish on Google Play
Click to expand...
Click to collapse
myth007_03 said:
Hey, Libgdx is good, just that startup time is bit high as not very friendly. I worked on it and it helps you understand basic concepts. Can be used with Java and RoboVM integration is easy which helps you make it cross platform.
Click to expand...
Click to collapse
I've been a fan of libgdx for a while.. Perhaps check out one of the first editors for it overlap2d*dot*com (hah, still need to hit 10 posts). Also they have a great blog that describes using the editor to make a physics based platformer.
libGdx and Cocos2D
Hi!
Really I don't know why libGdx is not user friendly. A few weeks ago I made a research about best cross-platform frameworks. I start with Unity3D, It's really friendly, but, it not free for comercial use and it is much powerful for my small tasks. In result I have to favorite: libGdx and Cocos2D. The first one using Java and more like Unity3D/Xamarin/MonoGame. Cocos2D use C++, and you can work in Visual Studio with it. But, for me Hello World application on Cocos was more difficult than in libGdx.
And there is not only my imho, I have been read many the same posts on other forums about libGdx and Cocos2D.
If you have no preference between Java and C++ better start with Java and libGdx.
Hi,
It actually depend about your langage skills and what kind of game you want to develop.
Unity is very goo, and you can develop a game without coding, but you have to pay to use it, and some plugin like iap, gamecenter, ads is also expensive.
Libgdx also very good but may be hard for new developer.
I currently use openfl for 2d games which is totally free. The language is close to the flash and there are many tutorial to learn. Moreover, the plugin for pub ipa, game center are available and free. The commuty is nice , but the langage is probably not adapt for 3d development.
I've just ported my game Space Shooter X from Windows Phone to Android using Xamarin. I've shared my experience in a blog post. Here's the link http://www.borneomobile.com/2015/03...-from-windows-phone-to-android-using-xamarin/
libgdx vs unity
Hi,
I'm new to game development (i started some month ago), but i made some research.
From what i could understand, the right game engine for you vary much on your purposes.
I choose libgdx, due to the considerations i made.
-Unity:
said to be very user friendly, and a lot faster in developing games (it hides a lot of things). If your purpose is to develop new games fast, it can be good.
Cons: it has 2 versions: personal and professional. You have their splash screen or pay. From their site: unity3d com/get-unity
Personal: "Deployment to all platforms included with the Personal Edition splash screen."
Professional: "Unity 5 Professional customers who earned/received more than $100,000 in revenue/funding in the previous fiscal year must purchase iOS Pro and/or Android Pro deployment add-ons to deploy to these platforms. The iOS and Android Pro add-ons enable deployment without the Personal Edition splash screen."
-LibGDX:
it gives you a lot of control to everything, so you can really do what you want. After a period, and following some tutorial, it seems good and not so hard. You can develop for Desktop, android, ios and web.
If your purpose is to understand how a game works, this is good. Also, it is totally free, and its performance are the best.
Cons: It is a little unfriendly at the beginning.
I've been trying LibGDX and Unity.
If you haven't created a game before, you should start with LibGDX or native, just to understand how things works.
If you created a game before, you could take a look at Unity, it shorten a lot Development time and it's a things you should be aware of if you want to make your game rentable.

Mobile Project

Hey all!
A bunch of us have been putting together a web-based drawing app with mobile support. In a nutshell, users connect in real-time to draw or chat on a sort of interactive whiteboard. Plenty of these are made in Flash, but we are determined to build it in HTML5 (and JavaScript); a site that immediately works on mobile (because it's not Flash), tailors to everybody from drawing tablet users to people who want to screw around, chat and play games — and with an awesome, modern look that other apps lack. The thing that works so well is these kinds of programs give you a lot of freedom of expression that I think by making more accessible we can popularize, and truly get a future-proof, lasting community going.
Current drawing apps aren't too popular as they're not accessible to the host of many devices people use, chatting's not versatile or user-friendly enough to compete with chat sites, and their designs look god-awful like it's still the 90's. So with what we're after, there's insane potential in this project.
i.imgur.com/ZBz9gQi.png​
This is the interface. I hope it gives you some sense of what we're aspiring for. It's predominantly HTML, CSS, and JS with server-client communication in HTML5's WebSockets, some points in PHP, and mobile development. If you're good with any of these, message me here, Skype drawplanet or email [email protected]. I'll be more than happy to answer any questions. And if you're critical of anything, nothing's set in stone. It's very much a by the community, for the community type of project.
Also on the hunt for people good with P2P networking, node.js, SQL, or server management.​
At the moment we're hellbent on completing the first build with full-duplex drawing and mobile touch inputs.
A lot of JS goes into developing the tools. PHP's mainly account integration and forum features.
In design of course there's a separate UI for mobile, and in fact for anybody good with Photoshop or vector graphics there's some cool stuff we're keen to create.
Drop a message, or do Skype or email, if it's a project you want to get behind.
Still on the hunt. Fun project, hasn't been done before.
There's 7 devs on board at the moment, though we're looking for a little more expertise in some JavaScript frameworks, particularly Meteor. And while data's handled with WebSockets, we're also looking to do WebRTC and for incompatibility switch to WebSockets. Data management otherwise in SQL, and MongoDB or Redis.
Hit me up a message.

Cross-Platform vs Native

Hey,
I'm a developer and I want to start with app development. No games, just productivity stuff. Without experience, I would tend to native apps, because you can use all api's, designs etc. I think cross platform frameworks is just a hype like java for web. HTML and CSS are the best choice for web and nobody is talking about java in web-dev. Now, I have a feeling that you're trying to use this technology in Apps because html5 and css3 a fancy. But this is just my opinion and maybe I'm wrong. As I mentioned, I do not have any experience in app-dev. Therefore, I want to ask you, because you have the experience.
Are cross platform frameworks a great choice to develop apps for iOS, Android and Windows 10 (Mobile)? Is it really time saving and do I have the same or similar possibilities? Or is it better to maintain three different platforms? Maybe the time effort isn't so much higher. I don't know. How high is it? Should I start with a cross platform framework and switch later to native apps, or is it better to start with native apps?
I hope you can share your experience with me. It is also great if you link something that reflects your opinion.
Thanks
neon
"nobody is talking about java in web-dev"
Not true Many pages and server side app are created in java. JEE, JSF etc. Problem is hosting for page. Hosting for PHP is cheaper and more popular. That is why PHP is more popular than Java in web-dev.
Anyway, in mobile platform, in my opion, better way is native apps. Cross platform frameworks are great, but only for some of the types application. Most applications can be made faster and look prettier if they are native. Many things is hard when you use crossplatform, and sometimes development takes longer. Much depends on type of application and requirements. Of course it's only my opinion. Many people think differently.
It depends. First of all it is important to know which API or librarys you want to use. If you have some intensive tasks or calculations you should go with native apps because they are often much faster then hybrid-apps written in JavaScript. If you don't have much intensive tasks and you have a completely new idea and want to make money with it you shoud go with hybrid-apps because it is a huge plus to have an App for Android AND iOS.
Thanks for you responses.
@Asmok78
You are right. PHP is more popular because it is cheaper.
Asmok78 wrote that most applications can be made faster and it depends an the application. spcialx wrote something equal. So, as an example, all my ideas are based on a client server architecture where users can sync there local data with a server to work collaborativ. As an example it could be an app for all three platform (iOS, Android and Windows 10(Mobile)). A user can manage a tasklist and share tasks with other users, or you have a project and one user can assign tasks to other users.
I guess it will be faster to get a first working app with a crossplatform framework. But I also guess, that in the long run it will be better to dev native apps. So why not start directly with native apps?
ne0n said:
[...]
I guess it will be faster to get a first working app with a crossplatform framework. But I also guess, that in the long run it will be better to dev native apps. So why not start directly with native apps?
Click to expand...
Click to collapse
Your assumption is completely right.
I'm working on a hybrid app right now. While it can be tempting, as soon as you get out of common features and patterns you can run into all sorts of problems and I found some quite hard to debug and solve. In the end I've busted all my deadlines. Performance are just OK for most uses, but still not comparable to native. All in all it depends on what you are trying to do, cross-platform apps might be ok for some use cases, but native apps are well worth the extra effort.
I think you should go native for apps. But not for games.
Sent from Tapatalk. Try LucidPod - lightweight podcast player.
Android NDK is there for performance reasons. If you plan to create something serious, then dedicated development cycles for each platform may be the obvious choice.
with web app, you can create app with nice and easy ui, can communicate with system api via plugin but sometime you need custom there control, and you need experience with native app , if it basic, you can do with only web app.
hybrid app is slower than native, only for small app.
Asmok78 said:
"nobody is talking about java in web-dev"
Not true Many pages and server side app are created in java. JEE, JSF etc. Problem is hosting for page. Hosting for PHP is cheaper and more popular. That is why PHP is more popular than Java in web-dev.
Anyway, in mobile platform, in my opion, better way is native apps. Cross platform frameworks are great, but only for some of the types application. Most applications can be made faster and look prettier if they are native. Many things is hard when you use crossplatform, and sometimes development takes longer. Much depends on type of application and requirements. Of course it's only my opinion. Many people think differently.
Click to expand...
Click to collapse
Yep, I'm a java web guy. Tomcat, Struts 2 and JSP for me (though I'm slowly switching to Spring instead of Struts). The sheer power of Java, the stuff you can do, vs PHP (disclaimer: I coded PHP for 10 years professionally and now hate it, especially with the advent of Wordpress and Drupal) is absolutely staggering. Add to that a tonne of amazing libraries one can just plug straight in and you get a really useful bit of kit. Sorry, off-topic.
So yeah native is best. I work on a timesheeting/expenses solution for big mobile telcos in the UK and we looked at some cross-platform solutions at first, with Xamarin getting a decent run out but in the end we concluded it just wouldn't do the job, and went native. The issue really was that you'd end up with an app that wasn't quite right on either platform, and had to really write some nasty hacky stuff to make anything that took advantage of the advantages or preferred style of a particular platform. It just wasn't worth the effort in the end.
With Unity3d you can build for like 20 platforms.
Cross-Platform vs Native | Development Tools
1. Native apps are usually developed to work on a single mobile platform by using the native programming language mainly used for user interactions.
2. Cross platform requires different platforms for development are used for PhoneGap, Titanium, and Xamarin by using HTML and JavaScript mainly used for iOS, windows, and Android.
"no one is discussing java in web-dev"
Not genuine Many pages and server side application are made in java. JEE, JSF and so on. Issue is facilitating for page. Facilitating for PHP is less expensive and more mainstream. That is the reason PHP is more well known than Java in web-dev.
Anyway, in portable stage, in my opion, better way is local applications. Cross stage systems are incredible, yet just for a portion of the sorts application. Most applications can be made quicker and look prettier on the off chance that they are local. Numerous things is hard when you utilize crossplatform, and infrequently improvement takes longer. Much relies on upon kind of utilization and necessities. Obviously it's lone my sentiment. Numerous individuals think in an unexpected way.
whats the end goal/how big is your buget?
for example: business apps, they're not that heavy on interactions/animations - you may be better off with cross platform as it will generally cost less to create it that way
if heavy on interactions/animations: native would be a better choice and may cost more because it may be developed for multiple platforms, which in turn would make it more expensive.
Hi,
If you ask me I will go with the cross platform if I'm building the app from scratch as it's easier to make any changes and most importantly saves a lot of time.

Categories

Resources