Xcode Mass Multiplayer (Not What You're Probably Thinking) - ios

Okay so I would like to make a game, I'm trying not to divulge what it is but it requires anyone of a certain level in the game who is currently playing to be able to see each other in a sort of MMO style but not really.
For example:
Suppose I have players Bob, Mary, and Rob. Suppose that Bob is level 4, Mary is level 6 and Rob is also level 4. These would be shown in leaderboards by the way. What I would like is for Bob and Rob and anyone else who is level 4 AND CURRENTLY PLAYING to see each other in a sprite kit seen. I would like Mary to be off with other level 6's.
I have little idea of where to start with this. So my questions are:
Should I even use Xcode or would I be better off using Unity?
Does GameCenter have the capabilities for this or would I need to use Parse or something like that
And also, could you please point me in the right direction as far as the concepts of how this would work?
If you can answer any of this that would be AWESOME!!!!! If not that's cool too! Thanks in advance!

Xcode is an IDE and Unity is a Game-Engime.
If you need to create your own game since the beginning, you should use an IDE. But this is really LONG and sometime difficult. With a Game-Engime, a big part of the game is already programmed (physic, 3D animations...) so you can focus your time for program your game.
Game Center is for share a game or a score. Not played online.
For play online, you should create your own server.
Do you know how to program? Are you good in 2D/3D?
For create an MMO game, you must be logic.
First, you should create a client.
The client is the game
He contain the sounds, the graphics, the scripts...
Second, you should create a server.
The server is connected to all clients.
He contains the databases (Accounts, characters, HP, gold...)
So where started?
When a character move (from the client A), he send his new position to the server. The server send this position to all the client. So the client B know where is the character of the client A and can draw a tileset (in your example, you can draw the tileset only if the boolean sameLevel is true).
Take a look at the sockets:
http://www.linuxhowtos.org/C_C++/socket.htm
http://www.nullterminator.net/winsock.html
https://stackoverflow.com/questions/tagged/sockets%20c%2b%2b
https://stackoverflow.com/questions/tagged/sockets+c
Hint - I have already answer at some similar questions. Even if the programming language are sometime different, I give you the link, the logic is always the same so it can maybe help you:
Creating a Multiplayer game in python
Multiplayer game in Java. Connect client (player) to game that was created by other client
How would an MMO deal with calculating and sending packets for thousands of players every tick for a live action game?

Related

Using Game Center to save/share game data/state

After reading the developer docs and hours of searching various forums I can't seem to find information on how this is done.
Basically I have a bunch of data that I save locally that makes up the current state of the player's game. I've seen other games such as Tiny Tower, Pocket Planes and Smurf's village actually backs that data up in Game Center.
My goal here is for players to be able to load up data from their friend's games so they can see how things are progressing. For example, in Tiny Tower I can view my friend's tower and send him/her gifts. Similarly in Smurf's Village. I know I can do this with my own server with login/password but if it works via Game Center why complicate things?
Is it a matter of exploiting Game Center's match functionality? Or leaderboards? Or?
Anyway can some one point me in the right direction?
I've gone through this tutorial, and it sounds like it would answer a lot of questions that you have.
What's New With Game Center In iOS6

shazam for voice recognition on iphone

I am trying to build an app that allows the user to record individual people speaking, and then save the recordings on the device and tag each record with the name of the person who spoke. Then there is the detection mode, in which i record someone and can tell whats his name if he is in the local database.
First of all - is this possible at all? I am very new to iOS development and not so familiar with the available APIs.
More importantly, which API should I use (ideally free) to correlate between the incoming voice and the records I have in the local db? This should behave something like Shazam, but much more simple since the database I am looking for a match against is much smaller.
If you're new to iOS development, I'd start with the core app to record the audio and let people manually choose a profile/name to attach it to and worry about the speaker recognition part later.
You obviously have two options for the recognition side of things: You can either tie in someone else's speech authentication/speaker recognition library (which will probably be in C or C++), or you can try to write your own.
How many people are going to use your app? You might be able to create something basic yourself: If it's the difference between a man and a woman you could probably figure that out by doing an FFT spectral analysis of the audio and figure out where the frequency peaks are. Obviously the frequencies used to enunciate different phonemes are going to vary somewhat, so solving the general case for two people who sound fairly similar is probably hard. You'll need to train the system with a bunch of text and build some kind of model of frequency distributions. You could try to do clustering or something, but you're going to run into a fair bit of maths fairly quickly (gaussian mixture models, et al). There are libraries/projects that'll do this. You might be able to port this from matlab, for example: https://github.com/codyaray/speaker-recognition
If you want to take something off-the-shelf, I'd go with a straight C library like mistral, as it should be relatively easy to call into from Objective-C.
The SpeakHere sample code should get you started for audio recording and playback.
Also, it may well take longer for the user to train your app to recognise them than it's worth in time-saving from just picking their name from a list. Unless you're intending their voice to be some kind of security passport type thing, it might just not be worth bothering with.

How to translate two languages at the same time without delay for instance: "two online games written in different languages"

I have a question about writing a script which can manage to play online games in different codes. I think the easiest to understand is when I say I need to make a platform on which Playstation as xbox players are allowed to play online Modern Warfare 3 together.
Mathematically it seems it is possible: at the end you have two different screens which project the same. On the platform, Sony and Microsoft players stream their code or screen to the platform and play together. Big problem is that you get it delivered in 2 different codes which you have to translate to one language in less than 0,001 second.
Honestly said I have to get into this stuff but I cannot get much further.
Do you have any tips, other forums or solutions for this problem? Maybe it is writing a new language? (Google is technically using it for Google-translating over the phone)
Depending on the game this might not be possible even in theory. Many console games use a peer-to-peer lock-step synchronization model for multiplayer. Games that use this approach only send each other the player input from the other consoles and rely on deterministic simulation (the same inputs produce the same outputs) to keep the systems synchronized.
This only works when the exact same compiled code is running on the same CPU for all players. Games with this networking model usually have periodic desynch checks to make sure that the different systems haven't drifted out of sync with each other. A desynch failure is usually considered a fatal error and either a bug in the game or evidence of attempted cheating by one of the players.
Other multiplayer games use a client server model and so it would be possible in theory to allow different consoles to play against each other. Reverse engineering the network protocol would be a formidable technical challenge however and it would be a difficult problem to get this to work reliably.
Even if you could solve the technical problems though you would likely have even bigger legal issues to overcome. Sony and Microsoft don't want to allow cross platform play so even though it would be possible in theory to make this work with a client server multiplayer game developers aren't able to implement it. A third party trying to make this work would likely have to deal with legal challenges from Microsoft, Sony and the game developer.

iOS turn-based vs real-time multiplayer connectivity options

I am looking into multiplayer connectivity options for a two player game and wondering what options are available to use. I've read up on a bunch of stuff online but still couldn't figure this out. I've done a tutorial with GKSession from GameKit.h, but I'm confused on whether Game Center and GameKit are the same thing.
What are some connectivity options for both a turn-based and real-time two player game? Are there any benefits for either styles with these connectivity options?
Thank you!
Game Center is the customer-facing name of the services Apple provides. GameKit is the framework that Apple provides for developers to implement Game Center functionality.
Whether or not you make a turn-based or real-time game really depends on the type of game you're making.
Definitely agree with #WendiKidd -- you need to decide what type of game you are making to determine the technology to use. Game Center won't directly solve this for you, it will just provide an API for "extra" that you can hook into.
That being said, turn-based is probably easier to write and has a few more options for implementation. You'll need/want to setup a server in the middle that can act as the central arbiter for the different players. E.g., player one submits a move, which gets sent to your server. Then when player two logs in/plays, the game would check against the server for updates and then affect the game state accordingly.

iOS multiplayer game - what to use for the multiplayer part?

I'm developing a game for iOS that should include the multiplayer. It's not a turn-based, rather a real-time game. I know I can use some different approaches here:
Game Center multiplayer (has matching and searching for matches, gives authentication out-of-the-box, additional are leaderboards and achievements)
As far as I know, OpenFeint also includes some multiplayer helpers
I can also write my own sever code, but woudn't it be reinventing the wheel? I'd also loose all the good stuff from GC...
Any suggestions here? What's the leading market solution, that doesn't take too much to integrate into a game; I'd like to be able to send short bits of data between players (player position + action taken) in a real time. Best would be to reduce the lag :)
personally, i think the easiest way to go is with gamecenter. it was pretty straightforward to integrate it into an existing game - i'd say it took 2-3 weeks. the main problems that we encountered were to do with the game simulation not being particularly suited to multiplayer, rather than anything to do with dealing with gamecenter.
You may also consider Nextpeer (disclosure: I work there). GameCenter is good, but it has the downside of not being cross-platform. We offer a solution that is cross-platform (iOS, Android and Unity3d) and is geared towards multiplayer in casual games. So we provide the hosting, the player-to-player communication, the matchmaking, and Facebook integration.

Resources