What's a quick way to get a database going for a .net text-based game?

Started by
6 comments, last by Carsten Germer 9 years, 10 months ago

i'm toying around with doing a text-based game in a GUI format using C#. I'd like to use data tables from a server.

I used SQLite with C in the past. It was okay. Since SQLite is meant to be read locally, I was able to download the database from the server and read it locally. As you can imagine, that can be a security issue when there's quite a few players downloading the latest database to the local machine. It was nice for my purpose before.

I'm wanting an easy way to keep the data tables on the server, and that I can read/write to it. I'm using Visual C# 2010 Professional (VS 2013 Express also available).

To start with, I just basically want a database file on my website, have a few tables with a few columns, access it with a password, and read/write using queries. What are some good options?

Advertisement

I wouldn't do it that way at all, it'll be full of security holes if you're accessing the database directly from the client.

However, mysql (www.mysql.com) would be the immediate replacement for sqllite. There are other options, but mysql is a reasonable first step up from sqllite.

As I said, I wouldn't recommend doing it this way. Instead write a simple server application that performs the necessary database queries in response to messages from the client, so that people don't have direct access to the database.

n!

I completely agree with nfactorial,

Write a set of simple services that interact with the database as needed on behalf of your client app.

For some quick service development perhaps take a look at ASP.NET WebAPI for the server side... Of course, then you have to secure those services, you may need to have a set of services to allow each player register a username and password and require this authentication before allowing any interaction with the services that talk to the database.

Justin Stenning | Blog | Book - Direct3D Rendering Cookbook (using C# and SharpDX)

Projects: Direct3D Hook, EasyHook, Shared Memory (IPC), SharpDisasm (x86/64 disassembler in C#)

@spazzarama

 

You could use a third party BAAS solution such as parse or you could crete a REST API to interact with your server DB.

Thanks for the thoughts. So, using ADO.Net to access MySQL in the same app is not preferred? The use of a second application doing the database calls is an interesting thought, and I can see how it would be more secure. Lot of choices.

Why do you want a database at all? It seems like an utterly inappropriate tool for what you want to build.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Yeah, I'm starting to ask myself the same. I could use the experience, but that's about it.

What are you trying to do more exactly, shinypixel? ("...that I can read/write to it")

Reading sounds like requesting a file with the normal methods (HTTP/S).

"...that can be a security issue..." but it's usually not. You have to take care that your webserver software is uptodate and your configuration doesn't leave any vulnerabilities. That's very achievable and much can be learned by reading docs and forums.

"Write" on the other hand is a bit more tricky. I agree with nfactorial and spazzarama, that suggets a proper API (REST*, RPC) with access control. On the other hand, that is not as difficult as it may seem, because it has been done many times before. You'll find lots of information on the net and you can learn a great deal.

If you are not set on Microsoft technologies for your backend, I'd suggest Apache/MySQL/PHP (WAMP, MAMP, LAMP). It's easy to set up, get into and have quick results when prototyping.

This topic is closed to new replies.

Advertisement