<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Touch Arcade &#187; Developer Corner</title>
	<atom:link href="http://toucharcade.com/category/developer-corner/feed/" rel="self" type="application/rss+xml" />
	<link>http://toucharcade.com</link>
	<description>... keeping in touch with the latest in iPhone gaming</description>
	<lastBuildDate>Sat, 21 Nov 2009 15:03:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Christian Whitehead On &#039;Sonic CD&#039; and His Retro Engine</title>
		<link>http://toucharcade.com/2009/07/29/christian-whitehead-on-sonic-cd-and-his-retro-engine/</link>
		<comments>http://toucharcade.com/2009/07/29/christian-whitehead-on-sonic-cd-and-his-retro-engine/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 04:42:41 +0000</pubDate>
		<dc:creator>Eli Hodapp</dc:creator>
				<category><![CDATA[Action]]></category>
		<category><![CDATA[Adventure]]></category>
		<category><![CDATA[Developer Corner]]></category>
		<category><![CDATA[Interview]]></category>
		<category><![CDATA[Platform]]></category>
		<category><![CDATA[Upcoming Games]]></category>
		<category><![CDATA[iPhone games]]></category>
		<category><![CDATA[iPod touch games]]></category>

		<guid isPermaLink="false">http://toucharcade.com/?p=14762</guid>
		<description><![CDATA[This certainly has been an interesting last couple of days, between Sega&#039;s challenge to gamers to come up with what game to make next and then Christian Whitehead&#039;s surprise response unveiling a remarkable Sonic CD proof of concept port created with his own Retro Engine Development Kit.
Eager to know more about both Sonic CD and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://toucharcade.com/wp-content/uploads/2009/07/sonic_cd_title.gif"><img src="http://toucharcade.com/wp-content/uploads/2009/07/sonic_cd_title-300x210.gif" alt="sonic_cd_title" title="sonic_cd_title" width="300" height="210" class="alignright size-medium wp-image-14769" /></a>This certainly has been an interesting last couple of days, between <a href="http://toucharcade.com/2009/07/27/sega-asks-what-should-they-bring-to-the-iphone-next/">Sega&#039;s challenge to gamers</a> to come up with what game to make next and then <a href="http://toucharcade.com/2009/07/28/sonic-cd/">Christian Whitehead&#039;s surprise response</a> unveiling a remarkable <em>Sonic CD</em> proof of concept port created with his own Retro Engine Development Kit.</p>
<p>Eager to know more about both <em>Sonic CD</em> and the <a href="http://www.christianwhitehead.com/soniccd/view.html">iPhone Retro Engine and Retro Engine Development Kit</a> (or RDSK), we fired off a series of questions. The interview is totally worth a read, but beware, it will only make you want <em>Sonic CD</em> and other games produced by the RDSK even more.</p>
<hr width="50%">
<p><strong>Eli Hodapp</strong>: How flexible is the RSDK? Is it tied to a game like <em>Sonic</em> or would something like <em>Castlevania</em> with RPG elements be possible?</p>
<p><strong>Christian Whitehead</strong>: All of the actual <em>Sonic CD</em> logic is script driven, so the Retro Engine is more than capable of different styles of gameplay. A game like <em>Castlevania</em> would definitely be possible, since the engine excels at handling 2D side scrollers. Stuff like top down RPG&#039;s would be fine too, I wouldn&#039;t count it on doing something like a full on 3D racing game though!</p>
<p><span id="more-14762"></span>
<p align="center"><a href="http://toucharcade.com/wp-content/uploads/2009/07/rsdk1.png"><img src="http://toucharcade.com/wp-content/uploads/2009/07/rsdk1-1024x570.png" alt="rsdk1" title="rsdk1" width="500" class="alignright size-large wp-image-14771" /></a></p>
<p><strong>EH</strong>: What is involved in building a game in the RDSK? Does the it somehow interpret the ROM file to generate levels and sprites automatically? Can you tell us how closely your RSDK relates to the original ROM code? </p>
<p><strong>CW</strong>: Using clean reverse engineering, I&#039;ve been able to extract the level layouts and sprites in a pretty automated fashion. The formats in Sonic CD (especially the PC version) were pretty easy to deduce. I haven&#039;t touched the original ROM code though&#8230; I don&#039;t have that level of understanding of Motorola 68k assembly.</p>
<p><strong>EH</strong>: How much research did you do on the <em>Sonic CD</em> game? The physics in your demo look spot on, what was the trick behind that? </p>
<p><strong>CW</strong>: Quite a lot to be honest, it owes much to my many years as a Sonic fan. If you go to <a href="http://www.sonicretro.org/">http://www.sonicretro.org/</a> you&#039;ll see a community that&#039;s very interested in dissecting the original games. That&#039;s why the demo was made in a short time, I know Sonic inside out, and so have a very clear understanding as to how it can be recreated. It involved a lot of frame by frame analysis of the game running in an emulator to observe how the game (and all its objects) behaves in detail. I could go on and on, but y&#039;know&#8230; trade secrets? <img src='http://toucharcade.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><a href="http://toucharcade.com/wp-content/uploads/2009/07/rsdk2.png"><img src="http://toucharcade.com/wp-content/uploads/2009/07/rsdk2-300x167.png" alt="rsdk2" title="rsdk2" width="300" height="167" class="alignleft size-medium wp-image-14773" /></a><strong>EH</strong>: On your site you mention putting together the Sonic CD proof of concept in a month. Does that count development of the Retro Engine and RSDK, if not, how long did those take you to do? </p>
<p><strong>CW</strong>: Officially, the Retro Engine and RSDK have been in development since March 2008. However, the iPhone version of the engine actually only took a week to set up!</p>
<p><strong>EH</strong>: During your month long process of porting what you have so far of Sonic CD, what was your average work day like? </p>
<p><strong>CW</strong>: I&#039;m a freelancer and a musician too, so it was sort of in between a lot of this stuff. Lot&#039;s of late nights, and giving up partying! But yeah, it certainly wasn&#039;t some insane crunch period you hear about at some of the big name studios.</p>
<p><strong>EH</strong>: What is the work flow of starting a new game in the RSDK? Say you wanted to remake <em>Gunstar Heroes</em>, what would be involved?</p>
<p><strong>CW</strong>: To create a game like <em>Gunstar Heroes</em>, or to literally port it? Obviously a literal port requires a degree of reverse engineering to find out how stuff like level layouts and sprites can be extracted first. But creating a new game in the style of <em>Gunstar Heroes</em> would just be a normal game development process. One thing I want to make very clear: The Retro Engine and RSDK are not magic, it will NOT instantly port a game for you (or toast your bread either). All it does is provide a fast and efficient 2D framework, which has features very similar to what were present in many 2D games of the &#039;golden&#039; 16 and early 32 bit era along with a nice editors and powerful scripting system. It takes the hassle out of having to set up API&#039;s, you can just get down to business.</p>
<p align="center"><a href="http://toucharcade.com/wp-content/uploads/2009/07/rsdk3.png"><img src="http://toucharcade.com/wp-content/uploads/2009/07/rsdk3-1024x570.png" alt="rsdk3" title="rsdk3" width="500" class="aligncenter size-large wp-image-14775" /></a></p>
<p><strong>EH</strong>: What are your plans for the future with the RSDK? Has Sega been receptive to your <em>Sonic CD</em> demo? Ideally would you want to sell them the RSDK technology or just a perfectly ported copy of the game?</p>
<p><strong>CW</strong>: Personally, I&#039;m only marketing end product <em>Sonic CD</em> to SEGA, not the actual engine. I&#039;m proud of my work and it&#039;d be a shame to let it go and not be able to develop it further for my own future endeavors. The pitch was made to Sega about 2 weeks ago, and after an initial response, I hadn&#039;t heard back until they made that blog post. That&#039;s what made me decide to show it publicly, they asked what to port and I wanted them to see a clear answer.</p>
<p><a href="http://toucharcade.com/wp-content/uploads/2009/07/ddici_01.gif"><img src="http://toucharcade.com/wp-content/uploads/2009/07/ddici_01-300x187.gif" alt="ddici_01" title="ddici_01" width="300" height="187" class="alignright size-medium wp-image-14778" /></a><strong>EH</strong>: In 1990, John Carmack and Tom Hall built a similar demonstration based on their own game engine running the first level of <em>Super Mario 3</em> titled &#034;<a href="http://www.youtube.com/watch?v=cj4HJkeQSg0"><em>Dangerous Dave in Copyright Infringement</em></a>.&#034; Nintendo politely refused their offers to make a <em>Super Mario</em> port for the PC and they went on to use that same engine for <em><a href="http://en.wikipedia.org/wiki/Commander_Keen">Commander Keen</a></em>. Do you have any similar contingency plans if Sega gives you the cold shoulder and/or sends you a cease and desist?</p>
<p><strong>CW</strong>: Gary the Porcupine anyone?&#8230; Seriously though, I do have my own game ideas that I&#039;ll be pursuing if this all folds up. I really like the iPhone as a gaming platform, so it wouldn&#039;t be the last you&#039;d hear from me.</p>
<hr width="50%">
<p>And there you have it! Sounds like amazing technology, and I can&#039;t wait to play a game built with it whether it&#039;s <em>Sonic CD</em> or some other game. Since we first posted about it, their <a href="http://blogs.sega.com/usa/2009/07/27/community-brainstorm-we-want-your-iphone-game-ideas/">comments</a> have been flooded by people demanding <em>Sonic CD</em>. If you want to see Sega explore the Retro Engine instead of their current barely-playable emulator, let them know.</p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ftoucharcade.com%2F2009%2F07%2F29%2Fchristian-whitehead-on-sonic-cd-and-his-retro-engine%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ftoucharcade.com%2F2009%2F07%2F29%2Fchristian-whitehead-on-sonic-cd-and-his-retro-engine%2F" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://toucharcade.com/2009/07/29/christian-whitehead-on-sonic-cd-and-his-retro-engine/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Dev Corner: Mark Andersson on Freeverse&#039;s Flick Baseball</title>
		<link>http://toucharcade.com/2009/03/06/dev-corner-mark-andersson-on-freeverses-flick-baseball/</link>
		<comments>http://toucharcade.com/2009/03/06/dev-corner-mark-andersson-on-freeverses-flick-baseball/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 22:02:06 +0000</pubDate>
		<dc:creator>arn</dc:creator>
				<category><![CDATA[Developer Corner]]></category>
		<category><![CDATA[Exclusives]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[Upcoming Games]]></category>

		<guid isPermaLink="false">http://toucharcade.com/?p=1992</guid>
		<description><![CDATA[This is a developer guest post written by Freeverse&#039;s Mark Andersson and details some of the design challenges in Freeverse&#039;s upcoming Flick Baseball game.  While the content is aimed more at developers, it also provides fans an early peek at this upcoming game.
My name is Mark Andersson, and I have been working with Freeverse [...]]]></description>
			<content:encoded><![CDATA[<p><em>This is a developer guest post written by Freeverse&#039;s Mark Andersson and details some of the design challenges in Freeverse&#039;s upcoming <em>Flick Baseball</em> game.  While the content is aimed more at developers, it also provides fans an early peek at this upcoming game.</em></p>
<p><a href='http://toucharcade.com/wp-content/uploads/2009/03/markandersson.jpg'><img src="http://toucharcade.com/wp-content/uploads/2009/03/markandersson.jpg" alt="" title="markandersson" width="256" height="256" class="alignright size-medium wp-image-1994" /></a></a>My name is Mark Andersson, and I have been working with <a href="http://www.freeverse.com">Freeverse</a> for over a decade. I was the Lead Programmer for <em>Burning Monkey Puzzle Lab</em>, <em>Burning Monkey Casino</em>, <em>Wingnuts</em>, <em>Wingnuts 2: Raina&#039;s Revenge</em> and <em>Neon Tango</em>. Most recently I&#039;ve been working on games for the iPhone, and developing versions of <em>Burning Monkey Puzzle Lab</em> and <em>Burning Monkey Casino</em>. </p>
<p>In that effort big chunks of code came over from the original Mac versions largely unchanged, making development on the iPhone that much easier. You really can consider the iPhone platform to be like a tiny Mac, which is great for old-school Mac developers like me and the other Freeverse guys. The real effort goes into rethinking the interface for the smaller screen and the innovative control methods, and of course maximizing performance within the limitations of the hardware.</p>
<p><center><a href='http://toucharcade.com/wp-content/uploads/2009/03/image-3-1.png'><img src="http://toucharcade.com/wp-content/uploads/2009/03/image-3-1.png" alt="" title="image-3-1" width="489" height="318" class="aligncenter size-full wp-image-1993" /></a><br />
<small>early development shot of Flick Baseball</small></center></p>
<p>My current project for Freeverse is an original, ground-up, iPhone game and the next title in the Flick Sports series: <em>Flick Baseball</em>. So when you&#039;re not bowling or fishing you will be able to enjoy America&#039;s favorite pastime in your pocket! (Hmmm&#8230; that didn&#039;t come out quite right)&#8230;  In this post I hope to give you some behind-the-scenes peeks at the game during development and touch on some hopefully interesting aspects of the process.</p>
<p><span id="more-1992"></span><b>Scope of Gameplay</b></p>
<p>The first design challenge in <em>Flick Baseball</em> was trying to determine the right mix of game depth and complexity while keeping intuitive mechanics and &#034;pick-up and play&#034; appeal. It&#039;s a tough problem, as baseball is a very intricate sport and that&#039;s part of its appeal. We think we&#039;ve charted a course that gives the player the maximum freedom in choosing how they prefer to play, but I&#039;m sure we&#039;ll be tweaking and making adjustments well into the testing phase.</p>
<p><em>Flick Baseball</em> will begin with the ability to pick a pre-made team or to customize the names of the players, edit their stats and even design their uniforms. You can then choose to play a single game against any other team, play an entire season, or just skip the hard work of the regular season and enter the post-season race with your team in the wild card slot. If you go through the regular season you&#039;ll be able to speed things up by skipping any games you feel like and letting the computer simulate the outcome.</p>
<p>We needed player-controlled batting, of course, but we also wanted to include pitching with some control over the pitch types. Your players will also have some individual statistics which may make them more able to get a hit or a home run, and we wanted to keep an element of strategic use of your lineup to try to get the best outcome possible. For example, if your pitcher gets up to bat you are likely not going to swing for the fences and instead may want to try a sacrifice bunt instead &#8212; especially, if you have a runner on base and an out to spare.</p>
<p>What we did not want to do is include the ability to control absolutely every aspect of the game, which would slowg down the action and sacrifice fun for realism. So, stealing bases, controlling base running and dictating the movement and action of the fielders was dropped. With only touch controls and limited screen real estate, keeping out clutter and unnecessary complexity is a top priority.</p>
<p>While I played a few baseball games, including some really awful ones (yes, Ninja Baseball Bat Man, I&#039;m looking at you), I wanted to avoid playing every game available out there because I did not want to subconsciously copy from them. Also, their input methods were universally very different from what the iPhone offers and implementing D-pads and virtual buttons on the device screen was not an option we wanted to explore.</p>
<p><b>Prototyping</b></p>
<p>During initial prototyping, I worked on the basic setup and engine and used 3D animation built for <em>Moto Chaser</em> and <em>Flick Bowling</em>. I started out by implementing batting practice to get a feel for animation, timing and ball simulation.</p>
<p><center><a href='http://toucharcade.com/wp-content/uploads/2009/03/flick-baseball.jpg'><img src="http://toucharcade.com/wp-content/uploads/2009/03/flick-baseball.jpg" alt="" title="flick-baseball" width="500" height="263" class="aligncenter size-full wp-image-1995" /></a></center></p>
<p><b>The Sequencer</b></p>
<p>We decided early on that we wanted as many CPU cycles as possible dedicated to graphics and sound processing. So, we are not going to take all nine fielders and give them each complex artificial software brains so they can work intelligently as a team. Instead, we realized that you can figure out a set of possible realistic outcomes when a hit occurs. For example, one of these could be a line drive that goes over the shortstop&#039;s head but drops down before the left fielder can get it, and results in all base runners advancing a single base. Others are even simpler, such as foul balls and home runs.</p>
<p>So with a large enough set of these outcomes you would be able to put together a realistic game. You will be able to pitch or bat and your inputs will determine the possible set of outcomes, but once the computer figures out how the play will proceed, a sequence of actions will take place that has been predetermined to some extent. However, there is still a real time simulation of the ball motion and the fielder actions. So it&#039;s not a movie clip like in Dragon Slayer.</p>
<p>The way this works is that there is a sequencer that can be issued commands. These can be stacked up and then the sequencer will go through them and take the appropriate action, which is really delegating the command to the various independent controllers for the ball, the fielders, the runners and the camera.</p>
<p>So the sequence for an easy grounder to the shortstop who throws the ball to first to get an out might consist of:</p>
<p>1. Set the initial velocity and angle of the ball to go towards the shortstop but roll along the ground.<br />
2. Tell the short stop to move to intercept the ball and stop it when it gets to him.<br />
3. Tell the first baseman to start moving towards first base.<br />
4. Wait until the short stop has the ball.<br />
5. Tell the short stop to throw the ball to first base.<br />
6. Set the velocity of the ball so that it arrives at catching height at first base.<br />
7. Tell the first baseman to catch the ball.<br />
8. Wait until the first baseman catches the ball to report the outcome and end the play.</p>
<p>Within this framework I ended up adding other niceties, such as being able to set a delay to wait before the next command is processed, as well as telling fielders not directly involved in a play to rotate to face the ball. If the command is not a time delay or waiting for a fielder, they are processed and removed from the queue during the same animation frame.</p>
<p>I have also been implementing a number of camera commands, such as moving the camera to another location, either instantly to simulate a cut to another camera or gradually as if the camera were on a giant moving boom. There are also commands to point the camera at any fielder or base or follow the ball and change the field of view to simulate zooming.</p>
<p>This can get complicated quickly if you want to be able to control everything, but the most important part is to make sure that things from the camera point of view look good and you can see the action.</p>
<p>In order to perform the simulation of the sequences in a controlled environment, I am working on the various controller objects using g++ in Unix and staying away from Xcode for the time being. I need to make sure the outcomes are working properly before trying to debug other aspects of the game on the device. So, for now I am simulating the game frame by frame and outputting visualizing objects in POV-Ray files. I am moving the camera around as it would be on the real device so I can get a sense for how things might look and how the timing is working.</p>
<p>In the following movie example, using little monoliths for the players, the batter hits the ball towards the shortstop, who fields the grounder, lobs the ball to the second baseman who then turns and quickly throws it to first base for a double play. There are about 30 sequencer commands right now to implement this sequence, although there are few extra ones to simulate a pitch right now. About a third are dedicated to camera movements and timing.</p>
<p><center><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/mJyJ7UUy6qU&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/mJyJ7UUy6qU&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></center></p>
<p>The red boxes are the inactive fielders, while green indicates fielders that are doing something, either moving, waiting for the ball, or just facing the ball in the case of the third baseman for example. The yellow boxes are the active runners.</p>
<p>That&#039;s it for this edition, but feel free to ask questions and comment about anything you like.  I&#039;ll also be on the TouchArcade forums (username <a href="http://forums.toucharcade.com/member.php?u=5810">hellosh</a>) so you can reach me there too.</p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ftoucharcade.com%2F2009%2F03%2F06%2Fdev-corner-mark-andersson-on-freeverses-flick-baseball%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ftoucharcade.com%2F2009%2F03%2F06%2Fdev-corner-mark-andersson-on-freeverses-flick-baseball%2F" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://toucharcade.com/2009/03/06/dev-corner-mark-andersson-on-freeverses-flick-baseball/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
	</channel>
</rss>
