Tuesday, December 24, 2013

CannonBall 0.21 - New Views & Attract Mode

This is a minor update I've been working on for just a couple of days, but it contains some fun features. Get it here.

Viewpoints

The first is the ability to change the camera viewpoint. There are a choice of three views: original, in-car and overhead. You can use the shift key to toggle between them, although this can be redefined. You can toggle the view at any point during gameplay. 

Original View

Overhead View

In-Car View

The in-car view is rather experimental. As OutRun doesn't use a true 3D engine, it's not really possible to implement such a view correctly from a camera perspective. However, it's kind of fun to play with.  The overhead view probably makes the game easier, as you can see more of the upcoming road. 

Attract Mode

I then decided to recode the attract mode to show off the viewpoints.  Doing so also reminded me how awful the attract mode AI is. The existing AI works fine for the first stage, but after that tends to crash continually. Combined with the Best OutRunners overlay showing every 20 seconds or so, attract mode never really showed the game's full potential. So I recoded the attract mode AI too. 

Some of the improvements to the AI are as follows:
  • Better at driving tracks without crashing into scenery.
  • No weird car shaking/juddering when turning corners.
  • Reduced brake light flickering
  • Can drive any stage in the game competently.
  • Selects a true random route, rather than a pre-defined route (as a result of the above)
  • Can handle split tracks correctly.
  • Handles the road split better. 
The AI code I've written is a lot simpler than the original code. It works differently, by looking at a distant position of the road and then adjusting the steering to drive towards it. If it gets too close to the road edge, it brakes. 

It still crashes into scenery occasionally, but I think that's ok. The AI is ultimately a compromise between driving safe and racing aggressively. And you want to see a crash sequence sometimes, just not at every bend.

Some of the original code still makes no sense to me, and I'm pretty sure it became a case of saying "this sort of works, let's ship it" towards the end of the project. One example of this is that the original code actually brakes when passing traffic, even when that traffic is right on the other side of a 6-lane road. You can spot this during the first two curves. The new code takes into account the x and z position of the traffic before braking. 

My AI still has difficulty passing trucks, as these drive slower than other traffic. Actually fixing this would probably take a fair chunk of code and I wanted to keep things simple. Plus the original AI suffers from this problem too, although arguably worse. 

You can toggle between the original attract mode and my new version in the game engine options located within the settings menu. The original mode uses the old AI and the new mode uses my rewrite. The code is here, if this sort of thing interests you.  



Other New Options

I finally implemented the ability to preview the audio track during the music select screen. You can enable this setting in the sound menu. Thanks to James Pearce who also submitted a fix for this.

Finally, there's a FPS counter that can be enabled in config.xml too if desired.

Following on from this I need to decide what to work on next. Most of the easy pickings are now done. Stuff like ghost-racing, multiplayer and so forth would be great but also a lot of coding work. :)

Tuesday, December 10, 2013

LayOut Open Pandora Port

Sebastian is working on a port of LayOut to the Pandora handheld. I didn't expect to see the editor ported to a handheld before anything else! Imagine, you'll be able to design and play OutRun levels whilst on the train to work. Here are some screenshots:



Grab it from here.

The forums were recently reset, so sadly a few posts were lost. They're back up and running now though. Be sure to checkout this cool CannonBall cabinet project from Mart, using an old Monaco GP cabinet he's salvaged from inevitable scrap!



Wednesday, November 27, 2013

CannonBoard

Colin Davies and myself are working on an exciting new project for owners of original OutRun cabinets: CannonBoard. 

The goal is to allow the original OutRun PCB to be cleanly replaced with a modern PC running CannonBall. There will be no soldering; no cable cutting and absolutely no cabinet butchery. Damaging original cabinets makes us very very sad. Simply unplug the cables from the PCB and connect to our interface. Restore your cabinet to the original PCB at any point. It's plug and play!

This approach has a number of advantages. You'll have 60 fps, a wealth of easily configurable options and the ability to play tracks from LayOut. Plus you can tinker with the CannonBall source code if you're technically minded. If this fills you with horror, you can turn all the options off to ensure your experience is identical to the original game whilst furiously sucking a Werther's original.

Colin is working on the hardware interface. A standard Windows, Mac or Linux machine will connect via USB to a cheap $10 Arduino board, mounted on a custom PCB. This custom PCB plugs into the cabinet controls.

Custom PCB


I'm working on the software side of things. CannonBall will communicate with the Arduino to receive inputs from the controls and output to the cabinet motors and lights. I've got the easy job, although I do need to port some more of the OutRun cabinet related code that I missed out. 
Arduino

