11/03/2013: Mr Sprite and Brutal Deluxe's Cross Platform Development Tools Plans

Brutal Deluxe has released another asset in their set of cross platform development tools for the IIGS - Mr Sprite. It's a useful utility on several levels that makes the preparation of sprites the best available for the IIGS. It automagically extracts sprites from a sprite sheet (where all sprites for an intended game are included in an image), mirrors and flips existing sprites so you have sprites facing all necessary ways (if necessary) and automatically generates code for Merlin 16+ for each sprite, which is the most optimised code you'll ever find on the IIGS for sprites. If there was any doubt this is the best method, check out Antoine and Olivier's comprehensive summary of how their sprite tech works.

Mr Sprite joins previously released cross platform development tools from Brutal Deluxe Cadius, KEGS for modern IDEs and Window Capture.

Olivier Zardini explains the philosphy behind making development tools for the IIGS... that aren't used on a IIGS: 'We have started from scratch. We are rewriting all the required generic tools allowing us to to minimize the time required to create new games. And because it is more efficient to use modern tools & computers, the way to go is to create such tools on a PC and using the IIGS as a target machine, not as a developpement machine. Did people writing video games for Nintendo at the time also use the Nintendo console to program? Answer is of course NO. They were using more advanced hardware like a PC with dedicated tools like a cross compiler. Of course it takes more time to recreate everything on PC than just using the IIgs native tool; but if you have to create several games, at the end, you will be more efficient by spending a few times first to design inovative tools than using the same old tools.'

On Mr Sprite: 'It is a sprite compiler for the IIGS. It creates fast assembly 65c816 code to display sprites on the IIGS screen for games. You start with a GIF file full of Spirtes and 1 second later, the code is ready to be tested in your IIGS! It is probably the most efficient way (fast) to display something on the IIGS screen today. Faster means more sprites on the screen or bigger ones. Instead of writing such tools on the IIGS, we have designed it to work on the PC so we can process huge number of sprites in one click and the code we produce (a direct 65c816 output) is VERY optimized (thanks to the MB of memory & processor power the PC provide). You design your graphics on your PC, you organize your sprites there on very large pictures and you don't care anymore to have the IIgs to do the conversion. For all the next games, we won't have anymore to care about finding the best way to display sprites on the screen. We did it! By covering all the basics of video game programming needs (read keyboard, joystick, display sprites, play sound, play music, do scrolling, play animation...) as generic library, we will end by having only the core of the game to create for each project. And this is about 20% of the total line of code. 80% is (or should be) game independant.'

On what cross development tools Brutal Deluxe is going to produce next: 'We have also few other to deliver like the one used to re-create the animation steps from sprite sheet and the one used to get resources from binary files (Memory Dump or ROM from video game). Next tools will be more development oriented (65c816 cross assembler, 65c816 cross disassember...).'

I asked Olivier 'How do you and Antoine want people to use these tools? For example, are you happy that people randomly start catching resources of certain games, or are there specific games you've already done a technical evaluation on and would rather that IIGS users out there concentrate on resource gathering for those games?'

Olivier responds:'The tools are for everyone and also for the future (if one day someone decides to go back to IIGS programming he will be probably happy not to start from scratch). The first idea with the tool is to give a modern easy way to program the IIGS. Perhaps you have some people here and there ready for that but they don't want to face the 80*24 text mode (environment to write code) anymore. When do you have time nowadays? Sometime at the office, sometime in a plane or in front of your laptop. So we have to bring the tools there, on the machine people are using everyday. It is hard to go back into Dream Graphix in 320*200 when you can use PhotoShop in 1920*1080. Everything is not yet done to have the complete chain of IIGS software creation on the PC side, but we're taking it step by step.'

'Of course, we also use the tools ourselves, just to make sure they are efficient.'

'We encourage people to use our tools to grab the resources for the games they want to see one day on the IIGS screen, because it is the first and very important step of the grame creation process. And we maintain an invitation for helping you with your own development efforts.'


I ask Olivier the following: 'How about music and sound effects? There was a recent discussion on c.s.a2 about how to add triggered sound fx and music together for games. Do you have any development frameworks in mind for that? I'm not a big fan of MIDISynth music (requires too much CPU and sounds very artificial) but it's true to say there's a lot of MIDI music that we can convert easily.'

Olivier:'Sound effects are, for once, very easy to handle because the IIGS has separate RAM and a dedicated chip (the Ensoniq and its DOC RAM). Also because all computers use the same sound encoding (moving a sound to 8 bit resolution at 22 khz is piece of cake comparing to graphic conversions are). So, we fill the sound RAM with 64 KB of sound effects and we have very few CPU power to play the sound. Perfect for games.'

'Music is a real topic. The easy way is to use MIDI files, because they are available everywhere and render well on the IIGS. Once gain, who today will spend energy to write music using IIGS capabilities using Soundsmith or NoiseTracker?'

'I think we can have games without music. But probably not without sound. Or we can keep the music for the introduction and switch to sound effects during game (what we think we'll do for Barbarian).'

Lastly, I ask :'What about scrolling in games? Mr Sprite handles sprites (obviously) but what about scrolling? I ask because the Generic Tile Engine that Lucas Scharenbroich was working on was quite amazing, but even after years of development, Lucas still felt it could be better. Now Lucas' blog has disappeared and can only be accessed by Web Archive.'

Olivier:'Mr Sprite displays the sprite but do not remove it from the screen. Or, in animation, you have to alternate the sequence : draw sprite / remove sprite (=display background) / draw sprite at new location...'

'Before entering the scrolling part, we have first to deal with sprite animation. It would be useless to have a very fast drawing routine if the cleanup is very slow! So next step would be the Animation Tool, to create, from a Sprite sheet, smooth sprites animations (using of course the Mr Sprite drawing routine). This will help to recreate the animation steps from a sprite sheet.'

'Scrolling will be (yet) another topic.'

Well, there you have it people. Another great tool and without wanting to put too much pressure on Olivier and Antoine, a brighter future for cross platform development for the IIGS. Thanks guys!