2,146 reputation
916
bio website AriPatrick.com
location
age 24
visits member for 4 years
seen Jan 24 '13 at 14:24

Nov
8
comment noSQL - Is it a valid option for web based game?
More than likely, you would have a database of players, with individual player documents. In terms of atomicity, different flavors of NoSQL have slightly different setups. Here is some of the atomicity documentation for MongoDB, which is the NoSQL implementation mentioned by the OP: mongodb.org/display/DOCS/Atomic+Operations
Nov
8
comment noSQL - Is it a valid option for web based game?
@Andrew Frolov You can version control SQL databases, in fact you should ALWAYS version control your development databases, regardless of the type.
Nov
8
comment noSQL - Is it a valid option for web based game?
@Andrew Frolov Re-reading my comment, I see how it seems like I'm saying "Amazon, Google, and Facebook ONLY use NoSQL" when what I was trying to get across was that the services use NoSQL as an essential layer. This brings up an interesting point that SQL and NoSQL do not have to be used exclusively (although I believe this option is probably overkill for the situation the question presents).
Nov
8
comment What is the best designed open source game engine to take example?
@Joe Wreschnig It seems I was unclear in my last comment. I was basically recommending to look at 3rd party games built on an engine, instead of 1st party games. I agree that there are conceptual components that all engines share/have in common, but in terms of implementation those components end up being VERY different. For example, a resource manager for an FPS is very different than that of an RTS, even though, in theory, they perform the same function.
Nov
8
comment noSQL - Is it a valid option for web based game?
@Joe Wreschnig +1 for laying that out in a very easy to understand manner. Out of curiosity, is there any particular reason you don't think web-based games could benefit from NoSQL?
Nov
8
comment noSQL - Is it a valid option for web based game?
I strongly disagree that "the whole debate over SQL vs. NoSQL for game databases involves highly dynamic data" as there is a lot (if not more) static to moderately dynamic data that goes into games online/multiplayer games. Atomic operations happen at the (highest) document level, and since documents can be embedded within each other, there is less of a need for multi-document operations.
Nov
8
comment What is the best designed open source game engine to take example?
@Joe Wreschnig I'm inclined to agree with @Dani on this topic. Although all games are powered by some form of an engine, the architectural patterns used for a "one-off" engine and an engine designed to work on multiple titles are quite different, even if they both have scripting, resource management, 3D rendering, etc. components. Additionally, looking at the code for a game built on an engine developed by the same studio is probably not the wisest choice, as it will not give you a true indication of how flexible and easy to use the engine is in a 3rd party environment.
Nov
8
revised noSQL - Is it a valid option for web based game?
added 112 characters in body
Nov
8
comment noSQL - Is it a valid option for web based game?
Updated my answer to provide one possible model in NoSQL
Nov
8
revised noSQL - Is it a valid option for web based game?
added 689 characters in body; added 201 characters in body
Nov
8
comment noSQL - Is it a valid option for web based game?
1. You'd use: "for x in db.user.find({"level": {"$gt" : 30}})" 2. Technically, what you wrote is a script as well, so I'm not quite sure what your point is. 3. It is VERY possible to make an MMO using SQL, and in fact, many MMOs have been developed using the technology. NoSQL technology is fairly new and has already been adopted by services like Amazon, Google, and Facebook for it's performance and flexibility. 4. In NoSQL you would need to write your own constraints, but that's simply the cost of added flexibility.
Nov
8
answered noSQL - Is it a valid option for web based game?
Nov
8
revised How to model multiple “uses” (e.g. weapon) for usable-inventory/object/items (e.g. katana) within a relational database
Added more detail on non-relational vs relational databases to provide additional perspective
Nov
8
comment How to model multiple “uses” (e.g. weapon) for usable-inventory/object/items (e.g. katana) within a relational database
The points you bring up are very valid, and highlight additional examples of why relational databases are not a good fit for this specific situation. The model I presented merely shows the best way of laying out the data in such a manner that memory is conserved and SQL functionality is retained. In order to store items that are of multiple types, the best way to represent that data under this model would be to create a potion_weapon table with the appropriate potion and weapon properties. Again, this solution is NOT ideal, but it's the most elegant solution when using a relational database.
Nov
7
revised How to model multiple “uses” (e.g. weapon) for usable-inventory/object/items (e.g. katana) within a relational database
Corrected potion_type_id
Nov
7
comment How to model multiple “uses” (e.g. weapon) for usable-inventory/object/items (e.g. katana) within a relational database
Since (from my understanding) the game is multiplayer and supports PvP, there is a likelihood that most gameplay information is not stored on the client. If that is accurate, then every time data is read from the table, it will will have to be deserialized before being remotely useful. As a result, this format makes querying items by their properties VERY expensive; for example: if you want to retrieve all the items that are of type "weapon", you'd have to retrieve every item, deserialize each one, then manually filter for for the "weapon" type, as opposed to running a simple query.
Nov
7
revised How to model multiple “uses” (e.g. weapon) for usable-inventory/object/items (e.g. katana) within a relational database
added 47 characters in body
Nov
7
answered How to model multiple “uses” (e.g. weapon) for usable-inventory/object/items (e.g. katana) within a relational database
Nov
7
revised How to model multiple “uses” (e.g. weapon) for usable-inventory/object/items (e.g. katana) within a relational database
edited tags
Nov
6
revised How is game difficulty tested/balanced?
edited tags