<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Save games</title>
	<atom:link href="http://www.vectorstorm.org/2009/09/29/save-games/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vectorstorm.org/2009/09/29/save-games/</link>
	<description>Creating games, one brightly glowing line at a time.</description>
	<lastBuildDate>Sun, 29 Jan 2012 11:47:27 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: trevor</title>
		<link>http://www.vectorstorm.org/2009/09/29/save-games/comment-page-1/#comment-1080</link>
		<dc:creator>trevor</dc:creator>
		<pubDate>Sat, 03 Oct 2009 13:23:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.vectorstorm.org/?p=857#comment-1080</guid>
		<description>@Marte:  The basic idea is to have each bit of data on an object be identified by a text string.  That way, if the data is in an unexpected order in a save file, or if some pieces are missing or extra unknown data is in the file, the game can recognise that and handle the situation nicely;  extra data in the save file can automatically be ignored, data missing from the save file will &quot;load&quot; a default value, etc.  This gives lots of flexibility for save file loading, between different versions of the game!

I have a screenshot showing a part of this saved data in my latest blog post;  if you take a look at that, you should get a good idea of how all this will work.</description>
		<content:encoded><![CDATA[<p>@Marte:  The basic idea is to have each bit of data on an object be identified by a text string.  That way, if the data is in an unexpected order in a save file, or if some pieces are missing or extra unknown data is in the file, the game can recognise that and handle the situation nicely;  extra data in the save file can automatically be ignored, data missing from the save file will &#8220;load&#8221; a default value, etc.  This gives lots of flexibility for save file loading, between different versions of the game!</p>
<p>I have a screenshot showing a part of this saved data in my latest blog post;  if you take a look at that, you should get a good idea of how all this will work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marte</title>
		<link>http://www.vectorstorm.org/2009/09/29/save-games/comment-page-1/#comment-1074</link>
		<dc:creator>Marte</dc:creator>
		<pubDate>Thu, 01 Oct 2009 12:54:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.vectorstorm.org/?p=857#comment-1074</guid>
		<description>How do you think to manage changing of saving format?</description>
		<content:encoded><![CDATA[<p>How do you think to manage changing of saving format?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: trevor</title>
		<link>http://www.vectorstorm.org/2009/09/29/save-games/comment-page-1/#comment-1073</link>
		<dc:creator>trevor</dc:creator>
		<pubDate>Thu, 01 Oct 2009 12:20:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.vectorstorm.org/?p=857#comment-1073</guid>
		<description>@Dan:  C# doesn&#039;t have good cross-platform support, currently.  The Mono project does exist, but it&#039;s not supported well enough for me to feel comfortable using it for anything non-Windows, yet.

In the end, I&#039;ve chosen to set up a system whereby I can declare the particular member variables that I&#039;m interested in saving/loading, and subsequently have those bits of data managed automatically by the save/load code.  This is integrated nicely with an object factory, to make the load doubly-painless.  It also easily allows for these variables to be changed, moved, added, removed, or renamed, and still being able to load older save files, without much extra work on my part to support them. 

@Marte:  Yeah, switching to a text-based save file format is a really good idea, and it&#039;s what I&#039;m intending to do.  I haven&#039;t decided whether to use something like XML or a simpler text format matching most of my current data files (possibly then zipped or gzipped, to compensate for the larger file size of text);  I&#039;ll have to think about this.  But both MMORPG Tycoon 1.0 and 1.1 had binary save files which were extremely non-human-readable.. and I really don&#039;t want to do that again.</description>
		<content:encoded><![CDATA[<p>@Dan:  C# doesn&#8217;t have good cross-platform support, currently.  The Mono project does exist, but it&#8217;s not supported well enough for me to feel comfortable using it for anything non-Windows, yet.</p>
<p>In the end, I&#8217;ve chosen to set up a system whereby I can declare the particular member variables that I&#8217;m interested in saving/loading, and subsequently have those bits of data managed automatically by the save/load code.  This is integrated nicely with an object factory, to make the load doubly-painless.  It also easily allows for these variables to be changed, moved, added, removed, or renamed, and still being able to load older save files, without much extra work on my part to support them. </p>
<p>@Marte:  Yeah, switching to a text-based save file format is a really good idea, and it&#8217;s what I&#8217;m intending to do.  I haven&#8217;t decided whether to use something like XML or a simpler text format matching most of my current data files (possibly then zipped or gzipped, to compensate for the larger file size of text);  I&#8217;ll have to think about this.  But both MMORPG Tycoon 1.0 and 1.1 had binary save files which were extremely non-human-readable.. and I really don&#8217;t want to do that again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marte</title>
		<link>http://www.vectorstorm.org/2009/09/29/save-games/comment-page-1/#comment-1072</link>
		<dc:creator>Marte</dc:creator>
		<pubDate>Thu, 01 Oct 2009 10:08:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.vectorstorm.org/?p=857#comment-1072</guid>
		<description>Hi!
I&#039;m following your progress and your problem with save game is quite intersting.
Implementing reflections in c++ can be really difficult, maybe you can try to find a sort fo XStream (made for java) in c++?
But my comment is about how to mantain this kind of incremental and not-incremental informations.
IMHO is a big problem, and for me a solution can be to save into an archive (zip or whatever you want) not ONE big file, but many files: one for configurations, one for player status, one for world status, one for statistics and so on..
So changes can be managed more easly and, when you move into new version, identify with more detail what do you change or not.
Now, i don&#039;t know your system (i&#039;m a Java programmer), but i think that using Singleton,Factory, Business Delegate patterns on loading/saving this kind of information can help you a lot to keep control on your save/load subsystem. In particular maybe using not binary file but text file in one format (xml,csv, etc..) can help you into debug phase.
Image to move from 1.0 to 1.1: if some of your users have some problems with save file, you can say &quot;please send me your save file&quot;. If this file is human-readable, you can compare with many programs with your &quot;skeleton&quot; or &quot;example save file&quot; and find problem not on skeleton but into values.

What do you think?</description>
		<content:encoded><![CDATA[<p>Hi!<br />
I&#8217;m following your progress and your problem with save game is quite intersting.<br />
Implementing reflections in c++ can be really difficult, maybe you can try to find a sort fo XStream (made for java) in c++?<br />
But my comment is about how to mantain this kind of incremental and not-incremental informations.<br />
IMHO is a big problem, and for me a solution can be to save into an archive (zip or whatever you want) not ONE big file, but many files: one for configurations, one for player status, one for world status, one for statistics and so on..<br />
So changes can be managed more easly and, when you move into new version, identify with more detail what do you change or not.<br />
Now, i don&#8217;t know your system (i&#8217;m a Java programmer), but i think that using Singleton,Factory, Business Delegate patterns on loading/saving this kind of information can help you a lot to keep control on your save/load subsystem. In particular maybe using not binary file but text file in one format (xml,csv, etc..) can help you into debug phase.<br />
Image to move from 1.0 to 1.1: if some of your users have some problems with save file, you can say &#8220;please send me your save file&#8221;. If this file is human-readable, you can compare with many programs with your &#8220;skeleton&#8221; or &#8220;example save file&#8221; and find problem not on skeleton but into values.</p>
<p>What do you think?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Haraj</title>
		<link>http://www.vectorstorm.org/2009/09/29/save-games/comment-page-1/#comment-1071</link>
		<dc:creator>Dan Haraj</dc:creator>
		<pubDate>Thu, 01 Oct 2009 03:36:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.vectorstorm.org/?p=857#comment-1071</guid>
		<description>I hope you don&#039;t try to implement reflection in C++. That way lies folly. If you need reflection, perhaps it&#039;s time to migrate to a language like C#. It should still meet your other needs adequately, no?</description>
		<content:encoded><![CDATA[<p>I hope you don&#8217;t try to implement reflection in C++. That way lies folly. If you need reflection, perhaps it&#8217;s time to migrate to a language like C#. It should still meet your other needs adequately, no?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Awesome Dino</title>
		<link>http://www.vectorstorm.org/2009/09/29/save-games/comment-page-1/#comment-1070</link>
		<dc:creator>Awesome Dino</dc:creator>
		<pubDate>Wed, 30 Sep 2009 14:14:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.vectorstorm.org/?p=857#comment-1070</guid>
		<description>Call upon the Programming God and tell him to do everything for you because you&#039;re too awesome.</description>
		<content:encoded><![CDATA[<p>Call upon the Programming God and tell him to do everything for you because you&#8217;re too awesome.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

