• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

[General] My First Interactive Tutorial

Status
Not open for further replies.
The completed guide will ensure that anyone who does all of the lessons and passes all of the practice problems will be a complete master of how to do save/load.


So, I rewrote lessons 30-50 and am continuing to add new lessons as I have not yet gotten all of the information from the old edition into this new one. There is some new information as well and a lot of the more advanced stuff is much more clear ^)^. Also, exercise 50 is pretty hard ; ).

Do any of the lessons need work? Have I done well so far? Tx.

I'd also be interested in any ideas you guys might have to improve lessons ; P.

If anything seemed hard to understand in the slightest or complex at all, please let me know ;o. I'm aiming for something that's super easy to understand =).

I'm working on this for my saving and loading tutorial ; P. Each lesson is really tiny (very little text) ^)^. I've been told that the lessons are actually pretty interesting and fun to mess with =).


Tx all ^^


To get into the tutorial, just run the map.
 

Attachments

  • Interactive Saving and Loading Tutorial - Pub.w3m
    165.8 KB · Views: 49
Last edited:
Level 7
Joined
Dec 3, 2006
Messages
339
Weird; how'd it end up being a .w3m rather than a .w3x . I'll take a look at this and try to give yah some feedback : D.

Edit:
Not bad; I knew at least a good amount of this before hand just looking over the scripts before-hand but its good since it's got a smaller learning curve with this. Lesson 10 kinda didn't show up for some reason in-game.

I think that this is a good explanation on how the save codes function; but it doesn't exactly give the knowledge required to use some of the scripts. That could best be done through in-trigger editor comment triggers or something of that sort (which i've seen you have been working on before).
 
hm.. lesson 10 showed up for me... odd o-o

I'll double check.


Also, the knowledge on using those scripts isn't important until later lessons ; P. Why teach a person how to use and create an obsolete algorithm? I'm just trying to build from the ground up ^)^.


Compression
---------------------------------------------------
saving a value
saving a unit type id
saving unit type ids with delimiters
saving catalog ids with delimiters
saving catalog ids in base 10 with maximum values using placeholders
introduction to bases
calculating the number of digits required to represent a number (useful, but not important)
saving catalog ids in base 62 with maximum values using placeholders
saving catalog ids in base 62 using 1 digit for each value in base max catalog id (this is where the algorithm is important to know)


Smart Saving
---------------------------------------------------
saving a hero with 0-6 items on it (0-6 empty item slots)
saving a hero with 0-6 items on it with a conditional 0 delimiter (partial inventory)
saving item charges (all items get a charge, even if they don't have one)
saving an item charge only if that item can have a charge
saving any number of units
partially saving up to a number of units (just like inventory, this is to show a pattern)


Data Storage
---------------------------------------------------
Usefulness of percents (a study of percent xp, percent facing, percent life, percent coordinates)


Cipher
---------------------------------------------------
Mixing up the base so that a user doesn't know what a digit's value is


Checksum
---------------------------------------------------
A look at why checksums are important (a player can load up any code w/o them)
Talk about knuth checksum
Putting a checksum into a code and displaying how it works (using knuth)

CRC
---------------------------------------------------
Show how a very small code can possibly be loaded up due to a small checksum
Talk about how codes typically have a certain range to them
Talk about what a CRC is and how it assigns a definite range


Encryption
---------------------------------------------------
Cover scrambling


Player Unique Codes
---------------------------------------------------
Storing the player's hash into the code (naive approach)
Player unique checksums
Player unique CRCs
Player unique encryption
Player unique bases


Code versioning
---------------------------------------------------
Storing the version into the code (naive approach)
Adding the version to the checksum
Show how versions added to the checksum will eventually allow for any code to be loadable (no checksum)
Show how the bounds checking of a CRC can stop the above from happening (still a little unsafe)
Show how making the CRC value the same value as the version (storing the version at the CRC) makes versioning 100% safe while adding minimal information to the code
 
Level 20
Joined
Jul 6, 2009
Messages
1,885
Very interesting idea, Nesth ;D
It worked properly, all lessons appeared and it was simple to understand.

Just 1 thing. When you're, for example, saving a unit during a lesson, the previous text should stay and not get replaced by unit IDs and whatnot. The IDs could appear on right part of screen or something. To make it not change lesson text, you could save lines and concatenate them with results of IDs with results being moved to the right with spaces.
 
Level 8
Joined
Dec 9, 2009
Messages
397
This might be a huge pain in the ass, but you could put the text in a multiboard, and let us scroll up/down.

(Yes, link is working now)
 
I have completely rewritten lessons 30-50. There is new information and everything got shifted around.


I currently don't have the rewrites for saving partial sets, advanced catalogs, or any of the security stuff. I'm in the process of still rewriting them : P.


It's been taking a long time, but hopefully the more advanced stuff is more clear ; ). I know a lot of people just stopped doing it after lesson 29. That was my fault as the quality of the lessons drastically decreased from 30+ as I was getting tired of writing the lessons ; O.


Also, practice problem 50 is very difficult ; o. It tells you to save 4 values in the correct order without giving you the order =). You have to use logic to figure it out. Also, because the problem is so large, it doesn't display the solution when you fail it : |.
 
Status
Not open for further replies.
Top