Jump to content

  • Log In with Google      Sign In   
  • Create Account


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


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
7 replies to this topic

#1 shinypixel   Members   -  Reputation: 148

Like
0Likes
Like

Posted 05 June 2014 - 12:54 AM

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?



Sponsor:

#2 nfactorial   Members   -  Reputation: 727

Like
2Likes
Like

Posted 05 June 2014 - 01:41 AM

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!


Edited by nfactorial, 05 June 2014 - 01:41 AM.


#3 spazzarama   Members   -  Reputation: 599

Like
1Likes
Like

Posted 05 June 2014 - 01:51 AM

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.


Edited by spazzarama, 05 June 2014 - 01:55 AM.

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

Projects: Direct3D Hook, EasyHookAfterglow, C#raft

@spazzarama

 

#4 Buster2000   Members   -  Reputation: 1585

Like
0Likes
Like

Posted 05 June 2014 - 05:28 AM

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



#5 shinypixel   Members   -  Reputation: 148

Like
0Likes
Like

Posted 05 June 2014 - 11:27 AM

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.



#6 ApochPiQ   Moderators   -  Reputation: 14672

Like
1Likes
Like

Posted 05 June 2014 - 12:32 PM

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



#7 shinypixel   Members   -  Reputation: 148

Like
0Likes
Like

Posted 05 June 2014 - 05:21 PM

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



#8 Carsten Germer   Members   -  Reputation: 1116

Like
0Likes
Like

Posted 06 June 2014 - 04:16 AM

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.






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS