flipCode - Arcade 2D Preview (Part I) [an error occurred while processing this directive]
A Break From 3D - The Arcade 2D GDK


With all of the hype surrounding 3D engines in the gaming industry, its fairly easy to forget that 2D games still have their place on the gaming shelves and thousands of computers. Many of the top selling games are still 2D, but in a world where it seems like everyone is talking about their latest FPS-clone or shiny new 3D hardware technology, its often a good idea to take a break from the 3D mania and see what's developing in the realm of 2D. We took a moment to do just that. Miraesoft are working on a product entitled the Arcade 2D Game Development Kit. I would like to thank Karel Donk of Miraesoft for taking the time to answer my questions about the technology and reasons behind the engine. Lets take a look!

First off, can you tell us a little bit about yourself and what you do on the A2D project?

My name is Karel Donk, and I'm an engineer on the ARCADE 2D project, I love chinese wom....err...i mean, I love chinese food, specially fried rice. I work in my free time... My job on the A2D project is basically do lots of coding, and the whole design of the engine and I also lead the project.


Arcade 2D is described as being a complete and feature-packed 2D engine. Can you explain what features really make this thing something to look at and smile? Technologically, where does this product shine brightest?
 

In the past we've seen many 2D engines being released as libraries with one or more small tools, in most cases only a map editor. When we say A2D will be a complete engine, then that means that it will have virtually everything you need to build your game from start to finish. Right now there are about 7 tools planned for A2D to go with the engine. We provide editors for all the important things you need to do to build your game using A2D. Aside from that the engine will be feature packed, with lots of build-in blitting effects for example. Unless you want some specific feature for your game, you won't have to do any additional programming at all. The idea is that the engine will handle everything, from displaying the world, to playing music and sound fx. The most common things one would have to do is program AI, define how objects move in the world, and the user interface.

  For example, making a side scroller from scratch using A2D (there will be such a sample when A2D will be released) Let's say all the graphics for this are available. We have a few tiles to build the world in the MapEditor, we have some objects to function as eye candy in the game, we have the main character animations, which we import into SpriteEdit, and define things such as bounding boxes, and set certain properties. You'd then build the map using the MapEditor, and then place the objects and the player in the map. You can also place ambient sounds and do lots of other stuff. You compile the resources into one resource file. So far, no programming. We're not going to do any user interface things, just a plain example of running the world. We start a basic Win32 project, and what we do then, is create the window, initialize the engine using a few lines of code, and then run the world with another line of code. The world is then displayed, you hear the sounds, the music etc. but you can't move the main character yet. That's where you'll have to do most of the programming, making object modules which basically control an object in the game.

You create a simple class for your object, and then you handle events which get sent to it by the engine. For instance if the player presses a key, then such an event is sent to the player object, and what you do is define how the object reacts to such an event. For example if the player presses left arrow, you would then change the animation of the sprite to 'walking' and then move the sprite to the left using a few lines of code. Since collision detection is done by the engine, you will know when the sprite cannot move further or is hit by an object, the engine will let you know everything via the event system. If it depends on coding, you can have a character running around in a world within a day and in a week you could have part of a working game.

A2D will use the latest technology available for 2D games, mostly through DirectX and DirextX Media. What we're doing is making the engine as flexible as possible so that it can be used for many types of 2D games. We're supporting plug-ins from the ground up, and also making it really easy for people to make mods for a game using A2D. In most cases making a mod would not even require people to have the source code of the game.



This has got to be on the minds of many people out there. In an industry where it seems that everyone is bragging about their latest 3D technology, why did you decide to create a 2D engine?

Ah, the question I've been expecting. Actually, the question contains the answer to itself. Everybody is going crazy about 3D engines and 3D technology. What about 2D? 2D is NOT dead. There are a ton of games you can make using 2D technology, it doesn't have to be 3D to be addicting or fun to play. For the last 2 years, nobody was making technological improvements on 2D gaming. Everybody started concentrating on 3D, these days 3D engines are popping up left and right, I'm not going to even mention the number of FPS's being released each year. So I thought I would work on a 2D game engine, using the latest technologies available for 2D gaming so that 2D games could also keep up. I also want to see people talking more about 2D games, and I want to see more and more 2D games being released for the Windows platforms. This is one of the reasons why we will provide a free learning edition of the engine, so that people can use it and make tons of free 2D games out there. If you look at my explanation in the previous question, you'll see that it would not take much effort to create a game from scratch using A2D. That's why I'm hoping that when A2D gets released, the number of killer 2D games out there should get increased dramatically and that people will start to think 2D again instead of just focussing on 3D engines.




[an error occurred while processing this directive]