It is currently Fri Oct 19, 2018 10:17 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 9 posts ] 
Author Message
 Post subject: Arcade Game Designer
PostPosted: Thu Sep 27, 2018 5:20 pm 
Offline

Joined: Thu Sep 27, 2018 5:06 pm
Posts: 5
Hello everyone

My name is Allan. I'm actually a z80 game coder, and I helped work on updating an engine for a game designer which uses a simple syntax to then assemble games into machine language. Originally it was exclusive to the ZX Spectrum (classic British computer), developed over many years by Jonathan Cauldwell, and dozens of excellent games have been written. The engine currently supports software sprites, room layouts, maps and so on and is fast and easy to use even for beginners. I myself have completed three games which have been published. It's a great way for less experienced coders to create games, and is one of the reasons the Spectrum homebrew scene is so healthy.

Recently the engine has been converted to the 6502, and as a result dozens of games which were designed on the ZX Spectrum are now playable on the Acorn Atom and the BBC Micro (yes, this is a British thing at the moment). A 6809 and MSX engine are also in progress, with other machines under consideration.

I've owned and loved the NES for many years but hadn't considered writing games for it until recently. Obviously the hardware is different, particularly with regard to hardware sprites and so on, but I think it would be a great machine to add to the 'roster' so we're looking for someone interested in maybe joining our team to help with that. We're a very relaxed group of old school coders, there is no pressure or deadlines, everything is open source and not for profit, we just enjoy working together on the challenge and the excitement of seeing games written on one machine being converted to another without any change to the core code, because each system has its own compiler and engine. The system outputs source code in assembly which can then be built, or edited if you have the experience.

A full windows dev environment is also in the works, lots of nice editing tools for maps and sprites and the ability to test before compilation via a javascript engine.

To be clear - the 6502 engine is already working well, so any developer would mostly be looking at rewriting the graphics and sound routines to work with the NES. An experienced 6502 coder shouldn't find this too tricky I don't imagine - we have three experienced 6502 guys already and we are all willing to help - we just don't the inner workings of the NES too well is all.

I know NES maker is already out there, but this system already has a library of dozens of great games that could all be ported once the engine was complete, it will be free for anyone to use, and no claims will be made on games written on it. Here are a few example games built on the Spectrum. Many of these games were written by people with no knowledge of assembly language at all, and the quality of them may surprise you.

Terrapins
https://www.youtube.com/watch?v=_8MvLtccgo8
Roust
https://www.youtube.com/watch?v=vTYKoJAWH6w
Nixy
https://www.youtube.com/watch?v=H7MGZJ60NFg
Temple of Lost Souls
https://www.youtube.com/watch?v=hRlBHwyFQ8w
Dead Flesh Boy
https://www.youtube.com/watch?v=cnG0u3GoJKE

Let me know if you have any questions, I look forward to hearing from you.


Top
 Profile  
 
 Post subject: Re: Arcade Game Designer
PostPosted: Fri Sep 28, 2018 3:06 am 
Offline
User avatar

Joined: Thu Sep 15, 2016 6:29 am
Posts: 773
Location: Denmark (PAL)
An the outset, it's hard for me to imagine any game being ported flawlessly to an NES, considering how strongly you have to consider the hardware limitations when designing anything for this console.

That said, the ZX Spectrum is definitely simple enough that on a surface level anything that works on it should probably run as is on a NES, aside from the obligatory palette conversion, and from skimming through the games in your videos, I'm not seeing anything that shouldn't work.

I think the games in your example look great, and I'm really impressed by what your tool is able to do. Do you have any examples of the tool itself, and how people work with it?
Also, what is used to create the tool itself? I'm guessing probably C++? (which would be a major obstacle for me, I hate working with C++ :P)


Top
 Profile  
 
 Post subject: Re: Arcade Game Designer
PostPosted: Fri Sep 28, 2018 7:47 am 
Offline
User avatar

Joined: Sat Feb 16, 2013 11:52 am
Posts: 320
Those games look simple enough that I think it may work... that being said I'll leave a possible nnes version to more experienced coders. I'd love to play with it and try to port it to the TurboGrafx though

