Make a book or make an open source book?

ThePentiumGuy

Well-known member
Joined
May 21, 2003
Messages
1,113
Location
Boston, Massachusetts
Cliffnotes

Background: Ive had this site, vbProgramming, up for a while. I mean theres a sizable collection of tutorials related to game programming with VB.NET there. The site was pretty active last year.

Now: Im writing a book about this very topic, a pretty big portion (about 1/4) of the content is already contained on my site. Its a daunting task, but Id make some cash and look really good on college apps.

Insetad, should I make this an open source book (WikiBook, OurMedia, CreativeCommons, etc)? The problem is, Id need a large userbase, which I dont have anymore.

Any thoughts and opinions would be appreciated.


Not Cliffs:
------
Its all about giving back to the community. Information exchange is crucial in this world, and without it we woudlnt progress. As programmers, we learn from our masters and our peers. Beginner programmers are guided by more experienced programmers (or resources theyve created, such as articles, books, or websites). As these new programmers get more experienced, it becomes their duty to give rise to the inexperienced programmers. The cycle continues...

A month ago I decided to write a book, "Learning Visual Basic.NET - The Game Programmers Path." The book uses the websites tried-and-true trial and error method of teaching. It quickly introduces the reader to Visual Basic.NET and progresses through game development. It begins with simple games such as tic-tac-toe, pong, checkers, tetris, brickout, demonstrating the development process and game loops. Then, the book moves onwards to introduce AI with games such as pacman, and space shooters. Advanced scrolling and level-creation is introduced with a game similar to Mario. Complicated event-driven concepts such as information storage (character stats, inventory, etc), optimization, etc. are introduced in a mini RPG. I havent decided yet whether or not a section on 3D will be introduced or not.

Heres the dillemma Im facing. Information exchange is meant to be free right? Right. Well the flip side of the coin is: If I wrote this book Id make profit, and have a major ++ on my college application. Problem is, books take months to write. Im up for it, however.

Well, going back to the Information = Free idea. If I made a WikiBook (www.wikibooks.org) would anyone contribute? A WikiBook is an open-source book which anyone is free to edit (and features a History system that allows an article to be reverted to a previous version if it gets messed up). The key to such a project is a large fanbase, as youd have many users submitting small bits of content at a time, which amounts to something. Its a shame, really - last summer (when I was constantly updating the site) if I launched the project I might have gotten this project rolling along quite smoothly.
------

Cliffs are at the top section

Any thoughts would be appreciated.

Thanks,
-The Pentium Guy
 
Unless you have an aversion towards "working for the man" and making a career with your computer skill, go for the real book with money.

Having a publisher publish a book means that someone actually thought your idea was good enough and your writing solid enough to stand behind.

Publishing your own just means that you had some spare time, fingers and a word proccessor. Nothing more. I mean it could be a good book, but most are awful on so many levels (editing, layout, proofing, content). But if you manage the proverbial "Needle in the haystack" and get some good word of mouth and reviewers who will actually touch it, it might be worth a line on a resume.
 
Denaes, I think the real benefit to the online/wiki book is the benefit to others rather than oneself.

And I think that the best way to decide is to just think about it in terms of your priorities. I dont think that you are necessarily restricted to one solution or the other, although it would be quite a project to manage both at the same time and maintain them as completely separate works. If your biggest concern is your financial situation or the state of your resume, by all means go with the book. Ive looked at your website, and I have no doubt that you can do it, and there will always be more chances to contribute to the programming community. On the other hand, if your ideals are a high priority, make the online book. I think that a programming tutorial wiki of some sort would be a very good way for users of all different skill levels to interact and cooperate.
 
Id personally say write the book. If you can manage to get the book published then all well and good, wealth and fame galore ;). If you cant, then you could easily convert it to a freely distributable e-book or wiki.
 
The guys who wrote "Ajax Patterns" started off with a working, open wiki to which they contributed almost all the information. Most outside contributions came in the form of editors comments, typo correction, and things like that. "Ajax Patterns" has been available in Wiki form for over a year and in real book form for about six months or so, both paper and pdf formats. The really cool part is that even though the information is 100% available on the wiki, they still sell books (which I think someone from oreilly approached them about -- they didnt set out to write a book!). Different people have different needs. Some like a nice bound book they can read, take notes in the margin, and have available offline while others are cheap and wouldnt pay for the book even if it were $1.

My point here is that business models are changing everyday and its getting easier and easier for "normal" people to do things that up to this point were not possible. Have a funny graphic idea? It takes less than 10 minutes to open up your own T-Shirt shop on cafe press. Want to write and publish a book? Crank it all out on your website and viola -- youre a published author, no publishing company required. Go for it, but dont feel like you have to follow traditional business models or ways of doing things. Heck, The Pragmatic Programmers (pragmatically) apply programming techniques to writing books such as meta tags and version control. Who would have thought that checking a book into subversion was such a great idea? (p.s. it looks like they are a great resource for publishing a book too -- check out the "for authors" section.)

From a resume perspective, both a book and a website resource look very impressive. Both are contributing to the community so you shouldnt feel like youre abandoning your ideals to write a book (in my opinion). At the same time, there really is no reason why you shouldnt do both. If nothing else, it gives you a great forum for errors and omissions and a place for people to download source code (because CDs are expensive to publish with a book!).
 
Let me inject some reality into this situation.

First of all, no one interested in professional game programming would use vb.net.

