15 July 2013, 08:43 | #1 |
Posts: n/a
|
Programming a Simple A500-Compatible Game (Beginner) - Any Advice?
Two issues here:
1. I'd like to write a simple (but perhaps graphically hardware-demanding) Amiga 500-compatible game at some point but I would like to do the programming without any real Amiga 500 hardware. In other words, I would like to do the programming either in Windows or in an emulated Amiga environment (where the host OS is Windows). I would, of course, begin everything by writing some simple scripts and other software for the Amiga 500 because games are demanding and require one to learn a lot of stuff in one go so to speak. If I intend to do all the programming either on my Windows OS or an emulated Amiga, what kind of IDE, SDK or set of programs should I use? Could Amiga Developer CD 2.1 come in handy? I mean the one sold at least at http://www.vesalia.de/e_developer2.htm Furthermore, if I follow the usual practice of programming games for the Amiga 500, should I write my stuff in a low-level language or straight in assembler? At least most C64 games were written in assembly for performance reasons if I'm not mistaken -- the game had to work fast enough and interpreters were too slow to be used even though using a more human-understandable programming language would have been tempting. I wonder whether the A500 had the same performance-related problems and whether interpreters have been improved to the extent that games could be written in, say, C or some other widely-used language (although C is sometimes referred to as a low-level language). I would not be surprised to find out that *most* A500-compatible games were written in a very low-level language or directly in assembler. Personally, I prefer high-level languages but if the performance is still an issue, I'm ready to delve deeper into this low-level stuff. Notice that I would like my game(s) to work on a real Amiga 500 as well. I do not believe in making software that can only be run on emulators as the emulation may not be entirely accurate. Running such games on real hardware could result in an undesirable outcome. 2. I would also like to see if it could be possible to make any changes to existing A500 games and programs. However, AFAIK, this is very demanding without the source code because as far as I have understood, deciphering software that has been decompiled requires serious commitment of time and effort. Is making considerable changes to existing programs without getting hold of the source code even within the realms of possibility when it comes to the A500? Has anyone of you succeeded in doing this? Maybe A500 games could be decompiled to assembler but figuring out the code and being able to make changes (that actually work) would probably be extremely demanding and time-consuming, not least because I suspect that you don't get any of the explanatory comments that the source code most likely contained. While dealing with these kinds of cases with any platform I would also have to learn the instruction set of every processor and all addresses for every I/O and so on. Unfortunately, I'm a total neophyte at this kind of stuff. Besides, as far as I know, Amiga kernel reference manuals are the size of multi-volume encyclopedias. I know that hackers and hobbyists used to make minor changes to existing games. For example, they managed to remove the copy protection from several games and they even succeeded in adding trainers with certain modifications like "unlimited lives" and so forth. However, I suspect they did not do this by decompiling anything to assembly but by looking at the memory to see what things change when you, for example, die or get an extra life. |
15 July 2013, 10:14 | #2 | ||||
Adventurer
Join Date: Jun 2009
Location: Colossal Cave, Valaii
Posts: 364
|
Quote:
Quote:
In case that you haven't program in assembly before, don't be scared, it's not very difficult. Since you get the grips with it, it's really fun. Quote:
Quote:
|
||||
15 July 2013, 10:31 | #3 |
HOL/FTP busy bee
Join Date: Sep 2006
Location: Germany
Age: 46
Posts: 31,606
|
|
15 July 2013, 16:22 | #4 |
Registered User
Join Date: Jun 2013
Location: Australia
Posts: 685
|
This is a setup
|
15 July 2013, 22:46 | #5 | ||||
Natteravn
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,500
|
Quote:
For a portable, Devpac-compatible, assembler see here: http://sun.hasenbraten.de/vasm/ Quote:
An adventure, or similar games, could also be written in C or Basic or whatever you like. But also keep in mind that high level languages tend to consume much more memory, which is limited on a stock A500. Quote:
You may find a friendly person to test your game on real hardware, but when you have to debug it, then it is best to own the hardware. I'm in the same situation. I wrote Sqrxz and Sqrxz2 for Amiga500 with a cross-assembler and UAE on my Pegasos2. But testing it at least once every day on real hardware was mandatory. Currently I'm writing a new Jump'n'Run (Solid Gold). Quote:
Only the reassembler will allow you to make bigger changes in a comfortable way, but in both cases you have to invest a lot of time to understand the 68000 code of the game. This will be extremely frustrating when the original source was not in assembler, but in a high level language, like C. |
||||
17 July 2013, 10:38 | #6 |
Registered User
Join Date: Nov 2012
Location: Brisbane Australia
Posts: 150
|
So whats a good colour IDE for c? besides using ed....
Speed wont be my problem but a nice editor will help. |
17 July 2013, 11:05 | #7 |
Ya' like it Retr0?
Join Date: Jul 2005
Location: United Kingdom
Age: 49
Posts: 9,768
|
For Amiga programming in 2013 here is my suggestion
WinUAE + ClassicWB + GadTool + Storm C++ V3.0 or higher This will get you in the door - opening graphics windows, learning disk routines for loading / saving of data. While C/C++ are high level languages - in time, when you are confident, you can compile to assembly (as opposed to object code) and then optimize the assembly before continuing to compile to object code and then linking onto executable code. The thing with ASM - while very VERY powerful it can lead to some problems, its very easy to learn, but will take years to master and most notably system dependencies that may not be on every Amiga platform thus breaking compatibility This is something you need to consider before you plum for this approach. IMHO, get to grips with C/C++ and the Amiga DOS environment, and then move onto ASM to tighten and speed up critical routines. When coding on the Amiga this is what I do, irony is at the moment I am coding on the 8bit spectrum, and I write my ASM into C routine wrappers as it really speeds up development (as opposed to writing native Z80 ASM) I would suggest to choose a very simple first project (like a maze / dungeon crawler) - dont worry about enemies, just get maze-map to image translations, learn double buffering and some of the eccentricities of how the Planar Graphics on the Amiga works. You will need to learn a bit on how AmigaDOS works as well as loading / saving - including file types like IFF / TIF and BMP and with some of these you will learn encoding - namely RLE (Run Length Encoding) which is still used a lot today! This will be more than enough to keep you busy for the next few months. Then move onto more stuff like adding enemies to catch you. with just these very few components your program will become VERY big very quickly. Last edited by Zetr0; 17 July 2013 at 11:21. |
17 July 2013, 11:17 | #8 | |
Ya' like it Retr0?
Join Date: Jul 2005
Location: United Kingdom
Age: 49
Posts: 9,768
|
Quote:
When I used to use DICE I would write my files up in ed, I then realized the insantity I had been putting myself under and wrote my own editor that highlighted C keywords / symbols, I then moved up to GoldED. eventually I bit the bullet and bought Storm C++ V3.0 (over £100 back in the day) and was playing with Warp 3d on my 060 and Cybersvision equipped Amiga... Good times..... Good times... |
|
17 July 2013, 11:30 | #9 |
Registered User
Join Date: Nov 2012
Location: Brisbane Australia
Posts: 150
|
whats the story on golded? you need a key, was it ever released to be free
|
17 July 2013, 14:41 | #10 |
Ya' like it Retr0?
Join Date: Jul 2005
Location: United Kingdom
Age: 49
Posts: 9,768
|
I think it was released, perhaps our fellow forum chummy gulliver would know more - he has done quite a bit for the community with contacting original authors of software and connecting them back to the community.
|
17 July 2013, 17:18 | #11 |
cheeky scoundrel
Join Date: Nov 2004
Location: Spijkenisse/Netherlands
Age: 42
Posts: 6,917
|
You invented a time machine, didn't you? You've gone back to the golden days of (game) programming.
|
28 July 2013, 00:26 | #12 | |
Posts: n/a
|
Thanks for the replies!
I decided to purchase the Amiga Developer CD but I haven't received it yet. Anyway, considering your replies, there seems to be no "definite, sure-fire way" to successfully do the programming but lots of different opinions. I'll have to see which one of the approaches suits me best (but suffice it to say that this project is going to take a helluva lot of time regardless of the approach). Quote:
As far as the simplicity of the game is concerned, expect something similar to some of the games in the 50 Great Games collection by Wicked Software (or the infamous Action 52 on the NES) except with better graphics. That's demanding enough for me. It won't be another paper-and-pencil or card game though. |
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
I need advice on compatible hardware for my A500 | Ilyad | support.Hardware | 1 | 28 May 2012 23:00 |
Compatible PC floppy drive for A500 case? | hoptoit | support.Hardware | 5 | 17 October 2010 23:16 |
Beginner needs advice on next upgrade step | Bishmanrock | support.Hardware | 27 | 14 October 2010 10:23 |
Project: Making A600 as A500-compatible as possible | 8bitbubsy | support.Hardware | 6 | 29 June 2010 08:23 |
Are these memory chips compatible with a500? | ssr | Hardware mods | 10 | 31 December 2008 21:49 |
|
|