<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4918357436172666249</id><updated>2012-01-25T22:20:01.171-07:00</updated><category term='toadman'/><category term='deltacode'/><category term='no one cares'/><category term='news'/><category term='raycasting'/><category term='programming'/><category term='tutorial'/><category term='freebasic'/><category term='graphics'/><category term='catloaf'/><category term='goals'/><category term='website'/><category term='life'/><category term='game design'/><category term='game development'/><category term='action'/><category term='clean code'/><category term='filler'/><category term='article'/><category term='ORE'/><category term='project'/><category term='fluff'/><category term='larry the dinosaur'/><category term='firebox'/><category term='update'/><category term='development strategies'/><title type='text'>Delta Code</title><subtitle type='html'>Game design, projects, and stuff.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-7922895057391822067</id><published>2011-12-30T20:00:00.001-07:00</published><updated>2011-12-30T20:00:02.840-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><category scheme='http://www.blogger.com/atom/ns#' term='development strategies'/><title type='text'>Finish what you start</title><content type='html'>Finish what you start! And I know what you are thinking: easier said than done. Right?&lt;br /&gt;&lt;br /&gt;Let me elaborate.&lt;br /&gt;&lt;br /&gt;I don't mean to throw away hours of your life on something you've grown to hate. That's for EA employees. At least they get paid. You, on the other hand, your time is precious, even more so if you have a full-time job, school, a family to support, or any combination of these. You could die tomorrow! So it's in your best interest to put your free time towards something you love.&lt;br /&gt;&lt;br /&gt;This is why it's very important to finish what you start. Because, in the end, it matters whether your time went towards a proud achievement or a half-baked idea, a cool game that is enjoyed by millions over the internet or another project put on hold indefinitely.&lt;br /&gt;&lt;br /&gt;But is it really that simple, to finish what you start? Is it simply a matter of dedicating more time and willpower to a project? I don't think so. Believe me. I've tried. Simply "trying harder" doesn't work.&lt;br /&gt;&lt;br /&gt;So what does?&lt;br /&gt;&lt;br /&gt;&lt;b&gt;You need to guarantee that you will finish your project before you start.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Is this possible? Theoretically speaking, no. But it should be a goal, even if it's an impossible one.&lt;br /&gt;&lt;br /&gt;You must assess how much time you can dedicate to your project every week. You must have a clear vision of your project, from start to finish, the more detailed the better. And you must estimate how many hours you project will take.&lt;br /&gt;&lt;br /&gt;Will it take six months, a year, maybe more? Are you disciplined enough to work on this project consistently for an entire year, or will you lose interest after a couple months? Knowing yourself is essential.&lt;br /&gt;&lt;br /&gt;I will lose interest after three months. That's my limit. So if I estimate that my video game will take six months to finish, then I have a problem. But I don't have to drop the project. I just need to alter my plan and re-evaluate my time. And there are some options for this.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;If you don't have the time then don't do it.&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;The simplest is to cut back: drop unessential levels and features, forget multi-player, or reduce the complexity of some game feature like artificial intelligence. These are nice features, but your game can do without them. Simply put: if you don't have the time then don't do it. Stop! I know you may not like that statement, but don't send me hate mail just yet; there is a silver lining to this method which I will explain.&lt;br /&gt;&lt;br /&gt;This doesn't mean that your game has to suffer so much that it becomes a minimalist piece of junk. Often you'll be cutting out features that don't affect the core theme or tone of your game. You can still have awesome gameplay, story, or graphics; but decide which is most important, figure out what you can do with the time you have, and then do it.&lt;br /&gt;&lt;br /&gt;The good news is that, if on a later date you want to expand upon your game and include that awesome feature, there's nothing stopping you! In fact, you have a complete game to expand upon. So if that feature is too hard or just doesn't work out, then no problem! Your game is still good to go. Not to mention it is also much more fun to tweak a fully functioning game -- an additional motivational factor to help you add that extra zap and polish wherever your game needs it.&lt;br /&gt;&lt;br /&gt;The major benefit to planning this way is that it forces you to develop what you need first, then what you want. And what you need first and foremost is a fully-functioning game. No one cares about your award-winning pizza-delivery AI system if they can't play your finished game to see it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dream big! But live in reality.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;It's all too easy to dream big, way big! This is good. It fuels creativity and gives you tons of ideas to play with. But you need to understand just how many man-hours are required for your "big dream." Usually the games I want to make would, in reality, take a good couple of years with a team of 50. So unless I dedicate the rest of my life to making that one game, it just won't come to fruition. This is why so many newcomers to programming, fuelled by the dream to make the next Quake or Half-Life, never get off the ground. The amount of time and dedication to complete something like that is staggering. It took thousands of man-hours with large teams of very smart people to make those games; so why would you -- one very smart person indeed -- be able to do the same in roughly the same amount of time?&lt;br /&gt;&lt;br /&gt;I'm not saying you can't have that "big dream" of that awesome game of yours. Just be realistic about it. Valve, after all, shipped Half-Life within a couple years; but they were smart about it and put together a team of very smart programmers, artists, level-designers, you-name-it! It wasn't a one-person job.&lt;br /&gt;&lt;br /&gt;So I guess what I am saying is don't plan a project that'll take a large group of people working full-time to accomplish. You are, after all, only one person. Unless you plan to take a path similar to Valve, keep it simple.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The most bang for your buck.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Starting a project without a plan is tempting, but in the end, even if you do finish it, many hours are lost from feature creep, changes in design, changes in code, and who knows what else. Time is too precious. Each of the above points are tools to help you make a plan to guarantee  that you'll finish your project with what little time you have. They're designed to give you the most  out of your hours -- the most bang for you buck.&lt;br /&gt;&lt;br /&gt;Be realistic and honest with yourself, your time, and your expectations. This is one reason why designing and planning your game beforehand, in as much detail as possible, allows for a smoother development process: you better understand what to expect, how much time it'll take, and which features to prioritize.&lt;br /&gt;&lt;br /&gt;Likewise, when you make a plan for your game, you may find that you're just not interested enough to spend three or more months on it. That's ok! Better to find out then rather than three months later. Keep working on other ideas until you find something your happy with that you know will be worth you time.&lt;br /&gt;&lt;br /&gt;Again, there are no guarantees. It's difficult to accurately estimate how much time a project like a video game will take. And unexpected issues are always a possibility. Many people underestimate simply because there are so many details to account for, and accounting for all of them can be challenging. It's a skill that takes practice. And it is much, much better to have a plan than to shoot from the hip. Trust me. You'll find out sooner or later.&lt;br /&gt;&lt;br /&gt;So plan accordingly, and spend the time saved on other wholesome activities like spending time with friends and family, going to the movies, or even exercise (you know that thing where you move parts of your body and it  supposedly makes you look and feel better).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-7922895057391822067?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/7922895057391822067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2011/12/finish-what-you-start.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/7922895057391822067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/7922895057391822067'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2011/12/finish-what-you-start.html' title='Finish what you start'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-7534693273962464903</id><published>2011-12-25T12:00:00.000-07:00</published><updated>2011-12-25T12:00:04.283-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><category scheme='http://www.blogger.com/atom/ns#' term='larry the dinosaur'/><title type='text'>Larry the Dinosaur 2: Behind the Scenes</title><content type='html'>After my last post about the happenings after Larry the Dinosaur 2 was released, I realized that I didn't say much about the development of the game. I will now.&lt;br /&gt;&lt;br /&gt;The first attempt at Larry the Dinosaur 2 never made it past a playable demo. But it was distributed online. It was awesome.&lt;br /&gt;&lt;br /&gt;Everyone liked it, so what happened? I don't remember. I can only guess that it suffered the fate of many playable demos that were never completed as full games, that fate being this: the demo is only the beginning, to complete it is a full-time job. It's easy to slap together a rather-promising playable demo over a night or two. And it's easy to fool yourself into believing that you can expand upon it just as easily and, with a just little more effort, finish a work of pure awesomeness.&lt;br /&gt;&lt;br /&gt;But the truth is--if it only took you a day to make a playable demo--it's probably running on top of some code you ordered through the drive-thru. This is not always the case, but it was for me.&lt;br /&gt;&lt;br /&gt;Maybe it seemed like to much work to complete it. Maybe the code was such a mess that I couldn't expand upon it without a zillion bugs coming out of the woodwork. But somehow, the game vanished, people were let down, and so was I.&lt;br /&gt;&lt;br /&gt;Then the summer came. Sunny skies and warm weather. Maybe it was too warm and it cooked my brain, but I thought that making a prequel to Larry the Dinosaur would be awesome! I'd call it, Larry the Dinosaur: Zero (original, right?). This would have pixel-by-pixel scrolling whereas the last attempt had only static screen-by-screen progression like Larry the Dinosaur 1.&lt;br /&gt;&lt;br /&gt;I charged at it as furiously as I had the last. And it was awesome. I had a playable first level. It was plush and green. It had animating waterfalls and pixel-by-pixel scrolling. It even had a boss at the end of the level you had to defeat; it looked like a giant mutated mosquito and it flew across the screen as it dropped slimy spit balls that Larry had to dodge.&lt;br /&gt;&lt;br /&gt;Well, you might ask, what happened to that one. It got erased!!! Yes. I didn't back it up regularly. I was heart-broken...and also pissed at Linux for erasing my hard drive when I just meant to install it on another partition.&lt;br /&gt;&lt;br /&gt;Whatever. It was my fault; it's never a wise idea to keep only one copy of your code. I did think about backing it up, just in case, but I ignored my brain and let stupid take over.&lt;br /&gt;&lt;br /&gt;So that brought me to my third attempt at another follow-up to Larry the Dinosaur 1. I had an idea and spent all night developing a...wait for it...playable demo; didn't I mention something about those earlier? Anyway, it had pixel-by-pixel scrolling and I think you could run around and shoot at things.&lt;br /&gt;&lt;br /&gt;So how did this one make it to the finish? It didn't. At the time, "complete" meant to me a game that takes hours for the player to complete, not just 15 minutes, and the game seemed stretched thin even at that length. So I bought some wrapping paper and a bow and released it online under the guise that it was "complete." Though, there was no "real" plan, so technically it was complete at any time I wanted it to be.&lt;br /&gt;&lt;br /&gt;Ok, so if I didn't finish it, how did I make it past a playable demo? Well, for starters, I had some practice: it's much easier to do something over once you've done it before. I already made some programs that had playable characters running around shooting at things, those were known as the last two attempts, so getting up to speed was easy. And I also wrote better code. The code was still bad, but a bit better than what I had done before.&lt;br /&gt;&lt;br /&gt;I didn't know what I was doing (not that I ever do). The game could have failed just as easily as the other two. I just started coding-a-blazing.&lt;br /&gt;&lt;br /&gt;It started the same as the other too. So why did I this one make it to the finish line? Did I just get lucky? Maybe. Or maybe I was just smart enough this time to not start over and to backup the game.&lt;br /&gt;&lt;br /&gt;Actually, now that I think about it, those are the two major mistakes I made that contributed to the games not being completed.&lt;br /&gt;&lt;br /&gt;It makes sense, doesn't it? I assume I cancelled the first demo because I lost interest or because I was tempted to start over and "make something better." I put that in quotes because I think, if I finished the first demo, it would have been just as good in its own way. It's all to easy to fool yourself into thinking that you should just scrap everything and start over because you dream bigger, or possibly because you received some negative feedback from someone. Don't do it! Finish it, even if you cut corners, and you'll be happy that you did.&lt;br /&gt;&lt;br /&gt;The second time I failed to properly backup my code. I'm sure I had some copies on my computer. But I lost everything on my computer! So always backup your code to removable storage or to the internet. Better yet, &lt;a href="http://en.wikipedia.org/wiki/Revision_control"&gt;learn source control&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;So I take that back. I don't think it's a bad thing to start from a playable demo. After all, that could be the spark that ignites your drive to finish the game. Don't worry too much if your code is messy, you can always &lt;a href="http://deltacode.blogspot.com/2009/01/project-upkeep.html"&gt;clean up afterwards&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-7534693273962464903?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/7534693273962464903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2011/12/larry-dinosaur-2-behind-scenes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/7534693273962464903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/7534693273962464903'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2011/12/larry-dinosaur-2-behind-scenes.html' title='Larry the Dinosaur 2: Behind the Scenes'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-7923769349030097525</id><published>2011-10-31T16:00:00.008-06:00</published><updated>2011-10-31T19:33:18.482-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='deltacode'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><category scheme='http://www.blogger.com/atom/ns#' term='larry the dinosaur'/><title type='text'>Larry the Dinosaur 2: Nine Years Later</title><content type='html'>It was Halloween evening, October 31st, 2002. A game I had been working on since the summer was almost finished. I wanted to released on this day, for some odd reason. Honestly, it still needed a ton of work; it had many bugs, and it had some poor design issues that needed to be addressed. But at the time, my programming skills weren't too great and I had enough of the project. I played through the game several times that night, fixing up what I could, and then I submitted it to various sites. The game was Larry the Dinosaur 2.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-FZM_dGnhf4Q/Tq8IptysxxI/AAAAAAAAADI/p3KizCZH4qw/s1600/title.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-FZM_dGnhf4Q/Tq8IptysxxI/AAAAAAAAADI/p3KizCZH4qw/s320/title.gif" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The title screen.&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;It received fairly good feedback from the then Qbasic community. Amongst other 2d platform games developed in Qbasic, Larry the Dinosaur 2 held up well. It mixed action and puzzle elements and had a progressive story line that rewarded you with cut-scenes at certain points throughout the game. You could pick up and drop items; mixed items with other items (shotgun shells mix with the shotgun to increase your ammo supply, for example). You could fight enemies with your fist, pistol, shotgun, machine-gun, or desert eagle. There were non-playable characters that served the narrative. There was a villain, a friend, and a could-have-been-worse script.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-JqfdoFEn83s/Tq8JL78Xw_I/AAAAAAAAADU/0Ko4gaZL-lU/s1600/shot1.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-JqfdoFEn83s/Tq8JL78Xw_I/AAAAAAAAADU/0Ko4gaZL-lU/s320/shot1.gif" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The story is revealed through in-game dialogue.&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Outside the world of Qbasic the game received positive feedback as well. It was posted on the front page on freedownloadscenter.com (&lt;a href="http://www.freedownloadscenter.com/Reviews/r912.html"&gt;http://www.freedownloadscenter.com/Reviews/r912.html&lt;/a&gt;). Somehow my game fell into the hands of someone there and it hit all the right notes with him (or her), and so he gave it a pleasant review. It was really a surprise to find my game on the front page of a non-programming related website.&lt;br /&gt;&lt;br /&gt;In addition to the online review, I was contacted by a representative of a German game magazine, who wanted to publish a blurb about in their next issue. I don't remember what it was named, but I couldn't find the magazine online. I had to sign a disclosure agreement, so that makes it true right? Well, maybe. I don't think anyone would waste their time if it wasn't real, so probably. If I ever find it I'll have to post about it.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-7xoxhrUb3hU/Tq8JR8MEkOI/AAAAAAAAADg/VmzEh-E9fa4/s1600/shot9.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-7xoxhrUb3hU/Tq8JR8MEkOI/AAAAAAAAADg/VmzEh-E9fa4/s320/shot9.gif" width="319" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The weapons locker.&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;I also had another representative call me, but this guy was trying to promote an anti-spyware program and wanted me to place an ad. Here's how it worked: when anyone clicked on the link to download the game, it would first direct them to an offer page, giving them the chance to buy the anti-spyware program, or to continue and download the game. A bit annoying if you are just trying to download the game. However, if anyone bought the anti-spyware program I'd get like half the profit. The ad page tracked stats and I was able to see just how many downloads my game was getting. Heh, it was actually what made me decide to stop the ad placement and just go back to a direct download. I got about (or over) 3,000 hits. Holy shit! But...the stats showed how many people made it to the ad page versus how many people continued on to download the game versus how many people bought the anti-spyware program. About a third of the people who made it to the ad page gave up and didn't download the game. So yeah, 2,000 downloads is still a lot. But man, I lost a thousand downloads! The good news is that one--yes, just one--individual out there (out of the 3,000) bought the anti-spyware program. I received a check in the mail for eleven and something dollars; I should have framed it, heh. My brother joked at how that meant that it averaged to about fractions-of-a-cent per hour of the time I spent making the game. Whatever, that was an exciting time. At least I made something! And after seeing those stats, it just wasn't worth it, I wanted more people to download my game! So I removed the ad-placement and just made it a direct download again.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-c_CFaObCCX0/Tq8JcNoGonI/AAAAAAAAADs/y8kcVTo2wa4/s1600/shotg.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-c_CFaObCCX0/Tq8JcNoGonI/AAAAAAAAADs/y8kcVTo2wa4/s320/shotg.gif" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;There are a total of 24 areas to explore, all accessible through the elevator. If I did this again, I would have locked most of the floors at the start, only allowing you to access them via key cards you collect as you progress throughout the game; you'd be introduced to new places progressively instead of all at once and having that confusion of "where the hell do I start?"&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Unfortunately, the game download was hosted on a server of a shotty ISP. Back then I was using dial-up. The terms of the contract stated that if I went over 90 hours (or some number) per month, my account would be deactivated and I'd have to call in to reactivate it; this means downtime--no one can download the game when my account is deactivated. The downtime wasn't the bad part. The bad part was that they wouldn't just reactivate my account; they have to create an new one with a new user name, each time! Part of the URL to download the game had my user account name as part of it. The original download link, when my user name was joeking1, was &lt;a href="http:///#"&gt;http://users.sisna.com/joeking1/deltacode/downloads/dos/ld2v10.zip&lt;/a&gt;. So the first time we went over the hours and my account was deactivated, the download link became invalid. I could reactivate my account but those bastards wouldn't give me my old user name back, so the new download link was &lt;a href="http:///#"&gt;http://users.sisna.com/joeking2/deltacode/downloads/dos/ld2v10.zip&lt;/a&gt;. Only the user name changed, joeking1 to joeking2, but that's all it took to kill the traffic my game was getting. Then the user name changes went on and on, to joeking3 and so on each time we went over the limit. I couldn't control my brother's activity--yes, I blame him!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-sHOOlnS7RNk/Tq8L7LZDRII/AAAAAAAAAE8/TL9TvfNCmlA/s1600/shotv.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-sHOOlnS7RNk/Tq8L7LZDRII/AAAAAAAAAE8/TL9TvfNCmlA/s1600/shotv.gif" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Halfway through the game you meet this nasty guy.&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;If only the ISP was the issue; but no, no matter how many times I contacted freedownloadscenter.com to update the link to the new one, they wouldn't do it. Instead they just posted the text from my email on a new page of their site. Who does that? (it's still up: &lt;a href="http://www.freedownloadscenter.com/Games/3D_Action_Games/Larry_The_Dinosaur_2.html"&gt;http://www.freedownloadscenter.com/Games/3D_Action_Games/Larry_The_Dinosaur_2.html&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;So the awesome downloading spree was over. No one could download my game from there anymore. The excitement was short-lived. Another drawback about this whole experience is the compatibility of the game. You could run it on Windows 98 and only Windows 98. It was a DOS game at its core, but the sound drivers were written for Windows, so you needed a Windows 9x system to run the game; you couldn't just run it in DOS alone. If you had Windows XP, you could run it, but without the sound. I've tried on Vista and 7 and I can't get it to run at all. And DOS emulators don't work because of what I said about the sound drivers (though you can still play it without the sound). It's like a catch-22. And Windows 98 was already an obsolete system by the time it was released anyway, so the game didn't have much of a life span.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Cx30uwdGJbY/Tq8J-fo7KdI/AAAAAAAAAEE/vZpeqAcSq6A/s1600/shotm.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-Cx30uwdGJbY/Tq8J-fo7KdI/AAAAAAAAAEE/vZpeqAcSq6A/s320/shotm.gif" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;You can view a detailed description of each item you collect.&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Though some few years later it came back into the spotlight for a brief moment and received an in-depth review on Qbasic Express (&lt;a href="http://www.petesqbsite.com/sections/express/issue9/index.html#larry2"&gt;http://www.petesqbsite.com/sections/express/issue9/index.html#larry2&lt;/a&gt;). It was much appreciated. :)&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-N_a4IkSlEYU/Tq8KrTyvc2I/AAAAAAAAAEo/5LFf3hU1Q5s/s1600/shotzk.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-N_a4IkSlEYU/Tq8KrTyvc2I/AAAAAAAAAEo/5LFf3hU1Q5s/s320/shotzk.gif" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The final boss. Look out, Larry!&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Every once and a while I'd google the game and find some discussion of it pop up hear and there. Nothing substantial, but any talk about it made my day. Even with all its issues, it was still well-made enough that quite a many people were able to enjoy. So happy 9th anniversary, Larry the Dinosaur 2! You will live on in my mind as a glowing achievement of someone who had way too much time on his hands.&lt;br /&gt;&lt;br /&gt;You can still download the game of course! I'm not hosting it; however, you can find it on any of these pages (or just do a Google search):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.phatcode.net/downloads.php?id=114"&gt;http://www.phatcode.net/downloads.php?id=114&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://kentauri.digitalblackie.com/articles/larry2.html"&gt;http://kentauri.digitalblackie.com/articles/larry2.html&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.qbasic.com/games/dumpbyinput.php?input=Larry%20The%20Dinosaur%202&amp;amp;mode=3"&gt;http://www.qbasic.com/games/dumpbyinput.php?input=Larry%20The%20Dinosaur%202&amp;amp;mode=3&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;A special thank you goes out to all who are hosting a download of the game on their site. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-nfV-Zfbf8Ag/Tq8UEjC0DMI/AAAAAAAAAFM/8o2wseSj4HI/s1600/shot5.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-nfV-Zfbf8Ag/Tq8UEjC0DMI/AAAAAAAAAFM/8o2wseSj4HI/s1600/shot5.gif" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Definitely NOT Larry the Dinosaur 2.&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Hold on one second! What about Larry the Dinosaur 1 or the uncompleted Larry the Dinosaur 3? Good question! Those are each a story of their own. I'll post about them soon. Until then... &lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-IZAnlPwlFEU/Tq8OubROWzI/AAAAAAAAAFE/c3H_G2CP_Lk/s1600/shotzz.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-IZAnlPwlFEU/Tq8OubROWzI/AAAAAAAAAFE/c3H_G2CP_Lk/s1600/shotzz.gif" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The end.&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-7923769349030097525?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/7923769349030097525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2011/10/larry-dinosaur-2-nine-years-later.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/7923769349030097525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/7923769349030097525'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2011/10/larry-dinosaur-2-nine-years-later.html' title='Larry the Dinosaur 2: Nine Years Later'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-FZM_dGnhf4Q/Tq8IptysxxI/AAAAAAAAADI/p3KizCZH4qw/s72-c/title.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-2167271556358139719</id><published>2011-10-08T22:00:00.000-06:00</published><updated>2011-10-08T22:00:04.842-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='game design'/><title type='text'>Game design ain't everything</title><content type='html'>I've done a lot of talk lately about planning and design. It is an important step in the game development process; but if you struggle with this part of the process, don't let it become an obstruction. It's meant to help, not to get in the way. Like all things, it takes practice. You do your best with what you can and then you move on. You may not have the greatest design, but at the very least you have a clearer picture of the game you are trying to develop. So whenever you are ready, move on to the next step and have fun! That's what it's all about, right?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-2167271556358139719?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/2167271556358139719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2011/10/game-design-aint-everything.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/2167271556358139719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/2167271556358139719'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2011/10/game-design-aint-everything.html' title='Game design ain&apos;t everything'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-1826257539995784545</id><published>2011-10-01T11:19:00.000-06:00</published><updated>2011-10-01T11:19:15.630-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><category scheme='http://www.blogger.com/atom/ns#' term='development strategies'/><title type='text'>Game design on one piece of paper</title><content type='html'>Can you fit your game idea onto one 8.5x11 piece of paper? I think you should be able to show a good idea of the game with many of its core concepts, from the story to gameplay mechanics to concept art and even some mockups. A stranger should be able to understand your vision of the game by only looking at this piece of paper. Is your game idea strong enough for that? Does it have enough solid ideas and a unified, focused theme? Does it have enough content to go beyond a simple one or two-level demo? If it doesn't meet all of these points, then would it be wise to start coding the game until you do?&lt;br /&gt;&lt;br /&gt;When you get down to it, making a game takes a lot of time. Brainstorming ideas of paper takes virtually no time in comparison. It's fun to jump in and start coding something, but having a good idea of what you want to see at the end will save you countless amounts of hours from redesigns of code, graphics, levels, and sound.&lt;br /&gt;&lt;br /&gt;The rule of thumb is that the more time you spend designing your game, and the more complete that design is, the more smooth the game development process will go. You realize problems with your design early on; and when you catch them in the design phase, all you need to do is cross them out, so to speak. It doesn't take a massive overhaul of the code, depending on how complex the problem is to fix.&lt;br /&gt;&lt;br /&gt;Something I run into when designing is that I realize how incomplete my game is. It challenges me to think about content and ideas to keep the game interesting through to the end. Sometimes I realize that I don't like my idea or the direction I'm taking with the game, so I stop there, and it only took a couple hours of my time as opposed to hundreds of hours developing the game to the point where I realize the same problem.&lt;br /&gt;&lt;br /&gt;It does take practice. If you're used to jumping in with both feet and coding your way along, learning to think about the game in the design process can be frustrating. You don't "see" your game in action, but only what's on the paper. However, every problem you encounter along the design process you'd encounter in the implementation (coding) process anyway. Designing your game beforehand allows you to tackle all these problems head-on and sort them out beforehand so you have a less frustrating (and more fun) time implementing your game, and a much better chance of following through to the end and releasing a quality game.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-1826257539995784545?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/1826257539995784545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2011/10/game-design-on-one-piece-of-paper.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/1826257539995784545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/1826257539995784545'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2011/10/game-design-on-one-piece-of-paper.html' title='Game design on one piece of paper'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-6016992092739856148</id><published>2011-07-20T21:10:00.000-06:00</published><updated>2011-07-20T21:10:29.005-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='goals'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='game design'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><category scheme='http://www.blogger.com/atom/ns#' term='development strategies'/><title type='text'>Don't focus on the details</title><content type='html'>One of my biggest mistakes when it comes to video game development is spending too much...I mean way too much...time on the details. I have this problem. From the start I spend more hours tweaking things like graphics and sound way before there is anything resembling a game. And when I do have something resembling a game, such as a simple one-level demo, I spend even more time messing around with minute details than on moving the game forward.&lt;br /&gt;&lt;br /&gt;Everything has to be perfect before I can move forward. The problem with this is if I want to change something down the road; hours of work gets thrown away with more hours of work required for the changes. An example may be redrawing an entire tile set because I decided to go with a jungle level instead of a desert one. Another example would be continually redesigning levels as the game evolves. These all take time and lots of it.&lt;br /&gt;&lt;br /&gt;The most effective way to save time is to layout your entire game in advance, and then fill in the details after the core functionality is completed. This pattern not only applies to video games, but to other creative practices as well. Take drawing for example; many great artists will sketch out an outline of their drawing first, then draw the shapes, and finally -- when everything is how they want -- fill in the details. The same logic applies: if I being a drawing by working out the details of every square inch, and if I want to change something halfway through, it's going to take a lot of eraser and time to fix (not to mention the time wasted by all the work that was just erased). This approach just isn't effective anywhere.&lt;br /&gt;&lt;br /&gt;So if you're still the perfectionist, then be perfect with the planning and design. Don't move forward with the details until you are happy with your design. Then don't move forward with the details until you have built a robust framework that can support your design. Then once that is all done, don't yet focus on the details until you've built most of the game; use temporary or placeholder graphics and music (they aren't important at this stage; what's important is finishing the game). Then finally, when all there is to do is fill in the details and to polish your game, you can have at it and be rewarded with an actual game when you are done (and not a game still in the making).&lt;br /&gt;&lt;br /&gt;These are just guidelines though. "Easier said than done," you might think. I agree. For me, it's a goal and not an actual practice -- a skill to improve upon. What's fun about game development is, well, developing a game and not having to worry about the less-entertaining work of documentation and low-level coding. Though, sometimes documentation and low-level coding can be fun for geeks like myself. But seeing your game in action as you craft it is an addiction.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-6016992092739856148?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/6016992092739856148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2011/07/dont-focus-on-details.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/6016992092739856148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/6016992092739856148'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2011/07/dont-focus-on-details.html' title='Don&apos;t focus on the details'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-7916174134973621802</id><published>2011-07-14T07:15:00.000-06:00</published><updated>2011-07-14T07:15:19.485-06:00</updated><title type='text'>No code is clean code</title><content type='html'>Think about it. The less code you can write the better. And I don't mean by cramming lines of code together or shortening variable names; I mean things like consolidating repetitive code into functions, separating game logic and presentation code from the rest of the program into data files (like XML), and being clever with your code like being clever with words on Twitter (keeping it short, simple and to the point).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-7916174134973621802?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/7916174134973621802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2011/07/no-code-is-clean-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/7916174134973621802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/7916174134973621802'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2011/07/no-code-is-clean-code.html' title='No code is clean code'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-2546110861696469497</id><published>2011-07-12T13:00:00.006-06:00</published><updated>2011-07-13T20:15:22.955-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='goals'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><category scheme='http://www.blogger.com/atom/ns#' term='development strategies'/><title type='text'>Cap your time</title><content type='html'>Here's an idea. Break your project into phases. The first phase is something playable with a couple levels; the second phase adds a bit more and has all the levels, story, bosses, and music implemented; and the third phase is for polishing your game and filling in the gaps.&lt;br /&gt;&lt;br /&gt;Now break each phase down into hourly estimates of categories. For instance: planning and design, programming, artwork, level design, music and sound. Here's an example for a small game:&lt;br /&gt;&lt;br /&gt;Phase I&lt;br /&gt;Planning and design: 2 hours&lt;br /&gt;Programming: 15 hours&lt;br /&gt;Artwork: 10 hours&lt;br /&gt;Level Design: 10 hours&lt;br /&gt;Music and sound: 10 hours&lt;br /&gt;&lt;br /&gt;Phase II&lt;br /&gt;Planning and design: 3 hours&lt;br /&gt;Programming: 30 hours&lt;br /&gt;Artwork: 20 hours&lt;br /&gt;Level Design: 30 hours&lt;br /&gt;Music and sound: 15 hours&lt;br /&gt;&lt;br /&gt;Phase III&lt;br /&gt;Planning and design: n/a&lt;br /&gt;Programming/bug-fixes: 10 hours&lt;br /&gt;Artwork touch-up: 5 hours&lt;br /&gt;Level Design fixes/changes: 10 hours&lt;br /&gt;Music and sound touch-up: 5 hours&lt;br /&gt;&lt;br /&gt;175 hours! Initially I was thinking it'd end up around 50 hours, but breaking it up into phases showed me that I greatly underestimated that. And when I estimate my hours I like to overestimate, because things aren't going to go as smooth as you think they will half the time. Breaking your game up into phases does 2 things: first, you focus on reaching the end of the phase and not the end of the game's development (so you're less likely to be caught up with feature creep and the like), second your hours are better estimated because you are estimating hours with more concrete markers than just "finishing the game."&lt;br /&gt;&lt;br /&gt;Here's the second part of my idea: DO NOT GO OVER YOUR HOURS!!!&lt;br /&gt;&lt;br /&gt;Why? Because if you go over the when will it end? Ideas and the quest for perfection always get me spending more time on little details than I should. Also, you if keep to your word, when the time gets close and you're not quite there you will have to finish up with what you have, even if that means putting in plain (placeholder) graphics and just the raw bones of your code. The goal is to reach the end of the phase, not to complete the game. And once you reach the end of the phase, you can assess where you are at and where you want to go and plan your next phase. This type of planning/execution/planning pattern is used in commercial software companies in one form or another; some examples are Scrum and Agile development. There's power in this strategy as it keeps you focused on more realistic (and closer) goals. It also allows for changes to be made if needed (re-planning a phase, for example).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-2546110861696469497?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/2546110861696469497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2011/07/cap-your-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/2546110861696469497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/2546110861696469497'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2011/07/cap-your-time.html' title='Cap your time'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-7932054412249641645</id><published>2011-07-11T23:37:00.000-06:00</published><updated>2011-07-11T23:37:24.207-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='clean code'/><category scheme='http://www.blogger.com/atom/ns#' term='game design'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>A programming language is not a game development framework</title><content type='html'>I think many people fall into this trap. You have an idea for a game, so you start coding. Everything goes well at first and by next week you have an awesome demo to showcase your upcoming game: your player can do some awesome moves, the graphics are slick, and it all looks promising. But then...months go by and progress has sharply declined. Sometimes there is nothing more to show. What happened?&lt;br /&gt;&lt;br /&gt;From the programming side of things, the game starts to collapse under its own weight -- the code structure that supported the demo cannot handle the complexity of a complete game; and building upon such a flaky framework leads to mounds of spaghetti and buggy code.&lt;br /&gt;&lt;br /&gt;There are many assumptions, but I believe the core issue is that the programmer relies too much on features of the programming language rather than a well thought-out and planned framework to support the game. What does this mean? I'll explain.&lt;br /&gt;&lt;br /&gt;The idea of a game framework (sometimes referred to as a game engine) is to have you only writing code that deals with the game logic, fun stuff like: weapon properties, special moves, power-ups, level dynamics, etc. That's all you need to define your game anyway, and you send that game data to the framework (or game engine). The framework is the inner-workings of the game. It consists of helpful methods (subroutines or functions) that load levels, organize and render graphics, calculate objects on the map, churn the physics for each frame, and so on. It's important to keep the framework separate from the game logic by providing an interface. The interface is a set of methods that you use to send the data the framework needs to run a game and nothing more. One example is a method that accepts a file name of a map to load for the current level. Another example is a method that accepts properties for an object and then creates and adds that object to the map (like for a demon that throws fire you'd pass its strength, speed, skill, etc.); the framework would then be responsible for rendering and moving the demon under the rules you provided (through another method). The idea is that the game logic is separate from the lower-level logic that the game is running on top of; and you communicate with the framework via its interface. When people try to code these two parts together...well...it gets messy.&lt;br /&gt;&lt;br /&gt;A suitable framework for your game should be developed first or in phases as the game progresses. If you are not sure how to go about it then you can look at some examples. Old-school games like Quake have their source code available. Use of frameworks apply to web design as well, so if you understand web development check out the source code for frameworks like Wordpress or Magento. If you want to save yourself the time of writing your own framework, and you want to jump right into game development, then a quick search of Google for "game development frameworks" will give you more than plenty to chew on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-7932054412249641645?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/7932054412249641645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2011/07/programming-language-is-not-framework.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/7932054412249641645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/7932054412249641645'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2011/07/programming-language-is-not-framework.html' title='A programming language is not a game development framework'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-2091934283462275794</id><published>2011-07-11T12:15:00.003-06:00</published><updated>2011-07-11T12:23:59.386-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='game development'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><title type='text'>Back from hiatus</title><content type='html'>A good amount of time has passed; life happens...you know. Even so, I could have kept up on this blog. There is nothing new gaming wise. There are a lot of days where I am irked by the fact that I haven't release anything...not even a simple game...since 2007. What's the big deal? Why is it so hard to finish something today? Blah blah blah, whatever.&lt;br /&gt;&lt;br /&gt;Anyway, I'm back and am going to give this blog another shot. Weekly postings about...I don't know...stuff. Good strategies for game development may be the focus for a while. I'm not writing another line of code until I have my next game on paper! Seriously, like a solid plan that'll get something done, and soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-2091934283462275794?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/2091934283462275794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2011/07/back-from-hiatus.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/2091934283462275794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/2091934283462275794'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2011/07/back-from-hiatus.html' title='Back from hiatus'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-7342251956498151449</id><published>2010-01-05T22:05:00.000-07:00</published><updated>2010-01-05T22:09:05.054-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>A Sense of Progression: Keeping your game interesting</title><content type='html'>Keeping a strong sense of progression really adds to gameplay. If you're not careful, your game could become just one boring level after another. A sense of progression is a way of rewarding the player as he or she progresses along the game. You might think that you need to overhaul your game or add tons of code to have a nice set of rewards, but so isn't the case! I will present some simple, easy-to-implement rewards that add much depth to a game:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Different tile sets&lt;/span&gt;:&lt;br /&gt;Levels that look and feel different from one another will keep them interesting. Even simple things such as changing the colors around or making one tile-set more worn-looking than another add to the feel of the level.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Spreading out enemies&lt;/span&gt;:&lt;br /&gt;If you have a handful of enemies in your game, don't throw them all into the first level. Save some of them so they can be introduced in later levels. So, for example, level 2 won't just be known as just "level 2," but rather the level that introduces that scary monster!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Spreading out weapons:&lt;/span&gt;&lt;br /&gt;Same as above, but with weapons.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Secret areas:&lt;/span&gt;&lt;br /&gt;It's a nice feeling when you stumble upon a secret area in a level. Hide some in your levels and stuff them with goodies to reward your player when he or she finds it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Story:&lt;/span&gt;&lt;br /&gt;I'm not talking about adding complicated dialog or cut-scenes. Think about this example for instance: level 1 is a forest, level 2 is a castle, level 3 is a dungeon, level 4 is a lava cave where you fight the evil demon. That scenario has a type of storyline progression to it; each level leads to the next. It indirectly tells of a hero venturing through the forest to find the castle that leads to the evil demon that he or she must annihilate. Try to think of a scenario more original or creative.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusion:&lt;/span&gt;&lt;br /&gt;So you see, you can add much depth to your game already using what you already have. These are just some of the basic ways implemented in most games. Try to think up other ideas than what I presented here to make your levels more interesting and to add a sense of progression.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-7342251956498151449?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/7342251956498151449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2010/01/sense-of-progression-keeping-your-game.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/7342251956498151449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/7342251956498151449'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2010/01/sense-of-progression-keeping-your-game.html' title='A Sense of Progression: Keeping your game interesting'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-1257433654314397802</id><published>2009-12-11T08:55:00.000-07:00</published><updated>2009-12-11T08:56:24.411-07:00</updated><title type='text'>Site is Down</title><content type='html'>The Delta Code site has been down for a couple months. I am aware of it; I've just been lazy.&lt;br /&gt;&lt;br /&gt;I'll see if I can get it back up and running sometime this month.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-1257433654314397802?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/1257433654314397802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/12/site-is-down.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/1257433654314397802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/1257433654314397802'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/12/site-is-down.html' title='Site is Down'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-3597839470840806520</id><published>2009-10-19T17:00:00.002-06:00</published><updated>2009-10-19T17:00:01.220-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='goals'/><category scheme='http://www.blogger.com/atom/ns#' term='filler'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>I don't wanna grow up!</title><content type='html'>Between work, school and life, I don't know how I manage to get anything done. Actually, I haven't really done much this year at all. That seems to be the trend for many people: they get older--grow up or whatever--and move on from their childish game projects. Not that I have been trying to, but it would be nice. I'm tired of starting so many things that I don't finish. Maybe I could move on to a hobby that's more social. But I still want to finish some of my projects I started years ago--it's hard to let go. So I continue on with my childish projects with hope that one day in the future they may be completed. Then I can put them to rest and feel proud of myself that I have what it takes to finish those type of projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-3597839470840806520?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/3597839470840806520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/10/i-dont-wanna-grow-up.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/3597839470840806520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/3597839470840806520'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/10/i-dont-wanna-grow-up.html' title='I don&apos;t wanna grow up!'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-5713947240768697618</id><published>2009-09-01T17:00:00.001-06:00</published><updated>2009-09-01T17:00:01.354-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='goals'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Keeping up-to-date with the world</title><content type='html'>FreeBasic is fun, but I want a career in IT, so spending all my time working on FB projects doesn't help much in that area.&lt;br /&gt;&lt;br /&gt;Still, I want to contribute to FreeBasic with my own projects, but every once in a while I need to do something with what the industry uses. I also need to keep my memory fresh with courses that I took in school on C#, Java, databases, etc. You easily forget that if you don't use it.&lt;br /&gt;&lt;br /&gt;Thankfully Microsoft has free versions of Visual Studio, the &lt;a href="http://www.microsoft.com/express/"&gt;Express editions&lt;/a&gt;, for hobbyists such as myself. I downloaded C# and C++ and plan to work on projects with those. I'm also interested in the game library they have for C++, &lt;a href="http://www.microsoft.com/express/samples/GameCreators/"&gt;&lt;span style="font-style: italic;"&gt;The Game Creators GDK&lt;/span&gt;&lt;/a&gt;. I need to work up a portfolio, even if it's with simple demos, so that I can show that I have competency with these languages.&lt;br /&gt;&lt;br /&gt;This doesn't mean Toadman 3 will be put on hold; I still have plenty of time for that. I just need to make the most out of my free time that isn't spent working on FreeBasic projects. Hopefully I don't burn out. Like how I stated in my previous article, &lt;a href="http://deltacode.blogspot.com/2009/08/code-beyond-your-comfort-zone.html"&gt;Code Beyond Your Comfort Zone&lt;/a&gt;, I just need to spend a little time every once in a while to learn something new.&lt;br /&gt;&lt;br /&gt;Should be fun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-5713947240768697618?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/5713947240768697618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/09/keeping-up-to-date-with-world.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/5713947240768697618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/5713947240768697618'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/09/keeping-up-to-date-with-world.html' title='Keeping up-to-date with the world'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-1784857902967152487</id><published>2009-08-15T21:10:00.002-06:00</published><updated>2009-08-15T21:10:51.275-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='toadman'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>First Screenshots of Toadman 3 (in development)!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_D7lhTYDWtZQ/SoJaLc-DvQI/AAAAAAAAABs/larhKZSDfDw/s1600-h/8-11-09a.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 320px;" src="http://1.bp.blogspot.com/_D7lhTYDWtZQ/SoJaLc-DvQI/AAAAAAAAABs/larhKZSDfDw/s320/8-11-09a.gif" alt="" id="BLOGGER_PHOTO_ID_5368952858580598018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;First screenshot of Toadman 3 very early in development. I decided heck to it with my sprite editor project and am using PixelPlus 256 for the graphics at the moment. The graphics are already turning out better than expected. You should see him hop; that's the coolest part. Unfortunately you'll have to wait until a demo comes out. For now I'll just tease you with screenshots.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_D7lhTYDWtZQ/SoJaPYZyV6I/AAAAAAAAAB0/coCTNoI6udk/s1600-h/8-11-09b.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 320px;" src="http://4.bp.blogspot.com/_D7lhTYDWtZQ/SoJaPYZyV6I/AAAAAAAAAB0/coCTNoI6udk/s320/8-11-09b.gif" alt="" id="BLOGGER_PHOTO_ID_5368952926074197922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Nothing too much to show off for now. These screenshots were taken on the 11th (4 days ago) ; the game has been worked on since then. I decided to take some early screenshots so I can look back on the development of the game. I'll post more screenshots in the future as the game progresses.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-1784857902967152487?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/1784857902967152487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/08/first-screenshots-of-toadman-3-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/1784857902967152487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/1784857902967152487'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/08/first-screenshots-of-toadman-3-in.html' title='First Screenshots of Toadman 3 (in development)!'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_D7lhTYDWtZQ/SoJaLc-DvQI/AAAAAAAAABs/larhKZSDfDw/s72-c/8-11-09a.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-3292322746290913434</id><published>2009-08-10T17:00:00.002-06:00</published><updated>2009-08-10T17:03:50.329-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='deltacode'/><category scheme='http://www.blogger.com/atom/ns#' term='website'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><title type='text'>Site Changes</title><content type='html'>I did quite a bit of work on the &lt;a href="http://www.deltacode.net/"&gt;site&lt;/a&gt; this weekend. I changed the look and moved some things around. Overall, I think it looks much better.&lt;br /&gt;&lt;br /&gt;I plan to update the site 2-3 times per month. An update will be an article, tutorial, or game review. I want new, fresh content on the site. I don't like to see all those old articles and reviews decaying the site.&lt;br /&gt;&lt;br /&gt;Updates also include articles that are posted to the blog (postings that are tagged 'article'). I usually post them around the same time. Maybe I'll stop posting articles here as you can get to them on the site.&lt;br /&gt;&lt;br /&gt;So we'll see how that goes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-3292322746290913434?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/3292322746290913434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/08/site-changes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/3292322746290913434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/3292322746290913434'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/08/site-changes.html' title='Site Changes'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-6817384862842609520</id><published>2009-08-07T19:00:00.000-06:00</published><updated>2009-08-07T19:00:00.172-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>Code beyond your comfort zone</title><content type='html'>When is the last time you learned something new about programming? Was it a day, week or month ago? Has it been longer than that? If it has been longer than a month, then make yourself a goal to learn at least one new thing before the end of next month.&lt;br /&gt;&lt;br /&gt;Take advantage of your time. Before you know it, a year may pass and you'll be no wiser if you didn't set aside any time to learn. You can't get that time back.&lt;br /&gt;&lt;br /&gt;You don't have to set aside much time for growing your programming skills. No matter how busy your life is, you should be able to find some time, perhaps just 15 minutes each week. An hour each month is better than nothing. The more time the better, but don't burn yourself out.&lt;br /&gt;&lt;br /&gt;Spend that time to learn something new or to program something difficult. I'm not asking you to start a project. Just work on a demonstration. Your code doesn't have to be pretty. The point is to learn something, not to make something.&lt;br /&gt;&lt;br /&gt;It can be about anything you want, perhaps some new GFX algorithms for your next demo or part of a game engine for your next game.&lt;br /&gt;&lt;br /&gt;You might not get your program working, but that's good! It means you are out of your comfort zone. This is where learning takes place. Maybe you can try it again next time, or perhaps you feel you've learned enough from the previous experience. You be the judge.&lt;br /&gt;&lt;br /&gt;Some examples of the top of my head are:&lt;br /&gt;&lt;ul style="list-style-type: square;"&gt;&lt;li&gt;use a file format you haven't before (such as BMP, WAV or MP3)&lt;/li&gt;&lt;li&gt;learn a new language (perhaps a simple tutorial or two, don't overwork yourself)&lt;/li&gt;&lt;li&gt;read an article on networking&lt;/li&gt;&lt;li&gt;touch up on 2D and 3D math (one small bite at a time of course)&lt;/li&gt;&lt;li&gt;learn a new tool such as a graphics editor or an API&lt;/li&gt;&lt;li&gt;refresh on programming concepts you've learned before but haven't used for a while&lt;br /&gt;&lt;/li&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ul&gt;And the list goes on. Use your imagination. The point is to learn something new and push yourself beyond your limits comfort zone. Don't push yourself too hard. You don't want to dread each session. You should have fun with it. There's a difference between a challenge and frustrating yourself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-6817384862842609520?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/6817384862842609520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/08/code-beyond-your-comfort-zone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/6817384862842609520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/6817384862842609520'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/08/code-beyond-your-comfort-zone.html' title='Code beyond your comfort zone'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-4744025276137404515</id><published>2009-07-30T17:00:00.000-06:00</published><updated>2009-07-30T17:00:01.711-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='freebasic'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>The Delay Factor</title><content type='html'>One of the major difficulties in game development is to make your game playable on as many computers as possible, and on as many newer (and possibly older) computers as possible. Games written today need to be programmed to run at the same speed on all PCs. If not, then your game may be unplayable for someone else, ruining their experience.&lt;br /&gt;&lt;br /&gt;This is what I call the delay factor: a variable that changes relative to the speed of the computer, to which you base all your time-dependent functions on, such as movement and animation.&lt;br /&gt;&lt;br /&gt;Perhaps you can remember playing an old game on a new PC, only to find that you can't play it because it runs too fast. Chances are they didn't program speed control into their game, or they used a hack-method that worked at the time but doesn't work today.&lt;br /&gt;&lt;br /&gt;I will start off by telling you what NOT to do. I have made a lot of these mistakes before, and because of that I can't run many of my older games; I have to edit the source code to slow things down, or it's just too much work and I give up.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The WRONG Way&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The worst thing you can do is something similar this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DIM n AS INTEGER&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FOR n = 0 TO 500000: NEXT n&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This may solve the problem on your computer, and some speed control is better than no speed control. But if you want to share your game, or look back on it in the future, you need something better.&lt;br /&gt;&lt;br /&gt;There are a number of ways to approach this issue. You could count how many times a loop runs within one second and use that as your delay factor, or you can make the loop count (500000) a variable and make the user adjust it him/herself. But these are poor methods and will likely frustrate other people, and they'll never truly know what speed you meant the game to be played at.&lt;br /&gt;&lt;br /&gt;Another way is to utilize the vertical retrace. The vertical retrace waits for the monitor to refresh. Most monitors refresh at 60hz, or 60 times a second. So programming the speed of your game around this is a more viable option. Today, most computers will probably run your game, but some monitors refresh at 70hz or 75hz. In the future monitors may refresh at 120hz.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The RIGHT Way&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The best solution, as far as I know, is to track how much time goes by between one cycle of your main game loop and use that time as the delay factor.&lt;br /&gt;&lt;br /&gt;Of course with this way, the faster the computer, the shorter time and thus delay factor. So you can't throw the delay factor into a for loop unless you invert it, but a better way is described below.&lt;br /&gt;&lt;br /&gt;Multiply all of your movements, animations, and other time-dependent objects by the delay factor. Don't code any stupid empty loops to slow things down. This way, if your game runs at a quadrillion cycles per second, the delay factor will compensate and everything will run at the same speed.&lt;br /&gt;&lt;br /&gt;Another advantage of this method is that slower PCs will run your game also. If you're coding your game on a PC that runs it at 60fps, a PC that can only run it a 30fps will compensate by moving things twice as fast.&lt;br /&gt;&lt;br /&gt;You still should test your game on both slower and faster computers as you're making it. Chances are you won't have everything running perfect the first time. Sometimes I make the mistake of slipping in an absolute value without multiplying it by the delay factor, and testing it on other computers is a way to catch that.&lt;br /&gt;&lt;br /&gt;Use FreeBasic's TIMER command to do this. First you take the time before executing your game loop. Then once the cycle is complete, call TIMER again to get the new time. Subtract the old time from the new time to get the cycle time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example Code&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I made a module below that you can use if you don't feel like coding your own.&lt;br /&gt;Save this as DELAY.BAS. Include it in your game, then just call UpdateSpeed() after each cycle. It will return the time between the first time you called it and the second time. You can also call GetDelay() to get the delay factor again without recalculating it.&lt;br /&gt;&lt;br /&gt;Keep in mind that you should call it at least once before your main game loop to initialize it. It will return the value of TIMER the first time it's called (which is usually a big number). A good way is to render a couple frames of your game first to get the speed before performing calculations that depend on the delay factor. The rendering process is usually the most processor intensive, so it'll give a fairly accurate time.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DECLARE FUNCTION UpdateSpeed () AS DOUBLE&lt;br /&gt;DECLARE FUNCTION GetDelay () AS DOUBLE&lt;br /&gt;&lt;br /&gt;DIM SHARED DelayDelay AS DOUBLE '- odd spelling as to not conflict with other variables in your code&lt;br /&gt;&lt;br /&gt;'- Calculate the global delay factor&lt;br /&gt;FUNCTION UpdateSpeed () AS DOUBLE&lt;br /&gt;&lt;br /&gt;  DIM speed AS DOUBLE&lt;br /&gt;  STATIC timex AS DOUBLE = 0.0f&lt;br /&gt;&lt;br /&gt;  speed = TIMER-timex&lt;br /&gt;  timex = TIMER&lt;br /&gt;&lt;br /&gt;  DelayDelay = speed&lt;br /&gt;&lt;br /&gt;  RETURN speed&lt;br /&gt;&lt;br /&gt;END FUNCTION&lt;br /&gt;&lt;br /&gt;'- Return the delay factor&lt;br /&gt;FUNCTION GetDelay () AS DOUBLE&lt;br /&gt;&lt;br /&gt;  RETURN DelayDelay&lt;br /&gt;&lt;br /&gt;END FUNCTION&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-4744025276137404515?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/4744025276137404515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/07/delay-factor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/4744025276137404515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/4744025276137404515'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/07/delay-factor.html' title='The Delay Factor'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-4698417062519605863</id><published>2009-07-27T17:00:00.006-06:00</published><updated>2009-07-27T18:09:57.740-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='toadman'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Fail!</title><content type='html'>It's now the last week of July. Where's &lt;a href="http://deltacode.blogspot.com/2009/03/toadman-3-scoop.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Toadman&lt;/span&gt; 3&lt;/a&gt; or that &lt;a href="http://deltacode.blogspot.com/2009/04/obstacles.html"&gt;sprite editor&lt;/a&gt; I was talking about earlier? They haven't come very far. I typed up some ideas, but &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Toadman&lt;/span&gt; 3 hasn't picked up any momentum. The sprite editor was moving along well, but development on it stopped a while back.&lt;br /&gt;&lt;br /&gt;Stuff happens, I guess. It just seems harder nowadays to finish something, or even start something for that matter.&lt;br /&gt;&lt;br /&gt;It makes me ponder what has changed since the days when I was really active and coded a number of projects in a small amount of time. Between 2000 and 2002, I finished six games: &lt;a href="http://www.deltacode.net/downloads.php"&gt;Toadman, Toadman 2, Unofficial Tournament, Torched Earth, Larry the Dinosaur, and Larry the Dinosaur 2&lt;/a&gt;. However, between then and now, nothing, except for a little ascii game I released back in 2007.&lt;br /&gt;&lt;br /&gt;So, what's happened? I work and go to school, and sometimes that wears me out, but I'm still a single man with plenty of free time. Maybe I try to make projects that are too big in scale, and I need to cut back and make simpler games.&lt;br /&gt;&lt;br /&gt;There's some truth to that. Whenever I finished a game in the past, I felt that I needed to top it in the next game. When I finished Larry the Dinosaur 2, I was pumped up for the sequel. It was going to be in C++, have better graphics, larger levels, faster gameplay. It would put #2 to shame.&lt;br /&gt;&lt;br /&gt;Well, I made it pretty far on the sequel, but I bit off a little more than I could chew on that one.&lt;br /&gt;&lt;br /&gt;So maybe I need to take a step back. Start with simple games again, original games instead of sequels, so I don't feel the need to top the previous game in the series. I am only one man after all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-4698417062519605863?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/4698417062519605863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/07/fail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/4698417062519605863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/4698417062519605863'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/07/fail.html' title='Fail!'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-655159453738390903</id><published>2009-06-15T17:00:00.000-06:00</published><updated>2009-07-26T22:02:20.240-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>Cool Transparency Formula</title><content type='html'>While I was thinking through a way to implement transparency in my graphics engine, I thought up a cool and fast way to render pixels at 50% transparency:&lt;br /&gt;&lt;br /&gt;&lt;font face="courier new"&gt;BASIC:&lt;/font&gt;&lt;br /&gt;&lt;font face="courier new"&gt;col0 = col0 SHR 1&lt;/font&gt;&lt;br /&gt;&lt;font face="courier new"&gt;col1 = col1 SHR 1&lt;/font&gt;&lt;br /&gt;&lt;font face="courier new"&gt;col0 = (col0 AND &amp;amp;h007F7F7F)&lt;/font&gt;&lt;br /&gt;&lt;font face="courier new"&gt;col1 = (col1 AND &amp;amp;h007F7F7F)&lt;/font&gt;&lt;br /&gt;&lt;font face="courier new"&gt;newcol = col0 + col1&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font face="courier new"&gt;C:&lt;/font&gt;&lt;br /&gt;&lt;font face="courier new"&gt;col0 &gt;&gt;= 1;&lt;/font&gt;&lt;br /&gt;&lt;font face="courier new"&gt;col1 &gt;&gt;= 1;&lt;/font&gt;&lt;br /&gt;&lt;font face="courier new"&gt;col0 = col0 &amp;amp; 0x007F7F7F;&lt;/font&gt;&lt;br /&gt;&lt;font face="courier new"&gt;col1 = col1 &amp;amp; 0x007F7F7F;&lt;br /&gt;newcol = col0 + col1;&lt;br /&gt;&lt;br /&gt;ASM:&lt;br /&gt;mov eax, [col1]&lt;br /&gt;mov ebx, [col2]&lt;br /&gt;shr eax, 1&lt;br /&gt;&lt;/font&gt;&lt;font face="courier new"&gt;shr ebx, 1&lt;/font&gt;&lt;br /&gt;&lt;font face="courier new"&gt;and eax, 0x007F7F7F&lt;br /&gt;&lt;/font&gt;&lt;font face="courier new"&gt;and ebx, 0x007F7F7F&lt;br /&gt;add eax, ebx&lt;br /&gt;mov [newcol], eax&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;All these examples do is take the average of the two RGB values by using bit shifts and bit logic. Instead of adding by two and then dividing, it divides by two (shift right one) and adds them together. But before it adds the values together, it chops off the bits that may have bled over into the other bytes using the AND operator.&lt;br /&gt;&lt;br /&gt;&lt;font face="courier new"&gt;0x7F7F7F is 011111110111111101111111 in binary.&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-655159453738390903?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/655159453738390903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/06/cool-transparency-formula.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/655159453738390903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/655159453738390903'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/06/cool-transparency-formula.html' title='Cool Transparency Formula'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-8886784521718509497</id><published>2009-06-01T18:00:00.000-06:00</published><updated>2009-07-26T22:02:20.240-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>DOS is dead, so is 320x200</title><content type='html'>DOS may live on amongst a community of zombies who were once among the living in the 80s and early 90s, but for those of us who don't crave the taste of human brains, we've moved on.&lt;br /&gt;&lt;br /&gt;One thing that didn't really need to die, but has anyway with the new graphics cards, is the 320x200 and 320x240 resolutions. Other resolutions smaller than 640x480 may be in danger too.&lt;br /&gt;&lt;br /&gt;It was some years ago that I noticed, while working on a game of mine, that 320x240 looked fuzzy, blurry, and just not as sharp as it used to be. My game looked fine on older computers, but not on mine. And I've noticed this on other newer computers also.&lt;br /&gt;&lt;br /&gt;My theory is that the graphics cards are using OpenGL or Direct3D to render a 320x240 texture on a slightly higher resolution like 640x480. Because of this, filtering is applied to the texture, making it appear slightly blurry. However, that's just a theory, but you get the point.&lt;br /&gt;&lt;br /&gt;The other issue is that some computers just flat out don't support resolutions under 640x480. One example of that is my laptop that I bought last year. It's an Acer, so that might explain it, but it still goes to show that the old resolutions are going the way of DOS.&lt;br /&gt;&lt;br /&gt;But I'm not saying that anyone should stop making games and programs that run in 320x200 or 320x240 resolutions. But what I would like is if they made sure they had an option to run the game in 640x480, but with the graphics scaled onto the screen so that I can still play that game full screen and see it as sharp as it should be seen, so that I can play the game as it's meant to be played.&lt;br /&gt;&lt;br /&gt;I'm not against new releases of retro-style games, I just want to be able to play them. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-8886784521718509497?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/8886784521718509497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/06/dos-is-dead-so-is-320x200.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/8886784521718509497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/8886784521718509497'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/06/dos-is-dead-so-is-320x200.html' title='DOS is dead, so is 320x200'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-3753287761030590471</id><published>2009-04-30T21:40:00.000-06:00</published><updated>2009-07-26T22:02:20.240-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='toadman'/><category scheme='http://www.blogger.com/atom/ns#' term='graphics'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Obstacles</title><content type='html'>Well, I was about to start on &lt;a href="http://deltacode.blogspot.com/2009/03/toadman-3-scoop.html"&gt;Toadman 3&lt;/a&gt;, but then I realized that I had no sprite editor to draw the graphics with. I used to use &lt;a href="http://www.phatcode.net/downloads.php?id=189"&gt;Pixel Plus 256&lt;/a&gt;, but it's a DOS program and my laptop won't run it, because either I have Vista or because my graphics card doesn't support 320X200 resolution. I can use &lt;a href="http://www.dosbox.com/"&gt;DosBox&lt;/a&gt;, but that's just not convenient. I don't have Photoshop, and &lt;a href="http://www.gimp.org/"&gt;Gimp&lt;/a&gt; is a nightmare to work with.&lt;br /&gt;&lt;br /&gt;Instead, I've been working on my own sprite editor in the mean time. Just something simple but good enough to get what I want done. Besides, I've always wanted to make a sprite editor, one that's customized my way. I hope to having it functioning well enough in a couple weeks so I can start using it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-3753287761030590471?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/3753287761030590471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/04/obstacles.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/3753287761030590471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/3753287761030590471'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/04/obstacles.html' title='Obstacles'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-6631391678741643088</id><published>2009-04-16T20:45:00.000-06:00</published><updated>2009-07-26T22:02:20.241-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='deltacode'/><category scheme='http://www.blogger.com/atom/ns#' term='website'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><title type='text'>Forum Back Online</title><content type='html'>&lt;a href="http://www.deltacode.net/forum"&gt;Delta Code's forum&lt;/a&gt; is back online. I added a simple CAPTCHA system for now. CAPTCHA is just some fancy acronym that basically means any test to fight off web bots. The test I added is a validation code. The code you enter must match the code displayed in the adjacent image before you can post to the forum.&lt;br /&gt;&lt;br /&gt;We'll see how the system works. If it's not enough, then I'll have to make it more complex in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-6631391678741643088?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/6631391678741643088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/04/forum-back-online.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/6631391678741643088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/6631391678741643088'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/04/forum-back-online.html' title='Forum Back Online'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-4144022048325799129</id><published>2009-04-09T17:00:00.000-06:00</published><updated>2009-07-26T22:02:20.241-06:00</updated><title type='text'>Forum Under Attack</title><content type='html'>Delta Code's forum has been spammed heavily lately, that's why it is currently down.&lt;br /&gt;&lt;br /&gt;When I first made it, I didn't add many spam defenses since, let's face it, Delta Code's not that popular of a site.&lt;br /&gt;&lt;br /&gt;But the site has received a large boost in unique IP hits. The visitor counter has shot up from about 10 a day to about 1,000 a day. I highly doubt that these numbers are credible. Spam and spider bots are likely the culprit.&lt;br /&gt;&lt;br /&gt;So until I patch up the forum's weak areas, it'll be down for the time being.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-4144022048325799129?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/4144022048325799129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/04/forum-under-attack.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/4144022048325799129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/4144022048325799129'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/04/forum-under-attack.html' title='Forum Under Attack'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-6658463218258343921</id><published>2009-03-31T20:00:00.000-06:00</published><updated>2009-07-26T22:02:20.241-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='toadman'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Time to Begin</title><content type='html'>Well, I haven't progressed much on the documentation for &lt;a href="http://deltacode.blogspot.com/2009/03/toadman-3-scoop.html"&gt;Toadman 3&lt;/a&gt;, but I have an overall idea of what I want to make, somewhat. I'll begin graphics and coding for the next step. I won't have much of an idea of what I want for levels until I have most of the game engine complete. Hopefully this will move along gracefully.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-6658463218258343921?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/6658463218258343921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/03/time-to-begin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/6658463218258343921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/6658463218258343921'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/03/time-to-begin.html' title='Time to Begin'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-5304186313387925802</id><published>2009-03-20T20:30:00.000-06:00</published><updated>2009-07-26T22:02:20.241-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='filler'/><category scheme='http://www.blogger.com/atom/ns#' term='fluff'/><title type='text'>Spring is here!</title><content type='html'>No news for &lt;a href="http://deltacode.blogspot.com/2009/03/toadman-3-scoop.html"&gt;Toadman 3&lt;/a&gt;. It's that time of year when I have everything else on my mind, such as taxes and school, credit and bills, and I've also been moving to another apartment. Man, responsibility sucks. I hope to get all of that behind me within the next week so I have some energy. It's not that I don't have the time, it's just that when I get everything done for the day I want to get away from the computer.&lt;br /&gt;&lt;br /&gt;The good news is that winter is finally over! It's that time of year when the cold weather goes away, and also that short time of the year before all the nasty insects come out to play...with your blood!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-5304186313387925802?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/5304186313387925802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/03/spring-is-here.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/5304186313387925802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/5304186313387925802'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/03/spring-is-here.html' title='Spring is here!'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-256665560413332271</id><published>2009-03-05T20:30:00.000-07:00</published><updated>2009-07-26T22:02:20.242-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='toadman'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Toadman 3: The Scoop</title><content type='html'>I haven't coded anything yet, but I've been working on a script for the game. Unlike the last two &lt;a href="http://www.deltacode.net/downloads.php"&gt;Toadman games&lt;/a&gt;, this one will have a single player story mode. I also plan to include the classic split-screen mode for two player battles.&lt;br /&gt;&lt;br /&gt;The graphics will be kept simple. In fact, they'll look just like the last Toadman games, but with a bit more depth and floor tiles as well. There won't be a black vast of emptiness to represent the ground.&lt;br /&gt;&lt;br /&gt;Single player mode will be puzzle-like with obstacles and enemies along the way. Simple cut-scenes will appear between levels to reward the player and progress the story.&lt;br /&gt;&lt;br /&gt;I haven't thought the weapons through yet. I want to keep everything from the previous Toadman games at the very least. One addition will probably be weapon pickups or weapon swap points, where you drop your current weapon for a more powerful one. Actually, I think &lt;a href="http://www.deltacode.net/downloads.php"&gt;Toadman 2&lt;/a&gt; had that feature, but just for the short-range weapons and not the guns. This will be for guns as well, so you'll have that added variety to the gameplay too.&lt;br /&gt;&lt;br /&gt;There is more to come! I want to finish this game by May or June. I'll post news and screen shots as the project progresses, and maybe even a beta version for testing. Stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-256665560413332271?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/256665560413332271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/03/toadman-3-scoop.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/256665560413332271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/256665560413332271'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/03/toadman-3-scoop.html' title='Toadman 3: The Scoop'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-7032558261415576289</id><published>2009-02-20T22:00:00.000-07:00</published><updated>2009-07-26T22:02:20.242-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firebox'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Firebox It Up!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7HFSAjDS4Nc/SZ3tt3rzpPI/AAAAAAAAADQ/_qO5SmXjT88/s1600-h/firebox320.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_7HFSAjDS4Nc/SZ3tt3rzpPI/AAAAAAAAADQ/_qO5SmXjT88/s400/firebox320.gif" alt="" id="BLOGGER_PHOTO_ID_5304657308409898226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a side-project of mine. I've always wanted a tile-editor I can use over for different projects. That's what this project is going to be. It's called Firebox. If you haven't guessed it already, the name is a play off of &lt;a href="http://www.firefox.com/"&gt;Firefox&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Most projects have very distinct level formats, so in the past I've had to build a new tile editor for each project that can support the complexities of the level format. Many games have more to their maps than just tiles. Things such as scripts, tags, and touch-plates add complexity to level maps. The goal of this project is to make a scalable tile editor that I can reuse for any number of projects.&lt;br /&gt;&lt;br /&gt;I'm not quite sure yet how to make it support multiple projects.  One idea I have is to make it very basic and flexible, so one can take the source and easily add modifications for his or her project rather than building a new one from the ground up.&lt;br /&gt;&lt;br /&gt;Currently, Firebox supports multiple resolutions. You can load bitmap files or binary sprite files into the tile selector window. It also supports multiple map layers.&lt;br /&gt;&lt;br /&gt;Much of the options are hard coded, like resolution and map size. In the future, I will create a menu to adjust these options, or at the very least load them in from a text file.&lt;br /&gt;&lt;br /&gt;I've been using this for my &lt;a href="http://deltacode.blogspot.com/2009/01/so-what-is-big-project.html"&gt;3D raycasting game&lt;/a&gt; and will be using it for &lt;a href="http://deltacode.blogspot.com/2009/02/toadman-3.html"&gt;Toadman 3&lt;/a&gt;. I need to make some adjustments to it. I made it a little to specialized for ORE, such as adding tags (the numbers on top of some of the tiles) that identify dynamic objects. So I'll need to run through my code and &lt;a href="http://deltacode.blogspot.com/2009/01/project-upkeep.html"&gt;clean things up&lt;/a&gt; so I can also use it for Toadman 3 when the time comes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-7032558261415576289?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/7032558261415576289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/02/firebox-it-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/7032558261415576289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/7032558261415576289'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/02/firebox-it-up.html' title='Firebox It Up!'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7HFSAjDS4Nc/SZ3tt3rzpPI/AAAAAAAAADQ/_qO5SmXjT88/s72-c/firebox320.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-4123964505288470173</id><published>2009-02-18T22:00:00.000-07:00</published><updated>2009-07-26T22:02:20.242-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='deltacode'/><category scheme='http://www.blogger.com/atom/ns#' term='website'/><category scheme='http://www.blogger.com/atom/ns#' term='update'/><title type='text'>Delta Code's New Home</title><content type='html'>Delta Code is now located at &lt;a href="http://www.deltacode.net"&gt;http://www.deltacode.net&lt;/a&gt;. I've been waiting for this domain for some time. I wanted to buy it back in 2007, but one of those domain scalpers got to it before I did. I thought I lost my chance at it forever. I lucked out though, because it apparently expired and was up for grabs, so I purchased the domain.&lt;br /&gt;&lt;br /&gt;YES!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-4123964505288470173?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/4123964505288470173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/02/delta-code-new-home.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/4123964505288470173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/4123964505288470173'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/02/delta-code-new-home.html' title='Delta Code&amp;#39;s New Home'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-6684245187278938671</id><published>2009-02-17T21:21:00.000-07:00</published><updated>2009-07-26T22:02:20.242-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='toadman'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>A New Toadman Game</title><content type='html'>I've decided on making another &lt;a href="http://www.deltacode.net/downloads.php"&gt;Toadman&lt;/a&gt; game. I've been planning some things out on paper. I want to keep things as simple as possible for the most part, and I don't want this project to be plagued with feature creep.&lt;br /&gt;&lt;br /&gt;It may be as simplistic as &lt;a href="http://www.deltacode.net/downloads.php"&gt;Toadman 2&lt;/a&gt; with 8x8 sprites, or I might do something a little different. A lot of it will depend on how good my drawing ability is and how much time I want to invest in graphics.&lt;br /&gt;&lt;br /&gt;I'll post updates of the project as it moves along.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-6684245187278938671?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/6684245187278938671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/02/new-toadman-game.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/6684245187278938671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/6684245187278938671'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/02/new-toadman-game.html' title='A New Toadman Game'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-8510808063205243940</id><published>2009-01-29T18:00:00.000-07:00</published><updated>2009-07-26T22:02:20.243-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>Project Upkeep</title><content type='html'>We all do it, or have done it in the past. We work on a project, and as it grows bigger, it begins to look ugly. You have to remember where everything is and exactly how everything works. And if you leave your project for even a week and come back, you're lost in your own code and have to re-remember how it all works. Your project becomes a nightmare to work with.&lt;br /&gt;&lt;br /&gt;This often comes with lack of planning, feature creep, or lazy coding. But for many of us hobby programmers, who like to just jump right into coding, how do we deal with these issues as our project grows bigger?&lt;br /&gt;&lt;br /&gt;Every so often, I take the time to do the things that I've put off, such as adding comments and organizing my code. I'm not always in the mood to write clean code. But I make sure, before everything turns into spaghetti, that I take some time to clean things up.&lt;br /&gt;&lt;br /&gt;Some days I don't feel like coding, but I still feel like getting something done. So instead of coding, I work on commenting my project. I'll add comments, or reword existing comments to make them understandable for my future self. I'll also spend the time to think about how I can make my code more organized, simplified, and structured. It doesn't take too long and it is time well spent.&lt;br /&gt;&lt;br /&gt;Don't be discouraged into thinking that it's a waste of time. You'll be more productive working with cleaner code, and it makes it that much easier to come back to if you ever put your project on hold. And as your project grows larger, it'll be much easier to manage.&lt;br /&gt;&lt;br /&gt;Also, try to break things down into simpler components and processes when things start to become large and complicated, but not before things becomes so large and complicated that it becomes a full-time job. It's similar to taking a few minutes to vacuum the living room every week as opposed to taking a whole day to clean living room every six months. Though, when it comes to coding, it could take days, weeks or months to clean up after six months of lazy coding. It might even be so discouraging that you decide it would just be easier to start the project over.&lt;br /&gt;&lt;br /&gt;I've been able to come back to projects a year later and, without any problems, resume where I left off simply because I did this maintenance every once in a while. It's a great feeling knowing that all the time and effort you put into a past project wasn't in vain, so that you don't have to scrap your old project and start over.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-8510808063205243940?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/8510808063205243940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/01/project-upkeep.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/8510808063205243940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/8510808063205243940'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/01/project-upkeep.html' title='Project Upkeep'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-3491614971125980487</id><published>2009-01-26T11:40:00.000-07:00</published><updated>2009-07-26T22:02:20.243-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='article'/><title type='text'>Backup your code! Tips for avoiding catastrophe.</title><content type='html'>There have been a number of times in the past where I've lost projects, code, and precious time to power-outages, computer crashes, stupid decisions, and other annoying miscellaneous phenomena. I'll provide some tips so you can have peace of mind in knowing that you always have a recent version of your code saved in the event that any of these things happen.&lt;br /&gt;&lt;br /&gt;The first thing to get in the habit of is to always save your code. I almost always hit CTRL+S every time I enter a new line of code. If you're coding hours between saves then you need to get into the habit of saving more frequently. Even an hour's worth of coding is a bummer to lose.&lt;br /&gt;&lt;br /&gt;If you're making changes to your code that you don't want to save, say if you're trying something new or debugging, backup your project folder so you can effortlessly go back to where you left off after wards, rather than manually undoing all your code changes.&lt;br /&gt;&lt;br /&gt;Always make backups of your project. The more frequently the better. I'm pretty lazy when it comes to this, but when I reach a milestone or make some excellent progress, I'll copy my project folder, zip it, and save a copy on my hard-drive, on my web-server, and I'll email a copy to myself. You don't want your backups all in one place. Make sure that you have at least two places to store your backups, so in case one place dies, you still have your backups at another location.&lt;br /&gt;&lt;br /&gt;Backup your project before going off on a tangent. If you want to try something that diverts your project in a different direction, like recoding the AI or experimenting with different physics, make sure you backup your project before proceeding. I've made the mistake of not doing this. I either didn't like the new feature or it made my project unstable. And I found it very difficult to revert back to where I was, or I just gave up on the project.&lt;br /&gt;&lt;br /&gt;For example, I wanted to recode the enemy system for a game I was working on in the past. The enemy data was stored in an array, and I wanted to recode it all as a linked-list, to make it easy and efficient to add and delete enemies. After I did this, I had a whole slug of new bugs and I just wanted to go back to where I was before. Unfortunately, the last backup I had was of a very old version that I didn't want to go back to.&lt;br /&gt;&lt;br /&gt;Last tip, but very important: make sure your backups can compile! It's no fun going back to a project that won't run. Maybe back when you made the backup you knew, but now you're stumped and have to spend hours figuring out how to get the damn thing to run. This also includes stripping out all the absolute paths in your code and replacing them with relative paths, so your project will run when it's in a different location. You want to do this work before you make the backup, when you know where everything is, rather than spending time after you've forgotten most of your code.&lt;br /&gt;&lt;br /&gt;I've learned these lessons the hard way. Learn from my mistakes and hopefully your projects will be successful, or at least completed for that matter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-3491614971125980487?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/3491614971125980487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/01/backup-your-code-tips-for-avoiding.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/3491614971125980487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/3491614971125980487'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/01/backup-your-code-tips-for-avoiding.html' title='Backup your code! Tips for avoiding catastrophe.'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-1993199151670727557</id><published>2009-01-23T20:03:00.000-07:00</published><updated>2009-07-26T22:02:20.243-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Path-Finding Woes</title><content type='html'>I've been developing a path-finding module to use in my games. The idea is to place nodes on a map, add those nodes to the module, and interface with the module anytime I want to find the closest path between two nodes.&lt;br /&gt;&lt;br /&gt;Nodes are just geometric points within my map that are placed strategically as to allow enemies to find their way around the map without running into walls. Instead of going off the raw map data, they use these nodes as guidelines to find their way around. This is much like finding your way around a maze blindfolded by following a rope that connects to other ropes. The ropes may break off into many paths, but one path on the rope leads to the end.&lt;br /&gt;&lt;br /&gt;I coded a recursion algorithm to find all the possible paths between node A and node B. Then it would return the next node on the closest path to B (or A, depending which way you are going).&lt;br /&gt;&lt;br /&gt;After I coded it, I tested it and it worked alright. So I added more nodes to my map and adjusted my algorithm a bit. Then it just froze my program whenever I called the path-finding code. I've been stumped on this for a couple weeks. I couldn't find anything wrong with my code!&lt;br /&gt;&lt;br /&gt;Then I finally found the answer. Turns out that it's just way too slow to find all the possible paths, depending on how many nodes and possible paths there are.&lt;br /&gt;&lt;br /&gt;I became suspicious of this and did a test. I ran my program and I walked away for a bit, made a sandwich, and came back. And when I returned, the algorithm had finished! It wasn't broken, just slow.&lt;br /&gt;&lt;br /&gt;There are a few things I can do to remedy this. I just need to make sure that I keep my node count down and try to keep my paths as linear as possible, to reduce the number of total possible paths. That way it should keep up to speed. Or I can just try another approach to path-finding. We'll see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-1993199151670727557?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/1993199151670727557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/01/path-finding-woes.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/1993199151670727557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/1993199151670727557'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/01/path-finding-woes.html' title='Path-Finding Woes'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-5935634157021047238</id><published>2009-01-17T21:17:00.000-07:00</published><updated>2009-07-26T22:02:20.243-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='catloaf'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Catloaf 5200: What happened to it?</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.deltacode.net/screenshots/catloaf5200.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://www.deltacode.net/screenshots/catloaf5200.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Screenshot from the unreleased Catloaf 5200.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Not too long ago, I announced that I was working on a sequel to &lt;a href="http://www.deltacode.net/downloads.php"&gt;Catloaf 2600&lt;/a&gt; entitled, Catloaf 5200. I even put up a page to promote the game &lt;a href="http://www.deltacode.net/catloaf/index.html"&gt;here&lt;/a&gt; with a release date of August 8, 2008. As you can see, that date as long since passed. So what happened?&lt;br /&gt;&lt;br /&gt;Catloaf 2600 was a simple ascii game consisting of common, easy-to-program puzzles. The puzzles were ordinary obstacles such as unlocking doors, trap-avoidance, memorization, and Sokoban-style block pushing.&lt;br /&gt;&lt;br /&gt;The game was a fun project. Why not make another? So I started on another, to be called Catloaf 5200. If you haven't figured it out yet, the numbering is a reference to the old Atari consoles of the 80s.&lt;br /&gt;&lt;br /&gt;Though when I got into programming 5200, I hit a wall. I wanted to introduce fresh puzzles, so that 5200 would stand out on its own from its predecessor rather than being just an extension of it.&lt;br /&gt;&lt;br /&gt;I came up with a couple ideas, but not enough to fill the map. So that's what halted the project. I guess I'll have to make some compromises to finish the game, but right now it's currently on hiatus until I get some inspiration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-5935634157021047238?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/5935634157021047238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/01/catloaf-5200-what-happened-to-it.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/5935634157021047238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/5935634157021047238'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/01/catloaf-5200-what-happened-to-it.html' title='Catloaf 5200: What happened to it?'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-3378742470690664754</id><published>2009-01-14T20:34:00.000-07:00</published><updated>2009-07-26T22:02:20.243-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='action'/><category scheme='http://www.blogger.com/atom/ns#' term='filler'/><category scheme='http://www.blogger.com/atom/ns#' term='no one cares'/><category scheme='http://www.blogger.com/atom/ns#' term='fluff'/><title type='text'>Blew A Tire</title><content type='html'>Today's Wednesday the 14th. Two days ago on Monday, I was driving on the freeway when I blew a tire, the passenger-rear tire. It was a somewhat new tire and still had much tread left on it. So I'm glad that I purchased the road-hazard warranty for it, and I got the new tire for free.&lt;br /&gt;&lt;br /&gt;I never blew a tire before, so at first I thought there was an earthquake happening. Then I saw the smoke in the rear-view mirror. Unfortunately I was on my way to class and had some assignments due in an hour that I didn't yet turn it. So I pulled into a parking lot and jogged down to the nearest hotel. They were nice enough to let my use their wireless to turn in my assignments. Phew! Close call.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-3378742470690664754?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/3378742470690664754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/01/blew-tire.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/3378742470690664754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/3378742470690664754'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/01/blew-tire.html' title='Blew A Tire'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-4627300058608349601</id><published>2009-01-10T19:00:00.000-07:00</published><updated>2009-07-26T22:02:20.244-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='filler'/><category scheme='http://www.blogger.com/atom/ns#' term='no one cares'/><category scheme='http://www.blogger.com/atom/ns#' term='fluff'/><title type='text'>Tomorrow's my birthday!</title><content type='html'>I turn 24 tomorrow, and what better way to celebrate my turning 24 than to watch the season premiere of...you guessed it, 24? Heck yes! Maybe I'll buy some cake too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-4627300058608349601?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/4627300058608349601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/01/tomorrow-my-birthday.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/4627300058608349601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/4627300058608349601'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/01/tomorrow-my-birthday.html' title='Tomorrow&amp;#39;s my birthday!'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-2488478986756769802</id><published>2009-01-09T19:57:00.000-07:00</published><updated>2009-07-26T22:02:20.244-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ORE'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='raycasting'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>So what is the "big" project?</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7HFSAjDS4Nc/SWgPfA-1QTI/AAAAAAAAABk/gNEbm27qic4/s1600-h/sor_12-09-09a.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_7HFSAjDS4Nc/SWgPfA-1QTI/AAAAAAAAABk/gNEbm27qic4/s320/sor_12-09-09a.gif" alt="" id="BLOGGER_PHOTO_ID_5289494787860545842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;It's a first-person shooter. It makes use of my 3D software renderer: an old school raycasting engine. Not raytracing, but raycasting. It's all semantics really, but technically there's a big difference between the two. Raycasting casts rays on a 2D plane, whereas raytracing casts thousands of more rays on a 3D plane. Raycasting is like a stripped down version of raytracing, giving it a major speed boost, but the downside is that the world is only 2D but tricked to make it look as those you're in a 3D world (you can't truly look up or down). Old games like &lt;a href="http://www.idsoftware.com/games/wolfenstein/wolf3d/"&gt;Wolfenstein 3D&lt;/a&gt; used this technique.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;So you might be asking yourself, "Why is this looney using an outdated style of graphics rendering?" Well, I could spend my time on a true 3D polygon rendering engine, but I was amazed by raycasters when I first read about them and saw some demos. I've always wanted to make a game using something like this. So far I've yet to make one. So really I'm just trying to finish something I started many years ago when I began researching this technology.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_7HFSAjDS4Nc/SWgRuu6fb1I/AAAAAAAAAB0/WAdYMAC5k8M/s1600-h/sor_12-09-09b.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 240px; height: 180px;" src="http://4.bp.blogspot.com/_7HFSAjDS4Nc/SWgRuu6fb1I/AAAAAAAAAB0/WAdYMAC5k8M/s320/sor_12-09-09b.gif" alt="" id="BLOGGER_PHOTO_ID_5289497256911662930" border="0" /&gt;&lt;/a&gt;Here's another screenshot from the game. Here I am shooting plasma balls at a goblin-like creature.&lt;br /&gt;&lt;br /&gt;This raycasting engine supports 24bit true color mode, textured walls and floors, animation, sprites, semi-transparency, and some other cool stuff. Everything, from the game to the engine, is being programmed in &lt;a href="http://www.freebasic.net/"&gt;FreeBasic&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I am programming and organizing this engine to be easy to use so anyone can download it and use it for their game if they wish.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-2488478986756769802?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/2488478986756769802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/01/so-what-is-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/2488478986756769802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/2488478986756769802'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/01/so-what-is-project.html' title='So what is the &amp;quot;big&amp;quot; project?'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_7HFSAjDS4Nc/SWgPfA-1QTI/AAAAAAAAABk/gNEbm27qic4/s72-c/sor_12-09-09a.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4918357436172666249.post-5865373823934196629</id><published>2009-01-08T21:11:00.000-07:00</published><updated>2009-07-26T22:02:20.244-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Game Programming, What's next for me?</title><content type='html'>It's been over a year since I finished a game. I've been working on something new on and off for a bit now. It's a big project, so I might take a break from it to take a month or two to make something simple. That way I can add something to my catalog for 2009.&lt;br /&gt;&lt;br /&gt;Some ideas on the list:&lt;br /&gt;Another sequel to the &lt;a href="http://www.deltacode.net/downloads.php"&gt;Toadman&lt;/a&gt; series.&lt;br /&gt;A sequel to &lt;a href="http://www.deltacode.net/downloads.php"&gt;Catloaf 2600&lt;/a&gt;.&lt;br /&gt;Something new and original.&lt;br /&gt;&lt;br /&gt;Either way, I have to clean up the code on my current project so I can come back to it without feeling lost.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4918357436172666249-5865373823934196629?l=deltacode.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://deltacode.blogspot.com/feeds/5865373823934196629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://deltacode.blogspot.com/2009/01/game-programming-what-next-for-me.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/5865373823934196629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4918357436172666249/posts/default/5865373823934196629'/><link rel='alternate' type='text/html' href='http://deltacode.blogspot.com/2009/01/game-programming-what-next-for-me.html' title='Game Programming, What&amp;#39;s next for me?'/><author><name>Joe</name><uri>http://www.blogger.com/profile/14674513655730079709</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
