to save all the level scores, and it works fine 95% of the time, saving and loading as required, but then it'll crash on this bit for no obvious reason:
public static HighScoreData LoadHighScores(string filename)
{
HighScoreData data;
// Get the path of the save game
string fullpath = Path.Combine(StorageContainer.TitleLocation, filename);
// Open the file
FileStream stream = File.Open(fullpath, FileMode.OpenOrCreate,
FileAccess.Read);
try
{
// Read the data from the file
XmlSerializer serializer = new XmlSerializer(typeof(HighScoreData));
data = (HighScoreData)serializer.Deserialize(stream);
}
finally
{
// Close the file
stream.Close();
}
return (data);
}
after that the savefile seems to be useless (like it's corrupted) and I have to delete it before I can run the program again.
to save all the level scores, and it works fine 95% of the time, saving and loading as required, but then it'll crash on this bit for no obvious reason:
public static HighScoreData LoadHighScores(string filename)
{
HighScoreData data;
// Get the path of the save game
string fullpath = Path.Combine(StorageContainer.TitleLocation, filename);
// Open the file
FileStream stream = File.Open(fullpath, FileMode.OpenOrCreate,
FileAccess.Read);
try
{
// Read the data from the file
XmlSerializer serializer = new XmlSerializer(typeof(HighScoreData));
data = (HighScoreData)serializer.Deserialize(stream);
}
finally
{
// Close the file
stream.Close();
}
return (data);
}
after that the savefile seems to be useless (like it's corrupted) and I have to delete it before I can run the program again.
Any ideas?
Have you actually looked at the save file in a text editor after the error? I had a problem where I was overwriting a save file, but if the new save took up fewer characters, the file would not truncate to the length of the new save.
E.g. abcdefgh is the old save, and the new save is 1234, your new save file looks like 1234efgh.
It didn't crash when saving, but it sure didn't like it when I loaded it. Maybe the XML Serializer is having the same problem?
EDIT:
As a disclaimer, I have not used the XML Serializer before.
After seeing people post their save/load code I feel I need to post two bits of advice:
Stop relying on the XML Serializer. Using BinaryReader and BinaryWriter isn't that hard, and you'll have much more control over what happens (which also makes debugging a lot easier)
to save all the level scores, and it works fine 95% of the time, saving and loading as required, but then it'll crash on this bit for no obvious reason:
public static HighScoreData LoadHighScores(string filename)
{
HighScoreData data;
// Get the path of the save game
string fullpath = Path.Combine(StorageContainer.TitleLocation, filename);
// Open the file
FileStream stream = File.Open(fullpath, FileMode.OpenOrCreate,
FileAccess.Read);
try
{
// Read the data from the file
XmlSerializer serializer = new XmlSerializer(typeof(HighScoreData));
data = (HighScoreData)serializer.Deserialize(stream);
}
finally
{
// Close the file
stream.Close();
}
return (data);
}
after that the savefile seems to be useless (like it's corrupted) and I have to delete it before I can run the program again.
Have you actually looked at the save file in a text editor after the error? I had a problem where I was overwriting a save file, but if the new save took up fewer characters, the file would not truncate to the length of the new save.
Stupidly I hadn't checked the file itself and you're very much on the right track - the overwritten numbers grow and shrink properly (ie. <int>83000</int> can be overwritten sucessfully by <int>567</int>) but for some reason the last line of the file ('</HighScoreData>') ends up with some extra text at the end when a shorter number replaces a longer one (ie.it becomes '</HighScoreData>eData>') . Weird. I can probably solve this by making the scores a fixed length, but if anyone knows why this is happening I'd be happy to hear it!
Have you actually looked at the save file in a text editor after the error? I had a problem where I was overwriting a save file, but if the new save took up fewer characters, the file would not truncate to the length of the new save.
Stupidly I hadn't checked the file itself and you're very much on the right track - the overwritten numbers grow and shrink properly (ie. <int>83000</int> can be overwritten sucessfully by <int>567</int>) but for some reason the last line of the file ('</HighScoreData>') ends up with some extra text at the end when a shorter number replaces a longer one (ie.it becomes '</HighScoreData>eData>') . Weird. I can probably solve this by making the scores a fixed length, but if anyone knows why this is happening I'd be happy to hear it!
Anyway, good work templewulf! I owe you one.
Hey, no problem! Just make sure you actually finish your game, unlike me.
As for the reasoning, I think savioopeerd is actually on the right track. If I remember correctly, it has something to do with the way you open the file. One mode just deletes the whole thing and starts over, whereas the other just overwrites characters as they come. I trust someone else in here might remember the details a bit better.
Have you actually looked at the save file in a text editor after the error? I had a problem where I was overwriting a save file, but if the new save took up fewer characters, the file would not truncate to the length of the new save.
Stupidly I hadn't checked the file itself and you're very much on the right track - the overwritten numbers grow and shrink properly (ie. <int>83000</int> can be overwritten sucessfully by <int>567</int>) but for some reason the last line of the file ('</HighScoreData>') ends up with some extra text at the end when a shorter number replaces a longer one (ie.it becomes '</HighScoreData>eData>') . Weird. I can probably solve this by making the scores a fixed length, but if anyone knows why this is happening I'd be happy to hear it!
Anyway, good work templewulf! I owe you one.
Hey, no problem! Just make sure you actually finish your game, unlike me.
As for the reasoning, I think savioopeerd is actually on the right track. If I remember correctly, it has something to do with the way you open the file. One mode just deletes the whole thing and starts over, whereas the other just overwrites characters as they come. I trust someone else in here might remember the details a bit better.
FileMode.Truncate is likely what he's looking for.
I got it working perfactly on the PC, but today I carted my Xbox upstairs and tried deploying on that and it crashed straight away. I might try using savooipeerd's 'BinaryReader and BinaryWriter' method if I can't work out what's going wrong.
I'm completely out of my depth with this saving and loading malarky.
So we missed the deadline for submitting Breath of Death VII: The Beginning to Dream-Build-Play 2010. Another week or two and we probably would have made, but c'est la vie.
On the plus side, we should have a trailer for the game up and ready sometime this week. Look forward to it.
> So we missed the deadline for submitting Breath of Death VII: The Beginning to Dream-Build-Play 2010.
> Another week or two and we probably would have made, but c'est la vie.
That's a shame. Was it not possible to submit what you've got? A lot of people submitted games with only the first few levels done; I submitted my game, and it is only about 60% complete.
Yet another reason not to use XML serialisation; I nearly missed the submission, and guess what, it was due to the XML content pipeline (which Ltrees uses) screwing up and completely trashing the build environment when I switched to 'release' mode instead of 'debug mode'. Even recovering from backups didn't fix it, I had to improvise a non-XML alternative to fix the problem.
That's a shame. Was it not possible to submit what you've got? A lot of people submitted games with only the first few levels done; I submitted my game, and it is only about 60% complete
We thought about it, but in the end, it just didn't work out. A few relatively small but still important parts of the game are still missing which would make creating a functional demo difficult to make at the moment. Shouldn't take much more time to add all of them (especially since I have a 4 day weekend coming up), but that's time we didn't have then.
> So we missed the deadline for submitting Breath of Death VII: The Beginning to Dream-Build-Play 2010.
> Another week or two and we probably would have made, but c'est la vie.
That's a shame. Was it not possible to submit what you've got? A lot of people submitted games with only the first few levels done; I submitted my game, and it is only about 60% complete.
Yet another reason not to use XML serialisation; I nearly missed the submission, and guess what, it was due to the XML content pipeline (which Ltrees uses) screwing up and completely trashing the build environment when I switched to 'release' mode instead of 'debug mode'. Even recovering from backups didn't fix it, I had to improvise a non-XML alternative to fix the problem.
Breath of Death VII: The Beginning trailer is live!
<snip></snip>
Looks great. Best birthday present ever!
Sebbie on
"It's funny that pirates were always going around searching for treasure, and they never realized that the real treasure was the fond memories they were creating."
Yes. For DBP I pretty much submitted the playable prototype. All the assets (textures, voice acting etc) will need to be redone for the final release.
The Breath of Death trailer is encouraging. I was concerned that the combat / levelling system would be too simplified, like NES era games, but it looks like there is some depth to it.
Do you have any plans for how to do the trial mode in BoD? Not needed for the people here who know all about the game, but in the Xbox marketplace, you need a trial mode for people browsing. RPGs are a difficult fit with the default '8 minute time limit' behavior, because it takes a while to get into most of them.
Here are the major changes we made from traditional 8-bit RPGs as far as gameplay goes.
1 - Combo system. Each hit increase the combo count. High combo count results in boosted effects on some skills & more MP restored at the end of battle. Some abilities (like most heal spells) reset the count to 0.
2 - After each turn in combat, the enemy stats increase slightly (10%). I thought this was a good idea to give a pressing nature to combat (boss battles in particular) without resorting to cheap tactics like surprise techniques when bosses are low on HP.
3 - Every LV-Up, you're given a choice between 2 bonuses, depending on the LV & character. It might be a stat bonus, it might be passive abilities, it might be a new spell or technique. For example, for the first LV-Up in the game, you can choose between Fire Flurry (a weaker multi-hit spell that boosts the combo count quicker) or Fireball (a single more powerful spell). A few choices will even affect your choices down the road, for instance with that same example, there are 2 evolved forms of each of those spells that you'll be able to gain later depending on your initial choice.
4 - Random battles, but after fighting a certain # of battles in one area, you gain a reputation for that area and random battles stop occuring there. You can still choose to fight if you want by selecting Fight from the main menu.
As for the 8-min demo, we've taken that into account. The game starts in the first dungeon which is tiny. 1 joke battle (w//LV-Up after), 1 boss battle (another LV-Up), then off to the world map and the 1st town where you meet your 1st ally. Demo time will probably run out soon after. Hopefully the rapid progression, humor, and taste of different areas will encourage people to want to buy the game. Plus it's only $1 - at that price, many fans of the genre might buy it without even trying it out.
2 - After each turn in combat, the enemy stats increase slightly (10%). I thought this was a good idea to give a pressing nature to combat (boss battles in particular) without resorting to cheap tactics like surprise techniques when bosses are low on HP.
Is there a cap to these increases or a way to reset them via spells or other abilities?
4 - Random battles, but after fighting a certain # of battles in one area, you gain a reputation for that area and random battles stop occuring there. You can still choose to fight if you want by selecting Fight from the main menu.
I love this idea
Sebbie on
"It's funny that pirates were always going around searching for treasure, and they never realized that the real treasure was the fond memories they were creating."
2 - After each turn in combat, the enemy stats increase slightly (10%). I thought this was a good idea to give a pressing nature to combat (boss battles in particular) without resorting to cheap tactics like surprise techniques when bosses are low on HP.
Is there a cap to these increases or a way to reset them via spells or other abilities?
Not at the moment but I think I'll set a cap at double strength (11th round).
Also, it doesn't boost defensive stats of enemies since I didn't want to punish the player too much.
Eh.. I did it like that on purpose. I just felt like some things needed to be capitalized. Like "The Living." And also "Rise from your Gwave" is capitalized because it's a reference. Epic Journey is an Epic Journey. Not a mere epic journey. The World of the Undead isn't just a mere world. You get the point.
Eh.. I did it like that on purpose. I just felt like some things needed to be capitalized. Like "The Living." And also "Rise from your Gwave" is capitalized because it's a reference. Epic Journey is an Epic Journey. Not a mere epic journey. The World of the Undead isn't just a mere world. You get the point.
Fair enough. The next trailer will be less talk and more gameplay anyway, since we'll be closer to finishing the game.
I spent a long time trying to make that post sound less dickish, and I think I sheared off some necessary content. In retrospect I sorta sound like an ass. I'm totally buying the game anyway!
OK, I could use "System" font or the font we're using in-game for the next trailer. Would either of those be good? What about the color, something other than Yellow?
We're trying to keep our ears open to reactions to our concept and try and figure out ways to get the idea out there better. It's nice to see that a fair number of people are getting the concept and are amenable to it for the $1 price tag.
I've had this project in mind for over ten years now. My best friend and I have been bouncing ideas off each other for all this time, and it is perhaps the one project for which my enthusiasm has never waned at all.
Now, I don't know if this represents a serious effort to actually make it. I graduate at the end of the semester and am heading into the job market. My whole future is really fucking nebulous at this point, but good god almighty, this game will be made eventually. In years past I always expected to put it off until I was in the gaming industry with a team of people working for me. Ironically, now that I am closer than ever before to that goal, I'm beginning to suspect I might not need to.
So who knows. I've made crude engines for the project before, but that was when I was starting out with XNA and didn't know much.
Like I said, though, this project is over 10 years old. So that probably gives some idea about my dedication to it.
We're trying to keep our ears open to reactions to our concept and try and figure out ways to get the idea out there better. It's nice to see that a fair number of people are getting the concept and are amenable to it for the $1 price tag.
I like the people who say the game is using an illegal copy of RPGMaker.
I like the people who say the game is using an illegal copy of RPGMaker.
Haha, I know :P
Honestly I'm pretty happy with the responses we got there. Back when the trailer for SoulCaster, the 8-bit style tower defense / rpg game came out on Gametrailers, the commenters there went crazy and ripped it apart.
I'm just glad that the Gametrailers viewers get the fact that it's supposed to be funny/silly and it's intentionally retro and that it's an Indie game (not some major XBL arcade release).
As a side note speaking of SoulCaster, once Tycho favorably mentioned it on the front page, the Gametrailers video for the game got a big boost of favorable comments and scoring. I think it's pretty cool of Tycho to mention an Xbox Live Indie game, since this service doesn't really get a whole lot of attention (outside of I Mad3 a Ga3m).
Yeah, i was inspired to DL Soulcaster and quite a few other Indie games when he linked it... And then after buying them my heart was broken once i realized i couldnt play them offline.
Wow, that was a bit of a kick in the dick.
It may inspire me to finally hack a router though.
* New features
o Integrates with Visual Studio 2010
o Dynamic audio output
o Microphone input
o BasicEffect has four new siblings
+ SkinnedEffect
+ EnvironmentMapEffect
+ DualTextureEffect
+ AlphaTestEffect
* Improved portability and usability
o Collapsed graphics caps into just two profile levels: Reach and HiDef
o Many graphics API improvements
o This involves some breaking API changes
o Split Microsoft.Xna.Framework.dll into several assemblies, to make it more obvious which pieces are available on each platform
Posts
http://www.xnawiki.com/index.php?title=How_do_I_handle_high_scores%3F
to save all the level scores, and it works fine 95% of the time, saving and loading as required, but then it'll crash on this bit for no obvious reason:
{
HighScoreData data;
// Get the path of the save game
string fullpath = Path.Combine(StorageContainer.TitleLocation, filename);
// Open the file
FileStream stream = File.Open(fullpath, FileMode.OpenOrCreate,
FileAccess.Read);
try
{
// Read the data from the file
XmlSerializer serializer = new XmlSerializer(typeof(HighScoreData));
data = (HighScoreData)serializer.Deserialize(stream);
}
finally
{
// Close the file
stream.Close();
}
return (data);
}
after that the savefile seems to be useless (like it's corrupted) and I have to delete it before I can run the program again.
Any ideas?
Have you actually looked at the save file in a text editor after the error? I had a problem where I was overwriting a save file, but if the new save took up fewer characters, the file would not truncate to the length of the new save.
E.g. abcdefgh is the old save, and the new save is 1234, your new save file looks like 1234efgh.
It didn't crash when saving, but it sure didn't like it when I loaded it. Maybe the XML Serializer is having the same problem?
EDIT:
As a disclaimer, I have not used the XML Serializer before.
I'm not sure, but I would try changing this:
to this:
Stupidly I hadn't checked the file itself and you're very much on the right track - the overwritten numbers grow and shrink properly (ie. <int>83000</int> can be overwritten sucessfully by <int>567</int>) but for some reason the last line of the file ('</HighScoreData>') ends up with some extra text at the end when a shorter number replaces a longer one (ie.it becomes '</HighScoreData>eData>') . Weird. I can probably solve this by making the scores a fixed length, but if anyone knows why this is happening I'd be happy to hear it!
Anyway, good work templewulf! I owe you one.
I tried it, but the same thing happened (see above).
Hey, no problem! Just make sure you actually finish your game, unlike me.
As for the reasoning, I think savioopeerd is actually on the right track. If I remember correctly, it has something to do with the way you open the file. One mode just deletes the whole thing and starts over, whereas the other just overwrites characters as they come. I trust someone else in here might remember the details a bit better.
FileMode.Truncate is likely what he's looking for.
I got it working perfactly on the PC, but today I carted my Xbox upstairs and tried deploying on that and it crashed straight away. I might try using savooipeerd's 'BinaryReader and BinaryWriter' method if I can't work out what's going wrong.
I'm completely out of my depth with this saving and loading malarky.
On the plus side, we should have a trailer for the game up and ready sometime this week. Look forward to it.
Zeboyd Games Development Blog
Steam ID : rwb36, Twitter : Werezompire, Facebook : Zeboyd Games
> Another week or two and we probably would have made, but c'est la vie.
That's a shame. Was it not possible to submit what you've got? A lot of people submitted games with only the first few levels done; I submitted my game, and it is only about 60% complete.
Yet another reason not to use XML serialisation; I nearly missed the submission, and guess what, it was due to the XML content pipeline (which Ltrees uses) screwing up and completely trashing the build environment when I switched to 'release' mode instead of 'debug mode'. Even recovering from backups didn't fix it, I had to improvise a non-XML alternative to fix the problem.
Teaser trailer / DBP trailer;
http://www.youtube.com/watch?v=Q2Zb_usd7Os
We thought about it, but in the end, it just didn't work out. A few relatively small but still important parts of the game are still missing which would make creating a functional demo difficult to make at the moment. Shouldn't take much more time to add all of them (especially since I have a 4 day weekend coming up), but that's time we didn't have then.
Zeboyd Games Development Blog
Steam ID : rwb36, Twitter : Werezompire, Facebook : Zeboyd Games
http://www.youtube.com/watch?v=nZ9pYB8J9Nc&feature=player_embedded
That's quite unusual for XBLAIG isn't it?
This game almost looked more-than Arcade worthy on release, with this new extra content adding variety it really should be owned by more folks.
http://www.youtube.com/watch?v=yDAj48iq4w8
Zeboyd Games Development Blog
Steam ID : rwb36, Twitter : Werezompire, Facebook : Zeboyd Games
Looks great. Best birthday present ever!
Love it.
Especially the "miserable pile of secrets".
Yes. For DBP I pretty much submitted the playable prototype. All the assets (textures, voice acting etc) will need to be redone for the final release.
The Breath of Death trailer is encouraging. I was concerned that the combat / levelling system would be too simplified, like NES era games, but it looks like there is some depth to it.
Do you have any plans for how to do the trial mode in BoD? Not needed for the people here who know all about the game, but in the Xbox marketplace, you need a trial mode for people browsing. RPGs are a difficult fit with the default '8 minute time limit' behavior, because it takes a while to get into most of them.
1 - Combo system. Each hit increase the combo count. High combo count results in boosted effects on some skills & more MP restored at the end of battle. Some abilities (like most heal spells) reset the count to 0.
2 - After each turn in combat, the enemy stats increase slightly (10%). I thought this was a good idea to give a pressing nature to combat (boss battles in particular) without resorting to cheap tactics like surprise techniques when bosses are low on HP.
3 - Every LV-Up, you're given a choice between 2 bonuses, depending on the LV & character. It might be a stat bonus, it might be passive abilities, it might be a new spell or technique. For example, for the first LV-Up in the game, you can choose between Fire Flurry (a weaker multi-hit spell that boosts the combo count quicker) or Fireball (a single more powerful spell). A few choices will even affect your choices down the road, for instance with that same example, there are 2 evolved forms of each of those spells that you'll be able to gain later depending on your initial choice.
4 - Random battles, but after fighting a certain # of battles in one area, you gain a reputation for that area and random battles stop occuring there. You can still choose to fight if you want by selecting Fight from the main menu.
As for the 8-min demo, we've taken that into account. The game starts in the first dungeon which is tiny. 1 joke battle (w//LV-Up after), 1 boss battle (another LV-Up), then off to the world map and the 1st town where you meet your 1st ally. Demo time will probably run out soon after. Hopefully the rapid progression, humor, and taste of different areas will encourage people to want to buy the game. Plus it's only $1 - at that price, many fans of the genre might buy it without even trying it out.
Zeboyd Games Development Blog
Steam ID : rwb36, Twitter : Werezompire, Facebook : Zeboyd Games
Is there a cap to these increases or a way to reset them via spells or other abilities?
I love this idea
Not at the moment but I think I'll set a cap at double strength (11th round).
Also, it doesn't boost defensive stats of enemies since I didn't want to punish the player too much.
Zeboyd Games Development Blog
Steam ID : rwb36, Twitter : Werezompire, Facebook : Zeboyd Games
:P
Steam ID: slashx000______Twitter: @bill_at_zeboyd______ Facebook: Zeboyd Games
Steam ID: slashx000______Twitter: @bill_at_zeboyd______ Facebook: Zeboyd Games
I get it. I just don't agree with it.
Steam ID: slashx000______Twitter: @bill_at_zeboyd______ Facebook: Zeboyd Games
Something blockier and 8-bittier would be better.
I spent a long time trying to make that post sound less dickish, and I think I sheared off some necessary content. In retrospect I sorta sound like an ass. I'm totally buying the game anyway!
Steam ID: slashx000______Twitter: @bill_at_zeboyd______ Facebook: Zeboyd Games
SD version here:
http://www.gametrailers.com/video/debut-trailer-breath-of/62847
HD version here:
http://www.gametrailers.com/video/debut-trailer-breath-of/62848
We're trying to keep our ears open to reactions to our concept and try and figure out ways to get the idea out there better. It's nice to see that a fair number of people are getting the concept and are amenable to it for the $1 price tag.
Steam ID: slashx000______Twitter: @bill_at_zeboyd______ Facebook: Zeboyd Games
I started this on Sunday afternoon. I think it's not too shabby for something like 20 hours of work.
Steam ID: slashx000______Twitter: @bill_at_zeboyd______ Facebook: Zeboyd Games
Now, I don't know if this represents a serious effort to actually make it. I graduate at the end of the semester and am heading into the job market. My whole future is really fucking nebulous at this point, but good god almighty, this game will be made eventually. In years past I always expected to put it off until I was in the gaming industry with a team of people working for me. Ironically, now that I am closer than ever before to that goal, I'm beginning to suspect I might not need to.
So who knows. I've made crude engines for the project before, but that was when I was starting out with XNA and didn't know much.
Like I said, though, this project is over 10 years old. So that probably gives some idea about my dedication to it.
I like the people who say the game is using an illegal copy of RPGMaker.
Haha, I know :P
Honestly I'm pretty happy with the responses we got there. Back when the trailer for SoulCaster, the 8-bit style tower defense / rpg game came out on Gametrailers, the commenters there went crazy and ripped it apart.
I'm just glad that the Gametrailers viewers get the fact that it's supposed to be funny/silly and it's intentionally retro and that it's an Indie game (not some major XBL arcade release).
As a side note speaking of SoulCaster, once Tycho favorably mentioned it on the front page, the Gametrailers video for the game got a big boost of favorable comments and scoring. I think it's pretty cool of Tycho to mention an Xbox Live Indie game, since this service doesn't really get a whole lot of attention (outside of I Mad3 a Ga3m).
Steam ID: slashx000______Twitter: @bill_at_zeboyd______ Facebook: Zeboyd Games
Wow, that was a bit of a kick in the dick.
It may inspire me to finally hack a router though.
I better get my game finished before this comes along and breaks everything.
The BasicEffect sibling classes sound cool, though.