I am making an Android app, with multiplayer, and need some sort of matchmaking. I am using Firebase, and would prefer to not have to make an external matchmaking server.
My best ide so far is, using the firebase realtime database with transactions:
When a player presses "play" - go through lists of open matches. If no games exists in the list, or if all the games in the list has been filled while the client is searching for an open one - create a new open match.
When someone fills the open space in a match, remove the match from matchmaking.
The only hole i can see in this method, is when there are few players creating games at the same time, all thinking that the list is empty.
If anyone with some experience with firebase and/or matchmaking can point out any more holes in this strategy, or perhaps suggest a better strategy for matchmaking, i'd be very happy as i can't test out the strategy at scale yet.
In advance, thanks for helping out - it would be much appreciated.
Related
I am a new guy to full stack web application development. I want to design a web application which has data stored in say back end databases. Now I want to design a desktop web client as well as android application which will be able to fetch data from back end. So how do I need to start? What APIs can be used or how can I expose data from same back end to multiple clients?
Also I want to handle massive amount of request. How to design such a system? What to use in back end to store data and handle requests efficiently.
Any video / document / reference containing useful information will be much appreciated.
Wow, you have a whole forest of questions to settle. You are going to need to go do your own research on such things as algorithms and data flow for your application before you can make any reasonable choice of platform. Here are a couple of basic ideas to get you going: 1) look at Java and Node.js. There are lots of other possible platforms but chances are you will end up using one of those two. Try to think about what the actual code you will generate in each of those will look like. A little or a lot? 2) Just store your data in files, most probably using JSON. Maybe you will end up doing something more fancy after you figure out where you are going with your project, but you will be surprised how well the simple file-based solution will scale.
When you have done a bunch more research, and maybe even coded up a few ideas on your platform of choice, then come back and massively edit your question. Only then will specific suggestions for tool choices be possible.
Im creating an app in which users could browse from many sale offers with cars.
I would like to potential sellers could acces and enter data from web page, then save it to some external server/database.
My app only downlaods this data(pics, descriptions, etc) and show it in some way.
I am begginig programmer with half year experience in android, but ive never set up my own server, neither use external database in my previous apps.
I would like to ask you what is the best way to achive this goal. I will be greatefull for any adivices or materials which i could start from.
I do not know how you thought your data layer, but depending on you can use a database object-oriented, which in my opinion is great for such applications. visit the https://www.parse.com/docs/android/guide is very easy to use think will like. so of course it will not have the need to use a webservice if you choose to use parse.
I am a CS major and I just recently decided to start putting some of my java knowledge to use by learning how to program with Android. I have just been doing tutorials and reading some books on how to get started, but I would like to write an app and eventually release it to the app store. I have most of the ins and outs of the app figured out, but I'm not sure how to approach data storage. Part of my app will track shipping numbers and info, however, each shipment will have a pretty long list of fields (Name, ID, Address, Weight, Girth, ect.). The list in full approaches 10 items, if you include optional fields. Thats a lot of information to have a user fill out, especially if they have to do it on their phone (app is designed for small businesses, so lots of shipping for tracking). I would prefer not to have to build a sister website to hold this info for the user, so I guess my question would be, is there a service for mobile apps to use to push and pull info that a user could access through their computer? Or would it be better to use a file uploader and just format the info? I'm still an android novice, so I figured I need a little advice from the pros. Any and all advice would be appreciated, and if you know a database type service that is safe and reliable, that would help very much. Thank you!
I'm building an android application that is very data intensive, and need to an interface to use to add data quickly and easily.
i've looked at all of the database tools, none of which make it easy to enter data using foreign keys. I need all the foreign key fields to show up with dropdown lists (for 1-1) or checkbox lists (for *-1) for fields to make it easy to enter data.
The closest I've found to achieving this is the following:
http://www.sqlmaestro.com/products/sqlite/datawizard/download/
Which claims to generate ASP.Net forms from a database. Does anybody know any other tools that'd help me?
I guess I could build my own forms,but would prefer to spend my time developing my app. I'd be happy with a framework to kickstart development of my required forms, maybe somebody has done something similar already? (ASP.Net preferable but not a necessity).
I know the aspnet maker.
http://www.hkvstore.com/aspnetmaker/
Can create very fast a full site that handle your database manipulations.
Its not free, and you stick with what ever he gives you, but is not that bad for quick tool.
From the other, do you ever hear the scaffold ?
I have use the SubSonic ver 2, that have scaffold, but other DAL have also.
What this technique do is to automatic create the editing forms for your.
you can search on google for "scaffold asp.net"
So you can select a DAL that have scaffold and use that.
So I am in need of some assistance in trying to determine what I am going to need in order to accomplish a task.
Plain and simple...I am looking at accessing multiple databases some of which may contain over 10,000 records via Android. From what I have seen web services that return JSON is the way to go for something of this nature, but I don't think that fully answers my question or know if this is the preferred way to go about this.
Digging a bit deeper...I have a few apps on the market now, but this will be my first attempt at an enterprise style app, and I have accessed public web services with a lot smaller footprint than what this is going to be. I have little to no experience within the realm of server/network administration which is where I am getting tripped up. This is from the ground up and I have to ability to obtain almost any resources I need to complete this task.
It appears that there is a SQL Server 2008 on the back end if that helps. If I need to provide further details let me know. I am looking at a solution that will handle organizational growth, scalability, authentication and ease of user...so keep that in mind too.
So what is the best practice/preferred method for doing an enterprise application with a substantial data set? What are the big dogs doing, and how? Both on the client side and server side. I am trying not to "screw the pooch" out of the gates on this, and this is one of those measure twice and cut once situations which is why I am trying to garner plenty of input and assistance.
Thanks in advance!
If you don't have an API/service yet, you need to write one on top of your database.
I can think of two approaches, depending upon your use case.
Paging: Setup an API that supports paging, and show the results page by page. The user can't possibly view 10000 records in one go.
Search and suggest: Try creating a suggestion list, when the user starts typing out something. Fetch results that start with the initial characters entered. However, the API should limit the results to a comfortable number, so that you don't have to parse a lot.
Depending on your use case, you could try one of these.