<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Abandoned Projects</title>
		<link>http://www.allegro.cc/forums/view/609167</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 20 Jan 2012 09:31:42 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi!</p><p>I created this thread in order to post: binaries, screenshots, art, videos, or any other related things about our abandoned projects. I&#39;ll start with mine:</p><p><b>B.R. Project:</b></p><p>I started this project probably in 2007, using Allegro 4, then I moved the project to AllegroGL and in the end all the graphics related code was just pure OGL. </p><p>As my skills improved I realized the core code was a fine piece of crap, then I decided to start from scratch using my own framework, but lack of time and motivation made this never happen.</p><p>Somehow I managed to break the old code, and it won&#39;t compile again so there are no working binaries and the only thing remaining are the assets(not sure about this) and these videos:</p><p><div class="media-player youtube"><div style="margin: 1em 2em; background: url(/images/movie.png); width: 180px; height: 100px; text-align: center;"><a href="http://www.allegro.cc//www.youtube.com/watch?v=9IxctSKODdY" target="_blank"><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/object/5/8/584689c2855f1de2c202b620dcdf9602.jpg" border="0" alt="video" title="Click to play video" /></a></div></div></p><p><div class="media-player youtube"><div style="margin: 1em 2em; background: url(/images/movie.png); width: 180px; height: 100px; text-align: center;"><a href="http://www.allegro.cc//www.youtube.com/watch?v=NBnRXYOIXaU" target="_blank"><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/object/1/d/1d8cebd7e00ffa9e761b9e6a99bdecd1.jpg" border="0" alt="video" title="Click to play video" /></a></div></div>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Sat, 31 Dec 2011 21:53:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I haven&#39;t abandoned any of my projects, well except for all the ones I&#39;m not currently working on. I have no screenshots either only text output of random things like memory addresses of pointers, array element indices, and basic debugging junk.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (verthex)</author>
		<pubDate>Sat, 31 Dec 2011 23:00:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I started writing a reply to this thread, then abandoned my attempt halfway through.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Sat, 31 Dec 2011 23:24:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I wrote a Zelda-esque game maybe 6-7 years ago, and abandoned it for the same reason as the OP: the code was out of control. It was my first C++ program (coming from C background.) It was a half decent engine feature wise. You could walk around, interact with stuff (pick stuff up, attack, special attacks, dialogue, triggers, doors, etc) but it reached a point where it was too hard to add new stuff because it was a big ugly blob.</p><p>I still have the code in a backup, but don&#39;t ever plan on looking at it again. Oh, and the toughest part was graphics... I suck at drawing and this game had 8 directional movement, so I had the character animated but there were too few frames and it didn&#39;t look great, and I needed a lot more graphics. Also, I made a WYSIWYG map editor where you could place entities and stuff, give them properties and all that, but the GUI &quot;library&quot; was total crap so it was getting really difficult to program the editor too.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Sat, 31 Dec 2011 23:34:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942021#target">Paul whoknows</a> said:</div><div class="quote"><p>Somehow I managed to break the old code, and it won&#39;t compile again</p></div></div><p>

That&#39;s a piss-poor excuse. Unless you&#39;ve managed to mislay code, it can&#39;t be <i>that</i> hard to get it compiling. </p><p>One good way to not give up on a project is to make sure it&#39;s useful and maintainable from the outset. Then release it as open-source, and you&#39;ll have people nagging you about bug fixes and feature requests ever after. This way you&#39;re not only letting yourself down, but you&#39;re letting others down too. <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Sat, 31 Dec 2011 23:47:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><span class="remote-thumbnail"><span class="json">{"name":"605345","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/4\/04c246f6dcdfa598029525f0ad0f1c7d.png","w":642,"h":426,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/0\/4\/04c246f6dcdfa598029525f0ad0f1c7d"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/0/4/04c246f6dcdfa598029525f0ad0f1c7d-240.jpg" alt="605345" width="240" height="159" /></span></p><p>Not really abandoned, as I do still occasionally load it up for giggles. But I don&#39;t expect to ever finish it, so I guess it qualifies.</p><p>I think the biggest demotivating factor for me is that I hate all C IDEs on Linux, and I don&#39;t really feel like booting into Windows just to work on it for 30 minutes here or there. The project is complex and without a good debugger, it&#39;s hard to remind myself of how everything is working after I&#39;ve been away. <img src="http://www.allegro.cc/forums/smileys/lipsrsealed.gif" alt=":-X" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Sun, 01 Jan 2012 00:26:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I abandoned Arkab on purpose because I got bored of the gameplay in the end and couldn&#39;t think of new ways to spice it up. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> It just was trial &amp; error at its core. Some casual players I&#39;ve tried it with liked it, but I didn&#39;t end up liking it later. It was quite a relaxing game tho. </p><p><div class="media-player youtube"><div style="margin: 1em 2em; background: url(/images/movie.png); width: 180px; height: 100px; text-align: center;"><a href="http://www.allegro.cc//www.youtube.com/watch?v=CKGHT7WCgRI" target="_blank"><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/object/1/2/12bf0b6571325ff7cb8238e1d2e365fa.jpg" border="0" alt="video" title="Click to play video" /></a></div></div><br /><div class="media-player youtube"><div style="margin: 1em 2em; background: url(/images/movie.png); width: 180px; height: 100px; text-align: center;"><a href="http://www.allegro.cc//www.youtube.com/watch?v=PoI9bCplEXA" target="_blank"><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/object/3/e/3eebd7bc1d43afda862f4ec0dbec8eb5.jpg" border="0" alt="video" title="Click to play video" /></a></div></div></p><p>It was quite a big help on learning shader language tho, which originated my next, <a href="http://www.youtube.com/watch?v=U1Ahytyuwgg">more interesting</a> <a href="http://www.youtube.com/watch?v=g66hvZs8d1k">project</a>. <img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Sun, 01 Jan 2012 00:52:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I started a simple Battleship game, but gave up when my hard drive crashed. I don&#39;t have the time to revive it, but as soon as I hit the lottery, I will.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Bob Keane)</author>
		<pubDate>Sun, 01 Jan 2012 01:19:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><h2>Turns of War</h2><p> </p><p>Here&#39;s my dead baby (I added some MM8 music to make it less dull to watch):</p><p><div class="media-player youtube"><div style="margin: 1em 2em; background: url(/images/movie.png); width: 180px; height: 100px; text-align: center;"><a href="http://www.allegro.cc//www.youtube.com/watch?v=BNNpgRYGLkI" target="_blank"><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/object/e/0/e0d3f6db65fd62444a4dca446c900ed9.jpg" border="0" alt="video" title="Click to play video" /></a></div></div></p><p>I abandoned it because it was all written in plain C, lacking even basic object orientation. I was a bad programmer at the time. </p><p>Actually just looking at it is a bit depressing. <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" /></p><p>On the bright side, I&#39;ve put <i>even more</i> time into my current game, which I&#39;m going to finish or die trying. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Sun, 01 Jan 2012 07:26:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If the code for that is even remotely readable, your statement about being a bad programmer at the time is 100% <span class="cuss"><span>bull<span class="cuss"><span>shit</span></span></span></span>.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sun, 01 Jan 2012 07:29:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, by bad I mean unprofessional. As I gradually became more aware of best practices and &quot;beautiful&quot; code, the code base became gradually more abhorrent to work with until eventually I just couldn&#39;t hack it (pun intended <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Sun, 01 Jan 2012 07:47:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><h3>Chronicles of Shaenor</h3><p>

Was supposed to be an isometric RPG thing, but never made it past the basic editor. Was the reason I started using Allegro in the first place. Abandoned for no particular reason, but I&#39;ll try to restart it from scratch at some point.</p><p><span class="remote-thumbnail"><span class="json">{"name":"605350","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/d\/5\/d5eba14fc4249511e458c1cfd6665536.jpg","w":805,"h":624,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/d\/5\/d5eba14fc4249511e458c1cfd6665536"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/d/5/d5eba14fc4249511e458c1cfd6665536-240.jpg" alt="605350" width="240" height="186" /></span></p><p><span class="remote-thumbnail"><span class="json">{"name":"605348","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/a\/fafefbb4c837031b742fc2d632830da5.png","w":805,"h":624,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/a\/fafefbb4c837031b742fc2d632830da5"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/f/a/fafefbb4c837031b742fc2d632830da5-240.jpg" alt="605348" width="240" height="186" /></span></p><p>Made a voxel editor for the purpose of making things for it too:</p><p><span class="remote-thumbnail"><span class="json">{"name":"605349","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/9\/c93639a4e6fc3daccabd712dccd1be42.png","w":804,"h":623,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/c\/9\/c93639a4e6fc3daccabd712dccd1be42"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/c/9/c93639a4e6fc3daccabd712dccd1be42-240.jpg" alt="605349" width="240" height="185" /></span></p><h3>&quot;Fly&quot;</h3><p>

Was supposed to be a clone of Klingon Academy. Used Irrlicht for this one... Abandoned it for no particular reason. I think I got around to making weapons + damage modeling.</p><p><span class="remote-thumbnail"><span class="json">{"name":"605351","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/2\/7\/2754ca0422d1cd0b88a7645341a3e5d9.jpg","w":956,"h":596,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/2\/7\/2754ca0422d1cd0b88a7645341a3e5d9"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/2/7/2754ca0422d1cd0b88a7645341a3e5d9-240.jpg" alt="605351" width="240" height="149" /></span></p><p><span class="remote-thumbnail"><span class="json">{"name":"605352","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/e\/e\/ee19c65cdf34901bfd33a84db84602a9.jpg","w":954,"h":597,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/e\/e\/ee19c65cdf34901bfd33a84db84602a9"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/e/e/ee19c65cdf34901bfd33a84db84602a9-240.jpg" alt="605352" width="240" height="150" /></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Sun, 01 Jan 2012 07:56:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have too many abandoned projects to decide which one goes here. Also I have two rungs of abandoned... &quot;Abandoned and very unlikely to ever resume&quot; and &quot;Functionally abandoned, may yet get back to it, but no idea when&quot;.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sun, 01 Jan 2012 08:34:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I abandon stuff a lot less these days. I could list a lot of other games I abandoned. Oh, <a href="http://web.archive.org/web/20040604065554/http://www.cyberlink.bc.ca/~tmg/nooss/ss/index.html">here&#39;s one</a> from high school. I don&#39;t even start something that I&#39;m going to abandon anymore. git r done!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Sun, 01 Jan 2012 08:37:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942097#target">Thomas Fjellstrom</a> said:</div><div class="quote"><p>I have too many abandoned projects to decide which one goes here. Also I have two rungs of abandoned... &quot;Abandoned and very unlikely to ever resume&quot; and &quot;Functionally abandoned, may yet get back to it, but no idea when&quot;.</p></div></div><p>

Same feeling here. Most of the &quot;won&#39;t touch again&quot; projects are just old iterations of my dream game. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> Who knows if I&#39;ll ever get close to doing it someday, but it&#39;s what&#39;s been driving me to learn a lot of stuff over all these years.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Sun, 01 Jan 2012 08:57:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m afraid this thread isn&#39;t big enough to list the failed projects I have had. Ideas are a dime a minute but I&#39;ve failed time and time again to make them into final projects (if I got started on them at all).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sun, 01 Jan 2012 11:30:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942106#target">Specter Phoenix</a> said:</div><div class="quote"><p>I&#39;m afraid this thread isn&#39;t big enough to list the failed projects I have had.</p></div></div><p>

Then just list the most tragic abandonment (i.e. the project you got furthest with but still abandoned).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Sun, 01 Jan 2012 16:24:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942117#target">James Lohr</a> said:</div><div class="quote"><p>
Then just list the most tragic abandonment (i.e. the project you got furthest with but still abandoned).
</p></div></div><p>
Well they all have got to the same point before I start thinking I can&#39;t do it and abandon it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sun, 01 Jan 2012 19:18:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The last project that I abandoned where there were actually graphics present was a platformer I was working on.</p><p>You could jump, wall jump and slide down walls. It could have been a very fun game I think. It was actually fun to play around in the test map, without any obstacles or enemies.</p><p>The graphics were really crap though, black background and a red square as a character. The collision detection was also quite broken.</p><p>I think I&#39;m going to start this project all over again though.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (l j)</author>
		<pubDate>Sun, 01 Jan 2012 19:59:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942122#target">Specter Phoenix</a> said:</div><div class="quote"><p>Well they all have got to the same point before I start thinking I can&#39;t do it and abandon it.</p></div></div><p>

Of course if you think you can&#39;t do it you&#39;re never gonna progress. Challenging yourself to a new goal is what will get you to learn new stuff that you think of mysterious right now. Even if you don&#39;t succeed as you wanted in the end, every little bit helps.</p><p>My little side project of doing a <a href="http://imageshack.us/photo/my-images/42/screenshot1213201123143.jpg">level editor for a recently released game</a>, even if a bit that looks like it would never be finished, has got me into trying newer tools now. XML parsing, writing. 3D rendering using Ogre. I never thought I would try something like that when I was trying to figure out how to get double buffering and sprites working, but yet it seems I did. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Sun, 01 Jan 2012 20:06:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I abandoned a game that was going to use Box2D, Skeletal Animation, and Parallax backgrounds.<br /><div class="media-player youtube"><div style="margin: 1em 2em; background: url(/images/movie.png); width: 180px; height: 100px; text-align: center;"><a href="http://www.allegro.cc//www.youtube.com/watch?v=4a2SsbolS9I" target="_blank"><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/object/b/b/bb1c8184e5b5a8f5c3d0d30615980d56.jpg" border="0" alt="video" title="Click to play video" /></a></div></div></p><p>But I reused a lot of the code for a card game I&#39;m making. (Not Box2D though).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Sun, 01 Jan 2012 20:36:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942098#target">Trent Gamblin</a> said:</div><div class="quote"><p>
I don&#39;t even start something that I&#39;m going to abandon anymore.
</p></div></div><p>
This pretty much sums it up. Last gaming project I&#39;ve done is probably ChristmasHack 2007. Other than that I&#39;m consumed by school projects and don&#39;t have <s>time</s> and motivation to start anything else.</p><p>Anyway, to name at least a few of my abandoned projects:
</p><ul><li><p><i>Intruder</i> - this was supposed to be SHMUP, rewrote it probably 4 times. Found out how <i>not</i> to write AI though.
</p></li><li><p><i>Battlestar</i> - this was supposed to be a game where you would control large space ship from above and complete missions. All from the top down perspective.
</p></li><li><p><i>Tactics</i> - failed turn-based strategy. Never got past map generator. Though, I&#39;ve had complete design document including an implementation plan.</p></li></ul><p>There&#39;s one project that I&#39;ve finished as my semestral work that got abandoned. It was a utility that would load bitmap with height iso-contours and create 3D terrain. User interface was lacking and there was no LOD, but actually it worked. There&#39;s even a possibility to return to it - now that I know a lot more about image analysis <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>An obligatory screenshot:<br /><span class="remote-thumbnail"><span class="json">{"name":"594111","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/e\/5ee8e41f88201f6ca8ceb53a5e218650.png","w":1024,"h":768,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/5\/e\/5ee8e41f88201f6ca8ceb53a5e218650"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/5/e/5ee8e41f88201f6ca8ceb53a5e218650-240.jpg" alt="594111" width="240" height="180" /></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OICW)</author>
		<pubDate>Sun, 01 Jan 2012 22:32:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942126#target">Dario ff</a> said:</div><div class="quote"><p>
Of course if you think you can&#39;t do it you&#39;re never gonna progress. Challenging yourself to a new goal is what will get you to learn new stuff that you think of mysterious right now. Even if you don&#39;t succeed as you wanted in the end, every little bit helps.
</p></div></div><p>
Yeah, it is easier to think I can&#39;t do it. I&#39;m a logical person but when I try to make ideas into code it falls apart. Can do simple terminal/console apps but the more complex they get the more issues I have and then throw in graphics and such and I feel overwhelmed with it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sun, 01 Jan 2012 23:30:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942132#target">OICW</a> said:</div><div class="quote"><p>
An obligatory screenshot:
</p></div></div><p>

Set as Desktop Background - thanks.</p><p>I started on a shmup which I abandoned <s>this</s> last year. Couldn&#39;t get the scolling to work.</p><p>Also I recently abandoned my main game in favour of a new simpler game which I&#39;m current;y working on - called Pong Ping.</p><p>An obligatory screenshot:</p><p><span class="remote-thumbnail"><span class="json">{"name":"605353","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/7\/f\/7fcd3292d63441022910219c565fa2d9.png","w":640,"h":480,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/7\/f\/7fcd3292d63441022910219c565fa2d9"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/7/f/7fcd3292d63441022910219c565fa2d9-240.jpg" alt="605353" width="240" height="180" /></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (William Labbett)</author>
		<pubDate>Mon, 02 Jan 2012 01:13:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What are those weird polygons towards the bottom left side and center of the screen
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (verthex)</author>
		<pubDate>Mon, 02 Jan 2012 01:16:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>placeholders for grass tiles. </p><p>The terrain was made of tiles that made pyramids but I decided I stupidly let the whole thing pass quality control too easily.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (William Labbett)</author>
		<pubDate>Mon, 02 Jan 2012 02:02:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942132#target">OICW</a> said:</div><div class="quote"><p>
An obligatory screenshot:
</p></div></div><p>
I just stepped into a black and white version of Tron.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Mon, 02 Jan 2012 03:48:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now I wanna play Arkab and Turns of War <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /></p><p>Hmm... any recommended screen-capture programs? You know, for my crap?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Felix-The-Ghost)</author>
		<pubDate>Mon, 02 Jan 2012 08:16:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I like Fraps. Not sure what are good options for free stuff though.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (MiquelFire)</author>
		<pubDate>Mon, 02 Jan 2012 08:23:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Under Windows I don&#39;t know. Under *nix I use Desktop recorder and just upload the output to YT.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Mon, 02 Jan 2012 08:52:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m reminded of this: <span class="remote-thumbnail"><span class="json">{"name":"605357","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/d\/f\/df31fafa841adb583c4b27b7ffb908d5.png","w":665,"h":384,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/d\/f\/df31fafa841adb583c4b27b7ffb908d5"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/d/f/df31fafa841adb583c4b27b7ffb908d5-240.jpg" alt="605357" width="240" height="138" /></span><br />From a program I made that uses Diamond-Square to generate a fractal terrain and displays it in isometric perspective (there were many improvements, like a projection perspective and basic lighting and without the bug in fractal generation that causes the edges here to look like crap.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Slartibartfast)</author>
		<pubDate>Mon, 02 Jan 2012 13:15:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I started the best game ever in the history of gaming. It was a Monday morning, the ideas were just shooting through my veins like rockets. But I decided the world wasn&#39;t ready yet so I gave up. Here&#39;s the code if anyone wants to finish it:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="k2">{</span>
  AwesomeGameStart<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Neil Walker)</author>
		<pubDate>Mon, 02 Jan 2012 21:39:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><pre>
  return 0;
}
</pre><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc ( Arvidsson)</author>
		<pubDate>Mon, 02 Jan 2012 21:54:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> AwesomeGameStart<span class="k2">(</span><span class="k2">)</span>
<span class="k2">{</span>
   <span class="k1">return</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (l j)</author>
		<pubDate>Mon, 02 Jan 2012 22:21:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Wow, I just ran that code through a white space compiler...</p><p>The game it produced was AWESOME..... So awesome I am lost for words about it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Yodhe23)</author>
		<pubDate>Mon, 02 Jan 2012 22:25:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942132#target">OICW</a> said:</div><div class="quote"><p>

An obligatory screenshot:</p></div></div><p>

Is it a recursion based terrain generator?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (type568)</author>
		<pubDate>Mon, 02 Jan 2012 22:34:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942218#target">type568</a> said:</div><div class="quote"><p>Is it a recursion based terrain generator?
</p></div></div><p>

Could be Delauney triangulation.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (verthex)</author>
		<pubDate>Mon, 02 Jan 2012 22:45:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942220#target">verthex</a> said:</div><div class="quote"><p> Could be Delauney triangulation.</p></div></div><p>I&#39;ve tried that to make a &quot;cracked mud&quot; salt flat terrain, but there wasn&#39;t any heightfield to it.  No fractals whatsoever.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Mon, 02 Jan 2012 23:25:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942218#target">type568</a> said:</div><div class="quote"><p>Is it a recursion based terrain generator?</p></div></div><p>
</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942132#target">OICW</a> said:</div><div class="quote"><p>It was a utility that would load bitmap with height iso-contours and create 3D terrain. User interface was lacking and there was no LOD, but actually it worked. There&#39;s even a possibility to return to it - now that I know a lot more about image analysis</p></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Tue, 03 Jan 2012 00:00:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942091#target">James Lohr</a> said:</div><div class="quote"><p>I abandoned it because it was all written in plain C, lacking even basic object orientation. I was a bad programmer at the time.</p></div></div><p>

Truly impressive <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /> what library were you using in that project? Open TK?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Tue, 03 Jan 2012 01:21:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942239#target">Paul whoknows</a> said:</div><div class="quote"><p>what library were you using in that project?</p></div></div><p>

