Database for 1st Commercial Game (Access, SQL, SQLite?) Help?

Started by
24 comments, last by ROBERTREAD1 17 years, 5 months ago
I have a problem. I have a fairly data-centric game that it intended for Commercial Publication. With that in mind I can't use open-source and such so I was looking for some database options and am confused about some things. SQLite looked good, but I need to use C# and it seems that any easy way to use SQLite involved getting a wrapper that is not available for commercial use. So thats out unless there is something I am missing or dont know about. I am extremely SQL Server knowledgeable to the point of even being certified, so I looked at SQL Server Express Edition. Turns out its free even to redistribute BUT after going through the install and looking at it I just cannot comprehend deploying this as part of my game. Its simply way way too much no? Do any other games out there put SQL Server Express on your PC?? It is the replacement for MSDE but still. So I ruled that out. Should I reconsider? I thought perhaps MS Access, but I know zero about it. Never had to use it. So I had some questions about it. 1. If I have an Access database and use C# ADO.NET type access does the end-user need a copy of Access installed on their machine (I'm assuming so)? 2. If so can I redistribute some type of Access database viewer/reader etc. or how is this done for MS Access based applications (Sorry for the stupidity). What should I be using? I like the idea of data binding and such also.. Many Thanks.
Advertisement
1) Nope, they don't have to have Access installed for you to use a .mdb file, and they're very easy to connect to with .Net
2) As far as redistribution goes, its been a few years since I looked at it, but at the time it simply required owning a copy of one of the higher-end versions of Office (which was about $1000 at the time). Once you owned it, you could redistribute in an unlimited fashion.
"Game Programming" in an of itself does not exist. We learn to program and then use that knowledge to make games.
What isn't making sense to me is how come I can obtain a full fledged MS SQL Server for free and redistribute it for free, yet in order to redistribute a much "simpler" access database I have to pay $745 apparantly for what is now called "Microsoft Visual Studio 2005 Tools for the Microsoft Office System".

It looks like it does install some sort of access runtime module.

I'm reading an older MS article though

http://msdn2.microsoft.com/en-us/library/aa167800(office.11).aspx

It seems like I could just save $745 and just use SQL Server Express. What am I missing? (Though as I said above I can't imagine SQL is what other Game Developers are actually using).
I, too, am wondering if one can just write to a database file and not have to download SQL Server or even have the user need Access installed. The initial response seems like one can use a plain .mdb and not have to have the user download SQL Server or have Access installed. If so, yea!

Beginner in Game Development?  Read here. And read here.

 

Different businesses make different decisions. Microsoft is a very large corporation, with lots of departments that don't always talk to each other.

If you think your game can include MS SQL Server Express, then you can include that. However, I would recommend against it -- users don't like having arbitrary services (with known vulnerabilities) installed on their machines!

I would recommend going with SQLite. If all you need is to run SQL text, and get an array of array of strings back, the API is really simple to wrap.

Or, perhaps even better, develop the data in SQL, but flatten it out to a big binary file that you load into RAM. Then run your queries in RAM the old-fashioned way (linear scanning) -- it'll probably be faster than a SQL database, unless you're talking hundreds of megabytes of game data.
enum Bool { True, False, FileNotFound };
Quote:Original post by hplus0603
Different businesses make different decisions. Microsoft is a very large corporation, with lots of departments that don't always talk to each other.

If you think your game can include MS SQL Server Express, then you can include that. However, I would recommend against it -- users don't like having arbitrary services (with known vulnerabilities) installed on their machines!

I would recommend going with SQLite. If all you need is to run SQL text, and get an array of array of strings back, the API is really simple to wrap.

Or, perhaps even better, develop the data in SQL, but flatten it out to a big binary file that you load into RAM. Then run your queries in RAM the old-fashioned way (linear scanning) -- it'll probably be faster than a SQL database, unless you're talking hundreds of megabytes of game data.


I need ADO.NET and .NET 2.0 Data Binding support.
Have you considered MySQL? That's where I am headed.


EDIT: Sorry, just read the open source problem.

:)
I would advise a word of caution using Access, as I have run into issues from machine to machine, depending on the libraries they have or even the versions of Access they have (if they have it).

I would also advise against installing SQL Server and/or MySQL on the end user's machines, especially for a game. No one appreciates having to require such large services on their machines for a game.
Quote:Original post by Flimflam
I would advise a word of caution using Access, as I have run into issues from machine to machine, depending on the libraries they have or even the versions of Access they have (if they have it).

I would also advise against installing SQL Server and/or MySQL on the end user's machines, especially for a game. No one appreciates having to require such large services on their machines for a game.

Since you effectively annilihated all the options [smile], what do you suggest?

Beginner in Game Development?  Read here. And read here.

 

Quote:Original post by Alpha_ProgDes
Quote:Original post by Flimflam
I would advise a word of caution using Access, as I have run into issues from machine to machine, depending on the libraries they have or even the versions of Access they have (if they have it).

I would also advise against installing SQL Server and/or MySQL on the end user's machines, especially for a game. No one appreciates having to require such large services on their machines for a game.

Since you effectively annilihated all the options [smile], what do you suggest?


Ah, true =) I'm at work and in a rather big hurry to get my rounds done online. The Paranoia of SCEA is somewhat scary sometimes, especially with the PS3 release coming.

Personally, I haven't done much data storage in C# or any .NET language really. I wrote a simple inventory management system for someone to help manage their eBay store inventory, and I used Access there. Decided I'd never do that again when it came to using the program on machines other than mine.

I honestly don't know much more on what to use. I'd probably look into a free wrapper for SQLite, or write his own wrapper. The library is pretty nice.

This topic is closed to new replies.

Advertisement