We're aiming to support all cabinet models from the mini through to the deluxe sitdown. Like all good hobby projects, there is no strict schedule attached to the project. But progress so far is looking promising.

Tuesday, November 26, 2013

LayOut 0.11 - First Track & Source Code Release

Supper has created a track with LayOut and it plays quite nicely for a first attempt. You can try the track using the latest CannonBall from the command line:

cannonball -file test.bin (where test.bin is the name of the LayOut track to load) 
Head over to the forums to check it out.



I also released a new version of LayOut with some minor bug fixes for issues raised here

The source code has also been added to github here. I'll add some compilation instructions when I have time. Please note that for now I've only tested with MSVC 2010 and Qt 5.1, so it probably won't compile on other platforms out of the box yet. 

Sunday, November 17, 2013

Dynamite Dux: Easter Egg

Yes following the LayOut launch, I'm on a roll today. I'm not a big fan of Dynamite Dux, it's one of the weaker AM2 titles from the late 80s. However, knowing it was coded by Satoshi Mifune (aka Bin Chan), I knew there might be some goodies locked away waiting to be found.

This is one of the best AM2 extras I've found. It's an oldskool demo sequence with caricatures of the team.

To activate the sequence, you need to complete the game. On the Congratulations screen, hold player 2 start and press Player 1 start exactly 15 times.





I've uploaded a video of the complete sequence to youtube here.

LayOut 0.1: A Track Editor for OutRun

LayOut: A Track Editor For OutRun
It's finally here. Create your own OutRun tracks and edit the original ones.

Features:
  • Track Editing: Create your own OutRun tracks from scratch
  • Import: Edit original OutRun tracks and supporting data
  • Scenery Pattern editor
  • Height Pattern editor
  • Road, Sky & Ground Palette editing
  • Realtime Preview
  • Export and play tracks using CannonBall.
  • Export to original arcade ROMs coming soon.

Download LayOut here.

You will also need the latest version of CannonBall.
You will definitely need to read the manual. And I'd welcome input to make the manual clearer. 

New Forum:
There's a new forum here.
Hopefully this will be a more useful place to post tracks, report bugs and ask questions than the blog comments. Thanks to Steve (Tipus4u) for volunteering to set this up and provide the hosting.

What's Next? 
I'll focus on LayOut support and fixing the inevitable bugs that will be found. However, I need to take a break from LayOut in terms of implementing new features for a short period. I have an exciting hardware/software project planned that I'm working on with Colin from the Jamma+ forums. I'll post some details on that in due course. 


Friday, November 15, 2013

Interview with Yu Suzuki & Ryu: The Making of After Burner

I'm delighted to bring you the first English translation of a piece of SEGA history from 1988. This interview with Yu Suzuki and Ryu presents a rare insight into the development of a number of classic AM2 titles.

I'd like to thank Fabrizio Bartoloni for translating the article. I tried to cajole a number of people into helping, and he was the first to agree. I've adjusted some of the wording slightly, but the original translation and Japanese text can be found here.

I'd politely request that other sites link to this article, rather than pasting the contents. This is a non-profit site with no advertising, so please be nice. :)

Interviewees:
Yu Suzuki. (Lead Developer)
Ryu. (Head of the consumer office)

YU: I'm the one responsible for "YU" as a name entry [on the high score table] when you power up After Burner. I've overseen the software coordination and planning of After Burner. I started my career with Hang On and then went on to create Space Harrier and Out Run.


RYU: I'm RYU and in charge of growing the consumer office. So far I've worked on the Out Run conversion [to the Master System]. This is the second time I've converted a body experience¹ game, but as the hardware is different, recreating the original experience is cumbersome in my opinion. Additionally, I've also created characters for the Anmitsu Hime² series and other titles.


¹ 体感ゲーム is a game genre when your body is used to control the game (and may or may not receive some bodily feedback from it).

² Anmitsu Hime is a Sega Master System game from the eponymous manga. Its Western market release has been adapted with heavy changes and it's better known as Alex Kidd: High-Tech World

RYU: The features of the forthcoming Mark III After Burner conversion are made possible by the new 4 Megabit cartridges. Until now 1-2 Mb cartridges were common; 4 Mb is not an industry first, but with so much more space the graphics and action can be closer to the original.


There aren't the 23 stages of the coin-op, but there are still 18 stages and the refuelling scene. The home version contents will be more or less the same. There will be differences, but I'm making the backgrounds and everything else to be as close as possible.

At first I thought converting After Burner would be easy. After Burner and Space Harrier use a similar system, but they should be better considered different challenges.

I'm sorry I can't show you anything yet; we're already at the stage where something works on screen. Please keep your expectations high as this is the risky phase where I need to be at my best. It's like performing a somersault. I asked Yu to show me source code to help with the conversion and he told me to look at the original (laughs).