Secondly...I briefly looked at some of the tutorials on your site, and they use outdated design and naming conventions. Any real publisher would have their own programmer look over the draft code and you would be given a big thumbs down.

Thirdly...theres no original snippet or app on the site, its all been done before and countless books have been written on each of the techniques.

Fourthly...where are the other 3 quarters of the book coming? Do you have some ingenious original content that no one has ever seen before...let me answer that for you...no.

Fifthly...who the hell are you?

Let me recap the situation...In order to sell a programming book you need:

Originality
Solid Examples
Reputation

None of which you have.

In a best case scenario, youll write the book, get some third world publisher to sell the book and itll end up in the bargain rack of MicroCenter.

Good Luck.
 
Diesel, we can always count on you to spread cheer and optimism.

First of all, there are already a small handful of game-programming books for .Net, both VB and C#. And as far as I know, most of them are still selling for $50 each. Even the horrible ones with code listings in the book that dont work. I really cant imagine that it would be hard to top the handful of mediocre .Net game programming books out there.

Secondly, the site is probably outdated and not the highest priority in his life. If he were to write a book, he probably would, as I would, go to great lengths to make sure that everything was conceptually and logically sound, and have other programmers participate in the editing process.

Thirdly, so? If countless books have been written on a given technique, then that goes to prove that there is room for more than one, and most likely, one more.

Fourthly, I think that the other three quarters of the book are in his brain and any programming projects he has contributed to over the years. If it isnt enough for you, dont buy the book. Isnt capitalism great?

Fifthly, he is ThePentiumGuy. You have to start somewhere. His book might not be a New York Times Bestseller, but if it is good and people find it useful then word of mouth will do some wonders, and who knows, it could turn into a series. Cant know if you dont try (I know you think you know, but you arent doing the thinking for the rest of us).

Sixthly, check out micro printing. Anyone can get a book published. Anyone. So even if it flops and doesnt make him a cent or get him anywhere in the world, he can still keep it on his bookshelf and tell people he meets that he wrote a book.



Oh, and keep on smiling, Diesel.
 
Diesel said:
First of all, no one interested in professional game programming would use vb.net.
I agree with you but it isnt always about professional programmers. Think about it, how many folks on this forum alone got their first introduction to programming from something like a QBasic game programming book? You know, the one where it takes days to type in pages and pages of code only to have it not compile...

Writing fun little games where monkeys throw exploding bannanas at each other is fun, rewarding, and educational. Education is all about reaching people in a way that they can relate to. For some folks its typing in your name and having the computer say hi back to you. For others, its fun/simple little games. Maybe there is indeed a need for a VB.Net Game Programming book even though anyone using it would probably end up switching to C#/C++ eventually anyway.
 
I know this is an old thread, but I though Id add this for fun. Back when games were written mostly in Assembler, people laughed at the guys saying they could make great games in C++ and look what theyve created? In a few years computers will be so cheap and powerful that the ease of use and rapid application development of .NET will out weigh the marginal performance gains of C++. .NET still uses DirectX which is still lightening quick.
 
I wouldnt count on it. Computers have always been getting faster and faster and there have always been those that said that higher-level languages will soon find themselves on level ground with mid- or low-level languages. The actual steps up are rare indeed though. The three major players are still ASM, C, and C++, as they have been for a very long time, and optimizing compilers can put C++ on level ground with ASM.

C++ isnt merely marginally faster. It is a matter of how and when it is faster. Dotnet takes advantage of idle CPU time in a major way (primarily in terms of memory management). This allows .Net to perform certain tasks, such as tasks that require the allocation of large numbers of objects, faster.

QB, VB, and now C# have always been perfectly acceptable candidates for RAD and hobby/amateur programming, but for game programming they arent ideal. For a complex game there isnt a huge amount of otherwise-wasted CPU power, which means that Dotnets memory management will fall behind. Fast execution can also be compromised by the likes of on-demand JIT compilation and managed-to-native marshalling (and vice-versa), not to mention the performance loss and larger memory demand as a result of a huge number of .Net wrappers for Windows and DirectX objects. What "lighting-quick" means is very subjective. Polygon counts are ever-increasing. The complexity of business applications and operating systems continues to grow. Can VB use Managed DirectX to draw a large number of polygons quickly? Sure. But C++ can do it better, and it can run the game logic faster.

So, is the gap between managed (or interpreted or VM) and unmanaged code getting smaller? To be certain, yes. But will C++ be taking a back seat to VB. Not any time soon.

Nate Bross said:
In a few years computers will be so cheap and powerful that the ease of use and rapid application development of Dotnet will out weigh the marginal performance gains of C++.
What do you foresee that will accelerate advancement in computational technology so drastically? RAD software has always had an advantage over languages like C++ in the right situations. When has VB ever been a worse choice for a small business application? But there will also always be software and developers that push the limits of the hardware and for the foreseeable future that is beyond VBs reach.
 
I did a bad job of explaining my point. .NET or interpreted languages will never be able to make the latest greates First Person Shooter (games like DOOM 3, or Quake 4). But theres a huge market for less than cutting edge games, which .NET can accomidate very well. RTS games, where poly count is not as important are a greate example.
 
Well then I certainly have to agree with you. It is undoubtedly possibly to create a very decent multimedia/interactive app or game using Dotnet.
 
Ive said the same things on this subject as Nate Bross before and had to defend my position quite rigorously. Im glad to see there are others that share my opinion.
 
Back
Top