English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   Amiga scene (https://eab.abime.net/forumdisplay.php?f=2)
-   -   Downfall - diary of a game... (https://eab.abime.net/showthread.php?t=62851)

Graham Humphrey 24 January 2012 23:32

Downfall - diary of a game...
 
1 Attachment(s)
Yes - as I promised, after ruthlessly forcing ideas out of everybody a few weeks ago, here's the very start of a thread tracking my progress developing a new game for the Amiga.

As you may know (or you will if you have seen the above thread), I opted to code an Amiga version of Downfall. Downfall is a homebrew title for the Atari Jaguar, which itself was inspired by an Atari 2600 game called Man Goes Down.

As you will have gathered, it's a very simple platform affair but one based on falling, rather than jumping. As the platforms scroll up, your task is to stay on the screen without getting squished at the top, or falling to your doom at the bottom. Although a basic concept (one livened up slightly with the addition of bonuses) it's a surprisingly tricky and compulsive idea that had me coming back for 'one more go' on an alarming number of occasions.

There is no reason a bog-standard Amiga can't handle something like this, so I've got to work on a version in Blitz Basic. Despite the current title, it's not a port but being programmed totally from scratch (I might change its name to avoid confusion) so it will have its own levels and ideas, such as a saveable high score table and (hopefully) a two-player mode.

The most immediate task that had to be attended to was the scrolling, and the way the level data would be read by the game. It embarrassingly took me two whole weeks to nail the scrolling but it's now as solid as a rock, and the levels are read through data statements in the code as opposed to separate map files. As it's so simple it's actually probably quicker just banging in some numbers rather than go to the trouble of using map editors and the like. The only other thing I've added is a small score panel at the bottom but at the moment the text there is only a placeholder.

I've attached an archive of what I've done so far. Be warned the only graphics are a few brown platforms and all the program does is scroll a small level on a continual loop until you press escape. Of more interest to some will be the source code which I've included in both Blitz Basic and standard text format. I've commented it too, possibly not brilliantly but if anybody's got any queries I could always improve it at a later date.

I am aware there are a few people keen on learning the language to write their own games, so I hope the code here, and as the game progresses in the future, will provide some inspiration for those just starting out, and as I'm no expert myself, maybe some of the more clever people will give me suggestions as to how I can improve.

I appreciate this is a very modest effort so far and lots of work is still to be done. However, at least it's a start and it gives me something to build on and if I'm making my progress as public as this it will give me a big incentive to continue.

My next goal is to get the player's sprite on the screen and moving correctly. The actual mechanics of the game shouldn't be too tricky but the key is in the movement and responsiveness of the controls. That'll take some time to fine-tune.

Stay tuned for further instalments... no guarantees when but as soon as I have something worth showing it'll be here :)

(Incidentally, if anyone would like my Blitz installation (which includes the Blitz Support Suite) to have a play with, give me a shout and I'll upload it.)

Dreedo 24 January 2012 23:43

Will try this out when it gets further along in development, as I get annoyed using non-adf files. :D

But I'm really glad there's more Amiga games popping up here, if I was able to program for Amiga I'd just do it all day. :D Port tonnes of my favourite PC games over.

Hope you have fun making this, and don't give up!

Graham Humphrey 24 January 2012 23:48

Thanks, well, just posting this here will give me more incentive on its own as if I stop I'll look a bit silly :D

You're not missing out anyway, literally all it is some brown platforms scrolling up a screen. I will be providing the game on a self-booting ADF too when it gets to a late stage in development.

However the main reason I have posted my current work is that I think it could be interesting following how a game develops from its embryonic stages to the finished product, and so some of the would-be programmers can hopefully gain their own inspirations and ideas from the source code. So I will be posting updated versions on a regular basis, when there are tangible differences between each version :)

Dreedo 24 January 2012 23:53

Yep, perhaps this will get more people interested in Amiga development. I am interested, but just not in the mood to develop for PC and Amiga simultaneously, maybe at a later date. :)

s2325 25 January 2012 00:05

Thank you, how about some music? ;) http://www.youtube.com/watch?v=M9YRlEE1r3U

prowler 25 January 2012 00:19

Quote:

Originally Posted by Graham Humphrey (Post 798328)
I've attached an archive of what I've done so far. Be warned the only graphics are a few brown platforms and all the program does is scroll a small level on a continual loop until you press escape. Of more interest to some will be the source code which I've included in both Blitz Basic and standard text format. I've commented it too, possibly not brilliantly but if anybody's got any queries I could always improve it at a later date.

I appreciate this is a very modest effort so far and lots of work is still to be done. However, at least it's a start and it gives me something to build on and if I'm making my progress as public as this it will give me a big incentive to continue.

My next goal is to get the player's sprite on the screen and moving correctly. The actual mechanics of the game shouldn't be too tricky but the key is in the movement and responsiveness of the controls. That'll take some time to fine-tune.

Quote:

