Arcade Game Designer for MSX

Page 1/3
| 2 | 3

By highriser

Supporter (11)

highriser's picture

14-12-2017, 20:51

Hi everyone

As you can see, I'm new here, so hello! I'm a game developer and my main focus is building games for the ZX Spectrum using arcade game designer. If you're curious about my work, one of my recent games is mentioned here:

http://www.indieretronews.com/2017/08/terrapins-excellent-zx...

The thing is, I also have a soft spot for MSX, and since the Spectrum has a lot in common with MSX in terms of processor, resolution (mode 2), and sound, making a version of AGD for MSX might not be such a huge undertaking, especially as the original author is happy to provide fully annotated source code.

What this means is that, as well as allowing more people to develop arcade style games for MSX, several dozen excellent games written by various authors in the last few years for the Spectrum could potentially be made available for the MSX as well. In fact, there are plans to build a windows front end for the software so that games could be developed for Spectrum, MSX and Amstrad at the same time, because AGD uses a very basic language designed specifically for working with games. All it needs is an interpreter. I personally would love to convert Terrapins to MSX, as well as the other arcade titles I'm working on.

So I'm posting here to see what the interest would be. I'm no ASM coder, what we need here is someone with good knowledge of assembly and a love for the MSX to see about bringing such a thing to life.

so...anyone?

Login or register to post comments

By eimaster

Master (218)

eimaster's picture

15-12-2017, 04:11

Nice and I encourage you to do it Smile

By highriser

Supporter (11)

highriser's picture

15-12-2017, 17:51

As I said, I can't do it myself, it would need an MSX coder.

By Timmy

Expert (76)

Timmy's picture

15-12-2017, 20:20

Nice initiative and I still encourage you to do it yourself.

Especially if you believe the difference between the two machines is "All it needs is an interpreter." Running Naked in a Field of Flowers

I wish you all the luck in the world, though. You will need it. Big smile

By TomH

Master (217)

TomH's picture

15-12-2017, 21:03

I had a quick look at the AGD, hampered slightly by it seemingly having no official home (?), and it sounds like a developer:

  • designs a variety of static screens, keeping the Spectrum's attribute system in mind;
  • places a bunch of sprites that were limited to 16x16 but now can be 16x24, each sprite being a single colour; and
  • uses the AGD scripting language to define the movement of those sprites and respond to events?

I was a bit vague on exactly how items (single-frame sprites that can't move but can be picked up and dropped) work: are they freely placed or do they align with the background?

Also what are the rules in terms of sprite placement and quantity?

What I'm getting at: if a hypothetical MSX version decided to use its hardware sprites and thereby limited them to 16x16, 32 per screen, 4 on any given line, how many issues do you think would be forthcoming? Is there any documentation of the binary output of an AGD build, or would it need to be inferred from the source code?

The real AGD also sounds like it's a complete on-Spectrum development environment. Presumably you're mainly thinking about just the runtime?

By highriser

Supporter (11)

highriser's picture

16-12-2017, 00:02

ok, well, here's some more information. AGD is basically a tool for people without knowledge of assembly language to build games with the speed of assembly using a simple basic-like command structure. Obviously within that there are restrictions, but as you will see from some of the games that have been made such as my own game Terrapins, or Dead Flesh Boy (Super Meat Boy for Spectrum), polished homebrew titles can be produced without machine code.

Essentially there are two parts to it - the developer part (sprites, blocks, maps, scripts), and the engine itself which compiles it all. The idea would be to convert the game engine so that it would follow the same scripts but run them on the MSX. Obviously a fair bit of work would be involved in changing how the engine handled the sprites, but the actual scripts wouldn't need to change all that much, because more complex things like sprites, collisions and so on are all done by the engine. For example, you would define a player sprite and its frame, and to move it you set the sprite type and define its parameters and instructions, for example, here the player sprite is moved left and right by keys and destroyed if it meets sprite type 1, which would be an enemy.

IF KEY 0
SPRITERIGHT
ENDIF

IF KEY 1
SPRITELEFT
ENDIF

IF COLLISION 1
SUBTRACT 1 TO LIVES
KILL
ENDIF

(there is an event for controlling what happens with the 'KILL' command.)

As I said, I know there would be quite a lot of work involved, but it would result in a lot of new titles working on the MSX, and open it up to more people to develop on. I know AGD very well, but I'm a beginner when it comes to ASM. However, if someone was willing to look at this, I know that the author, Jonathan Cauldwell would be happy to help, and the source code itself is thoroughly annotated line by line.

As mentioned, there is a basic version for the Amstrad, and one for the Spectrum Next is also planned. Being able to develop on all these platforms together would be great.

By highriser

Supporter (11)

highriser's picture

16-12-2017, 00:07

oh, and to answer your questions:

I was a bit vague on exactly how items (single-frame sprites that can't move but can be picked up and dropped) work: are they freely placed or do they align with the background?

Objects are stored at 38 bytes. 32 are for the pixel data (no colour), and the other six store the room and X / Y position of the object itself. So an object can start anywhere and can be placed anywhere.

Also what are the rules in terms of sprite placement and quantity?

Obviously the Spectrum has no hardware sprites and essentially it allows up to 12 software sprites on screen at once, but things can get a bit slow if the code is complex.

And yes, I would envisage someone coding it to use the hardware sprites. It doesn't sound like many AGD games would trouble the limitations as you have described them, since the MSX is much better at this kind of thing.

By highriser

Supporter (11)

highriser's picture

16-12-2017, 00:12

and lastly, if you are interested, the main home for AGD is really the facebook group. If you are interested, you can apply easily to join this private group. And you would also be able to ask Jonathan directly about the binary output.

regarding it being on-spectrum - there is now an editorless version which has been worked on to use on the Next, but the plan is to make this version work for the Spectrum - thus the sprite, screen and block editors as well as the source code editor could all be external. This would then be pointed to an interpreter which would produce code that would run on whichever machine was appropriate.

By Timmy

Expert (76)

Timmy's picture

16-12-2017, 15:47

There's also a forum, where you can find a post about him talking about someone doing an MSX version, back in 2014.

So either it will be released very soon, or it was never finished because of reasons.

As for the question whether it would work on a machine with 4 sprites on a given line, the game we are talking about in this thread already uses more than that. (Let's assume we don't do any sprite manipulation tricks here.)

By highriser

Supporter (11)

highriser's picture

16-12-2017, 21:02

As far as I know, Jonathan sent the source code to someone who was interested but they never got back to him. I thought now might be the time to ignite interest.

As for the sprite - given that the Spectrum doesn't have hardware sprites at all and runs the games, I would imagine software sprites would be possible if nothing else.

By ARTRAG

Enlighted (6015)

ARTRAG's picture

17-12-2017, 00:38

Maybe making you code in assembly is faster than waiting for someone who ports this arcade designer to msx

Page 1/3
| 2 | 3
My MSX profile