Take a guess. Allegro and AllegroGL of course! You deserve a slap for that. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Tue, 03 Jan 2012 01:29:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942188#target">Felix-The-Ghost</a> said:</div><div class="quote"><p>Now I wanna play Arkab and Turns of War</p></div></div><p>
There is a <a href="http://www.allegro.cc/forums/thread/604172/0">public test version</a> from 2010 available. (the thread has 5 pages because of some weird off-topic issue about women being able to make games <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" />) But here&#39;s the latest <a href="http://mcserver-mdp.googlecode.com/files/arkab_debug.7z">compiled(debug) version</a> I found on my folder, and as buggy as it may be, you might still find some fun in it. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942242#target">James Lohr</a> said:</div><div class="quote"><p>Take a guess. Allegro and AllegroGL of course! You deserve a slap for that.</p></div></div><p>
That reminds me when I was using OpenLayer, and eventually abandoned it, frustrated at some of its weird bugs(one of which I actually ended up fixing later here for somebody else <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" />)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Tue, 03 Jan 2012 02:59:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Rarely do I abandon anything. I&#39;m this very day working on a resurrected shoot-em-up which is kind of an engine test for an older game concept I had. Then it&#39;s probably back to my strategy game, or maybe the puzzle game. Hell, I still want to finish the Monday project. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Tue, 03 Jan 2012 03:04:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I miss the old days of OpenLayer. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>I hope there will be a renaissance of its methodology sometime soon. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Tue, 03 Jan 2012 03:05:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942263#target">23yrold3yrold</a> said:</div><div class="quote"><p>Rarely do I abandon anything. </p></div></div><p>I haven&#39;t 100% abandoned <i>anything</i> yet, except the projects that I no longer have the code for. I have the code for probably 90% of everything I&#39;ve ever worked on. Eventually I may get around to working on 10% of that, who knows <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Tue, 03 Jan 2012 03:59:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ll have to start something now just so I can officially abandon it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Tue, 03 Jan 2012 10:38:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here&#39;s a screenie of something I was working on called Jetpack :<br /><span class="remote-thumbnail"><span class="json">{"name":"605360","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/3\/4\/34d75dba88e30db126971625c9448b90.png","w":799,"h":601,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/3\/4\/34d75dba88e30db126971625c9448b90"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/3/4/34d75dba88e30db126971625c9448b90-240.jpg" alt="605360" width="240" height="180" /></span></p><p>I still want to finish it, but I probably won&#39;t get back to it until sometime this summer. <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 03 Jan 2012 11:00:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>I miss the old days of OpenLayer. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>I hope there will be a renaissance of its methodology sometime soon. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p></div></div><p>

Do it yourself, you&#39;re the fanboy. <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /></p><p>(But make sure it doesn&#39;t build on MSVC only) <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Tue, 03 Jan 2012 18:34:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942317#target">Edgar Reynaldo</a> said:</div><div class="quote"><p>Here&#39;s a screenie of something I was working on called Jetpack :</p></div></div><p>


Looks very Apple II.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (verthex)</author>
		<pubDate>Tue, 03 Jan 2012 23:07:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942218#target">type568</a> said:</div><div class="quote"><p>
Is it a recursion based terrain generator?
</p></div></div><p>
Nope, as gnolam already pointed out, though, that&#39;s a pet project I&#39;m still working on. It was part of my bachelor thesis, but right now I was deeply engulfed in finishing a compulsory school sofware project.</p><p>No screenshots in this thread as it is not an abandoned project <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OICW)</author>
		<pubDate>Wed, 04 Jan 2012 01:22:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, I can say 2 Pong clones and a Lightcycles game. Two worked and on partially worked before I gave up on it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Thu, 05 Jan 2012 01:41:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942263#target">23yrold3yrold</a> said:</div><div class="quote"><p>Rarely do I abandon anything.</p></div></div><p>
Yeah, abandoning things is stoopid<a href="http://www.allegro.cc/forums/thread/289327">.</a></p><p>Edit: great, now I want to play it.  And the Geocities link in that thread is broken.  Care to attach here?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (GameCreator)</author>
		<pubDate>Thu, 05 Jan 2012 02:09:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I don&#39;t have a version I can compile; I&#39;m still in the process of porting it to a library made this century. No it&#39;s not abandoned, believe it or not. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Thu, 05 Jan 2012 02:29:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Abandoned, because I didn&#39;t plan out well enough... Tic-tac-toe &gt;_&gt;
</p><div class="spoiler"><p>
<span class="remote-thumbnail"><span class="json">{"name":"6ae693b6de5f3b1ff1129abfec4f36ad.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/a\/6ae693b6de5f3b1ff1129abfec4f36ad.png","w":646,"h":508,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/a\/6ae693b6de5f3b1ff1129abfec4f36ad"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/6/a/6ae693b6de5f3b1ff1129abfec4f36ad-240.jpg" alt="6ae693b6de5f3b1ff1129abfec4f36ad.png" width="240" height="188" /></span><br /><span class="remote-thumbnail"><span class="json">{"name":"ff0ec02b44005e8a844c65f8e9ccf97d.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/f\/ff0ec02b44005e8a844c65f8e9ccf97d.png","w":647,"h":506,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/f\/ff0ec02b44005e8a844c65f8e9ccf97d"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/f/f/ff0ec02b44005e8a844c65f8e9ccf97d-240.jpg" alt="ff0ec02b44005e8a844c65f8e9ccf97d.png" width="240" height="187" /></span><br /><span class="remote-thumbnail"><span class="json">{"name":"7fe874bf08c159eb3b1cb64eb95f34e5.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/7\/f\/7fe874bf08c159eb3b1cb64eb95f34e5.png","w":645,"h":507,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/7\/f\/7fe874bf08c159eb3b1cb64eb95f34e5"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/7/f/7fe874bf08c159eb3b1cb64eb95f34e5-240.jpg" alt="7fe874bf08c159eb3b1cb64eb95f34e5.png" width="240" height="188" /></span>
</p></div><p>
There&#39;s a lot of programming material I have lost... If I find it, I can show more abandoned crud.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (weapon_S)</author>
		<pubDate>Thu, 05 Jan 2012 02:39:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Heh. I abandoned pretty much all the games I ever started. Don&#39;t think I ever finished a single one. Closest I ever got was an old-schoolish platformer (featuring a sheep); this one merely lacked interesting content and a bug-free menu UI; I had this 2D top-down space shooter, which is actually playable and all, but lacks a story and a mission system (say, objectives and such), and obviously there&#39;s no real content yet, you just spawn and shoot it out against AI opponents until you get tired. And I had a 3D space shooter, also with fairly complete space flight dynamics and all, but again, no mission objectives, no content, no story, and the models were crap. Jeez, I really have to dig these back up and see if I can get them to compile, if only for screenshots...</p><p>I&#39;ve completed a number of websites / web applications though (at least they&#39;ve made it into production; there&#39;s always room for improvement), and the music notation thing I&#39;m currently working on is useful enough already - it&#39;s not really &#39;finished&#39; in the sense that I don&#39;t know what else to add, but it is seeing some actual real-world use already (if only by myself).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Tobias Dammers)</author>
		<pubDate>Thu, 05 Jan 2012 02:44:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Do it yourself, you&#39;re the fanboy. <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /></p></div></div><p>Hey! <img src="http://www.allegro.cc/forums/smileys/angry.gif" alt="&gt;:(" />  I loved OpenLayer. <img src="http://www.allegro.cc/forums/smileys/cry.gif" alt=":&#39;(" /></p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942355#target">Dario ff</a> said:</div><div class="quote"><p>(But make sure it doesn&#39;t build on MSVC only) <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p></div></div><p>fixed. <img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Thu, 05 Jan 2012 03:55:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>One day I hope to finish my &#39;KILL EM ALL&#39; game. Its a cross between worms and ogre tactics. I stole the sprites from Metal Slug 2 for the units, and had some nice arcing grenade action going on at one point...but it&#39;s been so long, I just had a peek through one of the .c files and closed it again.</p><p>One day...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Thu, 05 Jan 2012 04:12:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>About 18 hours ago I read about the release of FreeDOS 1.1 on Slashdot.  I downloaded it for the fun of it, installed it into VMWare and tried to get the Sound Blaster working to no avail, so I switched over to VirtualBox where the sound did work.  Then I grabbed the latest DJGPP and started playing around with some old programs I had from about 10 years ago.  This computer I have is pretty much bargain bin stuff (3.1Ghz Athlon II) but it can count down an unsigned 32 bit register in 2 seconds even though it&#39;s running in a virtual machine.  I remember being amazed at the 200Mhz Pentium I had in &#39;97 which could do the same in a mere three <i>minutes</i>!  I also remember playing around with a ray caster on a 16Mhz 386SX, I couldn&#39;t refresh the screen faster than about 20FPS in mode 19 even with no other work for it to do, and I just did the same with DJGPP nearptr stuff with approximately 10000 frames per second.  Funny how both cores were maxed out during the blitting, but the register decrement thing only maxed out one core, as does the DOS text editor I&#39;m using in this emulator (spinlocking looking for a keypress with 8088 assembly).</p><p>[EDIT]</p><p>Just for the heck of it I tried Allegro 4.4.2 exscn3d in an 800x600x24 X11 window, it got 150+fps, and the cubes were moving too fast to allow the illusion of motion.</p><div class="quote_container"><div class="title">Billy Zelsnack said:</div><div class="quote"><p>&quot;Pretty soon, computers will be fast.&quot;</p></div></div><p>

I think they&#39;re here now...</p><p>[EDIT2]</p><p>I tried recompiling an old terrain demo with svga, kept getting a black screen with no way to end it except telling the VM to send a hard reset, no way to debug it in svga mode.  Ghod it seemed so primitive now!  Kind of like hiking across the Rockies with a bad knee vs. driving across them on an Interstate in a luxury car.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Thu, 05 Jan 2012 15:34:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I haven&#39;t abandoned any game yet, however I just have less than two years programming so there is a lot to come.</p><p>Well I think that changing completely the same game doesn&#39;t mean that I abandoned it... Or it does? <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AMCerasoli)</author>
		<pubDate>Thu, 05 Jan 2012 16:44:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942220#target">verthex</a> said:</div><div class="quote"><p>

Could be Delauney triangulation.</p></div></div><p>

I don&#39;t see how can it be an answer.. Wiki hints it&#39;s an algorithm to connect dots in to triangles. But you need to place the dots first.</p><p>@Molang<br />ty, missed that</p><p>@OP<br />Yeah got it.. Nice idea.. AFAIK it&#39;s used in &quot;real life mapping&quot; as well, but for a user- it can allow one to make terrain using any &quot;paint&quot; or Photoshop or whatsoever. You don&#39;t even need a GUI actually <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>P.S:<br />I think it maybe a good idea to actually store terrain maps as BITMAPS..
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (type568)</author>
		<pubDate>Thu, 05 Jan 2012 17:09:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942731#target">type568</a> said:</div><div class="quote"><p>Wiki hints it&#39;s an algorithm to connect dots in to triangles.</p></div></div><p>

Wikipedia is a troll fest. The points come from random projections or you create a grid based on mathematical methods of generating 3d surfaces. It wouldn&#39;t make sense not to have a subroutine to generate the dots before connecting them.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (verthex)</author>
		<pubDate>Fri, 06 Jan 2012 10:50:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Does being tired of playing minecraft count as an abandoned project? Been in MC everyday for weeks and just got burned out on it. With nothing to do but dig and build it gets boring quick <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />. So I abandoned the grinder I was working on for now. Does that count?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sat, 07 Jan 2012 09:15:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942975#target">Specter Phoenix</a> said:</div><div class="quote"><p>Does being tired of playing minecraft count as an abandoned project? Been in MC everyday for weeks and just got burned out on it. With nothing to do but dig and build it gets boring quick <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />. So I abandoned the grinder I was working on for now. Does that count?
</p></div></div><p>

I guess I could say the same about simcity 4 although I didn&#39;t get bored of it and I still have an urge to play sometimes but I have no time.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (verthex)</author>
		<pubDate>Sat, 07 Jan 2012 09:30:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I got burned out with minecraft a few times. Played too much. Now I just play a little at a time, and it stays interesting enough to play semi-regularly.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sat, 07 Jan 2012 09:31:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah, contemplating just taking a break from everything. Not like I&#39;m doing anything that would suffer from not doing it though. Started on a SP map to do a project that was 75x75xMAX_HEIGHT and using SPC I got the 75x75 done and then just said &quot;Ah, <span class="cuss"><span>fuck</span></span> it! Too bored to care to do the project. Never get anything done cause I&#39;m on IRC goofing off too much, so I may need a break from that (plus I was tired of Sev&#39;s smart <span class="cuss"><span>ass</span></span> replies to almost every question I asked <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />), again not like I would get anything done if I wasn&#39;t in IRC. Truth be told, today I thought I was going to code and instead I took son to school, came home and helped wife get cleaned up so we could go into town. Got home and set up my wife&#39;s Kindle Fire, put my Battlefield 3 down with my other untouched games, picked up son, played angry birds (taking turns with wife), and now goofing off on YT, complaining on FB, and typing on here. Yep, I&#39;m a lost cause, I&#39;ll never amount to anything because I no longer apply myself to anything I want to do (yay, me! failure extraordinaire! 14 years strong so far, my parents would be so proud!).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sat, 07 Jan 2012 09:48:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942981#target">Specter Phoenix</a> said:</div><div class="quote"><p>Never get anything done cause I&#39;m on IRC goofing off too much</p></div></div><p>You do NOT want to know how much time I&#39;ve wasted in IRC over the years.</p><p>As to the rest of your rant, I decided to stop being a failure. Got fed up with it <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> Though you do have me beat in one regard, you have a family, I don&#39;t <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sat, 07 Jan 2012 09:52:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Doesn&#39;t that make me a bigger failure though? I mean I have this dream way up here, and a family which means I should have drive to achieve that dream in order to support them. Yet here I am still down here with my family dreaming about making a living programming and making games. </p><p>[EDIT]<br />My problem really isn&#39;t the language. I mean I know about classes, know that for file i/o I can ask for a string but to open it I have to do filename.c_str() or such to convert the name so it can be loaded. My issue seems that I get majorly caught and distraught over the turning any idea (beyond simple) into code. I just get overwhelmed I guess would be a good way of putting it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sat, 07 Jan 2012 10:00:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942982#target">Thomas Fjellstrom</a> said:</div><div class="quote"><p>you have a family, I don&#39;t</p></div></div><p>

I couldn&#39;t give a rat&#39;s a**e what spectrum felix said, he only moans anyway, but no, you <b>DO</b> have a family! ALLEGRO.CC! And if you&#39;re ever in Kent in the UK and need some cash, get in touch.</p><p>On a more serious note, I know where you&#39;re coming from. Big Hug Strom of Fjell. x</p><p>And shutup special fooyung.</p><p><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Sat, 07 Jan 2012 10:12:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Damn, I think the grammar discussion has <span class="cuss"><span>fuck</span></span>ed up your ability to make sense. You need bed rest.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sat, 07 Jan 2012 10:22:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Meheh, yeah. Mwah, love you Sceptre! x
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Sat, 07 Jan 2012 10:23:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Heh...<br />On coding note. This is what I just coded in a few minutes...minus a few typos on my part. Nothing major, but small things like this I can normally do no problem, but something like say an address book, or something more complex I see the whole picture rather than the individual things and I get overwhelmed and never do anything.
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  2</span><span class="p">#include &lt;fstream&gt;</span>
<span class="number">  3</span><span class="p">#include &lt;string&gt;</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="k1">using</span> <span class="k1">namespace</span> std<span class="k2">;</span>
<span class="number">  6</span>
<span class="number">  7</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  8</span><span class="k2">{</span>
<span class="number">  9</span>  string fileName<span class="k2">;</span>
<span class="number"> 10</span>  <span class="k1">char</span> nums<span class="k2">;</span>
<span class="number"> 11</span>  cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Enter the filename: "</span><span class="k2">;</span>
<span class="number"> 12</span>  cin <span class="k3">&gt;</span><span class="k3">&gt;</span> fileName<span class="k2">;</span>
<span class="number"> 13</span>  cout <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span>
<span class="number"> 14</span>  
<span class="number"> 15</span>  ifstream inFile<span class="k2">;</span>
<span class="number"> 16</span>  inFile.open<span class="k2">(</span>fileName.c_str<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 17</span>  inFile.get<span class="k2">(</span>nums<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>inFile.eof<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 19</span>  <span class="k2">{</span>
<span class="number"> 20</span>    cout <span class="k3">&lt;</span><span class="k3">&lt;</span> nums<span class="k2">;</span>
<span class="number"> 21</span>    inFile.get<span class="k2">(</span>nums<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 22</span>  <span class="k2">}</span>
<span class="number"> 23</span>  
<span class="number"> 24</span>  inFile.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 26</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sat, 07 Jan 2012 10:50:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942992#target">Specter Phoenix</a> said:</div><div class="quote"><p>
I see the whole picture rather than the individual things and I get overwhelmed and never do anything.
</p></div></div><p>

You should really sit down and do bit by bit and just not rush it.</p><p>I am currently learning how to make a platform game and that for me is pretty hard so I&#39;m going bit by bit. Got the player movements and now to do world rendering and collision checking <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Desmond Taylor)</author>
		<pubDate>Sat, 07 Jan 2012 14:35:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942984#target">Dizzy Egg</a> said:</div><div class="quote"><p>I couldn&#39;t give a rat&#39;s a**e what spectrum felix said, he only moans anyway, but no, you DO have a family! ALLEGRO.CC! And if you&#39;re ever in Kent in the UK and need some cash, get in touch.</p><p>On a more serious note, I know where you&#39;re coming from. Big Hug Strom of Fjell. x</p></div></div><p>Heh, I wasn&#39;t trying to be a moaning <span class="cuss"><span>bitch</span></span>. Just comparing against Specter. He thinks he&#39;s a failure, but I don&#39;t think he really knows the meaning of the word.</p><p>Personally I&#39;m doing pretty good. money is tighter than ever, but I&#39;m scraping by.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942992#target">Specter Phoenix</a> said:</div><div class="quote"><p>I see the whole picture rather than the individual things and I get overwhelmed and never do anything.</p></div></div><p>I think a lot of people have that problem. I know I do. I used to spend my spare time on bus&#39;s and daydreaming and falling asleep (etc), planning out the structure of semi complex (or just plain complex) programs and/or libraries. I&#39;ve learned to stop doing that quite so much over time. I just try to sit back look at the <i>really</i> big picture and trace an outline of it my mind, then try and build that outline in code. It doesn&#39;t always work, but along the way, that work leads you to a better solution. That&#39;s when it&#39;s time to refactor or replace bits. Don&#39;t be afraid to change or throw out code that isn&#39;t working. I still spend entirely too much time trying to fix code that I should sometimes just replace outright. But I can&#39;t always resist my urge to figure out <i>the problem</i>. I really do think we have a fair bit in common, except you have a wife and child. Something I&#39;ve only dream about.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sat, 07 Jan 2012 16:23:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>We have something in common? Are you sure you want to be admitting that? :p</p><p>[REVISION] Joking aside, I&#39;ve really not been in IRC because I thought I would focus on programming. So far it hasn&#39;t been all that easy. I just couldn&#39;t resist poking fun at Sevalecan&#39;s sense of humor with the smart arse replies (actually I laughed when he said I was a tool because he is probably right).</p><p>[REVISION] My previous code in action with a source file. <a href="http://twitpic.com/84ekro">http://twitpic.com/84ekro</a></p><p>I like revision better than edit (mainly because of the fact that you can see the revisions of each post.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sat, 07 Jan 2012 22:27:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943000#target">Desmond Taylor</a> said:</div><div class="quote"><p>You should really sit down and do bit by bit and just not rush it.I am currently learning how to make a platform game and that for me is pretty hard so I&#39;m going bit by bit. Got the player movements and now to do world rendering and collision checking <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /></p></div></div><p>

I do all my projects from the finished part. First I hack it into pieces, then I reverse engineer every part of it myself and reassemble everything. I find this more useful because I learn from a lot of other peoples work.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (verthex)</author>
		<pubDate>Sat, 07 Jan 2012 23:17:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943010#target">Thomas Fjellstrom</a> said:</div><div class="quote"><p>
He thinks he&#39;s a failure, but I don&#39;t think he really knows the meaning of the word.
</p></div></div><p>
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
fail·ure   [feyl-yer]  Show IPA<br />noun<br />1.<br />an act or instance of failing  or proving unsuccessful; lack of success: His effort ended in failure. The campaign was a failure.<br />2.<br />nonperformance of something due, required, or expected: a failure to do what one has promised; a failure to appear.<br />3.<br />a subnormal quantity or quality; an insufficiency: the failure of crops.<br />4.<br />deterioration or decay, especially of vigor, strength, etc.: The failure of her health made retirement necessary.<br />5.<br />a condition of being bankrupt by reason of insolvency.
</p></div></div><p>
Nope the definitions there sound like what I have in my mind.</p><p>Though many on IRC and A.cc, have said I excel at failure. I was reading a thread I made when I first joined where Matthew said &quot;Ambition + No_Talent = Depression&quot;, but does that mean ML is saying I have no talent <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />. My ambition hasn&#39;t changed and nether have my goals, I just learned to never post my ideas or thoughts here in regard to video game programming. This is really the only place I ever asked questions at and now I don&#39;t ask questions at all <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />. Oh well depression is many faceted, I&#39;m int the &quot;God, I suck!&quot; stage safely away from the &quot;God, I want to die!&quot; stage out of the several stages.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sun, 08 Jan 2012 05:26:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943010#target">Thomas Fjellstrom</a> said:</div><div class="quote"><p> Personally I&#39;m doing pretty good. money is tighter than ever, but I&#39;m scraping by.</p></div></div><p>&quot;Money is better than ever, but I&#39;m scraping by&quot;... Ok I think this statement has no sense, if you&#39;re scraping by, but money is better than ever, then how the hell were  you living before?. </p><p>Man, with your knowledge I thought you was working at a big company or something... Wth is wrong with you?, I always wonder why you don&#39;t have any game. Do you also have the Specter complex?. I think you guys talk all that <span class="cuss"><span><span class="cuss"><span>shit</span></span></span></span> here but unconsciously you&#39;re really happy with your life, otherwise I can&#39;t understand it. </p><p>What do you need? a Microsoft company to feel better?, I have just saw that Elias posted the changes that I did to make Ogre run on Allegro and Windows and I&#39;m really happy, with just that I have like a year of &quot;motivation gas&quot; to move on...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AMCerasoli)</author>
		<pubDate>Sun, 08 Jan 2012 06:08:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943122#target">AMCerasoli</a> said:</div><div class="quote"><p> &quot;Money is better than ever, but I&#39;m scraping by&quot;... Ok I think this statement has no sense, if you&#39;re scraping by, but money is better than ever, then how the hell were  you living before?. </p></div></div><p>Money is tighter =&gt; he has less money.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Sun, 08 Jan 2012 06:11:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943122#target">AMCerasoli</a> said:</div><div class="quote"><p>Man, with your knowledge I thought you was working at a big company or something... Wth is wrong with you?, I always wonder why you don&#39;t have any game. Do you also have the Specter complex?. I think you guys talk all that <span class="cuss"><span><span class="cuss"><span>shit</span></span></span></span> here but unconsciously you&#39;re really happy with your life, otherwise I can&#39;t understand it. </p></div></div><p>

He worked on a big chunk of the library you&#39;re currently using. That&#39;s quite a big accomplishment. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Sun, 08 Jan 2012 06:12:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943123#target">Matthew Leverton</a> said:</div><div class="quote"><p> Money is tighter =&gt; he has less money.</p></div></div><p>Ohhh... My bad... <img src="http://www.allegro.cc/forums/smileys/embarassed.gif" alt=":-[" /> </p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943124#target">Dario ff</a> said:</div><div class="quote"><p> He worked on a big chunk of the library you&#39;re currently using. That&#39;s quite a big accomplishment. </p></div></div><p>Of course it is! and he&#39;s comparing himself with Specter <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" /> it&#39;s impossible man, you can&#39;t do that...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AMCerasoli)</author>
		<pubDate>Sun, 08 Jan 2012 06:14:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943125#target">AMCerasoli</a> said:</div><div class="quote"><p>
he&#39;s comparing himself with Specter  it&#39;s impossible man, you can&#39;t do that...
</p></div></div><p>
He is comparing an aspect of him with the same aspect of me. That is completely different from comparing one&#39;s self with another person.</p><p>Thomas Fjellstrom: encouragement in this forums is lacking. The users now make Inphernic seem like a sweet guy when he tore into me <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sun, 08 Jan 2012 06:23:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943132#target">Specter Phoenix</a> said:</div><div class="quote"><p> He is comparing an aspect of him with the same aspect of me.</p></div></div><p>Hmmm... I hope so...</p><p>Your problem Specter is that you&#39;re too busy thinking that you can&#39;t do anything to actually do something... </p><p>And by reading your code above, it&#39;s like you sit in front of your computer every time you want to program something, and that&#39;s not the way it works. </p><p>What you have posted, it&#39;s already in your brain, you knew how to do it before writing it, for that reason you did it. In programming, and in other aspects, you need to think about what you&#39;re going to do before doing it, but in programming this is even more important. </p><p>You need to pass throw levels of abstraction before writing anything, if you know the language then you have everything, what you need is the logic, think about the behavior of your program. Before using the programming language use the human language, abstract your idea, then get a level down, for example:</p><p>I&#39;m going to make a ping pong game:</p><p>First level:</p><p>I want two paddles with a ball bouncing, the ball is going to collide only with the paddles and I don&#39;t want scores or anything. It&#39;s very important in this step to know exactly what you want and what you don&#39;t.</p><p>Second level</p><p>How the user is going to see this game, fullscreen, windowed, static fullscreen, or dynamic fullscreen?. Mouse... Keyboard... Graphics... Sounds... Depending on this choice you might or might not need more abstraction levels.</p><p>Third Level</p><p>Ok I have chosen a windowed mode, and the game is going to be played with the keyboard. My resolution is going to be 640 X 400. With this info I already know that the paddle is going to stop moving if its position is equals to 0px, or 400px( y axis) less the height of the paddle. </p><p>Something like this:</p><div class="source-code snippet"><div class="inner"><pre>move_paddle<span class="k2">(</span><a href="http://www.allegro.cc/manual/ALLEGRO_EVENT"><span class="a">ALLEGRO_EVENT</span></a> <span class="k3">*</span>ev<span class="k2">)</span><span class="k2">{</span>

   <span class="k1">if</span><span class="k2">(</span>ev.keyboar.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_UP <span class="k3">&amp;</span><span class="k3">&amp;</span> posiY <span class="k3">!</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
      posiY--<span class="k2">;</span>

   <span class="k1">if</span><span class="k2">(</span>ev.keyboar.keycode <span class="k3">=</span><span class="k3">=</span> ALLEGRO_KEY_DOWN <span class="k3">&amp;</span><span class="k3">&amp;</span> 
      posiY <span class="k3">!</span><span class="k3">=</span> al_get_bitmap_weight<span class="k2">(</span>paddle_img<span class="k2">)</span> <span class="k3">-</span> <span class="n">400</span><span class="k2">)</span>
   posiY<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

The same for the other paddle. Now the ball, the ball is going to change its Y position when its posiY is 0 or when is posiY is equals to 400 less its height:</p><div class="source-code snippet"><div class="inner"><pre>
<span class="k1">if</span><span class="k2">(</span>ball.posiY <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
   falling <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="k1">if</span><span class="k2">(</span>ball.posiY <span class="k3">=</span><span class="k3">=</span> <span class="n">400</span> <span class="k3">-</span> ball.height<span class="k2">)</span>
   falling <span class="k3">=</span> <span class="k1">false</span>

<span class="k1">if</span><span class="k2">(</span>fall<span class="k2">)</span>
   posiY<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span> <span class="c">//See that I'm just moving pixel per pixel here... the same with the paddle</span>
<span class="k1">else</span>
   posiY--<span class="k2">;</span>
</pre></div></div><p>

The same with the sides, if the ball reaches less than 0 pixels... Game over, if it reach more than 640 pixel you win... and so on...</p><p>The collision detection for the paddles and the ball is very simple too. And everything depend in what you have thought before reaching this point.</p><p>My game is so simple that I know that my paddle has a margin of 20pxs from the borders, so if the ball is in 20px or 640px-20px-its_wight and the ball.posiY is bigger than paddle.posiY and smaller than paddle.posiX+its_height that means that you&#39;re colliding... So you need to change its X direction:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span><span class="k2">(</span>ball.posiX <span class="k3">=</span><span class="k3">=</span> <span class="n">640</span><span class="k3">-</span><span class="n">20</span><span class="k3">-</span>balls_width <span class="k3">&amp;</span><span class="k3">&amp;</span> ball.posiY <span class="k3">&gt;</span> paddle.posiY <span class="k3">&amp;</span><span class="k3">&amp;</span> ball.posiY <span class="k3">&lt;</span> paddle.posiY<span class="k3">+</span>its_heigh<span class="k2">)</span>
   left<span class="k3">=</span><span class="k1">true</span><span class="k2">;</span>

<span class="k1">if</span><span class="k2">(</span>ball.posiX <span class="k3">=</span><span class="k3">=</span> <span class="n">20</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> ball.posiY <span class="k3">&gt;</span> paddle2.posiY <span class="k3">&amp;</span><span class="k3">&amp;</span> ball.posiY <span class="k3">&lt;</span> paddle2.posiY<span class="k3">+</span>its_heigh<span class="k2">)</span>
   left<span class="k3">=</span><span class="k1">false</span><span class="k2">;</span>

<span class="k1">if</span><span class="k2">(</span>left<span class="k2">)</span>
   posiX<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="k1">else</span>
   posiX--<span class="k2">;</span>
</pre></div></div><p>

Probably there are some errors, I just did it in some minutes, but what I want to say is that you need to think <b>A LOT</b> if you&#39;re not sure about what you&#39;re going to do before writing something. Try to abstract your ideas and then go down until you finally know how to write them using a programming language.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AMCerasoli)</author>
		<pubDate>Sun, 08 Jan 2012 07:30:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943054#target">Specter Phoenix</a> said:</div><div class="quote"><p>So far it hasn&#39;t been all that easy</p></div></div><p>It wasn&#39;t for me. Still isn&#39;t. But as I slowly work on it, it slowly gets better. It is <i>incredibly</i> frustrating. But I just have to keep at it, or it gets bad again.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943122#target">AMCerasoli</a> said:</div><div class="quote"><p>Man, with your knowledge I thought you was working at a big company or something... Wth is wrong with you?, I always wonder why you don&#39;t have any game. Do you also have the Specter complex?. I think you guys talk all that <span class="cuss"><span><span class="cuss"><span>shit</span></span></span></span> here but unconsciously you&#39;re really happy with your life, otherwise I can&#39;t understand it.</p></div></div><p>BiPolar, Chronic Depression (for most of my life) and Social Phobia (with a healthy dose of Generalized Anxiety Disorder). aka: I&#39;m nuts. Learning to manage it though. It just takes time. A lot of it.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943125#target">AMCerasoli</a> said:</div><div class="quote"><p>Of course it is! and he&#39;s comparing himself with Specter  it&#39;s impossible man, you can&#39;t do that...</p></div></div><p>But look how long it took <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> If I was in a good mood, the work for Android would have been committed a week or three after I got the phone, rather than 6 months <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> The fshook and mode/fullscreen stuff for the a5 X port is about the same, I started the fshook stuff a year or two before I ended up finishing.</p><p>Huge issues with motivation when I&#39;m depressed and anxious. But I&#39;m getting better. Thats all that matters <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /></p><p>To Specter: The only reason its getting better is because I truly <i>WANT</i> it. No, I believe I <i>NEED</i> it. I can&#39;t do the &quot;FML&quot; thing anymore. Failure on our scale is just not something I want to do anymore. I hope you have the same realization soon too. Sitting around complaining about it actually makes it worse, believe it or not. Its all about mind power. If you believe something, or tell yourself something enough times you <i>will</i> believe it. So stop it. (I know its hard, I have a hard time doing it). I&#39;m not kidding. Its like trying to brainwash yourself, its quite hard to consistently retrain your thoughts to not be negative. Even the slightest bit of negativity has an accumulative effect on your state of mind.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sun, 08 Jan 2012 07:51:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943132#target">Specter Phoenix</a> said:</div><div class="quote"><p>encouragement in this forums is lacking</p></div></div><p>
I disagree. You should have joined this last SantaHack regardless of &quot;I can&#39;t make a game in 7 days&quot;, and plenty of people encouraged you there. <span class="ref"><sup>[<a href="#">1</a>]</sup></span> You&#39;ll be amazed of how much you can actually do in a small amount of time if you just let go of any fears about it. Even if you don&#39;t succeed in it, you still learn from any failures.</p><p>You can even cheat and set up some basic code for common game stuff in the previous days to the competition. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> Now I realize we&#39;re like 7 months away from another possible Hack compo, but it&#39;s just something to think about. </p><p>Instead of coding a game right away, you could try coding up some stuff like a basic game engine to handle resource loading, drawing, all that stuff. The motivation on it is that it will just make the process much easier later if you intend to make a game from it(and it&#39;s actually pretty fun too, at least the first time). Low-level stuff like that shouldn&#39;t get in your way when you WANT to code actual game mechanics.
</p><div class="ref-block"><h2>References</h2><ol><li>Heck, I joined with like 2-3 less days to code, and managed to make something.</li></ol></div></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Sun, 08 Jan 2012 07:56:25 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah, you seem to have no problems with the really boring framework style code. Work on that, then when you get that stuff going, wrap it all up into a game with the framework. should be easier to get a working game done if you have most of it done before you start the actual main.c bit <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sun, 08 Jan 2012 08:04:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943144#target">Thomas Fjellstrom</a> said:</div><div class="quote"><p>
Yeah, you seem to have no problems with the really boring framework style code.
</p></div></div><p>
Yeah because it is the same boring framework taught by almost every book I&#39;ve read and every tutorial I&#39;ve done. When it comes to anything complex the tutorials and books really don&#39;t do a good job and preparing you because most of them are here is the concept, feature, and example code, next concept/feature and leave it at that. So the advance stuff confuses me because I never know where to start. With the pong clone I did I got as far as &quot;I need two paddles and a ball bouncing around the screen&quot; then breaking it down more was like me trying to speak japanese without ever learning it. </p><p>I&#39;ve noticed that is one thing that is lacking in a lot of CS and such courses, they just assume you are top notch at problem solving and throw you into problem solving in software terms when most people are taught their entire school education how to do mathematical problem solving and real world problem solving. Even my problem solving course in both IVY Tech and DeVry were all mathematical or real world of &quot;Susan is having a problem with Sarah at work. What possible ways could she approach the problem.&quot; The one that sticks out in my head is &quot;You&#39;re the judge of a dispute. Jim is a farmer who has a family near a stream. Danny is the representative for a large company further up the stream. Proof has been given that the company is having run off in the stream which may or may not be dangerous during the high rain fall months. Read both sides and then come up with a solution that you think would benefit both sides.&quot; While it is great for problem solving in real world situations it sucks for programming so I don&#39;t understand the point of them in a computer degree.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sun, 08 Jan 2012 09:10:49 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I try to break it down into objects. Then I break those objects up into computer objects.</p><p>For example:<br />In Pong you need a PlayArea, a 2xPaddle and 1xBall.</p><p>You then need some things that will do stuff to your objects. Note that objects themselves should not necessarily have the logic. You always want to stay as generic as possible.</p><p>Now we need PongLogic.</p><p>The PongLogic&#39;s job is to keep track of the ball, handle user input, and collision.</p><p>If this were a larger project I would recommend you break those down into 3 separate objects to adhere to the single responsibility rule.</p><p>Right now, nothing happens. We need to feed user input to PongLogic.</p><p>When Allegro tells me the user has pressed a key, I will send this event to a new class called InputHandler. InputHandler&#39;s job is to translate key events into Pong usable input.</p><p>When I hit KEY_LEFT, this will cause InputHandler to call PongLogic-&gt;moveSecondPaddleDown(1);</p><p>You might also have a moveSecondPaddleTo(int y); if you use the mouse.</p><p>PongLogic will then check if that move results in the paddle being outside of the play area. If it is, it will not move the Paddle object.</p><p>When the Paddle is in fact moved, it raises a PADDLE_MOVED event. This will be useful when we want to add sound or respond to certain events.</p><p>Each logic iteration of the game, the ball is moved, if it collides with a paddle, its new velocity vector is calculated. If the ball falls out of the play area in the horizontal axis either a FIRST_PLAYER_SCORED or SECOND_PLAYER_SCORED event is fired.</p><p>We now need to handle the score.</p><p>We create a ScoreHandler class. This class implements the PongListener class. This means we can cleanly be notified when a player scores and respond appropriately.</p><p>We then store the score in ScoreHandler.</p><p>When a winner is determinable, you could either call PongLogic-&gt;gameOver(); or have a listener and raise an event.</p><p>Notice I have not mentioned drawing. This is because you should see a game as a system of objects. One of the outputs of this system happens to be video output.</p><p>You should have a PongRenderer class. Its job is to read attributes from the objects and display them on the screen. If you prefer you can give your objects a render() method but the former is usually a better idea.</p><p>To add sound, you can simply create a PongSound class. It will listen to events from PongLogic or other objects and play sounds when certain events are raised. This keeps it clean and modular.</p><p>Hope this helps a bit <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Sun, 08 Jan 2012 09:59:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">jmasterx said:</div><div class="quote"><p>
make things really complex
</p></div></div><p>
Woah, woah, woah. That is seriously over complicating pong. At most, a basic OOP implementation of pong would have these classes {ball , paddle , game}, and these methods for each class {check_input() , update(double dt) , display()}. </p><p>K.I.S.S. F.T.W.</p><p><img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 08 Jan 2012 10:47:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Edgar Reynaldo said:</div><div class="quote"><p> Hack away until you have a Pong game. </p></div></div><p>
I&#39;m well aware that it is way too complex for a Pong game, but it was to illustrate how a big project should be orchestrated. If you do not build a big game using this kind of design, it will become unmanageable very quickly.</p><p>Also, it&#39;s not that complex <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Sun, 08 Jan 2012 10:58:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943164#target">jmasterx</a> said:</div><div class="quote"><p>I&#39;m well aware that it is way too complex for a Pong game, but it was to illustrate how a big project should be orchestrated. If you do not build a big game using this kind of design, it will become unmanageable very quickly</p></div></div><p>

Usually you&#39;d use UML to describe this stuff though.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (verthex)</author>
		<pubDate>Sun, 08 Jan 2012 11:32:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943168#target">verthex</a> said:</div><div class="quote"><p>Usually you&#39;d use UML to describe this stuff though.
</p></div></div><p>

Yes, ofcouse, I use UML all the time. But I chose to explain it in words.</p><p>I&#39;m quite certain that if a Pong game was made for something like Xbox Live Arcade, its design would more closely resemble mine than Edgar&#39;s.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Sun, 08 Jan 2012 11:46:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943164#target">jmasterx</a> said:</div><div class="quote"><p>
Also, it&#39;s not that complex <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" />
</p></div></div><p>
When pong needs listeners and events, you might as well stop programming altogether, because You&#39;re Doing It Wrong<sup>TM</sup>. <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /></p><p>Case(s) in point :
</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943155#target">jmasterx</a> said:</div><div class="quote"><p>
We create a ScoreHandler class. This class implements the PongListener class. This means we can cleanly be notified when a player scores and respond appropriately.
</p></div></div><p>
It would be simpler to give the Game class a ScoreTable, and manipulate it directly.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
To add sound, you can simply create a PongSound class. It will listen to events from PongLogic or other objects and play sounds when certain events are raised. This keeps it clean and modular.
</p></div></div><p>
OR, you could give the Game class some sound objects that it plays when it detects certain events taking place (not necessarily actually using events).</p><p>Listeners are classic over complication in my opinion. Events passed to parents are much simpler, and you don&#39;t have to keep track of some crazy inheritance tree created by making everything and its brother inherit Listener classes. Sure you only have to overload one method, but it&#39;s the same with events, and events keep things simpler.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 08 Jan 2012 11:54:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Once again, for a small game like Pong, listeners would be overkill, but the pattern you&#39;re illustrating continuously adds more responsibility to the game class until eventually, in a bigger project, it would become unmanageable. The mediator pattern is also great to a certain extent. There are situations where letting the parent handle the event is easier. However, in games or applications with over 500,000 lines of code,  you start to put too much responsibility on one class and it becomes messy. I find the observer pattern (listeners) very applicable for many situations. Especially many to many relationships,</p><p>In my card game, the server (which can be local) sends messages to the client. The client sends out all sorts of event messages. It also needs to receive certain messages too, thus a many to many relationship. I have an event handler that handles events from the client and updates certain gui components and whatnot. The client also listens to another class. This class listens for action events from certain gui components and triggers the appropriate action. Ex: when I get an action event from startButton, I notify the client to start the game which sends a message to the server to start the game. </p><p>Ex:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>  <span class="k1">enum</span> ClientIOMessage
<span class="number">  2</span>  <span class="k2">{</span>
<span class="number">  3</span>    UPDATE_ROUND_SCORES,
<span class="number">  4</span>    CHANGE_ACTIVE_PLAYER,
<span class="number">  5</span>    SET_PLAYER_BID,
<span class="number">  6</span>    ADD_TRICK_TO_PLAYER,
<span class="number">  7</span>    UPDATE_PASS_TWO_CARDS,
<span class="number">  8</span>    UPDATE_LAST_HAND,
<span class="number">  9</span>    SHOW_PASS_BUTTON,
<span class="number"> 10</span>    SHOW_START_BUTTON,
<span class="number"> 11</span>    SHOW_TRICK_COUNT_SELECTOR,
<span class="number"> 12</span>
<span class="number"> 13</span>    <span class="c">//inputs</span>
<span class="number"> 14</span>    RECEIVE_TRICK_COUNT,
<span class="number"> 15</span>    PASS_BUTTON_CLICKED,
<span class="number"> 16</span>    START_BUTTON_CLICKED,
<span class="number"> 17</span>
<span class="number"> 18</span>  <span class="k2">}</span><span class="k2">;</span>
</div></div><p>

For example, the client should not need to know anything about how I set a bid. The class handling bid assignment will listen for this event and deal with it.</p><p>If I went ahead and passed these events to the parent, it would get really messy in the parent because the upper level module is the game scene itself and there are far too many sub components to this scene to justify letting the game scene do all the logic.</p><p>I&#39;m sure you think this is over complicated but it makes it very easy for me to manage, test, and debug the game.</p><p>One of the biggest reasons I put so much effort into making my game so object oriented is so that it does not end up in this thread with me saying it became unmanageable.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Sun, 08 Jan 2012 12:12:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943153#target">Specter Phoenix</a> said:</div><div class="quote"><p>
Yeah because it is the same boring framework taught by almost every book I&#39;ve read and every tutorial I&#39;ve done. When it comes to anything complex the tutorials and books really don&#39;t do a good job and preparing you because most of them are here is the concept, feature, and example code, next concept/feature and leave it at that. So the advance stuff confuses me because I never know where to start.
</p></div></div><p>
Think of it as Lego. You have lots of bricks and all you need to do is start taking these basic blocks and build a larger structure. There are generally two approaches a top-down and bottom-up. In the former you begin from the whole structure and fill in the blocks at the end.</p><p>Though, at first I&#39;d recommend the latter, where you begin from the blocks and build the stuff up from the ground often using scaffolding code that will get replaced later. Richard Phipps had a great tutorial somewhere, where you&#39;ve actually completed a whole game using this approach.</p><p>I like building stuff, I like thinking about solving engineering problems. Though I lack the motivation and time to actually do it. My sticking point is to begin. I have lots of ideas lying around, lots of building blocks to use, but no will power to actually begin.</p><p>EDIT:<br />Oh, I knew I saw them somewhere on the wiki:<br /><a href="http://wiki.allegro.cc/index.php?title=Create">http://wiki.allegro.cc/index.php?title=Create</a></p><p>though, they seem to be incomplete <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OICW)</author>
		<pubDate>Sun, 08 Jan 2012 17:09:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943191#target">OICW</a> said:</div><div class="quote"><p>
Oh, I knew I saw them somewhere on the wiki:<br /><a href="http://wiki.allegro.cc/index.php?title=Create">http://wiki.allegro.cc/index.php?title=Create</a></p><p>though, they seem to be incomplete 
</p></div></div><p>
Nice, the thing that made me laugh was the completion section.
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
After 8 articles, Free Dungeons has gone from a concept and a design plan to a fully working and playable game. We have achieved everything we set out to do and I hope these articles have been motivational and useful in explaining how to make a more advanced game. Good luck for your future programming experiences!<br />Thank you. Richard.
</p></div></div><p>
Really? Guess he got busy. Two chapters is nice but would have been a good series to have been finished. </p><p>Thanks for the link though.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sun, 08 Jan 2012 19:10:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I think he actually finished the articles, just no-one finished importing them into the wiki.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sun, 08 Jan 2012 19:15:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Actually they have been finished, but they haven&#39;t been completed on the wiki. The old page linked from the original thread from three years back is down - obviously, Phipps have moved along and now he&#39;s doing something else. Though you can check out his <a href="http://chaosgroove.wordpress.com/">Chaos Groove</a>. Kind of on-topic since we speak about abandoned projects. If I&#39;m not mistaken he actually more or less finished it.</p><p>Anyway I am pretty sure me or somebody else should have all 8 chapters lying around somewhere. Any ideas where to post them?</p><p>EDIT: too late <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OICW)</author>
		<pubDate>Sun, 08 Jan 2012 19:17:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943201#target">OICW</a> said:</div><div class="quote"><p> Any ideas where to post them?</p></div></div><p>Either help to reformat for the wiki <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />, or zip them all up and attach them to the Create page. That way anyone can download them and help to add the rest to the wiki.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Sun, 08 Jan 2012 19:20:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943173#target">jmasterx</a> said:</div><div class="quote"><p>
I&#39;m sure you think this is over complicated but it makes it very easy for me to manage, test, and debug the game.
</p></div></div><p>
Well, I can&#39;t see your whole design inside my head, but I still think I would prefer to solve it with events and composition instead of listeners and inheritance. It seems like your method would end up with a lot of redundant references to other objects being stored in lots of other objects, when it seems to me that it would be easier to give a single object responsiblity for handling any messages from its subordinates. It just seems like your method would be more complex than mine, that&#39;s all.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 09 Jan 2012 02:21:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes, it is more complex, but for me it is worth it to take the extra time in order to make debugging and refactoring much easier. Otherwise my GameScene (the parent) would be well over 4,000 lines of code with well over 100 methods (so far). There is quite a bit going on in the game scene.</p><p>I have made projects where I did use the mediator pattern in Java and they got out of hand and I had to stop. I made a Drawing Application where the Panels were responsible for the logic of their children. As I added more features I got lost. After that I started making lots of listeners and while it took much longer, I found myself able to manage much bigger projects.</p><p>I have not yet programmed professionally. I&#39;m on my last year of college. Maybe writing code for a company will better enlighten me on the benefits of parents handling child logic, but as it stands, I find myself able to much more easily debug, test, and add features with listeners.</p><p>With C++0x, more references is not really a big deal for me.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Mon, 09 Jan 2012 02:36:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Would delegation work for you? Or is that what you mean by the Mediator pattern? I don&#39;t have all the different design patterns memorized yet. It seems like you could sub divide the responsibility of GameScene into separate objects that handled different aspects of the game, which would help things stay modular, but would also alleviate the need for listeners. Every many to many relationship can be modeled as a one to one relationship that dispatches messages to others as necessary. I just don&#39;t see the value of listeners yet.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 09 Jan 2012 02:46:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I have a more bloated version of Pong.<br /><div class="media-player youtube"><div style="margin: 1em 2em; background: url(/images/movie.png); width: 180px; height: 100px; text-align: center;"><a href="http://www.allegro.cc//www.youtube.com/watch?v=Jwc-wMkoClg" target="_blank"><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/object/c/8/c8841b016df21dec922e79b3ecf23c79.jpg" border="0" alt="video" title="Click to play video" /></a></div></div><br />Game inside game. <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Mon, 09 Jan 2012 02:48:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943272#target">jmasterx</a> said:</div><div class="quote"><p>I have not yet programmed professionally. I&#39;m on my last year of college. Maybe writing code for a company will better enlighten me on the benefits of parents handling child logic, but as it stands, I find myself able to much more easily debug, test, and add features with listeners.</p></div></div><p>

Actually what you are doing is much closer to what one would expect to see in professional/enterprise code than what others are suggesting. The difference is that professional code would likely be broken down into even <i>smaller</i> components, with even <i>more</i> emphasis on extensibility and maintainability.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Maybe writing code for a company will better enlighten me on the benefits of parents handling child logic</p></div></div><p>

Let&#39;s hope not. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943274#target">Edgar Reynaldo</a> said:</div><div class="quote"><p>don&#39;t see the value of listeners yet.</p></div></div><p>

I&#39;m not sure about C++, but in C# listeners (which are necessary for events) are wonderfully elegant and are the cleanest solution to a multitude of problems.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Mon, 09 Jan 2012 02:56:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I could do it like this, yes. I think it would mean a big switch case since the parent would have:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">case</span> CARD_THROWN_ON_TABLE:
client-&gt;passMessage<span class="k2">(</span>msg<span class="k2">)</span><span class="k2">;</span>
playSound<span class="k2">(</span><span class="s">"throw"</span><span class="k2">)</span><span class="k2">;</span>
...
...
<span class="k1">break</span><span class="k2">;</span>
</pre></div></div><p>

From the server to the client and client to the server, I pass messages and there is a switch case and it is not too big.</p><p>To do it like this, I still have to be bothered to look through big switch cases, where I might forget to write break; </p><p>Generally the way I use listeners is that I have 1 big listener class for all the events in the game. The parent just has to make the connections between the objects, who is listening to what. I think both come out to about the same, but I can see how listeners can be a pain without reference counting.</p><p>As far as letting the parent handle the logic of its children, I feel it would get out of hand, but I&#39;m fine with delegation. I do use it when it is far simpler than a listener. </p><p>With listeners I can use a variety of enums to represent the message which helps self document the code for me. I also do not have to go digging through a gigantic case statement.</p><p>When it is between delegation and listeners, I think the developer should choose whichever they feel more comfortable with. They each present a solution to many to many relationships while staying modular and flexible.  (At least for C++) As was mentioned, in a language like C#, listeners are absolutely the way to go, as they are practically built into the language.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Mon, 09 Jan 2012 03:09:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943276#target">James Lohr</a> said:</div><div class="quote"><p>
I&#39;m not sure about C++, but in C# listeners (which are necessary for events) are wonderfully elegant and are the cleanest solution to a multitude of problems.
</p></div></div><p>
This is a little too vague to be helpful.</p><p>Edit<br />@jmasterx<br />The way I do it is like this :
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">void</span> InheritedClass::QueueUserMessage<span class="k2">(</span>Widgetmsg wmsg<span class="k2">)</span> <span class="k2">{</span>
   <span class="k1">const</span> Widgetmsg msg1<span class="k2">(</span><span class="k3">&amp;</span>some_widget , TOPIC_SOME_KIND_OF_WIDGET_TOPIC , ENUM_MESSAGE_VALUE<span class="k2">)</span><span class="k2">;</span>
   <span class="k1">if</span> <span class="k2">(</span>wmsg <span class="k3">=</span><span class="k3">=</span> msg1<span class="k2">)</span> <span class="k2">{</span>
      <span class="c">// blah, we got a message from some_widget about something blah blah deal with it here</span>
   <span class="k2">}</span>
   <span class="k1">if</span> <span class="k2">(</span>notused<span class="k2">)</span> <span class="k2">{</span>
      parent-&gt;QueueUserMessage<span class="k2">(</span>wmsg<span class="k2">)</span><span class="k2">;</span>
   <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Mon, 09 Jan 2012 03:14:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943276#target">James Lohr</a> said:</div><div class="quote"><p>The difference is that professional code would likely be broken down into even smaller components, with even more emphasis on extensibility and maintainability.</p></div></div><p>

I always thought that was used to maintain a working relationship with India for outsourcing source code. Being more professional these days implies being unemployed for less time but always switching companies.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (verthex)</author>
		<pubDate>Mon, 09 Jan 2012 03:28:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943280#target">Edgar Reynaldo</a> said:</div><div class="quote"><p>
@jmasterx<br />The way I do it is like this :<br />void InheritedClass::QueueUserMessage(Widgetmsg wmsg) {<br />   const Widgetmsg msg1(&amp;some_widget , TOPIC_SOME_KIND_OF_WIDGET_TOPIC , ENUM_MESSAGE_VALUE);<br />   if (wmsg == msg1) {<br />      // blah, we got a message from some_widget about something blah blah deal with it here<br />   }<br />   if (notused) {<br />      parent-&gt;QueueUserMessage(wmsg);<br />   }<br />}
</p></div></div><p>

That is Chain of Responsibility, you pass it up the parent chain until someone consumes it. That works pretty well for Gui components with children, or composed Widgets like a NumbericUpAndDown. In this case, that works much more effectively than a listener. It is also small though. In GUIs in general it is a good tool for the job. Java&#39;s Swing I read uses a Model View Controller which adds a fair amount of flexibility.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Game inside game. <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" />
</p></div></div><p>
Pongception <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Mon, 09 Jan 2012 03:38:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943202#target">Thomas Fjellstrom</a> said:</div><div class="quote"><p>
Either help to reformat for the wiki <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />, or zip them all up and attach them to the Create page. That way anyone can download them and help to add the rest to the wiki.
</p></div></div><p>
Oh, well. I&#39;ve thought about that myself. Didn&#39;t have much time though. I&#39;ll see what I can do. Anyway I&#39;ve wanted to get to wiki editting sooner or later <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OICW)</author>
		<pubDate>Mon, 09 Jan 2012 05:21:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943272#target">jmasterx</a> said:</div><div class="quote"><p>
With C++0x, more references is not really a big deal for me.
</p></div></div><p>
Psst. It is no longer C++0x it is now C++11 <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />.
</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943297#target">OICW</a> said:</div><div class="quote"><p>
Oh, well. I&#39;ve thought about that myself. Didn&#39;t have much time though. I&#39;ll see what I can do. Anyway I&#39;ve wanted to get to wiki editting sooner or later
</p></div></div><p>
Yeah I&#39;ve thought the same thing, but don&#39;t have anything that would be beneficial to be put up. Sometimes I wish we had Pixelate still going from the users but I think almost all the writers have moved onto other things.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Mon, 09 Jan 2012 06:09:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Psst. It is no longer C++0x it is now C++11 <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />.
</p></div></div><p>

Yes, I know, but I use Visual Studio 2010 which came out before the official C++11 standard.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Mon, 09 Jan 2012 06:17:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943305#target">Specter Phoenix</a> said:</div><div class="quote"><p>
Yeah I&#39;ve thought the same thing, but don&#39;t have anything that would be beneficial to be put up
</p></div></div><p>
Meanwhile as we speak - ok, about an hour ago <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> - I&#39;ve put online chapter 3, more coming tomorow/today depending on your timezone.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OICW)</author>
		<pubDate>Mon, 09 Jan 2012 06:35:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943308#target">jmasterx</a> said:</div><div class="quote"><p>
Yes, I know, but I use Visual Studio 2010 which came out before the official C++11 standard.
</p></div></div><p>
Change compilers immediately! VS doesn&#39;t support the standards that well. Last I knew it doesn&#39;t even support the C99 standard yet.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Mon, 09 Jan 2012 06:54:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You&#39;re really determined to crap on this thread, aren&#39;t you? <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Mon, 09 Jan 2012 08:14:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943317#target">gnolam</a> said:</div><div class="quote"><p>
You&#39;re really determined to crap on this thread, aren&#39;t you? 
</p></div></div><p>
No, I have VS but every time I am on IRC they point out that VS doesn&#39;t support quite a bit of the standards which is why I quit messing with them. Now I use gcc in Ubuntu and Ming in windows. I can think of better ways to &#39;crap on this thread&#39; other than pointing out that VS is outdated (knowing MS it is by choice).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Mon, 09 Jan 2012 08:18:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943280#target">Edgar Reynaldo</a> said:</div><div class="quote"><p>This is a little too vague to be helpful.</p></div></div><p>

In C#, events/listeners look like this:</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span>
<span class="number">  2</span><span class="k1">public</span> <span class="k1">class</span> Keyboard 
<span class="number">  3</span><span class="k2">{</span>
<span class="number">  4</span>    <span class="k1">public</span> Action<span class="k3">&lt;</span>Key&gt; KeyPress<span class="k2">;</span>  <span class="c">//  &lt;-  this is an action that other classes can subscribe to using any method with a matching signature of (Key)</span>
<span class="number">  5</span>
<span class="number">  6</span>    <span class="k1">private</span> InternalCrap<span class="k2">(</span><span class="k2">)</span>
<span class="number">  7</span>    <span class="k2">{</span> 
<span class="number">  8</span>        <span class="c">//lots of encapsulated code</span>
<span class="number">  9</span>        KeyPress<span class="k2">(</span><a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">)</span><span class="k2">;</span>      
<span class="number"> 10</span>        <span class="c">//lots more encapsulated code</span>
<span class="number"> 11</span>    <span class="k2">}</span>
<span class="number"> 12</span><span class="k2">}</span>
<span class="number"> 13</span>
<span class="number"> 14</span>
<span class="number"> 15</span><span class="k1">class</span> Program
<span class="number"> 16</span><span class="k2">{</span>
<span class="number"> 17</span>    <span class="k1">private</span> Keyboard keyboard <span class="k3">=</span> <span class="k1">new</span> Keyboard<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>    <span class="k1">static</span> <span class="k1">void</span> Main<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 19</span>    <span class="k2">{</span>
<span class="number"> 20</span>        <span class="c">//register a "listener"</span>
<span class="number"> 21</span>        keyboard.KeyPress <span class="k3">+</span><span class="k3">=</span> KeyPressMethod<span class="k2">;</span>
<span class="number"> 22</span>        <span class="c">//register another listener</span>
<span class="number"> 23</span>        keyboard.KeyPress <span class="k3">+</span><span class="k3">=</span> KeyPressMethod2<span class="k2">;</span>
<span class="number"> 24</span>        <span class="c">//deregister one of the listeners</span>
<span class="number"> 25</span>        keyboard.KeyPress <span class="k3">-</span><span class="k3">=</span> KeyPressMethod<span class="k2">;</span>
<span class="number"> 26</span>    <span class="k2">}</span>
<span class="number"> 27</span>
<span class="number"> 28</span>    <span class="k1">private</span> <span class="k1">void</span> KeyPressMethod<span class="k2">(</span>Key <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">)</span>  <span class="c">// &lt;- note: this method as a signature matching the action</span>
<span class="number"> 29</span>    <span class="k2">{</span>
<span class="number"> 30</span>        System.out.println<span class="k2">(</span><span class="s">"Key "</span> <span class="k3">+</span> <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a> <span class="k3">+</span> <span class="s">" was pressed!"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>    <span class="k2">}</span>
<span class="number"> 32</span>
<span class="number"> 33</span>    <span class="k1">private</span> <span class="k1">void</span> KeyPressMethod2<span class="k2">(</span>Key <a href="http://www.allegro.cc/manual/key"><span class="a">key</span></a><span class="k2">)</span> <span class="c">// &lt;- as does this one</span>
<span class="number"> 34</span>    <span class="k2">{</span>
<span class="number"> 35</span>        System.out.println<span class="k2">(</span><span class="s">"Just printing this line to illustrate that multiple method references (delegates) can be added to the action."</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 36</span>    <span class="k2">}</span>
<span class="number"> 37</span>
<span class="number"> 38</span><span class="k2">}</span>
</div></div><p>


The point is that &quot;listeners&quot; are so cleanly supported by the language that it tends only to be inexperienced programmers that <i>don&#39;t</i> use them and instead opt for polling.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Tue, 10 Jan 2012 00:18:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943399#target">James Lohr</a> said:</div><div class="quote"><p>
The point is that &quot;listeners&quot; are so cleanly supported by the language that it tends only to be inexperienced programmers that don&#39;t use them and instead opt for polling.
</p></div></div><p>
I&#39;m inexperienced so guess that means I should opt out of listeners until I become experienced <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Tue, 10 Jan 2012 05:24:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Can we use the spoiler tags for off-topic comments? wouldn&#39;t be that a great idea?</p><p>I mean, it bothers me to skip off-topic comments, it would be great if it were some way to easily see off-topic comments and then just ignore them.</p><p>By the way, I really like <b>Death Note デスノート Desu Nōto</b> , take a look at it: <a href="http://en.wikipedia.org/wiki/Death_Note">http://en.wikipedia.org/wiki/Death_Note</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Tue, 10 Jan 2012 06:06:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ve watched the anime, and it was awesome. <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /> People told me I should read the manga tho.</p><p>EDIT:
</p><div class="spoiler"><p>I was rooting for L</p></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Tue, 10 Jan 2012 06:31:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>L Lawliet? hahaha. I&#39;m reading the manga right now (chapter 45/108) it&#39;s amazing! I think I&#39;m going to watch the anime after reading all the chapters! <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>I wish I had a Death Note, real names and pictures of some of the members in this forum <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /> off-topic comments would be dramatically reduced in my threads.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Tue, 10 Jan 2012 06:49:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943453#target">Paul whoknows</a> said:</div><div class="quote"><p>I think I&#39;m going to watch the anime after reading all the chapters!</p></div></div><p>
The anime is quite short as well. Only 37 episodes, but I loved it(except for the last few because of some new characters...)</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>I wish I had a Death Note, real names and pictures of some of the members in this forum <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /> off-topic comments would be dramatically reduced in my threads.</p></div></div><p>
I&#39;m safe. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Tue, 10 Jan 2012 07:49:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I heard the anime was sub-par compared to the manga. Haven&#39;t seen it, but the manga was fantastic. Until about the half-way point (JUST AS PLANNED). Then it dropped a bit to pretty good.</p><p>Fun fact: The same artist/writer team who did Death Note (writer Tsugumi Ohba and artist Takeshi Obata) now write and draw Bakuman, which is one of my current favorite mangas. It&#39;s kind of a meta-comic about a couple of teenagers trying to make it as a manga writer and artist. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>(... how did we get off on this topic ...)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Tue, 10 Jan 2012 08:32:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943464#target">23yrold3yrold</a> said:</div><div class="quote"><p>
(... how did we get off on this topic ...)
</p></div></div><p>
Same way we always do. We just talk about what is on our minds and boom we are off topic and on a topic that is completely left field.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Tue, 10 Jan 2012 08:58:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Talking about cartoons/animes here is fine, I can&#39;t control it. But if you&#39;re ever in my house, remember this rule: NO ANIME.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Trent Gamblin)</author>
		<pubDate>Tue, 10 Jan 2012 09:01:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The abandoned projects thread has now been abandoned. <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Tue, 10 Jan 2012 09:10:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943272#target">jmasterx</a> said:</div><div class="quote"><p>
Maybe writing code for a company will better enlighten me on the benefits of parents handling child logic
</p></div></div><p>
Textbook OOP modelling is often inconvenient, inefficient, or plain old wrong.</p><p>Consider the typical moving ball problem. Many OOP textbooks model a moving ball like this:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">class</span> Ball <span class="k2">{</span>
    public:
    <span class="k1">virtual</span> <span class="k1">void</span> move<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span> x <span class="k3">+</span><span class="k3">=</span> dx<span class="k2">;</span> y <span class="k3">+</span><span class="k3">=</span> dy<span class="k2">;</span> <span class="k2">}</span>
<span class="k2">}</span><span class="k2">;</span>
</pre></div></div><p>
Very nice, the ball moves itself. Awesome. We can even implement a bunch of moving objects, each with a different implementation of the polymorphic move() method, and they will all move differently.</p><p>But then we want to do collisions, and the thing breaks. The ball moves, but in order to check if it can actually move, it needs to know a lot about its environment: the position and type of all the other objects, the walls, and maybe a lot more. We can, of course, change the move method&#39;s signature to:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">virtual</span> <span class="k1">void</span> move<span class="k2">(</span>World<span class="k3">&amp;</span> world<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
...but this means we have to open up a whole bunch of internals of both the world and its objects so that individual objects can read and manipulate them. The benefits of encapsulation are mostly moot this way. Another ugly spot is that if two object collide, the design mandates that one of them is the &#39;bouncer&#39; and one is the &#39;bouncee&#39;: it&#39;s <span class="source-code">ball1-&gt;bounceWith<span class="k2">(</span>ball2<span class="k2">)</span><span class="k2">;</span></span>, even though they are really equal partners in the collision.</p><p>If we take a step back, we might observe, though, that in the real world, a ball does not in fact move itself. It is a passive object, subject to physical effects such as elasticity, inertia, in short, mechanics. The ball does not move itself: the ball has a bunch of properties, and the laws of nature act upon it.</p><p>Taking this back into the OOP domain, we end up with a design where the ball is just a data object with little functionality; it has a position and a velocity, and a few immutable properties such as mass, elasticity, etc. Movement is not handled by the ball itself, but by the Physics class: this class reads the object&#39;s parameters, and performs suitable physics calculations, something like this:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">class</span> Physics <span class="k2">{</span>
    <span class="k1">void</span> updatePositions<span class="k2">(</span>Object<span class="k2">[</span><span class="k2">]</span> objects<span class="k2">)</span> <span class="k2">{</span>
        foreach <span class="k2">(</span>objects as object<span class="k2">)</span> <span class="k2">{</span>
             object-&gt;position <span class="k3">+</span><span class="k3">=</span> object-&gt;velocity <span class="k3">*</span> deltat<span class="k2">;</span>
             foreach <span class="k2">(</span>collidingObjects<span class="k2">(</span>object, objects<span class="k2">)</span> as cobject<span class="k2">)</span> <span class="k2">{</span>
                 handleCollision<span class="k2">(</span>object, cobject<span class="k2">)</span><span class="k2">;</span>
             <span class="k2">}</span>
        <span class="k2">}</span>
    <span class="k2">}</span>
<span class="k2">}</span><span class="k2">;</span>
</pre></div></div><p>
The Physics class can act upon all the objects, without knowing too much about them (e.g., it doesn&#39;t have to know the color of a ball to calculate how it bounces, so the ball can keep that information to itself), but it can naturally operate on two objects at a time - the bouncer/bouncee problem goes away, as it is now <span class="source-code">physics-&gt;bounce<span class="k2">(</span>ball1, ball2<span class="k2">)</span><span class="k2">;</span></span>.</p><p>If you&#39;re a keen observer, you may notice something: the ball is a plain data object with little or no functionality; the physics class is pure functionality with little or no state. This means that we have <i>separated</i> state from behavior, exactly the opposite of what OOP tries to do (bundle state and behavior into classes). We could just as well have written this in a procedural paradigm or, in fact, if we ignore the OOP boilerplate, we actually have: class Physics is basically just a function (or a set of functions), and class Ball is just a record type (polymorphic, if you have different object types, but still just a record type).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Tobias Dammers)</author>
		<pubDate>Tue, 10 Jan 2012 14:38:07 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943467#target">Trent Gamblin</a> said:</div><div class="quote"><p>Talking about cartoons/animes here is fine, I can&#39;t control it. But if you&#39;re ever in my house, remember this rule: NO ANIME.</p></div></div><p>
Too much tentacles? <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Tue, 10 Jan 2012 19:17:37 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943137#target">AMCerasoli</a> said:</div><div class="quote"><p>
it&#39;s like you sit in front of your computer every time you want to program something, and that&#39;s not the way it works.
</p></div></div><p>
What? <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /> What do I sit in front of when I want to program then, the stove? My problem is that I quickly do the thinking in my head. I don&#39;t write many things out.
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
What you have posted, it&#39;s already in your brain, you knew how to do it before writing it, for that reason you did it.
</p></div></div><p>
Yeah, only things I had to look up was eof() get() but I was an idiot and didn&#39;t do get at first. I opened the file and then just did cout &lt;&lt; nums; without reading anything into it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Tue, 10 Jan 2012 19:58:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943489#target">Tobias Dammers</a> said:</div><div class="quote"><p>
The Physics class can act upon all the objects, without knowing too much about them (e.g., it doesn&#39;t have to know the color of a ball to calculate how it bounces, so the ball can keep that information to itself), but it can naturally operate on two objects at a time - the bouncer/bouncee problem goes away, as it is now physics-&gt;bounce(ball1, ball2);.If you&#39;re a keen observer, you may notice something: the ball is a plain data object with little or no functionality; the physics class is pure functionality with little or no state. This means that we have separated state from behavior, exactly the opposite of what OOP tries to do (bundle state and behavior into classes). We could just as well have written this in a procedural paradigm or, in fact, if we ignore the OOP boilerplate, we actually have: class Physics is basically just a function (or a set of functions), and class Ball is just a record type (polymorphic, if you have different object types, but still just a record type).
</p></div></div><p>

Interesting. I did not know this technique was anti OOP. Your description is exactly how I always make my games in fact. I thought it was more OOP to do it this way <i>because</i> it separated state from behavior. (At least for simulations of real world objects, it just seems like the natural way to solve it.)</p><p>Thanks!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Tue, 10 Jan 2012 21:00:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I just had sex! <img src="http://www.allegro.cc/forums/smileys/kiss.gif" alt=":-*" /></p><p><div class="media-player youtube"><div style="margin: 1em 2em; background: url(/images/movie.png); width: 180px; height: 100px; text-align: center;"><a href="http://www.allegro.cc//www.youtube.com/watch?v=lQlIhraqL7o" target="_blank"><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/object/7/4/7430267550a64d177a48e8352422c5bc.jpg" border="0" alt="video" title="Click to play video" /></a></div></div></p><p>Too much information? who cares! <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Tue, 10 Jan 2012 21:49:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I just had sex! <img src="http://www.allegro.cc/forums/smileys/kiss.gif" alt=":-*" />
</p></div></div><p>

Congratulations <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Tue, 10 Jan 2012 23:37:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943516#target">jmasterx</a> said:</div><div class="quote"><p>I thought it was more OOP to do it this way because it separated state from behavior.</p></div></div><p>

Yes, I&#39;m pretty sure it is considered one of the &quot;good OOP principles&quot;, along with things like:</p><ul><li><p>program to an interface, not an implementation</p></li><li><p>favour loosely coupled designs between interacting objects</p></li><li><p>favour composition over inheritance </p></li></ul><p> etc.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Tue, 10 Jan 2012 23:40:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>James Lohr, did you have sex?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Wed, 11 Jan 2012 00:02:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943547#target">Paul whoknows</a> said:</div><div class="quote"><p>James Lohr, did you have sex?</p></div></div><p>
That&#39;s handled by the world, not by himself. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Wed, 11 Jan 2012 00:24:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943547#target">Paul whoknows</a> said:</div><div class="quote"><p>James Lohr, did you have sex?</p></div></div><p>

The thread gradually progressed from abandoned projects, to reasons why they were abandoned one of those being coding styles which we were discussing until Specter Phoenix you began derailing it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Wed, 11 Jan 2012 01:10:40 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943540#target">James Lohr</a> said:</div><div class="quote"><p>program to an interface, not an implementation</p></div></div><p>What do you mean by that?</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>favour composition over inheritance</p></div></div><p>How is that different from inheritance as a method of composition?  Or does composition refer to explicit, non-inherited declaration?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Wed, 11 Jan 2012 01:28:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Put simply, composition implies a has-a relationship. Inheritance implies is-a. Composition works great for dependency injection and makes it much easier to build reusable components.</p><p>Programming to an interface is much like it sounds... You shouldn&#39;t care much about the underlying implementation.</p><p>A simple example in PHP:
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">class</span> MyCollection implements IteratorAggregate
<span class="number">  2</span><span class="k2">{</span>
<span class="number">  3</span>  <span class="k1">private</span> $data <span class="k3">=</span> array<span class="k2">(</span><span class="s">'foo'</span>, <span class="s">'bar'</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  4</span>
<span class="number">  5</span>  <span class="k1">public</span> function getIterator<span class="k2">(</span><span class="k2">)</span>
<span class="number">  6</span>  <span class="k2">{</span>
<span class="number">  7</span>    <span class="k1">return</span> <span class="k1">new</span> ArrayIterator<span class="k2">(</span>$this-&gt;data<span class="k2">)</span><span class="k2">;</span>
<span class="number">  8</span>  <span class="k2">}</span>
<span class="number">  9</span><span class="k2">}</span>
<span class="number"> 10</span>
<span class="number"> 11</span>function walker<span class="k2">(</span>Iterator $items<span class="k2">)</span>
<span class="number"> 12</span><span class="k2">{</span>
<span class="number"> 13</span>  foreach <span class="k2">(</span>$items as $item<span class="k2">)</span>
<span class="number"> 14</span>    echo $item, <span class="s">"\n"</span><span class="k2">;</span>
<span class="number"> 15</span><span class="k2">}</span>
<span class="number"> 16</span>
<span class="number"> 17</span>walker<span class="k2">(</span><span class="k1">new</span> MyCollection<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</div></div><p>

Here the <span class="source-code">walker</span> function is programmed to the <span class="source-code">Iterator</span> interface as opposed to the <span class="source-code">MyCollection</span> class. As a result, it works with any type of iterator and is far more reusable.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Wed, 11 Jan 2012 01:58:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943562#target">James Lohr</a> said:</div><div class="quote"><p>
which we were discussing until Specter Phoenix you began derailing it.
</p></div></div><p>
You have been here long enough to know if it wasn&#39;t me that derailed it someone else would have <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />. I can&#39;t think of any OT topic that has ever stayed on topic, has there been? Anyways, if it is that big a deal I&#39;m sure ML would have warned me or banned me by now.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Wed, 11 Jan 2012 02:38:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943568#target">Matthew Leverton</a> said:</div><div class="quote"><p>Put simply, composition implies a has-a relationship. Inheritance implies is-a. Composition works great for dependency injection and makes it much easier to build reusable components.</p></div></div><p>

So if you have:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">class</span> Position
<span class="k2">{</span>
public:
   <span class="k1">float</span> x<span class="k2">;</span>
   <span class="k1">float</span> y<span class="k2">;</span>
<span class="k2">}</span><span class="k2">;</span>
</pre></div></div><p>

composition looks like:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">class</span> Object
<span class="k2">{</span>
public:
   Position <span class="k3">*</span>position<span class="k2">;</span>
   std::string id<span class="k2">;</span>
<span class="k2">}</span><span class="k2">;</span>
</pre></div></div><p>

where inheritance looks like:</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">class</span> Object <span class="k2">:</span> <span class="k1">public</span> Position
<span class="k2">{</span>
public:
   std::string id<span class="k2">;</span>
<span class="k2">}</span><span class="k2">;</span>
</pre></div></div><p>

right?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Mark Oates)</author>
		<pubDate>Wed, 11 Jan 2012 02:52:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>When I had researched composition for games I cam across this article:</p><p><a href="http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/">http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/</a></p><p>The nice thing about it if I recall is the ability to make new types of objects at runtime. Ex: Flying Talking Dog at runtime.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Wed, 11 Jan 2012 03:01:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I used component based design in my SantaHack entry to great success. It was certainly far more pleasing to work with rather than an inheritance hierarchy which I always observe devolving into god objects in my games.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Wed, 11 Jan 2012 08:28:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/942983#target">Specter Phoenix</a> said:</div><div class="quote"><p>My issue seems that I get majorly caught and distraught over the turning any idea (beyond simple) into code. I just get overwhelmed I guess would be a good way of putting it.</p></div></div><p>
Perhaps you have a bit of an anxiety disorder.  I started taking vitamins to help my anxiety and that&#39;s why I&#39;ve finally come back to programming again, (that and the holiday rush is over for me).  What I take are those Mega Men Sport multi-vitamins from GNC.  I was always a bit bogged down with programming, (really doing anything in general).  My desire to program would hit me for just a moment, I&#39;d load up Code::Blocks and then feel like there was a wall in front of me, completely hindering my desire to do anything.  Pushing through to start programming was actually a little bit painful to me.  &quot;Do it, just start typing stuff.&quot;  That&#39;s what I&#39;d tell myself, then put my hands on the keyboard and feel like my whole body just started hurting like I didn&#39;t really want to program after all, but I did.  A Google search for nutrition and vitamins to help reduce anxiety lead me to a short list of things to help, almost all of which are in those Mega Man Sport supplements.  Keep in mind that it has certain vitamins that can build up in your system, so working out just a bit to clear those out every now and again is recommended. <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />  Ohhh yeah, my roommate convinced me to start taking those vitamins to help me with energy and I looked up anxiety after I was haphazardly taking them.  What a nice unintended effect.</p><p>How many abandoned projects do I have?  Dunno, I can neither count that high, nor can I even remember them to count them. <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" /></p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943275#target">Dario ff</a> said:</div><div class="quote"><p>I have a more bloated version of Pong.</p></div></div><p>
Dude, that game looks amazing as is.  Forget about spicing it up, it&#39;s a Pong clone it&#39;s not supposed to be spicy...... At least I don&#39;t think it should, (especially if it helps you release the game faster).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Emanresu)</author>
		<pubDate>Fri, 13 Jan 2012 10:45:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943883#target">Emanresu</a> said:</div><div class="quote"><p>Dude, that game looks amazing as is.  Forget about spicing it up, it&#39;s a Pong clone it&#39;s not supposed to be spicy...... At least I don&#39;t think it should, (especially if it helps you release the game faster).</p></div></div><p>

But it&#39;s not a Pong clone. <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /> It&#39;s a puzzle-trial and error game, the Pong level is just ONE puzzle of the entire game. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /><br /><div class="media-player youtube"><div style="margin: 1em 2em; background: url(/images/movie.png); width: 180px; height: 100px; text-align: center;"><a href="http://www.allegro.cc//www.youtube.com/watch?v=CKGHT7WCgRI" target="_blank"><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/object/1/2/12bf0b6571325ff7cb8238e1d2e365fa.jpg" border="0" alt="video" title="Click to play video" /></a></div></div>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Fri, 13 Jan 2012 19:02:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943927#target">Dario ff</a> said:</div><div class="quote"><p>
But it&#39;s not a Pong clone.  It&#39;s a puzzle-trial and error game, the Pong level is just ONE puzzle of the entire game. 
</p></div></div><p>
It&#39;s modified pong. Pong with thought!<br />Also I thought about what you said regarding making a basic game engine. Started to do it then realized I have no clue what I&#39;m doing <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" />. 
</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943883#target">Emanresu</a> said:</div><div class="quote"><p>
Perhaps you have a bit of an anxiety disorder.
</p></div></div><p>
Perhaps. I&#39;ve been diagnosed as having a lot of things lately and I&#39;m sure they are probably right or close to accurate.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sat, 14 Jan 2012 05:41:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That was the first game you posted.
</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943275#target">Dario ff</a> said:</div><div class="quote"><p>I have a more bloated version of Pong.</p><p>Game inside game. <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /></p></div></div><p>
The one in that quote is the one I was talking about....... Ummm, is there a specific reason there&#39;s no quote button in the forums?  Or am I just missing it?</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943995#target">Specter Phoenix</a> said:</div><div class="quote"><p>It&#39;s modified pong. Pong with thought!</p></div></div><p>
And an amazing looking pong at that.</p><div class="quote_container"><div class="title">Specter Phoenix said:</div><div class="quote"><p>Perhaps. I&#39;ve been diagnosed as having a lot of things lately and I&#39;m sure they are probably right or close to accurate.</p></div></div><p>

</p><div class="quote_container"><div class="title">http://www.mayoclinic.com/health/depression-and-exercise/MH00043 said:</div><div class="quote"><p>Depression and anxiety: Exercise eases symptoms<br />Depression symptoms often improve with exercise. Here are some realistic tips to help you get started and stay motivated.</p></div></div><p>
I started off super simple to help me get some motivation back.  I bought two 10 pound weights.  Randomly, I would go pick them up and do a few curls and maybe some other exercise action thingies.  When they started to feel pretty easy to move around, I got a pair of 25 pound weights...... Haven&#39;t gotten past those just yet though.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Emanresu)</author>
		<pubDate>Sat, 14 Jan 2012 07:29:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944011#target">Emanresu</a> said:</div><div class="quote"><p>The one in that quote is the one I was talking about...</p></div></div><p>
The first one I posted and the 2nd video are the same game. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> It&#39;s just that one of the levels(I think it&#39;s level #12) has this puzzle where it simulates pong. Heck, you can even <a href="http://mcserver-mdp.googlecode.com/files/arkab_debug.7z">download it</a> and check it out for yourself. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>Ummm, is there a specific reason there&#39;s no quote button in the forums?  Or am I just missing it?</p></div></div><p>
I assume it is to prevent abuse of the quote feature and just use it for the relevant parts of the text you&#39;re replying to. Quote pyramids are a plague in most boards. Do note that it&#39;s not needed to link to the original post, since with only &lt;quote&gt;&lt;/quote&gt;, it will search and link to the author on its own(and it&#39;s correct nearly 99% of the time). <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Sat, 14 Jan 2012 07:54:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Dario ff: I took you up on your idea. I decided to make a simple 2D game engine, but even simple game engines aren&#39;t simple (at the least input, graphics, sound, physics). Then you also have networking, AI, scripting, math library, and of course the engine core (and utilities). That is just quoting what I read on google results. Maybe a little more advanced than what my abilities can do. I&#39;ll figure out something, and if not -- oh well. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sun, 15 Jan 2012 03:16:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Don&#39;t make engine, make game. Then, rip the game&#39;s guts out and create engine à la Frankenstein. It will serve your purpose. Or kill you.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc ( Arvidsson)</author>
		<pubDate>Sun, 15 Jan 2012 03:18:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Think it is safe to say I don&#39;t understand the logic required. I&#39;ve tried to make two games and both times I needed a lot of help with code that was considered simple for beginners.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sun, 15 Jan 2012 03:31:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944105#target"> Arvidsson</a> said:</div><div class="quote"><p>Don&#39;t make engine, make game.</p></div></div><p>
This.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Sun, 15 Jan 2012 03:36:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Here&#39;s an idea that may be even better for you.  Start simple and build up.</p><p>Super general: Write a calculator program that uses only the command line at first.  Then slowly build on it until you have a GUI, mouse and joystick inputs.  YES joystick inputs.  Really work yourself out here and do something no one else does.</p><p>More specific: Start off by having it request a number as input.  Then ask for a math operation and then a second number.</p><p>Work on this until you can have the user input the whole thing on one line.</p><p>Add a GUI to show you what the results are, then later have it where you can input data into the program.  Get the mouse into it now and when that is down pat, start on the joystick.</p><p>Now add sounds for feed back on when it accepts or completes commands.  Now you&#39;ve worked out how to start with the basics of the game/engine.  Time to add physics for even more fun.  I&#39;d say use the mouse or joystick to drag/move a ball to a desired location and drop it onto some blocks that represent numbers or operations.</p><p>Now take over the world with your new program and rule with an iron fist.</p><p>? ? ?</p><p>Profit!!!!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Emanresu)</author>
		<pubDate>Sun, 15 Jan 2012 03:44:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>An engine is really just a bunch of APIs that help you make games. Therefore, consequently if you make a game, you&#39;ll generally have an engine. You can then figure out what is reusable for other projects and make a library. Now every game you  make can use this  library. As you make more games you improve this library and all your old projects benefit. Therefore, make a game, and then you will have an engine.</p><p>Remember: Game Engine, not Engine Game.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Sun, 15 Jan 2012 04:06:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944104#target">Specter Phoenix</a> said:</div><div class="quote"><p>Dario ff: I took you up on your idea. I decided to make a simple 2D game engine, but even simple game engines aren&#39;t simple (at the least input, graphics, sound, physics). Then you also have networking, AI, scripting, math library, and of course the engine core (and utilities). That is just quoting what I read on google results. Maybe a little more advanced than what my abilities can do. I&#39;ll figure out something, and if not -- oh well.</p></div></div><p>

Stick to what you need. You&#39;re not gonna reinvent a car if you just need the wheels.<br /> <br />Plus, the first design of your engine is likely wrong and will get to a point which will need a full rewrite. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> Just get the basic functionality working(resource loading, scene management, input, simple sounds), and then try to make a simple game with it.</p><p>Striving for the &quot;perfect&quot; engine is an endless loop which will net you nothing. It&#39;s not as simple as, &quot;make game&quot; either. Just set up what you need for a basic engine and get working later. Making an engine while trying to make a game will take more time overall than if you had set it up properly first. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Sun, 15 Jan 2012 05:40:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944128#target">Dario ff</a> said:</div><div class="quote"><p>
Striving for the &quot;perfect&quot; engine is an endless loop which will net you nothing.
</p></div></div><p>

I concur. I prefer to work with a set of familiar code and libs I can string together loosely to fit my needs, then fill in the gaps. I get up and running on new projects fast, and don&#39;t feel like I have my hands tied.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Sirocco)</author>
		<pubDate>Sun, 15 Jan 2012 06:01:43 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah, my problem is that with me I think: I want to make a simple game engine (or game for that matter). With the engine I say, okay I need to have the core, graphics, sound, input, and physics and collision detection. Then don&#39;t know where to go from there.</p><p>In regards to a game, I think I want to make a pong clone. Then go blank because I really don&#39;t have the proper thought process developed to say ok I want this, break it down more, so I need this, break it down more, repeat til Code is ready to be written. </p><p>Then I also have issues with the logic. I messed up the drawing for Pong and was a complete retard/noob when it came to collision detection for both Pong and Lightcycles. I thought college was going to help me build, grow, and overcome this problem, but instead I seem to have fallen victim to it as I have become depressed and not coded much outside of what I know by heart. Rather frustrating to be honest. Just don&#39;t know how to fix it or combat the issue.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sun, 15 Jan 2012 11:10:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Like I said earlier, start with the core, then work your way out.  You&#39;re trying to start with everything and then make the game.  As far as I can tell, you don&#39;t have the thought process for that at this time.</p><p>Another thing they should have taught you in college, (which I personally loath and despise and never do myself), is pseudo coding and flow charting.  Write down the steps you want to take and then write your program based on it.  Draw a big picture of what you want to happen in the order that you want.</p><p><s>When you teach a child something, you should <u><b>NEVER</b></u> tell them they can&#39;t do something.  That will make them want to do it more.</s>  Nothing to see here folks, move along.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944163#target">Specter Phoenix</a> said:</div><div class="quote"><p>Then I also have issues with the logic. I messed up the drawing for Pong and was a complete retard/noob when it came to collision detection for both Pong and Lightcycles. I thought college was going to help me build, grow, and overcome this problem, but instead I seem to have fallen victim to it as I have become depressed and not coded much outside of what I know by heart. Rather frustrating to be honest. Just don&#39;t know how to fix it or combat the issue.</p></div></div><p>
Seriously?  You&#39;re going to let a few little coding flaws stop you?  Did you ask anyone for help, (keep in mind I haven&#39;t been here for like ten months)?  Have you asked anyone to teach you how to do it better?</p><p>Change your attitude.  Instead of saying: &quot;I can&#39;t do that&quot;, say: &quot;I don&#39;t want to do that right now&quot;.  You&#39;ll only put it in your head that you can&#39;t do something, and then you won&#39;t want too.</p><p>You sound like you have a good deal of anxiety like I said earlier and I think I know where it is coming from.  It sounds like you&#39;re like me and have a bad case of ADD.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Emanresu)</author>
		<pubDate>Sun, 15 Jan 2012 11:37:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944166#target">Emanresu</a> said:</div><div class="quote"><p> When you teach a child something, you should NEVER tell them they can&#39;t do something. 
</p></div></div><p>If it is true, you should. It&#39;s quite evil to give somebody false hope just because you want to be nice.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Sun, 15 Jan 2012 12:06:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944168#target">Matthew Leverton</a> said:</div><div class="quote"><p>If it is true, you should. It&#39;s quite evil to give somebody false hope just because you want to be nice.</p></div></div><p>
<img src="http://www.allegro.cc/forums/smileys/huh.gif" alt="???" /> <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" /><br />I guess I missed something as I&#39;m not sure what you&#39;re talking about.  However I&#39;ve been up for way too long, haven&#39;t gotten enough sleep and your advice tends to be sound, so allow me to rephrase and somehow explain my thinking.</p><p>In my opinion, if you&#39;re going to teach someone something, it is best to avoid telling them that they can&#39;t do it due to the effects of reverse psychology.  However when you are teaching/talking to yourself, (in a sane manner), I feel that you should avoid telling yourself that you can&#39;t due to the fact that you have better access to your brain and can convince yourself of something faster than someone else can if you feel it makes sense.</p><p>For example, if you try to convince yourself that you can&#39;t climb to the top step of a step stool, you may find this to be quite difficult as your brain has learned that it can usually get onto such objects, (such as stairs and other such platforms) and that you should be able to get on the stool in the same manner as before.  </p><p>Next example, if you have a wall that is a few feet higher than you and the top is a bit out of reach, it would be a lot easier for you to convince yourself that it is unclimbable.  Even if there are small footholds in the wall, you can still convince yourself that it isn&#39;t climbable, (unless the footholds are very obvious).</p><p>And after writing all of that, I think I do see why what I said earlier isn&#39;t of any use.</p><p>[EDIT]<br />And personally I feel it would only be evil if I was purposely being malignant.  As it was, I feel I was being more ignorant than anything. <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Emanresu)</author>
		<pubDate>Sun, 15 Jan 2012 12:33:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I would make a big distinction between physical tasks and mental tasks. Exercising doesn&#39;t require you to acquire any skills. To lift weights, you simply lift weights. To run, you run. Anybody who fails to get in shape simply didn&#39;t try hard enough. Yes, some people have to try harder than others, but anybody can get in shape in <i>a reasonable time</i> given the right amount of effort.</p><p>Acquiring a skill such as programming requires mental ability that the aforementioned tasks do not. It&#39;s easy to blame the lack of effort... to say a person isn&#39;t trying hard enough. But how hard must a person try before you are convinced he cannot do it?</p><p>Yes, it&#39;s quite possible that somebody could suck at programming for the same reason he is fat and out of shape: lack of effort. But you cannot force somebody into learning a skill like you can force him into getting into shape. </p><p>Even if given infinite time anybody could learn anything, we don&#39;t operate under those conditions. So to me, when it comes to acquiring skills, not having the motivation to learn is the <i>same thing</i> as not having the potential because it is impossible to separate the two as an observer.</p><p>So practically speaking, if a person after two years of entry level programming classes at university is still struggling to comprehend the most basic concepts, I would feel compelled to respectfully tell him that he is wasting his time and that he should pursue other careers.</p><p>I wouldn&#39;t tell him to try harder, to do this, or to do that, and then he will succeed. Maybe, in 1% of the cases, I would ultimately be proved wrong. But I would save 99% of people from wasting money and time (and feeling miserable) pursuing things that are beyond their <i>reasonable</i> grasp.</p><p>It&#39;s hard for me to understand why somebody cannot learn how to program. I taught myself from books (pre-Internet) and was coding my own BASIC programs at the age of eight. But when I consider things I am not good at (basically everything else), it gets put into perspective.</p><p>This is just something I rant about from time to time. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>(I would have responded more directly to your actual point, but I don&#39;t really understand what you&#39;re trying to say within the context of advising Clayton.)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Sun, 15 Jan 2012 15:16:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>[edit]</p><p>In response to Matthew&#39;s post:</p><p>I don&#39;t think it&#39;s fair to make the distinction between physical and mental tasks. Take music for example: it has at least as large a spectrum for natural talent as programming.</p><p>I do think that people have a natural innate ability which plays a very large role in defining the upper-limits to what they can achieve in <i>most</i> tasks (both physical and mental), which I would be tempted to call intelligence. I think IQ has a strong baring on this measure (or rather, this intelligence has a strong baring on people&#39;s IQ scores) <i>only</i> if the person has spent a sizeable chuck of their life solving IQ test style problems. </p><p>For example, I do very well in IQ tests because I studied maths and CS, and I&#39;m a programmer.  My mother, on the other hand, doesn&#39;t do so great even though her innate intelligence is as good, if not better, than mine. She is a <a href="http://www.allegro.cc/forums/thread/608803/937261">good pianist</a>, a brilliant remedial teacher, and generally good at most things she does.  </p><p>That being said, I doubt she could ever be a programmer.  Programming requires an acute (boring on obsessive) attention to detail and ability to follow logic through that I believe is in some ways separate from ones innate intelligence. I also believe that some programmers meet this requirement while still having an average innate intelligence, but are able to excel beyond their peers because they can doggedly follow logic through. </p><p>On game engines: </p><p>As jmasterx said, if you build a game and you follow principles such as encapsulation, reusability, abstraction etc. whilst sticking to a strict (but sensible) project hierarchy, you will end up with a game <i>and</i> some sort of engine. </p><p>Essentially the game acts as giant test rig, and as something to showcase the engine when it is done.</p><p>In fact those are probably the most important metrics in measuring how good a game engine (or framework if you prefer) actually is:<br /> <br />1) How good the actual game is<br />2) How well the code was written for reusability
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Sun, 15 Jan 2012 15:28:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944107#target">Specter Phoenix</a> said:</div><div class="quote"><p>
Think it is safe to say I don&#39;t understand the logic required. I&#39;ve tried to make two games and both times I needed a lot of help with code that was considered simple for beginners.
</p></div></div><p>
I&#39;ll try to add the rest (4 more) Create articles onto the wiki. Last week I was getting ready for presenting our school software project - a year worth of development getting judged by your 20 minutes presentation (well that and by an opponent). You can try implementing the game Phipps is describing there.</p><p>Anyway, as far as engine is concerned. I&#39;ve came to conclusion that it is viable to have several boiler plate code functions/classes around so you don&#39;t have to write the same mundane code again and again. Though, I wouldn&#39;t call it engine. As others said, don&#39;t bother making engine. It&#39;s rather boring and an endless loop without any outcomes.</p><p>For the boiler plate code, basically all you need is:
</p><ul><li><p>Core functions - setting up graphics window, main loop, screen refresh
</p></li><li><p>Resource manager
</p></li><li><p>Utility functions - not necessarily, but it can be good to have around some advanced string functions (those STL are limited), config file routines (Allegro has them already), etc.</p></li></ul><p>That means forget about implementing sound, collisions, physics etc. You can do this later when you need it. Collisions &amp; physics depend on the concrete game you are making, so implement it just when needed. For the short outline I just gave, I think that you won&#39;t get over 500 lines of code.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (OICW)</author>
		<pubDate>Sun, 15 Jan 2012 17:35:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944184#target">Matthew Leverton</a> said:</div><div class="quote"><p>I would make a big distinction between physical tasks and mental tasks. Exercising doesn&#39;t require you to acquire any skills. To lift weights, you simply lift weights. To run, you run. Anybody who fails to get in shape simply didn&#39;t try hard enough. Yes, some people have to try harder than others, but anybody can get in shape in a reasonable time given the right amount of effort.</p></div></div><p>
That&#39;s not what I&#39;m saying.  If you look at one of my previous posts, I referenced a link from the Mayo clinic that stated that exercise can help reduce anxiety and help you focus.  Which is what he said he was afflicted by.  I don&#39;t care if he&#39;s out of shape or not and I&#39;m not going to recommend that he get into shape.  That would be: <a href="http://en.wikipedia.org/wiki/Pot_calling_the_kettle_black">&quot;The pot calling the kettle black&quot;</a>.  I do realize that I said I was lifting some weights earlier, but that in no way means I&#39;ve gotten in shape.</p><div class="quote_container"><div class="title">Matthew Leverton said:</div><div class="quote"><p>Acquiring a skill such as programming requires mental ability that the aforementioned tasks do not. It&#39;s easy to blame the lack of effort... to say a person isn&#39;t trying hard enough. But how hard must a person try before you are convinced he cannot do it?</p></div></div><p>
Depends on if they want to do it or not.  He says he wants to program a game, but a few little minor details are stopping him.  I&#39;m trying to get him get over his issues, (the ones I had earlier) and start him programming again.  If a person absolutely loves a game but gets stuck at the same part over and over again, do you tell them to just quit, or do you try to help them out?</p><div class="quote_container"><div class="title">Matthew Leverton said:</div><div class="quote"><p>Yes, it&#39;s quite possible that somebody could suck at programming for the same reason he is fat and out of shape: lack of effort. But you cannot force somebody into learning a skill like you can force him into getting into shape.</p></div></div><p>
There&#39;s that whole in/out of shape thing again.</p><div class="quote_container"><div class="title">Matthew Leverton said:</div><div class="quote"><p>Even if given infinite time anybody could learn anything, we don&#39;t operate under those conditions. So to me, when it comes to acquiring skills, not having the motivation to learn is the same thing as not having the potential because it is impossible to separate the two as an observer.</p></div></div><p>
He says he&#39;s having motivational issues but he has the skills.  I&#39;m recommending he build up his skills to get to the point he wants to be at.</p><div class="quote_container"><div class="title">Matthew Leverton said:</div><div class="quote"><p>So practically speaking, if a person after two years of entry level programming classes at university is still struggling to comprehend the most basic concepts, I would feel compelled to respectfully tell him that he is wasting his time and that he should pursue other careers. I wouldn&#39;t tell him to try harder, to do this, or to do that, and then he will succeed.</p></div></div><p>
I would say he&#39;s in the wrong classes then.  He said he can do basics, it is the more advanced issues that he has a problem with.  To be honest, I feel that college is not the greatest place in the world to learn.  I&#39;m in the computer repair field, and I&#39;ve met plenty of people with degrees.  I have no degrees or certificates and I blow those people out of the water.  By the time you get out of college, the computer world has changed.</p><div class="quote_container"><div class="title">Matthew Leverton said:</div><div class="quote"><p>Maybe, in 1% of the cases, I would ultimately be proved wrong. But I would save 99% of people from wasting money and time (and feeling miserable) pursuing things that are beyond their reasonable grasp. It&#39;s hard for me to understand why somebody cannot learn how to program. I taught myself from books (pre-Internet) and was coding my own BASIC programs at the age of eight. But when I consider things I am not good at (basically everything else), it gets put into perspective. This is just something I rant about from time to time. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />(I would have responded more directly to your actual point, but I don&#39;t really understand what you&#39;re trying to say within the context of advising Clayton.)</p></div></div><p>
I&#39;m going to assume that Clayton is Specter.  I&#39;m just trying to help him out with some advice that helped me.  Why am I trying to help him out?  Three reasons: <br />1) He&#39;s programming a game right now.  Something I love to do.  It&#39;s my hobby.<br />2) He&#39;s got the same issues I had/have.  Anxiety and lack of focus.<br />3) He hit a subject that&#39;s close to home with me.</p><p>Getting really anxious and depressed to the point where I don&#39;t want to program again sends a fear throughout me.  It&#39;s sad when you don&#39;t want to work on your favorite hobby.  I was at a point where I didn&#39;t even want to write a &quot;Hello world!&quot; program and Code::Blocks will do 99% of the work for you with one of those.  That is sad. <img src="http://www.allegro.cc/forums/smileys/embarassed.gif" alt=":-[" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Emanresu)</author>
		<pubDate>Sun, 15 Jan 2012 21:58:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I suspect that all he needs is a good thorough kick right up the backside. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Sun, 15 Jan 2012 22:23:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944205#target">James Lohr</a> said:</div><div class="quote"><p>
I suspect that all he needs is a good thorough kick right up the backside. 
</p></div></div><p>
Have a wife for that and so far it hasn&#39;t worked <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />. It makes me depressed more when I see people who don&#39;t know me having more belief in my abilities than I do. Wife is always telling me that I could do it if I just stop being so negative.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sun, 15 Jan 2012 22:28:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now that the thread&#39;s been terminally derailed...
</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/943883#target">Emanresu</a> said:</div><div class="quote"><p>Ohhh yeah, my roommate convinced me to start taking those vitamins to help me with energy and I looked up anxiety after I was haphazardly taking them.  What a nice unintended effect.</p></div></div><p>
Hooray for the placebo effect!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gnolam)</author>
		<pubDate>Sun, 15 Jan 2012 22:35:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944211#target">gnolam</a> said:</div><div class="quote"><p>
Now that the thread&#39;s been terminally derailed...
</p></div></div><p>
After 10 years of all the threads being derailed and you still feel it necessary to waste you time commenting on it? <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /> After 11 years of seeing it I don&#39;t worry any about derailing the thread because 23yrold3yrold and several other are notorious for derailing threads more so than me. Though as of late I think I&#39;m catching up to them a little.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Sun, 15 Jan 2012 22:38:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944212#target">Specter Phoenix</a> said:</div><div class="quote"><p> After 10 years of all the threads being derailed and you still feel it necessary to waste you time commenting on it? <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" /></p></div></div><p>Just because you derail all threads you post in doesn&#39;t mean all threads get derailed.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SiegeLord)</author>
		<pubDate>Sun, 15 Jan 2012 23:40:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It&#39;s still vaguely on topic: we&#39;re talking about lack of motivation in a thread about abandoned projects.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Mon, 16 Jan 2012 00:02:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944203#target">Emanresu</a> said:</div><div class="quote"><p> He says he&#39;s having motivational issues but he has the skills. I&#39;m recommending he build up his skills to get to the point he wants to be at.
</p></div></div><p>It&#39;s not like we are discussing somebody who is giving up after a few weeks or after the first hurdle. He&#39;s been at it for over ten years with almost no results. You are wasting your time if you think your encouragement will help him succeed. His lack of belief in himself comes from the <u>reality</u> that he doesn&#39;t have what it takes to be a competent programmer.</p><p>That doesn&#39;t mean he&#39;s stupid or that he isn&#39;t trying hard enough. It means his brain isn&#39;t &quot;wired correctly&quot; for programming, and he ought to pursue other tasks. If he wants to make games, then perhaps he should just focus on modding games via level editors. It&#39;s much more kind to give him realistic advice than to pat him on the back or kick him in the butt. And when he starts doing things he&#39;s good at, his self confidence and attitude will improve.</p><p>Telling somebody that they ought to be able to do something that they cannot do despite trying very hard is only going to make his or her depression and lack of confidence <i>worse</i>. When you come to the understanding that you have limitations (like everybody else), it&#39;s much easier to handle defeat.</p><p>And even if he could eventually do it, it&#39;s dumb to spend a thousand times more effort than a &quot;regular person&quot; does to accomplish the same task. e.g., If it took me two hours every morning to put on my own socks, then I would get somebody else to do it for me. That doesn&#39;t mean I&#39;m a quitter or have no faith in my abilities, but that I&#39;m realistic about how I should spend my time.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Mon, 16 Jan 2012 00:28:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944224#target">Matthew Leverton</a> said:</div><div class="quote"><p>And even if he could eventually do it, it&#39;s dumb to spend a thousand times more effort than a &quot;regular person&quot; does to accomplish the same task.</p></div></div><p>

We&#39;re all still the same species, and so unless he&#39;s got a specific learning difficulty, I doubt it&#39;s going to be worse than 1.5 - 2 times a &quot;regular&quot; person&#39;s effort.  Humans are very versatile creatures, both mentally and physically; we&#39;re remarkably good at compensating for weaknesses if we&#39;re willing to spend the time to learn coping strategies.  This is how remedial teaching works: it&#39;s all about teaching children strategies (or &quot;work-arounds&quot;) for their weaknesses. </p><p>If you&#39;re missing all the fingers on your right hand being a pianist is probably not a realistic career choice, but still possible if you&#39;re <a href="http://www.youtube.com/watch?v=VbhW_K3NvmQ">persistent enough.</a> </p><p>For this reason I&#39;m more inclined to agree with Emanresu: even if he isn&#39;t optimally &quot;wired&quot; for programming, if he were to believe that he could do it and put the effort in, he would probably be able to achieve just fine.</p><p>...also, if we&#39;re all patronising enough he might get is arse into gear and write a game out of pure embarrassment. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Mon, 16 Jan 2012 00:49:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944211#target">gnolam</a> said:</div><div class="quote"><p>
Hooray for the placebo effect!
</p></div></div><p>

Speaking of thread derailings...</p><p>I always laugh a little when I come across that word (placebo). It sounds like some sort of Japanese demon; perhaps the small, perverted sort that flies around sneaking peeks up girls&#39; skirts.</p><p><img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Sirocco)</author>
		<pubDate>Mon, 16 Jan 2012 00:52:42 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944224#target">Matthew Leverton</a> said:</div><div class="quote"><p> If it took me two hours every morning to put on my own socks, then I would get somebody else to do it for me. That doesn&#39;t mean I&#39;m a quitter or have no faith in my abilities, but that I&#39;m realistic about how I should spend my time.</p></div></div><p>This has so much to do with Adam Smiths invisible hand it&#39;s incredible.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944225#target">James Lohr</a> said:</div><div class="quote"><p> We&#39;re all still the same species, and so unless he&#39;s got a specific learning difficulty, I doubt it&#39;s going to be worse than 1.5 - 2 times a &quot;regular&quot; person&#39;s effort.</p></div></div><p>It&#39;s widely known that the programming field is unique in that ability can be a thousandfold different between individuals.</p><p><a href="http://catb.org/jargon/html/S/superprogrammer.html">http://catb.org/jargon/html/S/superprogrammer.html</a></p><p>I&#39;d say I can program well enough that I&#39;m not &quot;wasting my time&quot; but I&#39;d say Matt could usually code a certain algorithm ten to fifteen times faster than me based on his answers to programming questions here.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Mon, 16 Jan 2012 03:41:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944219#target">SiegeLord</a> said:</div><div class="quote"><p>
Just because you derail all threads you post in doesn&#39;t mean all threads get derailed.
</p></div></div><p>
Yeah the only threads that get derailed are the ones that provoke enough thought to cause people to talk and bring in other tangents that coincide with the main original topics. The ones that stay on topic are boring and cause no real conversation potential. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Mon, 16 Jan 2012 04:12:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944163#target">Specter Phoenix</a> said:</div><div class="quote"><p> With the engine I say, okay I need to have the core, graphics, sound, input, and physics and collision detection.</p></div></div><p>What would you want to do with graphics and sound? Input (when building a generalized system) and physics/collision detection are pretty extensive projects, that could be objectives on their own. I get the impression most games here are written for one purpose only (i.e. use no general framework); if code is reused it is hacked away from a previous project, and hacked into the current project. (Or they use a &#39;framework&#39;, which is discarded for the next project.) It&#39;s not a crime to write one use code, unless you are a professional <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> </p><p>As someone who is struggling himself with getting a decent game done, I can say: it&#39;s better to have <span class="cuss"><span><span class="cuss"><span>shit</span></span></span></span> that works, than to have perfection that doesn&#39;t exist.</p><p>Physical fitness... yeah, that helps too. I&#39;ve been out of shape for the last year. Better work out a little <img src="http://www.allegro.cc/forums/smileys/embarassed.gif" alt=":-[" /> I believe the novelist Murakami also worked on his fitness to become a better writer. (And he&#39;s pretty good <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /> )</p><p>Two rules which help me with coding:
</p><ul><li><h5>First make it work; then make it work well.</h5><p> Even when properly thinking out a framework, there will be some use cases for which it is unfit. You first write a program that does what you want. Then you generalize and/or make classes to do a lot of work for you. If it yields a reusable framework: excellent. If it doesn&#39;t: your code will at least be cleaner.</p></li><li><h5>If you don&#39;t use it, don&#39;t code it.</h5><p> When doing the functional part<span class="ref"><sup>[<a href="#">1</a>]</sup></span>, you would have to see a difference the next time you compile it. Working several days on one function is OK, putting in a function you won&#39;t be using in your program for some time is not OK. This also ensures you write and rewrite the functionality in one go; you don&#39;t have to study a problem you studied a year ago, because that was when you wrote that broken function. Of course there can still be flaws in a function you wrote a year ago... Thinking of edge cases or feeding random/interesting arguments to your function can help you find errors ASAP. (There might be cases where you want your function to fail gracefully.)</p></li></ul><p>

</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944240#target">Specter Phoenix</a> said:</div><div class="quote"><p> Yeah the only threads that get derailed are the ones that provoke enough thought to cause people to talk and bring in other tangents that coincide with the main original topics. The ones that stay on topic are boring and cause no real conversation potential.</p></div></div><p>Yeah, arguing is humanity&#39;s greatest merit. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p><div class="ref-block"><h2>References</h2><ol><li>i.e. not clearing up code, and rewriting to do the same thing. The exception being optimization: you&#39;d have to see a <u>significant</u> difference immediately (even though it does the same task).</li></ol></div></div>]]>
		</description>
		<author>no-reply@allegro.cc (weapon_S)</author>
		<pubDate>Mon, 16 Jan 2012 14:04:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944274#target">weapon_S</a> said:</div><div class="quote"><p>Two rules which help me with coding:</p></div></div><p>
Three...maybe have a shot of liquor to mellow me out.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (verthex)</author>
		<pubDate>Mon, 16 Jan 2012 14:27:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944274#target">weapon_S</a> said:</div><div class="quote"><p>
It&#39;s not a crime to write one use code, unless you are a professional
</p></div></div><p>
Whether anyone pays you to do it is absolutely irrelevant. Bad code is bad code, and good code is good code.</p><p>The thing is, though, that &quot;code reuse&quot; is a misunderstood concept. &quot;Write reusable code&quot;, also known by the names &quot;DRY Principle (Don&#39;t Repeat Yourself)&quot;, &quot;Single Source of Truth&quot;, &quot;Refactor Early, Refactor Often&quot;, &quot;Simple Is Better Than Complex&quot;, &quot;KISS (Keep It Simple, Stupid!)&quot;, etc., means that <b>within one project</b>, you should strive to eliminate redundancy. If you have a function that calculates the average of a bunch of values, it better be the only function in the project that does so. It does not mean that you should write a library with a function that solves all facets of number-averaging that you will ever encounter in any project.</p><p>Because what it comes down to is that writing reusable code (and taking advantage of it) within the scope of one project is relatively easy and yields impressive results in the long run, in terms of maintainability and extensibility, but writing a library (which has much larger potential scope, needs more testing, needs to take all possible future usages into account) is harder by a few orders of magnitude but doesn&#39;t yield much additional benefit.</p><p>Personally, I avoid redundant code like the plague, partly because I&#39;m too lazy to solve the same problem twice, and partly because I&#39;ve seen to many projects that almost collapsed under the sheer amount of code they contained (and any change would potentially break things elsewhere, where other code relied on two implementations of the same thing being roughly equivalent). I only turn something into a library when it turns out that I am really going to reuse it more than two or three times, which has happened maybe once or twice in my entire programming life.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Tobias Dammers)</author>
		<pubDate>Mon, 16 Jan 2012 22:09:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944292#target">Tobias Dammers</a> said:</div><div class="quote"><p>
Bad code is bad code, and good code is good code.
</p></div></div><p>
Sad part is that when you see code from professionals you realize that a lot of pros use a lot of bad code.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Tue, 17 Jan 2012 02:27:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944317#target">Specter Phoenix</a> said:</div><div class="quote"><p>Sad part is that when you see code from professionals you realize that a lot of pros use a lot of bad code.</p></div></div><p>
I was amused by <a href="http://thedailywtf.com/Articles/Classic-WTF-Rutherford,-Price,-Atkinson,-Strickland,-and-Associates-Dentistry,-Inc.aspx">this,</a> especially since my current work project includes a client-server setup with client-side caching, SQL, and other stuff I&#39;m pretty dumb about but still do better than this. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Tue, 17 Jan 2012 02:34:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Forgot about catching up with tdwtf for a while:</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><div class="source-code snippet"><div class="inner"><pre><span class="k1">private</span> <span class="k1">static</span> <span class="k1">bool</span> InvertBool<span class="k2">(</span><span class="k1">bool</span> org<span class="k2">)</span>
<span class="k2">{</span>
  <span class="k1">bool</span> returnValue <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
  <span class="k1">if</span> <span class="k2">(</span>org<span class="k2">)</span>
  <span class="k2">{</span>
    returnValue <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
  <span class="k2">}</span>
  <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>org<span class="k2">)</span>
  <span class="k2">{</span>
    returnValue <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
  <span class="k2">}</span>

  <span class="k1">return</span> returnValue<span class="k2">;</span>            
<span class="k2">}</span>
</pre></div></div><p>
</p></div></div><p>

Oh my. <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Tue, 17 Jan 2012 02:39:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That&#39;s obviously much clearer than<br /><span class="source-code"><span class="k1">return</span> <span class="k3">!</span>org<span class="k2">;</span></span><br /><img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 17 Jan 2012 02:45:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944323#target">Dario ff</a> said:</div><div class="quote"><p> Forgot about catching up with tdwtf for a while:
</p></div></div><p>Lots of programmers don&#39;t understand booleans, return values, function parameters, etc. I saw lots of things like this as a GA:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">bool</span> rv<span class="k2">;</span>
<span class="k1">int</span> i<span class="k2">;</span>
i <span class="k3">=</span> <span class="n">42</span><span class="k2">;</span>
rv <span class="k3">=</span> some_function<span class="k2">(</span>i<span class="k2">)</span><span class="k2">;</span>
<span class="k1">return</span> rv<span class="k2">;</span>
</pre></div></div><p>
The reason is they would always think that when you call a function that takes a parameter named <span class="source-code">i</span>, that you would also have to send it a parameter named <span class="source-code">i</span>. And directly returning the value of one function call just blew their minds.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Tue, 17 Jan 2012 02:49:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>However, one should also be aware that there are occasions where cleverly reducing an expression to its simplest form may <i>detract</i> from readability. This is particularly true when implementing pieces of business logic.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Tue, 17 Jan 2012 03:36:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944339#target">James Lohr</a> said:</div><div class="quote"><p>However, you should also be aware that there are occasions where cleverly reducing an expression to its simplest form may detract from readability</p></div></div><p>

I usually create my classes one function at a time.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (verthex)</author>
		<pubDate>Tue, 17 Jan 2012 03:44:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Really the code always looked like:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">bool</span> rv<span class="k2">;</span> <span class="c">// bool variable named rv</span>
<span class="k1">int</span> i<span class="k2">;</span> <span class="c">// int variable named i</span>
i <span class="k3">=</span> <span class="n">42</span><span class="k2">;</span> <span class="c">// set i to 42</span>
rv <span class="k3">=</span> some_function<span class="k2">(</span>i<span class="k2">)</span><span class="k2">;</span> <span class="c">// set rv to some_function(i) value</span>
<span class="k1">return</span> rv<span class="k2">;</span> <span class="c">// return rv</span>
</pre></div></div><p>
But yes, overly brief code can be hard to read as well.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Tue, 17 Jan 2012 03:47:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Seeing a <span class="source-code"><span class="k3">!</span></span> should be as natural as seeing <span class="source-code"><span class="k3">+</span></span> in code. It&#39;s not about overly brief, it&#39;s about NOT replacing an already implemented operator with no good reason. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> I understand ignorance on some functions of the standard(for example, I really didn&#39;t know there was sscanf for reading values from strings nearly a year ago), but the author of the snippet clearly knew the operator existed... he even used it in the definition. <img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dario ff)</author>
		<pubDate>Tue, 17 Jan 2012 03:55:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944344#target">verthex</a> said:</div><div class="quote"><p>I usually create my classes one function at a time.</p></div></div><p>
What has that got to do with anything? </p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944347#target">Dario ff</a> said:</div><div class="quote"><p>Seeing a ! should be as natural as seeing + in code.</p></div></div><p>
Of course.</p><p>Let me just be clear that I was most certainly not implying that Matthew&#39;s example is one where verbosity aids readability. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Tue, 17 Jan 2012 04:17:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944347#target">Dario ff</a> said:</div><div class="quote"><p> It&#39;s not about overly brief, it&#39;s about NOT replacing an already implemented operator with no good reason.
</p></div></div><p>James is probably referring more to things like:
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">return</span> <span class="k2">(</span>b <span class="k3">=</span> func1<span class="k2">(</span>a <span class="k3">+</span> func2<span class="k2">(</span>func3<span class="k2">(</span><span class="k2">)</span> <span class="k3">*</span> magic_number<span class="k2">)</span> <span class="k3">/</span> func4<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">)</span> ? b <span class="k2">:</span> func5<span class="k2">(</span>b<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
That ends up looking <a href="http://www.matthewleverton.com/misc/20lines.html">like this</a>.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Matthew Leverton)</author>
		<pubDate>Tue, 17 Jan 2012 04:36:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah.</p><p>However, there are less clear-cut cases.</p><p>For example, suppose the CEO comes along and says: &quot;Write me a little program which books me a taxi if it is not a Monday (because I cycle in on Mondays), and if the trains are not running.&quot;</p><div class="source-code snippet"><div class="inner"><pre>bookATaxi <span class="k3">=</span> <span class="k3">!</span>isMondayToday  <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span>trainsAreRunning<span class="k2">;</span>
</pre></div></div><p>

You could then simplify it to this:</p><div class="source-code snippet"><div class="inner"><pre>bookATaxi <span class="k3">=</span>  <span class="k3">!</span><span class="k2">(</span>isMonday <span class="k3">|</span><span class="k3">|</span> trainsAreRunning<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

..now suppose you come back to the code a month later, because you want to remember what it was exactly that the CEO asked you to implement. The second is decidedly more difficult to reason about (maybe not to you, but it certainly would be if you worded it back to the CEO).</p><p>This is not a particularly good example, but I&#39;m sure you can think of more extreme cases. In fact I&#39;m guilty of simplifying a few chunks of boolean logic to half their original size at the cost of making it nearly impossible to understand what it actually means afterwards. </p><p>Don&#39;t get me wrong: simplifying boolean logic can be extremely powerful and in most cases will actually give a better insight into what the original statement really means. I&#39;m just saying that there are some cases where a bit of verbosity is better.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Tue, 17 Jan 2012 05:01:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Being clever, in the real world, is only great when you want to flex your programming fu and don&#39;t have to worry about ever revisiting the code. </p><p>My boss runs in circles all day because be produces undocumented, intricately designed code that is never meant to be changed or looked at. I produce well-documented code that is designed with practicality in mind. When the inevitable change requests start rolling in, I finish my mods before anyone else.</p><p>Work smarter, not harder. Everything in moderation. Etc.</p><p>It&#39;s perfectly fine to make mistakes, as long as you learn from them. Doing the same retarded thing over and over is the mark of a PHB.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Sirocco)</author>
		<pubDate>Tue, 17 Jan 2012 05:15:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This is half the reason why functional languages don&#39;t really cut it in industry: elegance and cleverness for the sake of elegance and cleverness is all very well in academia, but in the real world all it really achieves is unnecessary bewilderment.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Tue, 17 Jan 2012 05:19:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944350#target">James Lohr</a> said:</div><div class="quote"><p>What has that got to do with anything? </p></div></div><p>

It makes things easier to read. I have one class for printing, one for calculating the same thing 50 million times, and one for stupid <span class="cuss"><span><span class="cuss"><span>shit</span></span></span></span> that gets repeated over and over again.</p><p>I guess you&#39;ve never broken down your code to make it easier to read.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (verthex)</author>
		<pubDate>Tue, 17 Jan 2012 06:09:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944357#target">verthex</a> said:</div><div class="quote"><p>It makes things easier to read.</p></div></div><p>

As does a pair of glasses. We were talking about statements and expressions. Classes have no bearing on the conversation, and we could quite feasibly be discussing a language that doesn&#39;t even support classes.</p><p>You do this <i>all</i> the time, and if you want me to stop picking you up on it, then start thinking before you post. If a random vaguely related thought flashes before your mind that you feel the need to blurt out it onto the forum, please qualify it as such.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (james_lohr)</author>
		<pubDate>Tue, 17 Jan 2012 15:37:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944317#target">Specter Phoenix</a> said:</div><div class="quote"><p>
Sad part is that when you see code from professionals you realize that a lot of pros use a lot of bad code.
</p></div></div><p>
Two reasons:
</p><ul><li><p>Just because you get paid to do something doesn&#39;t mean you&#39;re good at it; some shops hire based on actual skills, but there are plenty of places where you can get pretty far with a combination of a college degree, meaningless fact memorization, and personal marketing skills.
</p></li><li><p>As a professional, there are always real-world constraints on your programming: you are on a budget (which means you can&#39;t sink infinite amounts of time into a task), you are on a deadline, there&#39;s an existing codebase you have to work with, the specifications are unclear, contradictory, or outright impossible, there&#39;s other team members with incompatible ideas, etc. etc. Sometimes, the proper solution would require a month of feature-freeze, and the customer cannot afford that, so you start out with a hack and try to gradually phase toward the proper solution. Sometimes, you are looking at a ten-thousand-LOC file full of puss, and you have to implement a small change; you can&#39;t rewrite all the puss in the time you have, so you read enough of the mess to make sense of it, clean up what you reasonably can, and do what it takes. Since you have to at least partially go with what&#39;s there, the code you add isn&#39;t going to be pretty, but it will work, and it will be a bit better than what was there.</p></li></ul><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944356#target">James Lohr</a> said:</div><div class="quote"><p>
This is half the reason why functional languages don&#39;t really cut it in industry: elegance and cleverness for the sake of elegance and cleverness is all very well in academia, but in the real world all it really achieves is unnecessary bewilderment.
</p></div></div><p>
Functional Programming is more than cleverness and elegance for its own sake; there are actual practical benefits, such as simplified static analysis and formal proof-of-correctness, simplified unit testing, easier parallelization and distribution of execution, etc. etc; however, OOP and enterprise programming get along very well, and it&#39;s hard for any other paradigm to break into this marriage. The reasons are many, but I guess the most important ones would be
</p><ul><li><p>Similar structures. OOP with its class hierarchies and locally-imperative approach is very similar to how a typical business is structured, and the way functionality is encapsulated and bundled through several layers looks a lot like the way management layers distribute and delegate tasks. Because of these similarities, OOP programmers and designers have an easier time communicating with non-technical managers; given an intelligent non-technical management type, I could easily explain an OOP design in terms they can understand, but I&#39;d have a much harder time doing it with an FP design - simply because there isn&#39;t anything in the organisation of a business that resembles partial function application, closures, monads, or any other core FP concept.
</p></li><li><p>Tradition. The business world has used imperative and structured programming since the early days of COBOL, and OOP, which inherits most of this heritage, is a logical extension - after all, a class is just a subprogram with its own local state, and a method is just a procedure with a scope.
</p></li><li><p>Available programmer material. The way things are at the moment, OOP programmers are plenty, but FP programmers are scarce. Finding a few dozen code monkeys to hack on your Java codebase is easy (though you get what you pay for), doing the same for a Clojure application is much harder. Try outsourcing a PHP project, then try outsourcing a comparable project written in CL. Try C# vs. F#. Of course, if it&#39;s excellence you&#39;re looking for, then the paradigms are probably almost on par, and programmers in that category will be more likely to be comfortable with either, and most of them will have developed a hybrid style that takes advantage of many different paradigms.
</p></li><li><p>Tools. Let&#39;s face it: OOP has the better tools. When I do OOP, say, in C++ or PHP, I miss an interactive environment like Common Lisp&#39;s REPL, Haskell&#39;s ghci, or Python&#39;s interactive interpreter, but other than that, there are more and better tools to choose from, and almost any tool you could use for a functional language is also available for OOP, either because it&#39;s language-agnostic, or because someone has written an equivalent. Of course, the fact that functional languages tend to come with less boilerplate and better language features to reduce cruft somewhat alleviates this (a lot if you ask me), but it remains that the comfort of a modern IDE is at least significantly reduces for FP languages.
</p></li><li><p>Trust. The above points combined also lead to a higher level of trust among business users for OOP. Given the choice, they rather trust a programming paradigm that has shiny tools, is used throughout the industry, and can be explained in layman&#39;s terms without leading to utter confusion, than one that seems to require a PhD to fully understand, has only text-based tools that look like random gibberish, is used mainly in academia (thus, by PhD&#39;s), and even confuses experienced programmers. And I can&#39;t really blame anyone, even though FP may actually often be the better solution, bottom line.
</p></li></ul></div>]]>
		</description>
		<author>no-reply@allegro.cc (Tobias Dammers)</author>
		<pubDate>Tue, 17 Jan 2012 15:39:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944376#target">James Lohr</a> said:</div><div class="quote"><p>As does a pair of glasses. We were talking about statements and expressions. Classes have no bearing on the conversation, and we could quite feasibly be discussing a language that doesn&#39;t even support classes.You do this all the time, and if you want me to stop picking you up on it, then start thinking before you post. If a random vaguely related thought flashes before your mind that you feel the need to blurt out it onto the forum, please qualify it as such.
</p></div></div><p>

James you trolled my thread the last time. Remember your question, <a href="http://www.allegro.cc/forums/thread/609250/1">re-read the thread!</a></p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>What specifically are you trying to hash that you have having trouble with?
</p></div></div><p>

I mentioned it in the first post!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (verthex)</author>
		<pubDate>Tue, 17 Jan 2012 15:39:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Currently working on a pure terminal address book app. Right now I have a few things missing that I hadn&#39;t figured into the original paper design (yes I actually set down and laid it out on paper to an extent, which I never do). I normally just tell myself, &quot;I want to make &lt;app/game&gt;.&quot;, open IDE and terminal and start writing code without thinking it out. This time that isn&#39;t the case. It&#39;s an abandon project I decided to pick up from scratch and try actually thinking it out before I started coding.</p><p>Parts of the code is test code til I get everything addressed (no pun intended). Been bouncing back and forth between the book files, menu files, and main file.</p><p><b>Do to size I put the code in a spoiler to not fill so much of the screen.</b>
</p><div class="spoiler"><p>
<b>addrBook.h</b>
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#ifndef ADDRBOOK_H</span>
<span class="number">  2</span><span class="p">#define ADDRBOOK_H</span>
<span class="number">  3</span><span class="p">#include &lt;string&gt;</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="k1">class</span> addrPage
<span class="number">  6</span><span class="k2">{</span>
<span class="number">  7</span>  public:
<span class="number">  8</span>    <span class="k1">void</span> setName<span class="k2">(</span>std::string first, std::string last<span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>    <span class="k1">void</span> setAddr<span class="k2">(</span>std::string addy<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 10</span>    <span class="k1">void</span> setPhone<span class="k2">(</span>std::string phone<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 11</span>    <span class="k1">void</span> printAddress<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span><span class="k2">;</span>
<span class="number"> 12</span>  private:
<span class="number"> 13</span>    std::string firstName<span class="k2">;</span>
<span class="number"> 14</span>    std::string lastName<span class="k2">;</span>
<span class="number"> 15</span>    std::string homeAddr<span class="k2">;</span>
<span class="number"> 16</span>    std::string personPhone<span class="k2">;</span>
<span class="number"> 17</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 18</span>
<span class="number"> 19</span><span class="k1">class</span> addrBook
<span class="number"> 20</span><span class="k2">{</span>
<span class="number"> 21</span>  public:
<span class="number"> 22</span>    <span class="k1">void</span> setInfo<span class="k2">(</span><span class="k1">int</span> page, std::string first, std::string last, std::string addr, std::string phone<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 23</span>    <span class="k1">void</span> printData<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span><span class="k2">;</span>
<span class="number"> 24</span>    <span class="k1">void</span> turnPageForward<span class="k2">(</span><span class="k1">int</span><span class="k3">&amp;</span> pgNum<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 25</span>    <span class="k1">void</span> turnPageBackward<span class="k2">(</span><span class="k1">int</span><span class="k3">&amp;</span> pgNum<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 26</span>  private:
<span class="number"> 27</span>    addrPage addressPage<span class="k2">[</span><span class="n">20</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 28</span><span class="k2">}</span><span class="k2">;</span>
<span class="number"> 29</span>
<span class="number"> 30</span><span class="p">#endif</span>
</div></div><p>
<b>addrBook.cpp</b>
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include "addrBook.h"</span>
<span class="number">  2</span><span class="p">#include &lt;string&gt;</span>
<span class="number">  3</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="k1">void</span> addrPage::setName<span class="k2">(</span>std::string first, std::string last<span class="k2">)</span>
<span class="number">  6</span><span class="k2">{</span>
<span class="number">  7</span>  firstName <span class="k3">=</span> first<span class="k2">;</span>
<span class="number">  8</span>  lastName <span class="k3">=</span> last<span class="k2">;</span>
<span class="number">  9</span><span class="k2">}</span>
<span class="number"> 10</span>
<span class="number"> 11</span><span class="k1">void</span> addrPage::setAddr<span class="k2">(</span>std::string addy<span class="k2">)</span>
<span class="number"> 12</span><span class="k2">{</span>
<span class="number"> 13</span>  homeAddr <span class="k3">=</span> addy<span class="k2">;</span>
<span class="number"> 14</span><span class="k2">}</span>
<span class="number"> 15</span>
<span class="number"> 16</span><span class="k1">void</span> addrPage::setPhone<span class="k2">(</span>std::string phone<span class="k2">)</span>
<span class="number"> 17</span><span class="k2">{</span>
<span class="number"> 18</span>  personPhone <span class="k3">=</span> phone<span class="k2">;</span>
<span class="number"> 19</span><span class="k2">}</span>
<span class="number"> 20</span>
<span class="number"> 21</span><span class="k1">void</span> addrPage::printAddress<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 22</span><span class="k2">{</span>
<span class="number"> 23</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> firstName <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">" "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> lastName <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"\n"</span>
<span class="number"> 24</span>    <span class="k3">&lt;</span><span class="k3">&lt;</span> homeAddr <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"\n"</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> personPhone <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"\n\n"</span><span class="k2">;</span>  
<span class="number"> 25</span><span class="k2">}</span>
<span class="number"> 26</span>
<span class="number"> 27</span><span class="k1">void</span> addrBook::setInfo<span class="k2">(</span><span class="k1">int</span> page, std::string first, std::string last, std::string addr, std::string phone<span class="k2">)</span>
<span class="number"> 28</span><span class="k2">{</span>
<span class="number"> 29</span>  addressPage<span class="k2">[</span>page <span class="k3">-</span> <span class="n">1</span><span class="k2">]</span>.setName<span class="k2">(</span>first, last<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 30</span>  addressPage<span class="k2">[</span>page <span class="k3">-</span> <span class="n">1</span><span class="k2">]</span>.setAddr<span class="k2">(</span>addr<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 31</span>  addressPage<span class="k2">[</span>page <span class="k3">-</span> <span class="n">1</span><span class="k2">]</span>.setPhone<span class="k2">(</span>phone<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 32</span><span class="k2">}</span>
<span class="number"> 33</span>
<span class="number"> 34</span><span class="k1">void</span> addrBook::printData<span class="k2">(</span><span class="k2">)</span> <span class="k1">const</span>
<span class="number"> 35</span><span class="k2">{</span>
<span class="number"> 36</span>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">4</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 37</span>  <span class="k2">{</span>
<span class="number"> 38</span>    addressPage<span class="k2">[</span>i<span class="k2">]</span>.printAddress<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 39</span>  <span class="k2">}</span>
<span class="number"> 40</span><span class="k2">}</span>
<span class="number"> 41</span>
<span class="number"> 42</span><span class="k1">void</span> addrBook::turnPageForward<span class="k2">(</span><span class="k1">int</span><span class="k3">&amp;</span> pgNum<span class="k2">)</span>
<span class="number"> 43</span><span class="k2">{</span>
<span class="number"> 44</span>  addressPage<span class="k2">[</span>pgNum<span class="k3">+</span><span class="k3">+</span><span class="k2">]</span><span class="k2">;</span>
<span class="number"> 45</span><span class="k2">}</span>
<span class="number"> 46</span>
<span class="number"> 47</span><span class="k1">void</span> addrBook::turnPageBackward<span class="k2">(</span><span class="k1">int</span><span class="k3">&amp;</span> pgNum<span class="k2">)</span>
<span class="number"> 48</span><span class="k2">{</span>
<span class="number"> 49</span>  addressPage<span class="k2">[</span>pgNum--<span class="k2">]</span><span class="k2">;</span>
<span class="number"> 50</span><span class="k2">}</span>
</div></div><p>
<b>addrMenus.h</b>
</p><div class="source-code snippet"><div class="inner"><pre><span class="p">#ifndef ADDRMENUS_H</span>
<span class="p">#define ADDRMENUS_H</span>

<span class="p">#include "addrBook.h"</span>

<span class="k1">void</span> menuSystem<span class="k2">(</span>addrBook<span class="k3">&amp;</span> Book<span class="k2">)</span><span class="k2">;</span>
<span class="k1">void</span> addMenu<span class="k2">(</span>addrBook<span class="k3">&amp;</span> Book<span class="k2">)</span><span class="k2">;</span>
<span class="k1">void</span> editMenu<span class="k2">(</span>addrBook<span class="k3">&amp;</span> Book<span class="k2">)</span><span class="k2">;</span>
<span class="k1">void</span> deleteMenu<span class="k2">(</span>addrBook<span class="k3">&amp;</span> Book<span class="k2">)</span><span class="k2">;</span>
<span class="k1">void</span> viewMenu<span class="k2">(</span><span class="k1">const</span> addrBook<span class="k3">&amp;</span> Book<span class="k2">)</span><span class="k2">;</span>

<span class="p">#endif</span>
</pre></div></div><p>
<b>addrMenus.cpp</b>
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include "addrMenus.h"</span>
<span class="number">  2</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="k1">void</span> menuSystem<span class="k2">(</span>addrBook<span class="k3">&amp;</span> Book<span class="k2">)</span>
<span class="number">  5</span><span class="k2">{</span>
<span class="number">  6</span>  <span class="k1">int</span> choice<span class="k2">;</span>
<span class="number">  7</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"addrbook banner\n"</span><span class="k2">;</span>
<span class="number">  8</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"enter a number to do:\n"</span><span class="k2">;</span>
<span class="number">  9</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"1) Add \n"</span><span class="k2">;</span>
<span class="number"> 10</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"2) Edit\n"</span><span class="k2">;</span>
<span class="number"> 11</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"3) Delete\n"</span><span class="k2">;</span>
<span class="number"> 12</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"4) View\n"</span><span class="k2">;</span>
<span class="number"> 13</span>  std::cin <span class="k3">&gt;</span><span class="k3">&gt;</span> choice<span class="k2">;</span>
<span class="number"> 14</span>  <span class="k1">switch</span><span class="k2">(</span>choice<span class="k2">)</span>
<span class="number"> 15</span>  <span class="k2">{</span>
<span class="number"> 16</span>    <span class="k1">case</span> <span class="n">1</span><span class="k2">:</span>
<span class="number"> 17</span>      addMenu<span class="k2">(</span>Book<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 18</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 19</span>    <span class="k1">case</span> <span class="n">2</span><span class="k2">:</span>
<span class="number"> 20</span>      editMenu<span class="k2">(</span>Book<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 21</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 22</span>    <span class="k1">case</span> <span class="n">3</span><span class="k2">:</span>
<span class="number"> 23</span>      deleteMenu<span class="k2">(</span>Book<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 24</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 25</span>    <span class="k1">case</span> <span class="n">4</span><span class="k2">:</span> 
<span class="number"> 26</span>      viewMenu<span class="k2">(</span>Book<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 27</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 28</span>    default:
<span class="number"> 29</span>      std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Not a valid choice."</span><span class="k2">;</span>
<span class="number"> 30</span>      <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 31</span>  <span class="k2">}</span>
<span class="number"> 32</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"\n"</span><span class="k2">;</span>
<span class="number"> 33</span><span class="k2">}</span>
<span class="number"> 34</span>
<span class="number"> 35</span><span class="k1">void</span> addMenu<span class="k2">(</span>addrBook<span class="k3">&amp;</span> Book<span class="k2">)</span>
<span class="number"> 36</span><span class="k2">{</span>
<span class="number"> 37</span>  std::cin.ignore<span class="k2">(</span><span class="n">100</span>, <span class="s">'\n'</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 38</span>  std::string fName, lName, address, phone<span class="k2">;</span>
<span class="number"> 39</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Enter First name: "</span><span class="k2">;</span>
<span class="number"> 40</span>  getline<span class="k2">(</span>std::cin, fName<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 41</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Enter last name: "</span><span class="k2">;</span>
<span class="number"> 42</span>  getline<span class="k2">(</span>std::cin, lName<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 43</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Enter address: "</span><span class="k2">;</span>
<span class="number"> 44</span>  getline<span class="k2">(</span>std::cin, address<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 45</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Enter phone: "</span><span class="k2">;</span>
<span class="number"> 46</span>  getline<span class="k2">(</span>std::cin, phone<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 47</span>  Book.setInfo<span class="k2">(</span><span class="n">1</span>, fName, lName, address, phone<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 48</span><span class="k2">}</span>
<span class="number"> 49</span>
<span class="number"> 50</span><span class="k1">void</span> editMenu<span class="k2">(</span>addrBook<span class="k3">&amp;</span> Book<span class="k2">)</span>
<span class="number"> 51</span><span class="k2">{</span>
<span class="number"> 52</span>  <span class="k1">int</span> page<span class="k2">;</span>
<span class="number"> 53</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Edit which page?\n"</span><span class="k2">;</span>
<span class="number"> 54</span>  std::cin <span class="k3">&gt;</span><span class="k3">&gt;</span> page<span class="k2">;</span>
<span class="number"> 55</span>  
<span class="number"> 56</span>  
<span class="number"> 57</span><span class="k2">}</span>
<span class="number"> 58</span>
<span class="number"> 59</span><span class="k1">void</span> deleteMenu<span class="k2">(</span>addrBook<span class="k3">&amp;</span> Book<span class="k2">)</span>
<span class="number"> 60</span><span class="k2">{</span>
<span class="number"> 61</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Delete which page?\n"</span><span class="k2">;</span>
<span class="number"> 62</span><span class="k2">}</span>
<span class="number"> 63</span>
<span class="number"> 64</span><span class="k1">void</span> viewMenu<span class="k2">(</span><span class="k1">const</span> addrBook<span class="k3">&amp;</span> Book<span class="k2">)</span>
<span class="number"> 65</span><span class="k2">{</span>
<span class="number"> 66</span>  std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Printing book to screen and file...\n"</span><span class="k2">;</span>
<span class="number"> 67</span>  <span class="k1">for</span> <span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">5</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
<span class="number"> 68</span>  <span class="k2">{</span>
<span class="number"> 69</span>    Book.printData<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 70</span>    std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"\n\n"</span><span class="k2">;</span>
<span class="number"> 71</span>  <span class="k2">}</span>
<span class="number"> 72</span><span class="k2">}</span>
</div></div><p>
<b>addrMain.cpp</b>
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="p">#include "addrBook.h"</span>
<span class="number">  2</span><span class="p">#include "addrMenus.h"</span>
<span class="number">  3</span><span class="p">#include &lt;iostream&gt;</span>
<span class="number">  4</span>
<span class="number">  5</span><span class="k1">bool</span> PISS_OF_BAMCCAIG <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span> <span class="c">// got to have my running gag in my code</span>
<span class="number">  6</span>
<span class="number">  7</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number">  8</span><span class="k2">{</span>
<span class="number">  9</span>  <span class="k1">int</span> pick<span class="k2">;</span>
<span class="number"> 10</span>  <span class="k1">char</span> answer<span class="k2">;</span>
<span class="number"> 11</span>  <span class="k1">bool</span> done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 12</span>  addrBook myAddrBook<span class="k2">;</span>
<span class="number"> 13</span>  
<span class="number"> 14</span>  menuSystem<span class="k2">(</span>myAddrBook<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 15</span>  
<span class="number"> 16</span>  <span class="k1">while</span> <span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number"> 17</span>  <span class="k2">{</span>
<span class="number"> 18</span>    std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Are you done? (y/n): \n"</span><span class="k2">;</span>
<span class="number"> 19</span>    std::cin <span class="k3">&gt;</span><span class="k3">&gt;</span> answer<span class="k2">;</span>
<span class="number"> 20</span>    <span class="k1">switch</span><span class="k2">(</span>answer<span class="k2">)</span>
<span class="number"> 21</span>    <span class="k2">{</span>
<span class="number"> 22</span>      <span class="k1">case</span> <span class="s">'y'</span><span class="k2">:</span>
<span class="number"> 23</span>        done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 24</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 25</span>      <span class="k1">case</span> <span class="s">'Y'</span><span class="k2">:</span>
<span class="number"> 26</span>        done <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span>
<span class="number"> 27</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 28</span>      <span class="k1">case</span> <span class="s">'n'</span><span class="k2">:</span>
<span class="number"> 29</span>        done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 30</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 31</span>      <span class="k1">case</span> <span class="s">'N'</span><span class="k2">:</span>
<span class="number"> 32</span>        done <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span>
<span class="number"> 33</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 34</span>      default:
<span class="number"> 35</span>        std::cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"Enter 'Y' or 'N'!\n"</span><span class="k2">;</span>
<span class="number"> 36</span>        <span class="k1">break</span><span class="k2">;</span>
<span class="number"> 37</span>    <span class="k2">}</span>
<span class="number"> 38</span>    
<span class="number"> 39</span>    <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span>done<span class="k2">)</span>
<span class="number"> 40</span>    <span class="k2">{</span>
<span class="number"> 41</span>      menuSystem<span class="k2">(</span>myAddrBook<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 42</span>    <span class="k2">}</span>
<span class="number"> 43</span>  <span class="k2">}</span>
<span class="number"> 44</span>    
<span class="number"> 45</span>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 46</span><span class="k2">}</span>
</div></div><p>
</p></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Thu, 19 Jan 2012 03:00:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Just a tip:</p><p>Setters in general should take a const reference:<br />ex:
</p><div class="source-code snippet"><div class="inner"><pre>    <span class="k1">void</span> setName<span class="k2">(</span><span class="k1">const</span> std::string<span class="k3">&amp;</span> first,<span class="k1">const</span> std::string<span class="k3">&amp;</span> last<span class="k2">)</span><span class="k2">;</span>
    <span class="k1">void</span> setAddr<span class="k2">(</span><span class="k1">const</span> std::string<span class="k3">&amp;</span> addy<span class="k2">)</span><span class="k2">;</span>
    <span class="k1">void</span> setPhone<span class="k2">(</span><span class="k1">const</span> std::string<span class="k3">&amp;</span> phone<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

This is because you do not want to allocate a new string on the heap and you wont modify the data being passed (const).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (jmasterx)</author>
		<pubDate>Thu, 19 Jan 2012 03:17:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, thanks for that. My CS book I&#39;m using as reference doesn&#39;t say anything about that, just to use reference on get functions with multiple parameters or return values needed.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Specter Phoenix)</author>
		<pubDate>Thu, 19 Jan 2012 03:53:02 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944224#target">Matthew Leverton</a> said:</div><div class="quote"><p>It&#39;s not like we are discussing somebody who is giving up after a few weeks or after the first hurdle. He&#39;s been at it for over ten years with almost no results. You are wasting your time if you think your encouragement will help him succeed. His lack of belief in himself comes from the reality that he doesn&#39;t have what it takes to be a competent programmer.That doesn&#39;t mean he&#39;s stupid or that he isn&#39;t trying hard enough. It means his brain isn&#39;t &quot;wired correctly&quot; for programming, and he ought to pursue other tasks. If he wants to make games, then perhaps he should just focus on modding games via level editors. It&#39;s much more kind to give him realistic advice than to pat him on the back or kick him in the butt. And when he starts doing things he&#39;s good at, his self confidence and attitude will improve.Telling somebody that they ought to be able to do something that they cannot do despite trying very hard is only going to make his or her depression and lack of confidence worse. When you come to the understanding that you have limitations (like everybody else), it&#39;s much easier to handle defeat.And even if he could eventually do it, it&#39;s dumb to spend a thousand times more effort than a &quot;regular person&quot; does to accomplish the same task. e.g., If it took me two hours every morning to put on my own socks, then I would get somebody else to do it for me. That doesn&#39;t mean I&#39;m a quitter or have no faith in my abilities, but that I&#39;m realistic about how I should spend my time.</p></div></div><p>
Like I said earlier, I don&#39;t really know him, (or anyone here on Allegro.cc for that matter), all that well.  I don&#39;t know how long he&#39;s been working on anything at all.  Since it&#39;s taken him 10 years to do nothing, perhaps it is time for him to try another approach.  Kinder to give him realistic advice?  Shall we call <a href="http://en.wikipedia.org/wiki/Jack_Kevorkian">Dr. Kevorkian</a> then?  </p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944225#target">James Lohr</a> said:</div><div class="quote"><p>...also, if we&#39;re all patronising enough he might get is arse into gear and write a game out of pure embarrassment. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p></div></div><p>
<a href="http://www.halolz.com/wp-content/uploads/2007/10/dropsoap.jpg">Agreed.</a></p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944226#target">Sirocco</a> said:</div><div class="quote"><p>I always laugh a little when I come across that word (placebo). It sounds like some sort of Japanese demon; perhaps the small, <u>perverted sort that flies around sneaking peeks up girls&#39; skirts.</u><img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /><br />--&gt;<br /><u>Red hot tentacle love.</u></p></div></div><p>
Need I say more? <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /></p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944274#target">weapon_S</a> said:</div><div class="quote"><p>As someone who is struggling himself with getting a decent game done, I can say: it&#39;s better to have  that works, than to have perfection that doesn&#39;t exist.</p></div></div><p>
Agreed.</p><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/609167/944570#target">Specter Phoenix</a> said:</div><div class="quote"><p>Currently working on a pure terminal address book app. Right now I have a few things missing that I hadn&#39;t figured into the original paper design (yes I actually set down and laid it out on paper to an extent, which I never do). I normally just tell myself, <u>&quot;I want to make &lt;app/game&gt;.&quot;, open IDE and terminal and start writing code without thinking it out.</u> This time that isn&#39;t the case. It&#39;s an abandon project I decided to pick up from scratch and try actually thinking it out before I started coding.</p></div></div><p>
That&#39;s how I am.  I can&#39;t stand pseudo coding or flow charting.  I&#39;m glad you&#39;re going for a console only application right now.  I was thinking about what you&#39;ve been saying and I feel that you were trying to eat some beef one cow at a time.  Have a few steaks or burgers at first, then work your way up.</p><p>What I was going to recommend to you was that you avoid physics all together and use logic to move the ball around.  And also avoid using sound, mouse input, graphics and keyboard input all together at first.  Make a console pong clone to get your logic working properly.  Fact is, don&#39;t even make it 2d at first, make the ball stay all on one line.  Get that working well before you take on larger tasks.  You said logic was one of your biggest problems after all.</p><p>I also recommend that you don&#39;t post your code that has your logic in it if you can avoid it.  Sure, post it when you can&#39;t find out why it won&#39;t compile or you get massive errors that shouldn&#39;t occur, but try to avoid posting your logic.  Why do I say that?  Because people may just give you the answer to your problem instead of helping you learn what you&#39;re doing wrong.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Emanresu)</author>
		<pubDate>Fri, 20 Jan 2012 09:31:42 +0000</pubDate>
	</item>
</rss>
