ID:182212
 
So I was thinking the new DM Guide should be ordered as so:
Chapter 1: Getting Started
        Installing BYOND
        Computer Programming
        Using the Editor – Environments and Compiling and Exporting
        The ATOM Structure
        Terms You Need to Know
        The DM Reference – F1 in DreamMaker
        ‘Hello World’
Chapter 2: Basics
        Numbers and Expressions – Precision of about 24-bits (bitwise function limited to 16-bit)
                Loses precision at 16777215, loses complete precision at: 40 digits
        Hexadecimals and Scientific Notation
        Variables
        Statements
        Getting Input from the User
        Procedures (procs)
        Verbs
        Comments
        Strings
                Escaping Character (\)
                Embedded Expressions
                String Arithmetic
                Representing Numbers as Strings
        Delays
        Putting it all Together – DM Syntax
        A Quick Summary // Should be at the end of Every Chapter
                New Functions in this Chapter
                What now?
Chapter 3: Data Structures
        Lists
        The Datum
                Sound
                Client
                World
                Image / Icon
                Savefiles
                Everything Else
        A Quick Summary
                New Functions in this Chapter
                What now?
Chapter 4: Procedures and Verbs
        What are they?
        Defining Procedures
        Defining Verbs
        Properties of Verbs and Procedures
        Verb Accessibility
        Arguments / Parameters
Chapter 5: Getting User Input and Sending Output
        The input() Function
        The alert() Function
        The << Operator
        Other Input and Output Methods (output(), command bar)
Chapter 5: Conditionals, Loops, and Other Statements
        Programming Blocks and Indentation
        The if() Statement
                Evaluation as a Whole
                Else Clauses
                What values are evaluated as Boolean false
        Loops
                Recursion
                Iteration
                        break, continue, goto, and labels
                        The for() Loop
                        The while() Loop
                        The do – while() Loop
                        The switch() Statement
        The spawn() statement
        Nesting Blocks
Chapter 6: A Closer Look at Atoms
        Review: The Object Tree
        Atomic Procedures
        Atomic Interaction
Chapter 7: The Map
        The Map Creation Process
        Spatial Functions
        Events
Chapter 8: Object Oriented Programming
        The Reality of Atoms and Superclass Datum
        Inheritance
        The parent_type variable
Chapter 9: Libraries
        Libraries are Useful
        Using Libraries
        The Ultimate Resource for DM Libraries
Chapter 10: Files and Savefiles
        Files
        Reading and Writing Files
        Savefiles – Storing Data with Ease
                The Savefile Object
                Using Savefiles
        Useful, File-related Functions
Chapter 11: Multiplayer Consideration and the Order of Operation
        BYOND Worlds are Made for Multiplayer
        What Happens when a World is Created
        What Happens when Clients Connect
        Player to Player Interaction
Chapter 12: Compilation and Runtime Errors and Profiling
        Common Compilation Errors
        Common Runtime Errors and How to Look for Them
        DEBUG Mode and Profiling
Chapter 13: Extending DM – DLLs and Dynamic Processing
        The call() Procedure
        Using DLLs with the call() Procedure
        The hascall() Procedure
        The vars[] List
        The text2path() Procedure
Chapter 14: Packaging Your Programs
Chapter 15: Preprocessor Commands and Macros
        Macros and How to Use Them
        Macros are Actually Something Called Preprocessor Commands
        Any line heading with # is considered a Preprocessor Command
Chapter 16: Your First Utility – Exploring Chat and Spam Handling
Chapter 17: Your First Game – A Small RPG
Chapter 18: Using Topic and Dantom.htmllib
        An Introduction to htmllib
        An Introduction to Topic()
        How You Can Apply These
Chapter 19: Your Second Utility – An Extended Chat
         Skinning the DreamSeeker  //should probably direct user to list of tutorials
        File Sharing
Chapter 20: Your Second Game – Developing PacMan

Appendix A: The Short Version
Appendix B: The Pre-Defined Object Tree
Appendix C: The DM Reference
Appendix D: Searching For and Using Resources
Appendix F: DM Compared to Other Languages


Thoughts or comments?</<>
CaptFalcon33035 wrote:
Thoughts or comments?

Great, now write the actual content. ;)
Did Tom even say he was going for this in the first place?
Could use some refinement.

The second chapter is where we would lose people. Some of the more math oriented things such as hexadecimal should probably be moved to an appendix.

Just skimmed but looks nice...

George Gough
The problem with the DM Guide is that it's too big, and the newbies that come to BYOND usually are too young to give a damn about reading it. Instead, they choose to learn on their own, which usually involves ripping games or trying to learn from other people's code.
In response to Android Data
Android Data wrote:
The problem with the DM Guide is that it's too big, and the newbies that come to BYOND usually are too young to give a damn about reading it. Instead, they choose to learn on their own, which usually involves ripping games or trying to learn from other people's code.

Unfortunately theres no cure for that, trying is folly. The DM Guide is the most friendly programming book I have ever, ever come across. Thats where Tutorials and Demos come in, for those who don't have the patience or desire to read the guide. Ultimately, you can only teach those who really want to learn.
In response to Android Data
I actually would consider the Blue Book to be pretty friendly as far as programming books can go, just beat out by some of the "For Dummies" series. Maybe the new book, if ever made, should have a similar format to the "For Dummies" series?