Originally Posted by Graham Humphrey (Post 798334)
However the main reason I have posted my current work is that I think it could be interesting following how a game develops from its embryonic stages to the finished product, and so some of the would-be programmers can hopefully gain their own inspirations and ideas from the source code. So I will be posting updated versions on a regular basis, when there are tangible differences between each version :)

Thanks for getting this started, Graham. I'm even going to try following your progress myself - see if it can broaden my horizons a bit. :nervous

Don't worry about the modest start. I'm a complete n00b at this stuff, so that'll make it all the more easy for me to get my head round it. ;)

Downloading your first archive now...

fishyfish 25 January 2012 09:20

I used to love reading the game development diaries in magazines in the c64 and amiga days, and also enjoy reading the interviews floating around the net with programmers of classic amiga games, so I look forward to reading this as you progress.

If you find the time though, perhaps you could even post some of your struggles along the way, and how you solved them. This can be quite useful for people trying to learn to code thier own games. Not just that but you may learn some new things along the way yourself if people reading have a "better/quicker/whatever" way of doing something :)

Graham Humphrey 25 January 2012 10:01

Quote:

Originally Posted by s2325 (Post 798338)
Thank you, how about some music? ;) http://www.youtube.com/watch?v=M9YRlEE1r3U

Wow, I didn't expect it to appear on YouTube! That was surreal. Don't worry - music and all the rest of it will come in due course (incidentally, if anybody out there wants to help provide graphics and music do drop me a line.)

Quote:

Originally Posted by prowler (Post 798342)
Thanks for getting this started, Graham. I'm even going to try following your progress myself - see if it can broaden my horizons a bit. :nervous

Don't worry about the modest start. I'm a complete n00b at this stuff, so that'll make it all the more easy for me to get my head round it. ;)

Downloading your first archive now...

Thanks prowler :) That's great to hear - the more people who take an interest the better!

Quote:

Originally Posted by fishyfish (Post 798391)
I used to love reading the game development diaries in magazines in the c64 and amiga days, and also enjoy reading the interviews floating around the net with programmers of classic amiga games, so I look forward to reading this as you progress.

If you find the time though, perhaps you could even post some of your struggles along the way, and how you solved them. This can be quite useful for people trying to learn to code thier own games. Not just that but you may learn some new things along the way yourself if people reading have a "better/quicker/whatever" way of doing something :)

Yes, that's a good idea. I do plan to go into more detail when it comes to implementing game features. I anticipate encountering a few problems when it comes to player movement so that could make for an interesting read for some people. And of course, the more I can learn and the more feedback I get, it can only be a good thing.

Retro1234 25 January 2012 12:44

:great

Raislin77it 26 January 2012 01:19

Quote:

Originally Posted by Graham Humphrey (Post 798328)
(Incidentally, if anyone would like my Blitz installation (which includes the Blitz Support Suite) to have a play with, give me a shout and I'll upload it.)

yes :D put me on the "request" list ;)

Graham Humphrey 26 January 2012 08:40

Check the Zone ;)

Back to the game... I had a bit of a play around last night. I drew a rubbish player sprite that's not even animated yet (this is why I need an artist to do these things y'see). You can move left and right but that's it, there's no falling, he's just suspended in mid-air at the moment. But hey, it's a start.

Updates might now be slower than intended due to doing something careless like getting myself a job... but I'll try and put aside some time each evening for it and see how it goes.

pubzombie 26 January 2012 22:32

Hi GH,
This is really kewl. I have got loads of students who study games design who will be really interested in this log. We have been getting them to create logs of the games design concepts and how they overcome problems that they encounter. I am in the process of getting them to do research on retro and homebrew design ethos and methods. Most of them want to be indie devs and find the constraints of old systems meant that games had to be more about game than about graphics.
Its going to be really interesting watching your ideas and design progress and develop. Good luck bro,
Keep up the hard work.
PZ
PS i don't know anything about coding, my interests lie totally in the theory and processes of getting a game from concept to market and what constitutes a good game.

Graham Humphrey 26 January 2012 23:41

Thanks :)

Not done any work on this tonight (just trying to adapt to the whole 'new job' thing and so on), but will definitely do some work over the weekend. It's a real incentive to know so many people are watching this with some sort of interest.

prowler 27 January 2012 00:16

Quote:

Originally Posted by Graham Humphrey (Post 798744)
Not done any work on this tonight (just trying to adapt to the whole 'new job' thing and so on), but will definitely do some work over the weekend. It's a real incentive to know so many people are watching this with some sort of interest.

Congrats on landing the new job, Graham! :great

I've just downloaded your Blitz2 archive and I'll be giving this a go tomorrow. :)

Peter 27 January 2012 01:15

+1 watching with much interest, well done for making the time Graham!

I really need to stop playing stupid old PS2 games and at least try and do something with Blitz or Amos before I get too old!

prowler 27 January 2012 23:18

1 Attachment(s)
Yay, I got it running! :great

Decompressed the archive onto my A1200 hard drive, navigated to the directory containing the executable and ran it. :D