_________________
This is a block of text that can be added to posts you make. There is a 255 character limit.


Top
 Profile  
 
 Post subject: Re: Arcade Game Designer
PostPosted: Fri Sep 28, 2018 9:03 am 
Offline

Joined: Thu Sep 27, 2018 5:06 pm
Posts: 5
the system uses its own, very simple syntax which similar to basic. This is then compiled into assembly language and then assemble.

as an example, to move a sprite to the right when the player hits the correct button:

IF KEY 0
IF CANRGT
SPRGT
ANIM
ENDIF
ENDIF

of if the play hits a tile which is deadly:

IF DEADLY
KILL
ENDIF

the code is very, very easy for beginners to understand.

As for the games, the future NES engine would of course support these older games, but I would imagine the person helping us would ultimate make use of the more advanced features of the NES.


Top
 Profile  
 
 Post subject: Re: Arcade Game Designer
PostPosted: Fri Sep 28, 2018 9:20 am 
Offline

Joined: Thu Sep 27, 2018 5:06 pm
Posts: 5
Also to answer a few more questions:

Yes, the tools are written in C++ but we're not looking for someone to build the tools, we need someone with 6502 experience to build an NES engine.

Here is how the whole process currently works, with full games on several systems:

Games are converted into a special format which defines sprites, screen layouts, tiles, objects, sounds, and script. Obviously the graphical side is customised to the target machine, but we have converters which can also help with that. The scripting language is similar to BASIC, but dedicated to games. This is what makes it possible to have it run on different machines.

The assets and the code / game logic are then put through a machine specific compiler, which takes all this data and converts it into assembly readable data and code which can be integrated into a machine-specific engine. This ensures that the game logic works correctly for the machine in question. Although each engine is specific to each machine, there is significant crossover dependent on the core CPU (z80, 6502, 6809). As I mentioned, we have a 6502 engine running well, so it's a question of using that as the basic for a NES specific engine.

The final result of this is full source code for the game in the appropriate assembly language for the appropriate machine, which can then be assembled into a working game. It's really quite remarkable when you have a game fully designed on a z80 machine being ported to a 6502 and running happily with little or no additional work needed.

If you're curious here is a video of Terrapins running on an Acorn Atom. Obviously this is a lower level machine with monochrome graphics, totally different core processor and graphics chip - the actual game scripts were not edited at all, and nor were most of the assets. Some minor changes to sprites were made but other than that, the game ported over with minimum fuss. The engine has since been optimised and the game runs a little quicker now.

https://www.youtube.com/watch?v=Vh4ykI0H0iE


Top
 Profile  
 
 Post subject: Re: Arcade Game Designer
PostPosted: Mon Oct 01, 2018 1:54 am 
Offline

Joined: Thu Sep 27, 2018 5:06 pm
Posts: 5
if anyone is interested, please drop me a pm, thanks.


Top
 Profile  
 
 Post subject: Re: Arcade Game Designer
PostPosted: Mon Oct 01, 2018 3:20 am 
Offline
User avatar

Joined: Thu Sep 15, 2016 6:29 am
Posts: 773
Location: Denmark (PAL)
I love this kind of stuff, and I would really love to give a go at it, but I'm pretty sure I can't guarantee any of my time at the moment. I haven't even been able to complete any of my own projects.


Top
 Profile  
 
 Post subject: Re: Arcade Game Designer
PostPosted: Wed Oct 03, 2018 3:14 am 
Offline

Joined: Thu Sep 27, 2018 5:06 pm
Posts: 5
no problem. If you feel like having a look at the 6502 engine let me know, maybe you can give us a few pointers.


Top
 Profile  
 
 Post subject: Re: Arcade Game Designer
PostPosted: Thu Oct 04, 2018 6:02 am 
Offline

Joined: Tue Jul 12, 2011 10:58 am
Posts: 274
I'd definitely be interested in being the first dead end user to test it. I don't think there's enough assembly coders with free time or interest (though I'm hoping I'm wrong).

Have you considered going forward in C via NESLIB? Might not need an additional coder that way.
https://shiru.untergrund.net/code.shtml


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 9 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: Google Adsense [Bot] and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group