The Master System version will feature FM sound and the graphics are also an improvement on Space Harrier.

YU: The After Burner arcade project started around December 1986. Our way of working during the project was quite different from common practice. Usually you start with a plan, but instead we went ahead without having defined one. We started with the things I wanted to do, those that were interesting and already feasible. This approach is like having three possible paths ahead and you have to try all three of them to find the best. 

Such an approach is wasteful as you can find two of the choices prove useless. You often have to go back and fix problems and can't find the way forward. Therefore, in our case there was a written plan, albeit a hazy one. Planning continuously changes according to the situation you're facing. 



There was a movie called "Top Gun". I'd wanted to make a game with war planes before watching that movie. My initial inspiration was [the anime by Miyazaki] Laputa: Castle in the Sky. I'd thought about capturing that science fiction anime-like feeling.



Anyway, as Sega's 'body experience' game wasn't intended solely for the Japanese market but was due to be exported to Europe, US and the rest of the world, it would need to be understood by an international audience. So I switched my plan and gave it the shape of a F-14. Americans seem to have a preference for realistic graphics on screen rather than Japanese anime-like fantasy worlds. Now Americans are developing a better understanding of Japanese fantasy though.



Development costs are an extremely confidential matter, as might be expected. But if we were to make a comparison with ordinary game hardware which doesn't have to change that much, the costs are incomparably high. This is because there are few common components. You have to change the PCB, mask rom, chassis and so on - all of them. It's a totally new thing, despite using some of the same concepts. It's technological innovation stacking up. When Hang On was made, the background was almost empty, but since we've been using Out Run's new system we can say that games like Space Harrier and Hang On are totally different from a technical point of view.



At first I wanted the scenery to be set between the Mediterranean area and the Soviet Union... but it went wrong (laughs). Although I wanted it to be like that.

RYU: I wanted to say Persian Gulf! (laughs)

YU: You wouldn't have seen the Persian Gulf. Anyway, it would sell if America could beat the enemy side, just like Rocky¹ did.

¹ a reference to Rocky Balboa winning over Russian champion in Rocky IV 

It's real scenery, and would tie together well. I have the big picture in my head. It would be set in Europe, including Italy and the pyramids. When we created Out Run I went to see the real thing. We don't have spare time like that now. I'm browsing issues of the oversees travel information magazine AB-Road. It costs just 300 yen (laughs). I'd like to make the backgrounds look as close as possible to the real ones.



When it comes to the Soviet Union, it seems you have to abandon the idea of 16-bit machines. Apparently, it would be a violation of CoCom. [The embargo against Warsaw pact countries by US and some Western countries]. I wanted to depict the Kremlin building but in the end I gave up. This is due to the enormous variation and number of patterns which would be impossible to fit into memory. A spherical shape consists of merely one pattern, but here you must render a large number of cylinders. 

The landing scene is indeed big, but it exists on its own, so there is just one pattern in it. There were so many things I wanted to do, but they couldn't be done within the limits of development deadlines. For example, I wanted the pilot to be ejected from the aircraft with a parachute. For the end sequence, I also wanted the protagonist to carry the princess in his arms whilst flying the enemy plane. 

I think it's important to make the characters stand out. The protagonists of Space Harrier, Hang On and Out Run all stood out. I'd like the same to happen with After Burner.

RYU: Despite the continuous advancement of console hardware for domestic use, there is still a huge gap compared to professional coin-op hardware. In the future, much will be said about narrowing this gap. 

YU: I want to work on body experience games from now onwards. I've been working on Hang On, Space Harrier, Out Run and After Burner, but to say it emphatically, they were all left half done. After Burner is roughly 60% done. I wanted to include a dogfight. Right now it's many versus one, there is no one-on-one. A fight of one versus a few strong enemies represents the real world.

All of this is because of a lack of time and technical problems. The incomplete features will be implemented in upcoming games. Our goal is to make games, from the onset, as close to the real thing as possible. If you look at other driving games when an ordinary car bumps into another you sometimes see an explosion or big accident as a result. 


I've tried to make Out Run as close to the real world as possible. Although the game is not the real thing, I've added many ingenious solutions to make it work realistically. As much as you could expect from a game. My plan was to aim at what would have been probable in a realistic setting. I didn't want Out Run to feel ridiculous when compared with reality.

Even if After Burner and Outrun have some way to go before reaching their goals, trying to make them entirely flawless would result in enormous costs. It would be nice to be able to create a game without worrying about the cost though. For this reason, it's an exaggeration to call them simulations. But I'd like to get closer to reality.

(1988)

Check out more interviews here.