数据库冒似国内的游戏客户端用得比较少, 我见的都是用excel自己转换的...
其实一直想在引擎里加个数据库, 但是这个跟游戏逻辑比较紧密, 就没搞...
不过, 可以确定的是, 脱离服务器运行的数据库最好的选择应该是SQLite
在用.Net做工具时正好要用, 于是查了一下, 找到两种解决方案:
把Northwind的数据库进来做了一个WPF的数据绑定DEMO:
<DockPanel> <ListBox Name="listCategory" ItemsSource="{Binding}" MinWidth="100" SelectedIndex="0"> <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding CategoryName}"></TextBlock> </DataTemplate> </ListBox.ItemTemplate> </ListBox> <StackPanel> <TextBox Text="{Binding SelectedItem.CategoryName, ElementName=listCategory}"></TextBox> <TextBox Text="{Binding SelectedItem.Description, ElementName=listCategory}"></TextBox> <Image Source="{Binding SelectedItem.Picture, ElementName=listCategory}"></Image> </StackPanel> </DockPanel>
如果追求功能强大与自动化, 可以选择后者.
前者的话需要自己去定义表格对应的class, 没有那么便利. 但是代码要简洁很多:
var db = new SQLiteConnection("Database/Northwind.db3"); var result = db.Query<Category>("select * from Categories"); this.DataContext = result;
对于没有怎么接触过ADO.NET的人来说, 这种直接的操作方式更好懂一些吧