<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-21793247</id><updated>2010-05-12T18:46:21.802-07:00</updated><title type='text'>developer's corner</title><subtitle type='html'>where i try to answer your questions about game development</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/posts/default'/><link rel='alternate' type='text/html' href='http://rome.ro/developer.html'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rome.ro/atom.xml'/><author><name>John Romero</name><uri>http://www.blogger.com/profile/05586845535686951134</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-21793247.post-7380200997169210700</id><published>2007-11-23T16:10:00.000-08:00</published><updated>2007-11-23T19:40:18.153-08:00</updated><title type='text'>Text Console Library</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://rome.ro/uploaded_images/mazey-751263.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://rome.ro/uploaded_images/mazey-751261.gif" alt="" border="0" /&gt;&lt;/a&gt;When you first start coding in C/C++ your first programs are done in the console.  The problem with the console nowadays is that the conio.h library no longer lets you do all the fun things it used to, like set the text color, set cursor position, clear the screen, etc.  You can only print text out in a stream just like the olden days of the 70's and teletype printers.  Lame.&lt;br /&gt;&lt;br /&gt;This is the problem that all beginning game coders run into and it really takes some of the fun out of learning when you can't even sit down and try to write Pac-Man in text mode.&lt;br /&gt;&lt;br /&gt;So I poked around and found a little snippet of code, added my own functions and now I have a nice little text console library you can use.  Just add the console.h and console.cpp files into your empty Win32 console project and you can actually make text games.  Without this kind of library you can't really make any kind of fun text game other than an adventure.&lt;br /&gt;&lt;br /&gt;I threw together a short sample program to demonstrate what you can do.  It's a simple maze that has a random exit ('X') in it; touch it and you win.  The source is named main.cpp.  The game? ULTRA-X OF THE FORBIDDEN REALM!&lt;br /&gt;&lt;br /&gt;To add even cooler stuff to your console games you should download FMOD and link it into your project.  Instructions on how to do this are on &lt;a href="http://www.fmod.org/"&gt;FMOD.ORG&lt;/a&gt; and are easy to follow.  Imagine that - a text game with background music and sound effects. :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://rome.ro/media/console_lib.zip"&gt;Grab the code here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21793247-7380200997169210700?l=rome.ro%2Fdeveloper.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/7380200997169210700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21793247&amp;postID=7380200997169210700' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/posts/default/7380200997169210700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/posts/default/7380200997169210700'/><link rel='alternate' type='text/html' href='http://rome.ro/2007/11/text-console-library.html' title='Text Console Library'/><author><name>John Romero</name><uri>http://www.blogger.com/profile/05586845535686951134</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13740535830912297818'/></author><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21793247.post-7833669285084191247</id><published>2007-04-30T15:22:00.000-07:00</published><updated>2007-04-30T15:42:03.755-07:00</updated><title type='text'>Beginning C++, pt. 2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://rome.ro/uploaded_images/begc++-778785.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://rome.ro/uploaded_images/begc++-778772.jpg" border="0" alt="" /&gt;&lt;/a&gt;After further investigation and actual use, I would like to now recommend Michael Dawson's book &lt;a href="http://www.amazon.com/Beginning-C%2B%2B-Game-Programming-Development/dp/1592002056/ref=sr_1_8/104-8766611-6722367?ie=UTF8&amp;s=books&amp;qid=1177972011&amp;sr=8-8"&gt; "Beginning C++ Game Programming"&lt;/a&gt;.  I went to the book store, rifled through a ton of C++ programming books and after getting through my filter I settled on this book for my son Michael to start with.&lt;br /&gt;&lt;br /&gt;Even though the title of the book sounds like you'll be getting into a bunch of fun game stuff the reality is that all the focus for the first 8 or so chapters is just on learning C.  C++ comes in during the next couple chapters and builds upon what you learned about C but doesn't go too far - it keeps it simple.&lt;br /&gt;&lt;br /&gt;Along the way you use the language to construct a few simple games that are all text-based which I believe is a great way to just focus on learning the language and some basics about game construction.  So don't be expecting to be drawing graphics and making sounds and using the mouse on a graphical screen - you need another book to do that and it should be AFTER you get through this one.&lt;br /&gt;&lt;br /&gt;I got Michael a book on coding game graphics that he's diving into now since he finished this book.  I'm proud to say that he can program in C++ now after finishing this book and it's not an overly long one either.  It's also very easy to understand with good explanations for the concepts.&lt;br /&gt;&lt;br /&gt;Some things I would have liked to have seen in the book were explanations of &lt;span style="font-weight:bold;"&gt;switch()&lt;/span&gt; before its use, using struct{} and explanations of complex data structures, and explanations and use of &lt;span style="font-weight:bold;"&gt;printf&lt;/span&gt;.  The book relies heavily on &lt;span style="font-weight:bold;"&gt;cout&lt;/span&gt; and &lt;span style="font-weight:bold;"&gt;cin&lt;/span&gt; which I'm not too fond of because of the syntax but they're easy to understand when it comes to printing &lt;span style="font-weight:bold;"&gt;string&lt;/span&gt; objects.  When Michael was going through the book I taught him printf and had him convert all the couts in the book to printfs - it showed him more about what goes on inside those string objects and was less typing when he needed to print %d, %s, etc. arguments.&lt;br /&gt;&lt;br /&gt;Try it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21793247-7833669285084191247?l=rome.ro%2Fdeveloper.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/7833669285084191247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21793247&amp;postID=7833669285084191247' title='60 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/posts/default/7833669285084191247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/posts/default/7833669285084191247'/><link rel='alternate' type='text/html' href='http://rome.ro/2007/04/beginning-c-pt-2.html' title='Beginning C++, pt. 2'/><author><name>John Romero</name><uri>http://www.blogger.com/profile/05586845535686951134</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13740535830912297818'/></author><thr:total>60</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21793247.post-114906093188071902</id><published>2006-05-30T21:01:00.000-07:00</published><updated>2006-05-31T00:39:18.266-07:00</updated><title type='text'>beginning game programming</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://rome.ro/uploaded_images/book-735737.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://rome.ro/uploaded_images/book-734389.jpg" border="0" alt="" /&gt;&lt;/a&gt;Just got an email about game programming books, a very popular question I get:&lt;br /&gt;&lt;br /&gt;&lt;font face="Courier New, Courier, mono"&gt;Hey John, I've mailed you before but I doubt you remember; with that said, I love your games! Always have, always will. I've done a bit of game programming with some beginner's languages like GML and many versions of BASIC, but I'd really like to learn C. I have one question: I've pretty much learned all there is to make console applications, which is all I can find tutorials for. Where can I get some info on basic graphics programming? Just drawing/manipulating bitmaps or pixels, something like that.&lt;br /&gt; &lt;br /&gt;Thanks!&lt;br /&gt; &lt;br /&gt;-Jake&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Here's what I would recommend with just a quick search on Amazon: &lt;a href="http://www.amazon.com/gp/product/0672326590/qid=1149059695/sr=2-1/ref=pd_bbs_b_2_1/104-1860596-9612738?s=books&amp;v=glance&amp;n=283155"&gt; Beginning Game Programming&lt;/a&gt; by Michael Morrison.&lt;br /&gt;&lt;br /&gt;Now, I haven't had to read a game programming book in about 22 years but this one seems pretty solid with good reviews.  Sure, some of the reviews might be by the guy's mom and friends but how else can you tell if it's good unless you try it yourself?&lt;br /&gt;&lt;br /&gt;I'm sure some of the readers here can recommend other great books - that's what this section is for!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21793247-114906093188071902?l=rome.ro%2Fdeveloper.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/114906093188071902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21793247&amp;postID=114906093188071902' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/posts/default/114906093188071902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/posts/default/114906093188071902'/><link rel='alternate' type='text/html' href='http://rome.ro/2006/05/beginning-game-programming.html' title='beginning game programming'/><author><name>John Romero</name><uri>http://www.blogger.com/profile/05586845535686951134</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13740535830912297818'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21793247.post-113988417942961897</id><published>2006-02-13T18:23:00.000-08:00</published><updated>2006-03-31T09:21:11.576-08:00</updated><title type='text'>code newbie?</title><content type='html'>&lt;a href="http://rome.ro/uploaded_images/logo-759138.png"&gt;&lt;img style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://rome.ro/uploaded_images/logo-756376.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Continuing on from my previous post, if you're a beginning programmer there's a great site out there for you: &lt;a href="http://codenewbie.com"&gt;Code Newbie&lt;/a&gt;. You absolutely do not have to know how to program already when you go to this site and you can get great explanations of common programming problems in the forums. Check it out!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21793247-113988417942961897?l=rome.ro%2Fdeveloper.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/113988417942961897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21793247&amp;postID=113988417942961897' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/posts/default/113988417942961897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/posts/default/113988417942961897'/><link rel='alternate' type='text/html' href='http://rome.ro/2006/02/code-newbie.html' title='code newbie?'/><author><name>John Romero</name><uri>http://www.blogger.com/profile/05586845535686951134</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13740535830912297818'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21793247.post-113877376011937113</id><published>2006-01-31T21:51:00.000-08:00</published><updated>2006-05-12T06:44:25.816-07:00</updated><title type='text'>total beginner programmers</title><content type='html'>&lt;a href="http://rome.ro/uploaded_images/express_hero3-715154.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://rome.ro/uploaded_images/express_hero3-712895.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Just today I got this cute email from a 13-year old:&lt;br /&gt;&lt;br /&gt;&lt;font face="Courier New, Courier, mono"&gt;&lt;br /&gt;Dear Mr. Romero,&lt;br /&gt;&lt;br /&gt;I'm a thirteen-year-old boy who absolutely loves the games that you've made throughout the years, so much that I really want to start programming, however, I don't know where to start.&lt;br /&gt;BASIC seems too small a language to aid me in what I want to do, create the games graphical engine, but C# and C++ seem a little robust for a beginner. What do you think?&lt;br /&gt;I really want to program, and I know that I do want to learn C# and C++, it's just that I'm not sure if they're the best languages for me to start in. I'd sort of like to learn BASIC, but I really can't find any good tutorials online, do you have any that I could possibly use?&lt;br /&gt;Anyways, I hope that you take time out of your busy schedule to reply, but I won't be absolutely crushed if you don't. Thanks.&lt;br /&gt;&lt;br /&gt;Sincerely,&lt;br /&gt;Zachary&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;This was an absolutely great, well-written email with an excellent question.  My answer is pretty much the same every time: if you want to learn how to code, you should be learning C.  You can learn C++ later but I still believe it's best to go the C/C++ route rather than Visual Basic or some scripting language.&lt;br /&gt;&lt;br /&gt;My personal favorite environment is the &lt;strong&gt;Visual Studio C++ Standard &lt;/strong&gt;or Professional Edition.  The Standard Edition is around &lt;strong&gt;$280 online &lt;/strong&gt;and has everything you'll need for quite a while if you're a beginner.  &lt;br /&gt;&lt;br /&gt;If you're on a budget, like, a no-money kind of budget, then you should download, for free, the &lt;a href=http://msdn.microsoft.com/vstudio/express/visualc/&gt;Visual C++ Express Edition&lt;/a&gt; product by Microsoft.  There's even a nice &lt;a href=http://www.amazon.com/gp/product/159200816X/sr=1-1/qid=1138771805/ref=pd_bbs_1/002-9388814-9675260?%5Fencoding=UTF8&gt;book for complete beginners on Amazon.com&lt;/a&gt; that will help a lot.&lt;br /&gt;&lt;br /&gt;This dev environment can get you through PC game development, handheld development (PocketPC anyone?) and with enough tweaking you can get it to work with external compilers for special hardware.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21793247-113877376011937113?l=rome.ro%2Fdeveloper.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/113877376011937113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21793247&amp;postID=113877376011937113' title='90 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/posts/default/113877376011937113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/posts/default/113877376011937113'/><link rel='alternate' type='text/html' href='http://rome.ro/2006/01/total-beginner-programmers.html' title='total beginner programmers'/><author><name>John Romero</name><uri>http://www.blogger.com/profile/05586845535686951134</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13740535830912297818'/></author><thr:total>90</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21793247.post-113877211798538829</id><published>2006-01-31T21:34:00.000-08:00</published><updated>2006-03-08T01:50:44.440-08:00</updated><title type='text'>in the beginning...</title><content type='html'>I get so many emails asking me development questions that I decided to just start an area where I try to answer them and hopefully the information will help.&lt;br /&gt;&lt;br /&gt;Several readers will be commenting and giving their own opinions and viewpoints - but what you read from me is what I believe from my experience.&lt;br /&gt;&lt;br /&gt;Here we go!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21793247-113877211798538829?l=rome.ro%2Fdeveloper.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/113877211798538829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=21793247&amp;postID=113877211798538829' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/posts/default/113877211798538829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21793247/posts/default/113877211798538829'/><link rel='alternate' type='text/html' href='http://rome.ro/2006/01/in-beginning.html' title='in the beginning...'/><author><name>John Romero</name><uri>http://www.blogger.com/profile/05586845535686951134</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13740535830912297818'/></author><thr:total>8</thr:total></entry></feed>