Author Topic: From the dev: Notes on where I'm at regarding tutorials right now (7/29).  (Read 1918 times)

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Some distance from the various problems that I've been contemplating has been helpful.  One of the biggest areas was in the tutorials section.  The solution I've had in mind for a while is elegant, but it's so alien and something that will require so many rounds of feedback that it's just not practical.  Putting missions into the game would change far too much, and people would still infinitely be asking "where are the tutorials?" all throughout the forums on Steam and such.

Instead, working on bolstering the existing style of tutorials that we already had, and making it so that more people can create them with relative ease (aka no coding or it won't happen from most people) should be the best sort of solution.  As kind of a bonus, I guess that would also allow for puzzle-y sort of "challenge scenarios" that people hand-design.  We'll see.

I know that Badger has a similar feeling to me, in that the idea of designing more tutorials is kind of a wrist-slitting proposition.  He did the prior ones that folks liked so much in this game (I did the ones in the first game that folks liked, but they liked his much better from the sound of things), but that's not something that I feel is remotely fair to lay on him again.

My short-term todo list:

1. I'm going to take the existing tutorial model and fix the things that are wrong with it (auto-advancement of the tutorial section without input from you causing you to miss messages, inability to see prior messages in general, etc), and fix those.

2. I'm going to be adding support for the game to have multiple tutorials, all listed, and also things that are probably "scenarios" instead, too.

3. I'm going to start pulling all this tutorial stuff into xml, so that the existing style of tutorials can be created without cracking open any code at all.  My hope is that there will be some new folks who know the game well who are interested in helping teach others via this new method.  The nice thing about these is that they don't have to be giant things that teach the entire effing game.  They can be focused on advanced tactics or a specific third party faction or whatever else.  They can (and are optimally) fun min-game-y scenarios that players have to legitimately overcome in at least a small way.  So hopefully this attracts some folks.

4. Beyond that, I'll see what I can do in terms of implementing "enough things" on my own.  It's pretty clear to me that I'm a lot better at the sort of encyclopedic/tooltip type writing, since it's about transmitting a lot of knowledge all at once about some topic.  What I'm apparently NOT all that great at is knowing what to tell people to get them up to speed, where I'm not talking at too low of a level (thanks I know how to move RTS units around) or too high of one (wait, you keep using terms I can't remember the meaning of).  I think there's a strong reason that youtube video tutorials for the first game, plus reading of the wiki it had, were considered kind of necessary next steps even after six hours of tutorials from me.  Sigh.  I'd like to avoid that being required again this time, and my work on the tooltips and the in-game encyclopedia are a big step in the right direction for that.  But it certainly won't be quite enough.

Cheers!
Chris
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline BadgerBadger

  • Arcen Volunteer
  • Hero Member Mark III
  • *****
  • Posts: 1,229
  • BadgerBadgerBadgerBadger
Are you intending to make the tutorial text stuff into a sort of Journal system like AIWC, with text the player can review? I'd like something like that to get some extra flavour text in for various minor factions. Something like "this text is displayed when you first see the Nanocaust, which gives flavour and mechanics information, and the player can refer to it again later" through some sort of journal menu.

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
Yes, I definitely do intend to do that, although the freeform nature of the text is something that makes me super uncomfortable.  Trying to store huge amounts of text in savegames is something that causes them to absolutely balloon in terms of size, and the only real solution for that is compression.  Text compresses very well, but it's not GC-neutral and also is relatively slow (comparatively) to do.

So that leaves me with a couple of approaches, and I haven't been able to decide:

1. During saving, including autosaves, it takes the journal and appends that all to a big stringbuilder, does a ToString() on that, then runs that through a compression algorithm and writes the bytes of that into the savegame in a raw format.  This is probably the most flexible approach, and would let us store chat and other personal messages as well.  But it will cause the most size increase on savegames, and the biggest GC spike (if such a thing still exists) and certainly the biggest hitch to happen during savegames.

2. Anything that would be a "journal entry" is in some sort of central table that we can add to as needed, and they use things like tags (<playername> and <planet1> and so on) that get saved.  So then we'd just save the small bits of text for those things -- maybe using the method from #1, even, I dunno -- and at display-time we'd be constructing the string that you see.  This would make display-time showing of journal messages more of a GC and CPU hit, but very small by comparison, and we could have a lot of stuff saved without it making savegames balloon.

In some respects #2 might be overkill and make things needlessly difficult.  But then again this sort of text really can get to be VERY large.
Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline BadgerBadger

  • Arcen Volunteer
  • Hero Member Mark III
  • *****
  • Posts: 1,229
  • BadgerBadgerBadgerBadger
I think it would be easiest if we had a List<journalEntry> attached to each Faction, and a journalEntry contained a timestamp, planet and and an index into the Table of journal entries read in from XML that would be fine.

If the player is opening and reading the journal then they aren't apt to notice a game performance hiccup.