There was a scary moment when I copied the executable to a floppy and wondered why nothing happened when I ran it on my A500. :nervous

Ah, but then I realized it wasn't standalone and copied all the rest of it over too. :p

I must admit, it's quite impressive - even at this stage. :bowdownMy gaming experience has never really advanced much beyond the Atari VCS, and getting this fired up has got me thinking just how addictive some of those games were...

Well enough about that. It occured to me after I'd had it running a while that I didn't get a screenshot. So, in the best EAB Competition tradition, here it is! :spin

00000 ;)

PS. I'll have a look at the code tomorrow to see how it was done...

Graham Humphrey 28 January 2012 11:40

Nice work prowler :laughing

Thanks for taking the time and the interest to have a look, that's great!

As you will have seen, if the game can't find all the files it needs to run it will just silently quit out at the moment. At the end I might add some sort of error message or something if there's a file missing.

Also it's really good you're taking a look at the code too... hopefully you'll manage to figure out the way it works... this is where we find out if my notes are up to scratch ;)

I made some fairly swift progress last night - the player can now move left and right, and I've also added falling now too (a crucial part of the game). The collision detection is very simple - we check one pixel below the player's feet and detect the colour of that pixel. If it's zero (i.e. black) then the player will fall until he either (a) hits a platform or (b) falls off the screen and therefore dies. (Oh yeah, if you go off the top or bottom of the screen it's game over too.)

It's still all a bit crude - there's no inertia or an increase in speed on the player so it moves at a constant speed. It's probably a bit too easy and boring as a result. Also the player graphics are extremely basic with no animation - he just faces left and right which is the limit of my graphical ability. But it all seems to work so far so there's a good base to build on.

Regardless of what progress I make over the weekend, I will definitely upload a new version of the game tomorrow night for you all to have a look at :)

pubzombie 28 January 2012 12:04

Hi all,
Just thought U guys may be interested its global games jam this weekend.
http://globalgamejam.org/
We can watch the development cycle of a game crammed into 48 hours. Some of last years were really good, and I get the added bonus of seeing folks I know survive on redbull and pizza for the weekend. :-D

prowler 29 January 2012 01:45

Quote:

Originally Posted by Graham Humphrey (Post 798974)
Nice work prowler :laughing

Thanks for taking the time and the interest to have a look, that's great!

As you will have seen, if the game can't find all the files it needs to run it will just silently quit out at the moment. At the end I might add some sort of error message or something if there's a file missing.

Also it's really good you're taking a look at the code too... hopefully you'll manage to figure out the way it works... this is where we find out if my notes are up to scratch ;)

I'm going to be a bit busy this weekend on the Compute Games disk, but next thing I do will be picking it up again here.

This will probably be the only chance I get for a practical introduction to programming the Amiga, and I don't intend to miss out, so expect some searching questions. :evilgrin

Quote:

Originally Posted by Graham Humphrey (Post 798974)
I made some fairly swift progress last night - the player can now move left and right, and I've also added falling now too (a crucial part of the game). The collision detection is very simple - we check one pixel below the player's feet and detect the colour of that pixel. If it's zero (i.e. black) then the player will fall until he either (a) hits a platform or (b) falls off the screen and therefore dies. (Oh yeah, if you go off the top or bottom of the screen it's game over too.)

It's still all a bit crude - there's no inertia or an increase in speed on the player so it moves at a constant speed. It's probably a bit too easy and boring as a result. Also the player graphics are extremely basic with no animation - he just faces left and right which is the limit of my graphical ability. But it all seems to work so far so there's a good base to build on.

Regardless of what progress I make over the weekend, I will definitely upload a new version of the game tomorrow night for you all to have a look at :)

Keep the faith. It sounds to me like you're making a fine start. :great

Graham Humphrey 29 January 2012 23:07

1 Attachment(s)
As promised, here's the sum total of my work so far (that's vaguely presentable, at least). I apologise for the rubbish sprite and lack of animation but then I've never been an artist.

Doubtless you will see the odd little quirk here and there - occasionally the game will crash if you fall off the bottom of the screen; this is because the sprite is actually too tall and if you're at the bottom of the bitmap its Y coordinates will fall outside it (there's 16 extra pixels at the top and bottom of the bitmap to allow objects to scroll smoothly on and off screen but the player is 20 pixels high which is a bit silly).

Still no inertia or anything and the collision detection isn't perfect but you can find that out for yourselves. Also when you die the program keeps scrolling forever - that's something I need to tidy up also. And I've changed the scrolling slightly so that as the top platform scrolls off screen, a new one scrolls on from the bottom (which is how the Jaguar version works), but have neglected to change the source code notes accordingly.

Plenty of work to be done, still. In the meantime, I need some graphics, music and sound effects if anybody is interested in contributing. And if people can offer their own advice/method for sussing the controls and collision detection properly that would be handy too.


All times are GMT +2. The time now is 17:44.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.

Page generated in 0.13962 seconds with 11 queries