Search Unity

What would you like to see in a Unity-targeted book?

Discussion in 'Community Learning & Teaching' started by lurid, Jun 27, 2006.

  1. lurid

    lurid

    Joined:
    Aug 28, 2005
    Posts:
    72
    I'm in the planning stages for a book targeting Unity development and would like to hear any ideas the community might have. At this point the basic idea would be to cover the implementation of a game that I'm currently working on from beginning to end, the focus being on Unity-specific concepts and terminologies as they apply to a complete and working game.

    Although I'm planning on selling the game itself separately, purchasing the book would most likely include every piece of work I put in to it. The selling the game part is a first for me and I'm not planning to go the normal routes this time, but perhaps I can devote a chapter to getting started in that area, or at least some appendix listing some good sites/forums to get started.

    I'd also like to touch on some tools that are freely available and easy to learn/adapt to workflow. Garageband seems like a good candidate, as most readers have it but may not be aware of how they could actually make it useful. On the other hand, I wouldn't want this kind of thing to detract too much from the core focus, so this might be a minor focus, or even a brief survey of tools and some inventive uses for them?

    The book should also be a great tutorial for those less inclined to programming, and I'd like to go as deep as I can without turning it into a full-on programming manual. My vision would be to make it a powerful starting point for those not familiar with programming at all, while giving useful examples/analysis of code for the more technically inclined. With OTEE's blessing, of course, it should include a full API reference as an appendix.

    I think if I say much more, I'll practically start writing the first chapter, so I'll finish by saying that I'm definitely interested in hearing all ideas regarding topics you guys would like to see covered, and to what degree.

    Russ
     
  2. Morgan

    Morgan

    Joined:
    May 21, 2006
    Posts:
    1,223
    I would say include some basic JavaScript help for beginners - like different kinds of loops and conditions, , ||, etc.
     
  3. lurid

    lurid

    Joined:
    Aug 28, 2005
    Posts:
    72
    Thanks, Morgan - that's definitely one of the biggest barriers I want to help reduce. Of course I don't want to duplicate too much that's presented in dedicated programming texts, but would like to give enough foundation material to make those texts more accessible without requiring them to be present to get started with Unity scripting.

    I think the scope and depth of the outright programming material will be defined by feedback from those who need it - I have a solid education and background in programming, so I plan to work something very useful in to the overall idea.

    The idea as it stands is definitely targeted towards a raw beginner through intermediate user in both Unity and programming, so points of confusion regarding either are definitely fair game!
     
  4. greenland

    greenland

    Joined:
    Oct 22, 2005
    Posts:
    205
    Scripting by examples!
    It would be safe to assume that the reader has SOME programming experience, even if it is with something as simple as, well... JavaScript.

    All my questions are "What's the best way to do this in Unity?" not "How do I write a javascript to do this?"

    Examples are the quickest way for a novice user to learn, I believe.
    "What was the name of that function again?"
    Examples to the rescue. I would make a book from comver to cover code examples. No tutorials allowed. Heh.
     
  5. lurid

    lurid

    Joined:
    Aug 28, 2005
    Posts:
    72
    ArcaneInteractive,
    I'm running with some assumptions reading the forums that assuming almost or no programming experience might be a good thing to start with. I've seen a few very good examples of that (artists, above all seem quite attracted to Unity - Bruce Gregory, are you still out there?), and I figure that a great potential market for Unity itself is Dad buying a license to get his staff of console-gamers into programming. Unity is a very nice and relatively "safe" programming environment for a raw beginner to get wet feet.

    I like the complicated stuff myself, so I'm not planning to make it stoopid by any stretch, but there's likely a chapter to skip if you already have some knowledge.

    I also personally believe that examples without enough context can be pretty abstract, even when you generally know what you're doing. One of the things that frustrates me with some other books I've seen on this topic is that they always get people started in a grand way, but kind of dump them on the road after introducing the basics (which is usually voluminous already!). Ideally, I'd like to use the "implementing the game" idea as a way to cover any aspect of the whole process, but without making it so cumbersome that you have to implement it yourself just to see how one part works.

    To summarize the intention: if you know nothing about implementing games and read cover to cover, you'd have a good feeling about every aspect of the process, understand Unity and scripting much better, and have some concrete stuff to lean on and adapt to your own ideas. I think time will dictate how deep I can go in to more truly advanced stuff, but I will definitely go as far as practically possible with that. I have some good ideas on how to sectionalize the content so that you could potentially ignore the whole game idea and still come out with "good stuff".

    Of course, the reason I'm posting is to make it as broadly useful as possible, without duplicating work that's already been done, so its all up for debate for now ;) I'm taking notes!
     
  6. Morgan

    Morgan

    Joined:
    May 21, 2006
    Posts:
    1,223
    In my case, I have lots of programming/scripting experience, but not in JavaScript! So for me, I can think who one would program something in general, and then I have to ask "how do you do that in JavaScript?" -- which is not covered well in current Unity documentation. (Which is OK because there is plenty of JavaScript reference info online.)
     
  7. lurid

    lurid

    Joined:
    Aug 28, 2005
    Posts:
    72
    As far as programming basics go, I'd like to cover JavaScript as it applies to Unity pretty thoroughly, and then also touch on the basics of why and where C#/Object-Oriented techniques can be useful. Since entire books have been written on the theory and application of OO, I don't plan to go too far with that, but definitely enough to interest someone who might not realize what it can do for them, and again, relate it to Unity in a way that it might light a spark for someone who already knows the basics but can't apply it easily.

    So yeah, I think there is something missing in a lot of texts that makes the connection between general programming to specific problem area kind of abstract. I'll keep that in mind while writing!
     
  8. Mike08

    Mike08

    Joined:
    Dec 29, 2005
    Posts:
    124
    Hi lurid

    I think the programming part should be not to large. I think the most important thing is how to get an idea into your game. That means step by step chapters where the reader and especially the beginner can learn how to realize this idea with Unity. So I think it is not important in which type of script it is written it is enough to now how to do it with Unity, because someone who has no real experiences in programming doesn' t have the ability to compare languages.

    But a basic chapter at the beginning that explains some basic programming like loops, if, calculatings and other stuff should defenitly be included.

    But this shouldn't be to long so that the reader comes fast to the chapter where he can start to create his first game. This should be a very basic and easy game, so that the reader gets a little success and is more motivated to read on the book.

    This is all I can think of now (I read many programming books over the last ten years and learned programming in that way and so I strumbled over some hindrances in books)

    I hope this will help you to write your book and you can ask me whenever you want about programming tricks by sending me a private message.

    By
     
  9. Morgan

    Morgan

    Joined:
    May 21, 2006
    Posts:
    1,223
    The current tutorials are a great quick start, throwing in programming stuff "as needed" while you're already seeing things come to life.

    But a book, being a longer format, could do more.
     
  10. harrio

    harrio

    Joined:
    Apr 25, 2006
    Posts:
    31
    it would be good to present a cross reference of game idea to game code. i think beginners struggle with transforming an "idea" into a game, because they don't know how to break the idea down to components, the components down to tasks/goals and those to pseudo-code.

    some people excel at coding while others at concepts and game play. i think the best books on the subject bridge the two in an organic manner so that either one has a simple foundation to building access to the other.

    i always learned languages faster by making a game with them when i was young, because it caused me to think beyond the confines of a programming "curriculum" in order to realize the functions of the game or idea.

    ultimately, it should help the reader to think and to devise the tools of crossing the divide between inspiration and creation.
     
  11. taumel

    taumel

    Joined:
    Jun 9, 2005
    Posts:
    5,292
    Hmm is the time already ready for a unity only book from a writers point of view? I dunno how big the audience already is...

    Anyway i would like to see far better docs (concept, navigation, structure and content wise) from otee itself as this would only be justified for a software in this pricerange.


    Regards,

    taumel
     
  12. Samantha

    Samantha

    Joined:
    Aug 31, 2005
    Posts:
    609
    I would like to suggest the book provide coverage of all the Components. In helping write the Component reference, I learned very much about what each Component is good for, and how it can be used.

    For example, I had written a 2-page script that was (barely) handling a space ship's rotation. After teaching myself components, I nixed the script and slapped a HingeJoint on the space ship, configured it, and connected it to an empty parent object. From there, the 2-page script was replaced with about 10 lines, that read input and applied torque appropriately.

    Come to think of it, proper parenting practices would be a good topic as well.
     
  13. lurid

    lurid

    Joined:
    Aug 28, 2005
    Posts:
    72
    harrio,
    That is one of my primary motivations in writing this. It can be very difficult to communicate this through tutorials, and forum posts can't always practically convey the necessary depth. I definitely want to help to provide the mental "tools" to enable the beginner to break an idea down to a set of steps.

    Ulognep,
    Great insight! Those are the kind of things I'm looking for - something that is too easily forgotten once you have your "ah-ha!" moment with it. Sort of a "Dao of Unity".

    Taumel,
    I'd be interested in hearing a writer's point of view on this as well ;)

    From what I understand after whizzing this idea past the OTEE guys, the Unity docs will be constantly improved. After working for larger companies in the past who have their own staff for documentation, I think OTEE deserve a big round of applause even if only for the improvements in the 1.5 release!
     
  14. harrio

    harrio

    Joined:
    Apr 25, 2006
    Posts:
    31
    ulognep,

    i totally agree. it's not sexy. but getting a firm foundation at the component/api level of any engine will give you a head start on constructive thinking that will complement game design, like in your rotation example.

    taumel,

    i believe it's well near time for a book. books go a long way in fostering a larger, more confident audience, and they seem to psychologically announce an arrival in the minds of many. those of you already part of the unity community are self motivated to find the best tools to realize your visions. those of less ilk are drawn by buzz, media, word of mouth, corporate association - apple, succesful game shippings and the tried an true...book.
     
  15. taumel

    taumel

    Joined:
    Jun 9, 2005
    Posts:
    5,292
    @lurid
    Okay don't misunderstood me. I'm not trying to make this look bad or so. I just wanted to point out that making computer books, especially when they are very specific is more likely to be a niche product than a big seller.

    A well thought trough book about general game development could be sold much better than a book for game development for a certain tool, even more when there isn't a huge userbase behind.

    If your primary goal is to make money with it than i would say there are easier ways to do this when i count the time it takes to do a good book. When it's more motivated out of pleasure and enthusiasm then go for it.


    Regards,

    taumel
     
  16. lurid

    lurid

    Joined:
    Aug 28, 2005
    Posts:
    72
    Taumel,

    I understood, but thanks for making sure. I can say that I do not expect to make enough money to make my life any different than it is now.

    I'm normally open enough that I'd give a reason for it without being asked, but that would require a great deal of introspection I don't have the time for ;)

    Russ
     
  17. taumel

    taumel

    Joined:
    Jun 9, 2005
    Posts:
    5,292
    Hi,

    just because i was too tired and lazy yesterday...

    >>>From what I understand after whizzing this idea past the OTEE guys, the Unity docs will be constantly improved. After working for larger companies in the past who have their own staff for documentation, I think OTEE deserve a big round of applause even if only for the improvements in the 1.5 release!<<<

    I think 1.5 was really a great feature release. On the other side the help in 1.5 isn't one of the feature strengths. The help in unity seemed to be evolved from something more like a alibi project to something where they extended the content. And whilst a help is more a living document if you wanna make a really good help then i think you would have to rethink some things in the help done so far and maybe it would be best to do it from scratch.

    In my opinion the help is lacking in different kind of aspects like the concept, the structure and the content. Some examples:

    A good help should have somekind of a permanent structure, like a tree structure or a knot system from where i can navigate through the whole(!) documentation. No need to jump between different manuals, loose orientation or even loosing the structure. It should be detached from the content. When taking a tree structure it should be collapsable by the user. The tree is built in a meaningful way. The presentation of the tree structure could be done in different ways like graphical representation or just plain text.

    I should be able to do a search over the whole documentation. The results of the search should be presented in a area from where i could select and jump to the different positions in the help without loosing the results. Moreover i should be able to drag&drop different positions out of the tree into this target area.

    The help should also be available very easily like when firing it up by pressing a hotkey like for instance "F1" (defineable in the configurations). I should also be able to start it with offering the needed content automatically when i for instance mark a certain part in the ide or a command in the source by clicking the help key additionally. Also if the possibility would exist that code is generated and presented by taking an action in the iDE (like in 3dpi on director) this should be help-sensitive.

    Possibility to comment stuff in the help, like putting a pin at a certain point with a detached area where you could write some lines down add a link for a) your personal usage/understanding and b) for reporting bugs to otee.

    Speaking of the content only in a draft way:

    The chapters of the documentation should be split up in another way and extended so that there is selected information for useres coming from different backgrounds, general introduction, ide related stuff, programming language related stuff, performance issues, known issues, tutorials, linking to external help/sources, content regarding chapters and reference structure, an alphabetic reference structure, the class reference and so on... You just have to think what users might wanna search with different goals and different knowledge.

    And between all these pages there should be a meaningful linking like to topic or hirarchy related content. Each command should be written in the help with all the parameters explained. Examples (for each supported language) for the commands usage and also working code snippets which you can cut&paste and just throw into a script and compile it or link to a example project where the command is beeing used so that you can toy around with it and better understand it.

    Everything which is not working in a standard way should be explained and pointed out extra by the help. There should no assumptions be made by otee that users know how to do this or that just because they know how to do it. All the content should be presented while following a clear help-design-guide. So no more: Maybe placing a picture here for this topic, another one there in a different size, no one in this chapter and so on. If you avoid this and follow the design-guide then the help gets easier even more and you feel much less lost in it.

    Use different media wisely: Text, Pictures, Flash-Animations, Movies.

    And so on...


    Some of these things are done or on their way but lot's of it aren't. And yes it's true that here are even worse documentations around but there also do exist tools which feature a good and meaningful help. It's simply no excuse not having a good one because others might not have one too. Documentation is so very important. A proper help system is much more worth than x features you add to a new release as it saves your users and the developers a lot of time! Moreover it's a strong selling argument for those who might wanna change and for those who already worked with different tools and know how important this is.

    A help should be a) helpful and b) enjoyable to use!


    Regards,

    taumel
     
  18. Aras

    Aras

    Unity Technologies

    Joined:
    Nov 7, 2005
    Posts:
    4,770
    taumel: All this is true... But that left me wondering - is there any actual software product in the world that has such a help system?

    In general, any pointers to examples of what people consider as "superb help" are welcome. And yes, the documentation will be further improved in next Unity release.
     
  19. taumel

    taumel

    Joined:
    Jun 9, 2005
    Posts:
    5,292
    >>>taumel: All this is true... But that left me wondering - is there any actual software product in the world that has such a help system?<<<

    Not all of these points are done in one software yet - at least i don't know of it.

    But a certain percentage or different aspects are already realised by different tools. Help is a subject where unity really can improve a lot. You don't have to include all these features to come up with a much better help than the current one.


    Regards,

    taumel
     
  20. Morgan

    Morgan

    Joined:
    May 21, 2006
    Posts:
    1,223
    Not to go too far O/T, but searching of the manual would be high on my wish list (Spotlight fills in, for now). Maybe use OS X's help system?

    I would say an example of a great Help system would be Macromedia Director 2004MX. Except, that is, for having a lot of inaccurate or incomplete information :eek: But the one thing I REALLY like about programming in Director are the script popups. If something like that were added to Unitron it would be great. There are two:

    * One alphabetical (submenus with letter ranges, A-B, C-E, etc.) for when you know the name of what you want.

    * One in categories (topic submenus), like User Input, Animation, etc..

    When you choose, one, the command is entered into your script along with placeholder variables that are named clearly--so the function and syntax are defined for you, you just have to replace the variables. Often that's enough quick-reference that you don't even need the Help.
     
  21. AaronC

    AaronC

    Joined:
    Mar 6, 2006
    Posts:
    3,552
    Great move on a publication
    I would like to speak for the scriptless, if I may

    I get my ass caned a bit for asking for scripting examples, because people on the forum say that I should go home and learn to script. Ok they say I should learn basics. But I dont even know where to start. Go learn a book on Java. How on earth can I be sure what I learn is going to be relevant to Unity? I dont know the difference, and forgive me but life is too short to learn dry as coding that isnt even any use. By the time I learn Unity, Maya, Blender,etc, etc etc, I dont have time to teach myself how to become a code programmer on the offchance it may help my game designs.
    I really cant figure out the breadth of scripting. What are the four main headings, relevant to Unity?,for example. Its like trying to learn another language and nobody knows how many letters are in the alphabet. Unity is/has the potential to be user friendly, and I think OTEE want it to be. But to get into it and be told to put it down and go and learn how to write programming code, is just deppressing.

    It Could be easier.

    Much strength and Stamina to you on this journey, Lurid
    AC
     
  22. bigkahuna

    bigkahuna

    Joined:
    Apr 30, 2006
    Posts:
    5,434
    I only skimmed this thread, so my appologies if this has already been said. I'm assuming this will be a -printed- book, right?

    Couple suggestions:

    1. Make sure it has an excellent index. My Dad wrote technical books for a living and he used to drive this point into my head all the time.

    2. Document all of Unity's buttons thoroughly -with examples-.

    3. Document all of Unity's script functions -with examples-

    4. Make sure the print is large enough and the format designed so I can leave the book open while I'm typing on the computer.

    I absolutely -hate- on-line only documentation, it makes it so difficult to read the documentation while I have the application open. The next best solution is to offer the docs in a .PDF file so the user can print it himself. But that usually gives you a mess of single sided pages.

    Would love to see such a book and would definitely buy it.
     
  23. antenna-tree

    antenna-tree

    Joined:
    Oct 30, 2005
    Posts:
    5,324
    Holy good God is this the best piece of advice you're going to get! Every single book based on technical work where you're constantly looking back to the page should have a spiral binding so that you can leave it open on your desk! The only manual I've had that did this is the RealBasic reference books. It's a major pain having to constantly flip the book back open to look at what you're trying to learn.
     
  24. jeremyace

    jeremyace

    Joined:
    Oct 12, 2005
    Posts:
    1,661
    Amen, especially since those manuals are usually 2in thick as well.

    Well, first off, get a book on JavaScript not Java (big difference) ;-)

    Well, I have a JavaScript book here that someone gave to me it's called "The complete reference: JavaScript" and it is published by Osborne. Looking through the contents I can give you a least a general idea what you want and what you can toss.

    First is an intro to javascript...good to read, but mainly history and such.

    Then JavaScript core features. This is the most important chapter. Here is a quick list of what is in it:
    -Basic definitions
    -Script execution order
    -Case sensitivity
    -Whitespace
    -Statements
    --Semicolons
    --Blocks
    -Variables
    -Basic data types
    -Composite types
    --arrays
    --objects
    --expressions
    --operators
    --operator precedence
    -Flow control
    -Loops
    --Loop control
    -Functions
    -Input and output
    -Regular expressions (useful later on)

    That is the gravy right there. Anything that is teaching you the core language is good, anything to to with webpages/html, forms, and usually output is useless.

    Actually, glancing through the beginning of this book in particular, it is pretty good. If you can find this book in a library somewhere or whatever it should work well for you. If you do get it, you can PM me and I can help you figure out what you need and what you can toss in it.

    HTH Targos,
    -Jeremy
     
  25. harrio

    harrio

    Joined:
    Apr 25, 2006
    Posts:
    31
    any progress on the unity book...?
     
  26. jeep23

    jeep23

    Joined:
    Jul 23, 2006
    Posts:
    1
    Here is my 2 cents. The first thing I looked for is if a book was available. I need something I can read when away from computer throughout the day and then try when I get home. So my advice would be put together something tomorrow. Yeah, like a .pdf ebook or something. You already have some interest in looking at the # who have read this thread. So get to it. Bypass the publisher/editor mumbo and put something up to download for free with a link for folks to donate ideas and $ to you. Then spend your time listening to the community and making the changes they suggest. Then once you have it nailed, push it through to get it printed.

    Just a thought.

    Jeepster 8)
     
  27. harrio

    harrio

    Joined:
    Apr 25, 2006
    Posts:
    31
    when you're ready to publish...

    www.blurb.com

    www.lulu.com

    they get the job done. they make you a published author. and they make us the proud owners of much desired documentation.
     
  28. morgansaysthis

    morgansaysthis

    Joined:
    Jan 12, 2007
    Posts:
    245
    i think more indepth code examples than the tutorials currently offer would be nice



    i bought a flash game design book and the code sections where the most important thing to me because thats where most people ( myself included) fall in to bad habbits like not using arrays(me) copying and pasting code instead of using functions(not me) and just sloppy code in genral(me) explaining exactly how the code works is the most important thing in that in my opinion

    its up to people to be creative and a books job should be to show them how to take that creativity they already have and use it in a way that lets others see it


    -and a section on performance and optimazation
    -and a section on animations and triggering them




    i personally perfer reading tuts from a book rather than from a screen so if you do this i will surly be picking one up
     
  29. Chakradude

    Chakradude

    Joined:
    Apr 21, 2007
    Posts:
    3
    Just wanted to bump this topic as I am quite interested in buying a book on Unity.
     
  30. tbelgrave

    tbelgrave

    Joined:
    Jul 29, 2006
    Posts:
    321
    Bumping again. This would be a welcome resource for certain.

    Take care,

    ~t
     
  31. jaydubs

    jaydubs

    Joined:
    May 3, 2007
    Posts:
    136
    Another bump ... I'm a newb at Javascript and any help towards how to use it in Unity ( not websites ! ) would be welcomed with open arms.

    Examples that are broken down and explained in "lay-terms" are what I find the best way to learn ... :)

    Good luck in getting something together,

    JW

    P.S: How much ???
     
  32. tuttson06

    tuttson06

    Joined:
    Jan 29, 2008
    Posts:
    26
    Yet another bump :) Just a newbie that would LOVE to get his hands on a book such as this to get started on making some games!
     
  33. Marc

    Marc

    Joined:
    Oct 4, 2007
    Posts:
    499
    Commercial game development spans many different areas: programming, 3d modelling, texturing, audio composition, level design, gameplay design and im sure a ton more.

    Which parts will this book cover? From what i read in the treat it should be full of programming examples of how to do stuff in unity? This ofc. has its justification as no interesting game can come without programming, but there is so much more to game development.

    If i were to buy a Unity starters book. I would expect it to show what i can do with unity with out any knowledge of programming by just using the build in scripts and functionality. Or it would have to tell me how to do both programming, modelling, creating alpha channeled textures to use some of the more advanced shaders so i can create nice effects etc.

    If i were to buy a Unity expert book. I would expect it to contain advanced topics where its assumed that i can use unity to its fullest inc. the programming languages and focus more on forinstance optimization, making sure builds are truely run on all platforms when released and maybe some make life simpler scripts.

    Some of these topics strongly overlap already well written books.

    Those were my stray thoughts.

    Regards,
    Marc
     
  34. erikc

    erikc

    Joined:
    Mar 18, 2006
    Posts:
    9
    hi is there a PDF somewhere of the Unity user manual//scripting, somewhere?
    I need to print out the manual but the html format is far too spaced out. If there is a downloadable PDF in a more printable format, please advise. Otherwise I guess I could try to create an online help application from the html then export the help file as a word document.
     
  35. podperson

    podperson

    Joined:
    Jun 6, 2006
    Posts:
    1,371
    In addition to introducing JavaScript (or Unity's version thereof), I think that coding philosophy should be covered.

    E.g.

    How to keep things small, simple, modular.

    Code-re-use.

    How to implement common design patterns (e.g. singletons, factories, MVC) in Unity.
     
  36. dock

    dock

    Joined:
    Jan 2, 2008
    Posts:
    605
    I would love a Unity3D book.

    I've always been a big fan of the Blitz Basic and Blitz3D manuals. They were well written and easy to read, as well as providing great examples of how the code could be used. Even if it was principally a 'Unity3D scripting' manual, in PDF form, that users could buy from 'Lulu.com' if they wanted to... it would be a great asset.
     
  37. jorge-castro

    jorge-castro

    Joined:
    Jul 26, 2008
    Posts:
    142
    I wonder if the book was published or not.
     
  38. pastrana

    pastrana

    Joined:
    Sep 18, 2005
    Posts:
    7
    count me in fo the book!

    benjamin
     
  39. CosmoKing

    CosmoKing

    Joined:
    Feb 23, 2009
    Posts:
    111
    You should mention Wings 3d. It's probably the best modeling software for beginners, and can do a pretty good job at it.