George Gough
Nice thoughts. Earlier we made a nice thread about the new guide and thought through a list of imperfections and solutions in the process. But throughout that controversy, there hasn't been any official statement declaring that they'd go through and make another guide. Unless this thread is preparing for "Byond 5.0" (which would probably feature alot more elements and need yet another guide list arrangement from yourself), what's the point?
In response to Hulio-G
Agreed (as previously stated in the topic). Though, everyone can always (and is welcome to) type a guide (and as such) out in a simple document format (DOC/PDF/HTML) and just release it, it doesn't have to be official or printed to be useful, at all.
In response to Kaioken
Kaioken wrote:
Did Tom even say he was going for this in the first place?

I don't know, but the thing is long overdue. I think if I write this, I'll make it printer-friendly. I was hoping to form an outline for someone else to work with. :P
In response to KodeNerd
KodeNerd wrote:
Could use some refinement.

I thought it might!

The second chapter is where we would lose people. Some of the more math oriented things such as hexadecimal should probably be moved to an appendix.

I was hoping to just explain that BYOND could accept those values, but I do agree. Perhaps an appendix can be made explaining scientific notation and hexadecimal.
The question that would strike my mind here is, which group of customers you are aiming for?
(That is not meant offensive, but rather to give input and feed back, since different kind of people require different attempts at guides)

Did I just manage to miss it, or did you not plan on explaining interfaces at all?
You missed Appendix E.

But never-the-less, you can make the BYOND Interface Customisation, the major, major improvement to BYOND 4.0 that you somehow absolutely missed in that list.

If you are going to go ahead with this plan of yours, I give you words of good luck. But be sure, if you want to keep the audiences attention. The occasional side-joke and wisdom-quote here and there wont hurt.

And at least one chapter should be named "Meet the Dream Maker" for keepsake.
In response to Schnitzelnagler
You missed it. :P
In response to Tiberath
Tiberath wrote:
You missed Appendix E.

But never-the-less, you can make the BYOND Interface Customisation, the major, major improvement to BYOND 4.0 that you somehow absolutely missed in that list.

If you are going to go ahead with this plan of yours, I give you words of good luck. But be sure, if you want to keep the audiences attention. The occasional side-joke and wisdom-quote here and there wont hurt.

And at least one chapter should be named "Meet the Dream Maker" for keepsake.

Chapter 19: Your Second Utility – An Extended Chat
     Skinning the DreamSeeker  //should probably direct user to list of tutorials


I want to include it without going too deep, and providing links to existing tutorials already (as fabulous ones currently exist and you can't exactly do anything with skinning outside of using the DreamMaker program). It'll keep the cost of the book down (if sold) and will help introduce the DreamMakers' guild and the BYOND website to the newbie if they haven't been acquainted yet.
In response to CaptFalcon33035
CaptFalcon33035 wrote:
I want to include it without going too deep, and providing links to existing tutorials already (...)

This is a double-edged sword, since a lot of users do not know much about this powerfull feature BYOND has to offer and I'd say it is the biggest one that came with 4.x, so most likely a lot of people would want to read more about it (or should, as they might make good use of it).
On the other hand, I can certainly see your arguments, even though, yet again, this leads me to the question you left without answer:
What group of customer are you aiming for?

  • The very young beginner who has never before touched a programming language and might be frustrated fast without instant sucess
  • The mature beginner who is used to reading and learning from books (even by herself) through having faced this in her education already
  • The intermediate programmer to improove on her skills and maybe finally release her first game
  • The BYOND "oldbie", who wants the book for her shelf, since it's inevitably missing there between C++ and PHP
  • Something completely different I most likely forgot about ;)
In response to Schnitzelnagler
Schnitzelnagler wrote:
This is a double-edged sword, since a lot of users do not know much about this powerfull feature BYOND has to offer and I'd say it is the biggest one that came with 4.x, so most likely a lot of people would want to read more about it (or should, as they might make good use of it).

How is it a double-edged sword? I need an explanation here!

What group of customer are you aiming for?

  • The very young beginner who has never before touched a programming language and might be frustrated fast without instant sucess

    This is the my target audience, but the book should be friendly to all niches of developers.
In response to CaptFalcon33035
CaptFalcon33035 wrote:
How is it a double-edged sword? I need an explanation here!

Well, I see your (valid) point in trying to keep the guide short and cost effective, which you can't when evil people like me suggest a whole chapter about something.
But I still think that Interfaces aren't used and pushed for as much as they should and could on most BYOND games.
A good guide would be the way to change that!
So, on the one hand, you have trying to compile a cost effective short book, on the other, you have the great feature interface, which might use some space to reveal its real benefits.
Choosing one over the other makes a double-edged sword for me ;)


  • The very young beginner who has never before touched a programming language and might be frustrated fast without instant sucess
    This is the my target audience, but the book should be friendly to all niches of developers.

    I've yet to see a "all-in-one device suitable for every purpose" (though I much preffer the german expression "eierlegende Wollmilchsau" - "egglaying woolmilkpig").
    I see this topic as similar to when creating a game you should first choose the group of customers you aim for.
    (Harsh) punishments on death, the need for strategic thinking and a good amount of featues can drive the average young user away faster than you can advertise the game, whereas more mature players might find joy due long term fun and replay.

    By looking at games and authoring tools used by many a young beginning customer, you can draw inference on what might help your cause.

    I (and please note that this is very subjective) have found that simple concepts that grant fast and steady success, paired with "eye candy" and boosts for their ego tie their attention to your project.

    Or in other words, if you aim for that group of customers, think about using little games right from the beginning to elaborate on DM and make sure to include some nice and appealing graphics.
    After each chapter/game, you can include some general information about the language and then use these to make them think up new ideas for the game on their very own, but give them little code snippets on how you'd have solved the problem you set them to solve in the end.

    Just my two cents though.
In response to Schnitzelnagler
egglaying woolmilkpig

This expression? So stolen.

Why is the German language so awesome? First it gave us schadenfraude, and now this