English Amiga Board


Go Back   English Amiga Board > Other Projects > project.Amiga Game Factory

 
 
Thread Tools
Old 14 August 2019, 10:12   #1
alain.treesong
Aghnar
 
Join Date: Jan 2019
Location: France
Posts: 9
"Geometrical Blast" project

Hi,

At the beginning of the year I had fun coding in Amos a small engine "like a shadow of the beast".
This little code is reported in the Amiga France forum (in French) : https://www.amigafrance.com/forums/t...-beast-engine/

The idea was mainly to show that Amos was not that bad.
I would even say that this "basic" language for creating games on Amiga is excellent.

Of course, you can't redevelop a "Shadow of the beast" with all its scrollings and colors in pure Amos, not without redefining the copper list (possible in Amos but not in the spirit of the language) or the use of a home-made language extension (coded in 68000).
But we can make good quality Amiga games, smooth (I mean 50fps or a mix 25/50 fps) including games with fixed screen or light scrolling. So Barbarian+ for example could have been fluid on Amiga 500 vanilla if the authors, deserving by the way, had
really targeted this configuration.

I have a little time during this summer and an "amigaïte" takes me back so I thought to myself: why not code a shoot'em'up in Amos for Amiga 500 (512kp Chip / 512ko fast).
As it is not a fixed screen game, it contradicts what I just said before about scrollings and Amos. ;-)

The idea is to use this entry in the forum to make a kind of dev log and see if it can be of interest to the amigaphiles of the site. If some people are interested, I will make a new entry at each significant progress of the project.

So here we go.

The idea is to make a vertical scroll shmup and I would like to use the bitplane display of the Amiga.
Besides, as I appreciate the vectorial drawings, I can manage with only 4 bitplanes, transparency effects and a slightly geometric aesthetic. In addition, the sprites of the Amiga have their own palette (among the colors 16 to 31) and will allow
to add a little color.

Well the idea is already to make a small engine with a ship that shoots at a scrolling scenery.

I will devote for the moment 2 bitplans for the sets.
For the drawing, I could have taken "The Gimp" for example but I took Deluxe paint 4 under winuae: -)
I drew 2 sets in 2 colors, it's not very beautiful but it will be fine for now (besides the shots are not quite centered...).

Click image for larger version

Name:	geoDPaint.png
Views:	106
Size:	18.9 KB
ID:	64091

Once the images were loaded in Amos, I didn't use dual playfield mode and scrolling based on the "Screen Offset" command (the amos devs will understand)
because Amos has trouble handling sprites in this mode and sprite and bobs collisions (objects drawn by the blitter) do not take offset (bug ;-)).
I used a command from the Amos turbo extension (1993 so now standard) to move the bitplanes independently ("plane offset" for experts).

For the ship and the shots I use sprites and 3 animations channels managed by the AMOS animation system (called AMAL).
I put two missiles in and I'll add more in the future.
The blitter is not yet used and will be used for enemy waves (but this will be the subject of another ticket).

It gives that:

Click image for larger version

Name:	geoBlast1_001.png
Views:	126
Size:	13.3 KB
ID:	64092

The game is currently played with the mouse. The left button to shoot. I will put the joystick in place later.

I attach an ADF to be tested on a real Amiga 500 preferably:
geo1.adf

All returns are welcome.

By the way, I'm calling the project "Geometrical Blast" for the moment.

Ciao

Last edited by alain.treesong; 14 August 2019 at 10:17. Reason: wrong link
alain.treesong is offline  
Old 14 August 2019, 10:14   #2
Steril707
Tigerskunk!

Steril707's Avatar
 
Join Date: Sep 2016
Location: Amiga Island
Posts: 941
Keeping an eye on this...

Nice effort!
Steril707 is offline  
Old 15 August 2019, 10:48   #3
alain.treesong
Aghnar
 
Join Date: Jan 2019
Location: France
Posts: 9
"Geometrical blast" project part 2

Hi,

First of all thanks to Steril707 for the nice feedback.

So we have a scrolling set, a ship and a few shots. The idea now is to add targets. Useful in a shmup.
And of course by staying at 50 fps. We're on Amiga 500 anyway ;-).

Before that, I replaced the mouse with the joystick and added a sprite (with colours 26,27 and 28) to increase the rate of shooting.
The sprites of the Amiga OCS and Amos may be the subject of a new post if this project interests people but for now, we will focus on the blitter.


The first two bitplanes are reserved for the scrolling set.
So the next two "fixed" bitplanes will be dedicated to the objects managed by the blitter (called "bobs" and corresponding to the Amos "Bob" command).
The fact that the bitplanes are fixed is interesting:
- This makes it easier to manage the bobs positions. Otherwise, the offset introduced by scrolling should be taken into account. It can be done in Amos but if we can avoid it, that's good (simpler, better as always).
- The management of sprites/bobs collisions provided in Amos is buggy and does not take into account the scroll offset. In this case, to get out of it, you must read the CLXCON and CLXDAT registers directly. Therefore, the fixed bitplanes allow the use of standard Amos commands (simpler, better...)

Obviously use only 2 bitplanes has a counterpart. We're only going to have three true colors: 4, 8 and 12.
Colours 1 to 3 are for the decoration and the other colours between index 5 and 15 will be a combination of decoration and bobs. However, with a good choice of palette you can have nice transparency effects by combining 4 bitplanes.
In addition, sprites (player's ship and shots) have their own palette (up to 15 colors at most). So by keeping a graphic aspect a little geometric, I think it will eventually be possible to give something beautiful (not to mention the Rainbow command from Amos but we may talk about it again some other time).

For the animation of the bobs, I used the AMAL sub language of Amos as I had done for the sprites.
Up to 16 channels can work under interruption. So we can have 16 animated objects on the screen.
It should be noted that you should not use the amos Bob command in the main loop of the game but define the bobs with this command outside the game loop and manage the state of the bobs (positions, images...) with Amal and specific registers.
This is a common mistake of Amos developers and leads to the erroneous conclusion that bobs management is slow in Amos while it is actually accurate for a language of this type.

To illustrate this little technical information (I hope not too boring), I have attached a little demo to run on a real Amiga 500 preferably.

Click image for larger version

Name:	geoV2.png
Views:	103
Size:	14.0 KB
ID:	64102

Now with the joysticl to move the player's ship, one can shoot at successive waves of small enemy ships.
The ships mark the impacts of the shots and resist several shots (fixed at 3 here) before exploding.
The ships are transparent (the palette could be better :-))

Currently the demo provided displays up to 13 competing objects.
Normally we still have our 50 fps on our Amiga 500 vanilla.
Theoretically Winuae is faithful but any feedback on real material (and other comments) is welcome.

The demo can be downloaded here.
here (ADF)

See you next time.
alain.treesong is offline  
Old 15 August 2019, 13:00   #4
JudasEZT
Registered User
JudasEZT's Avatar
 
Join Date: May 2003
Location: mercury
Posts: 568
Good stuff.

At this moment I think that I prefer square collisions better than BobCol Amos commands.
Mainly because, if game layout permits it.. I prefer doesn't draw bob masks and save much raster.
JudasEZT is offline  
Old 15 August 2019, 13:18   #5
DamienD
Global Moderator

DamienD's Avatar
 
Join Date: Aug 2005
Location: London / Sydney
Age: 42
Posts: 14,894
Hi Alain,

I've moved your thread from the Amiga scene section to where other game projects live; the project.Amiga Game Factory section
DamienD is offline  
Old 15 August 2019, 13:29   #6
alain.treesong
Aghnar
 
Join Date: Jan 2019
Location: France
Posts: 9
@DamienD
Ok thanks.

@JudasEZT
Thanks for the advice. If I have some perf problem, I will test a version with manual square collision.

Regards,
Aghnar
alain.treesong is offline  
Old 16 August 2019, 11:13   #7
alain.treesong
Aghnar
 
Join Date: Jan 2019
Location: France
Posts: 9
Passionate Amiguys hello,

Here is a slight update of the shmup engine.
An enemy fire routine has been added to the player's ship.

In the attached demo, 2 shots are set up (fixed on two enemy ships at random each time the code is launched).
I didn't specifically adjust the speed and playability because the player is always invulnerable.
The purpose is just to test the routine. Simple, actually.

Click image for larger version

Name:	geoBlast3_001.png
Views:	53
Size:	13.8 KB
ID:	64122

The demo can be downloaded
here

There are currently 15 potential objects on the screen at the same time and normally always at 50 fps.
But obviously this remains to be proven on real hardware (the target is the basic Amiga 500) although we can trust the extraordinary Winuae.

As always, any kind of feedback, remarks, ideas, thoughts and other intellectual elucubrations are welcome. :-)


"A la prochaine"
Aghnar
alain.treesong is offline  
Old 16 August 2019, 16:34   #8
zzbylu
Saberman

zzbylu's Avatar
 
Join Date: Dec 2016
Location: Kielce/Poland
Posts: 96
Gameplay - demo preview
[ Show youtube player ]

Last edited by zzbylu; 16 August 2019 at 19:32.
zzbylu is offline  
Old 16 August 2019, 17:45   #9
ppill
CON: artist
ppill's Avatar
 
Join Date: Feb 2006
Location: Poland
Age: 38
Posts: 1,202
Quote:
Originally Posted by zzbylu View Post
Gameplay - demo preview
[ Show youtube player ]
Looking good. The video says Commodore 64 for some reason.
ppill is offline  
Old 16 August 2019, 19:33   #10
zzbylu
Saberman

zzbylu's Avatar
 
Join Date: Dec 2016
Location: Kielce/Poland
Posts: 96
Quote:
Originally Posted by ppill View Post
Looking good. The video says Commodore 64 for some reason.

My mistake - I've already corrected it.
zzbylu is offline  
Old 16 August 2019, 21:06   #11
alain.treesong
Aghnar
 
Join Date: Jan 2019
Location: France
Posts: 9
@zzbylu
Thanks a lot for the nice video :-)
alain.treesong is offline  
Old 17 August 2019, 01:22   #12
xboxown
Registered User
 
Join Date: Dec 2012
Location: Vancouver/Canada
Posts: 487
Quote:
Originally Posted by alain.treesong View Post
Hi,

At the beginning of the year I had fun coding in Amos a small engine "like a shadow of the beast".
This little code is reported in the Amiga France forum (in French) : https://www.amigafrance.com/forums/t...-beast-engine/

The idea was mainly to show that Amos was not that bad.
I would even say that this "basic" language for creating games on Amiga is excellent.

Of course, you can't redevelop a "Shadow of the beast" with all its scrollings and colors in pure Amos, not without redefining the copper list (possible in Amos but not in the spirit of the language) or the use of a home-made language extension (coded in 68000).
But we can make good quality Amiga games, smooth (I mean 50fps or a mix 25/50 fps) including games with fixed screen or light scrolling. So Barbarian+ for example could have been fluid on Amiga 500 vanilla if the authors, deserving by the way, had
really targeted this configuration.

I have a little time during this summer and an "amigaïte" takes me back so I thought to myself: why not code a shoot'em'up in Amos for Amiga 500 (512kp Chip / 512ko fast).
As it is not a fixed screen game, it contradicts what I just said before about scrollings and Amos. ;-)

The idea is to use this entry in the forum to make a kind of dev log and see if it can be of interest to the amigaphiles of the site. If some people are interested, I will make a new entry at each significant progress of the project.

So here we go.

The idea is to make a vertical scroll shmup and I would like to use the bitplane display of the Amiga.
Besides, as I appreciate the vectorial drawings, I can manage with only 4 bitplanes, transparency effects and a slightly geometric aesthetic. In addition, the sprites of the Amiga have their own palette (among the colors 16 to 31) and will allow
to add a little color.

Well the idea is already to make a small engine with a ship that shoots at a scrolling scenery.

I will devote for the moment 2 bitplans for the sets.
For the drawing, I could have taken "The Gimp" for example but I took Deluxe paint 4 under winuae: -)
I drew 2 sets in 2 colors, it's not very beautiful but it will be fine for now (besides the shots are not quite centered...).

Attachment 64091

Once the images were loaded in Amos, I didn't use dual playfield mode and scrolling based on the "Screen Offset" command (the amos devs will understand)
because Amos has trouble handling sprites in this mode and sprite and bobs collisions (objects drawn by the blitter) do not take offset (bug ;-)).
I used a command from the Amos turbo extension (1993 so now standard) to move the bitplanes independently ("plane offset" for experts).

For the ship and the shots I use sprites and 3 animations channels managed by the AMOS animation system (called AMAL).
I put two missiles in and I'll add more in the future.
The blitter is not yet used and will be used for enemy waves (but this will be the subject of another ticket).

It gives that:

Attachment 64092

The game is currently played with the mouse. The left button to shoot. I will put the joystick in place later.

I attach an ADF to be tested on a real Amiga 500 preferably:
geo1.adf

All returns are welcome.

By the way, I'm calling the project "Geometrical Blast" for the moment.

Ciao
I am developing a special PacMan for the Amiga using AMOS. First thing I am working on are the graphics and I am also developing PacMan Construction Set. If I need to ask question about AMOS with proper palette loading, scrolling, and other screen effects...would it be OK if I ask you for help?

I would love to see this project completed and better than the previous AMOS project I have written.
xboxown is offline  
Old 17 August 2019, 10:49   #13
alain.treesong
Aghnar
 
Join Date: Jan 2019
Location: France
Posts: 9
"Geometrical blast" project part 4

Hi,

First, @xboxown :
Of course if I can help you, no problem (I invite you to make a new thread for this).

Now, here is a new update of the shmup engine.

Until now, I had quickly drawn small objects to be able to set up scrolling, movement and collision routines.

As I mentioned in the first post, the goal is a rendering with a geometric aspect, which will allow a good animation coupled with nice transparency/lighting effects.

So we'll test the idea. For this purpose, the wave of enemies of the previous adfs is replaced by a "boss" with a "3D" aspect.
The implemented movements and 3D form will be basic for this test.

There are a lot of 3D software but I'm not used to using them. So as in the good old days, I directly coded some simple 3D shapes in Amos. If it is not very productive, it at least allows to have a good control on the size of the object (which will be contained in an area of 96 by 80 pixels).
Besides, it's fun to do. In practice I had 3D routines on hand that I had done last year so frankly it didn't take long

Click image for larger version

Name:	v4_3D.png
Views:	48
Size:	6.5 KB
ID:	64134

The shape obtained is simple and made of lines. It's not super graphically but you could imagine more complex, prettier shapes with filled polygons (and I didn't use all the available colors).

As the good old days are good, but modern times are good too, I took "The gimp" (after a little conversion via Personnal Paint iff->png) and added a contour for a small lighting effect that will allow the Amiga's bitplanes.

Click image for larger version

Name:	gimp.PNG
Views:	50
Size:	85.2 KB
ID:	64135

Once the images were obtained and loaded in Amos, I set up a basic path of the boss (as usual via Amal): when the boss moves and rotates on itself it is invulnerable. When it fires (5 missiles) it can be hit.
The player is invulnerable anyway. There are 40 life points on the boss after which it explodes. The Player can therefore have fun shooting him for a short period of time.

Click image for larger version

Name:	v4_all.png
Views:	52
Size:	23.8 KB
ID:	64136

Normally it's smooth on a standard 500. I think I could even increase the size of the object and the number of shots.


The demo that illustrates this can be downloaded
ADF Geoblast4

As usual, I invite you to test this on a real Amiga and any feedback will be appreciated:-).

A brief assessment:
We have in 320x256, 4 bitplanes a little shmup engine with a small dual playfield (on 2 bitplanes).
The number of competing objects is 15, which offers possibilities compatible with this type of game.
With a certain type of graph mixing 3D and bitmaps drawings, a nice aesthetic seems possible to me.
I haven't set up a bonus routine or collisions with the player yet.
For the moment, everything is at 50 fps on a standard Amiga 500. By the way, congratulations Amos who was very well designed.

I spent a lot of time this week on this code.
I had a good time (but my eyes hurt a little:-))

I'm going to take a little break from dev to think about what I can do with this thing.
Obviously the ideal would be to make a complete game (with an old-fashioned box). To think about it, then.

Bye,
Aghnar

Last edited by alain.treesong; 17 August 2019 at 10:51. Reason: Spelling
alain.treesong is offline  
Old 17 August 2019, 15:41   #14
zzbylu
Saberman

zzbylu's Avatar
 
Join Date: Dec 2016
Location: Kielce/Poland
Posts: 96
and small gameplay
[ Show youtube player ]
zzbylu is offline  
Old 17 August 2019, 17:42   #15
alain.treesong
Aghnar
 
Join Date: Jan 2019
Location: France
Posts: 9
@zzbylu
Thanks again for this new video :-)
alain.treesong is offline  
Old 21 August 2019, 15:39   #16
Clydos
Registered User

 
Join Date: May 2018
Location: Dresden / Germany
Posts: 132
Very nice!

The graphical (style) of the background reminds me of "Skill Grid".
Clydos is offline  
Old 21 August 2019, 16:11   #17
Havie
Registered User
 
Join Date: Mar 2012
Location: UK
Posts: 429
Looking good!
Havie is offline  
Old 28 August 2019, 22:41   #18
alain.treesong
Aghnar
 
Join Date: Jan 2019
Location: France
Posts: 9
"Geometrical blast" project part 5

Hi,

First of all thank you for the last nice comments in the posts.

I took the time to think about how the game might look.
First of all, I think the player will only have one life with an energy bar, allowing him to be touched several times before finishing the game.
This will avoid the gameplay error of losing a large part of your firepower when you lose a life, making the game difficult to play.
However, it will be necessary to allow a change of weapon depending on the situation (as in the extraordinary Stardust for example).

In addition, I will see several levels accessible at the same time. There would therefore be a strategy for choosing the order of levels (again as in Stardust)
The levels would be quite numerous, short (not too much) but with a wide variety of bosses.

So much for a first general line.

Let us be more concrete now.
Until now, scrolling has been done on a repetitive screen of 256 pixels high.
This is probably enough for most levels. But it can be interesting to have to fly over a base for example and to be in interaction with part of the set.

For some levels, therefore, "infinite" vertical scrolling is required at least for the first scroll plane.
There are many ways to do multidirectional scrolling on Amiga.

In Amos, without having to manually reprogram the copperlist, the choice is more limited. However, from the moment we need an indeterminate size that in a single orientation (so either vertical or horizontal), it is perfectly feasible using the known algo of the double screen.
A lot of examples of this algo are available on the Web.
The idea is to build two screens as the scrolling progresses: the visible screen and a second, its exact clone. When the scroll index reaches the terminal offset, it is switched back directly to the initial offset, i. e. to the second screen.
As it is identical, the player does not see the difference. We can therefore scroll again from the initial index to the terminal and so on.

Usually to do this in Amos, we use the "Screen offset" and "Paste Icon" commands (or better "F Paste Icon" of the Amos Turbo extension, a 1993 extension now unavoidable).
Icons are read and displayed from an icon map as the scroll progresses.
The case here is a little different because only the second bitplane is of interest to us. It is therefore necessary to assign only this bitplane.
As the blitter is already well used, we will use the 68000, via "copy" instruction which lends itself well to this exercise.

This is the approach adopted: I quickly drew some icons in an iff image. After transformation into png, the icons have been loaded in the "Tiled" tool (https://www.mapeditor.org/).
This made it possible to make a map.

Click image for larger version

Name:	tiled.PNG
Views:	36
Size:	104.2 KB
ID:	64265

A small conversion with a tool written in Java provides a binary file representing the level map that can be loaded in Amos (via the "bload" command).
Then still under Amos, I reserved a second memory bank, (in fast if it is available), corresponding to the total size of the level, where a pixel corresponds to a single bit.
So a 320x256 pixel screen weighs 10Kb. In the detailed example below, the level will be 15 screens high. It therefore weighs 150KB in memory.
From the icons we fill this second bank which contains the bits to display what we will do when scrolling with the "copy" command.

In addition, it is interesting to have variable speed scrolling.
In fact the speed is a simple delta to add to each iteration. The difficulty is that the faster the scroll is, the larger the size of the decor to be processed by iteration.

Everything is fine here: the decor is made up of only one bitplane and the blitter is not required.
So I set up scrolling and even keeping the ship from the previous version, we still have our 50 fps.

That's a lot to read.

I attach a small demo of this routine so that those who are interested can test all this.
The idea here is to make a kind of bonus level like in the beautiful Project'x.

Click image for larger version

Name:	projectx.png
Views:	41
Size:	14.9 KB
ID:	64266

(Image taken from HAL, thx)

In the bonus sequence of this Team17's game, scrolling speeds up and the ship must avoid the scenery.
The alpha 5 demo uses the same principle: there are 3 different speeds and the object is of course to touch the set as few times as possible.

Click image for larger version

Name:	v5.png
Views:	47
Size:	19.5 KB
ID:	64267

For the moment the collision routine scene/ship is simple but will be sufficient I think for this version.
The gfx were done quickly. Be indulgent: -)
I left the shot active but it's useless here.
It's not a definitive level but by reworking the set and gameplay, it would be an idea of a bonus level.

As usual all returns are welcome.

The demo is made for a 500 with one mega of memory (so generally 512kb of chip and 512kb of fast) but should work in 50 fps on all Amiga with 1meg.

It can be downloaded here


That's it for this time.

See you next time.

Aghnar
alain.treesong is offline  
Old 08 September 2019, 22:29   #19
alain.treesong
Aghnar
 
Join Date: Jan 2019
Location: France
Posts: 9
Hello,

Just a short message to indicate that I am continuing the "Geometrical Blast" project. With motivation: -)
I hope to achieve it, i.e. a complete shmup(with a real game box) for all Amiga 1mb and therefore the standard Amiga 500 (512ko chip, 512ko fast).

The current objective is to program a small level with different waves of enemies up to a final boss.
The idea is to work on the gameplay and improve the graphics to tend towards the type of visual I imagine. This will give a good idea of the final shape of the game.

For that I am currently working on tools, between PC and Amiga in order to be able to create the different protagonists: main ship, intermediate enemies and "boss" that I want many and varied.
Here is just a small screenshot with a relatively low rendering:

Click image for larger version

Name:	model3D.png
Views:	35
Size:	13.6 KB
ID:	64404

Moreover, if some hardware-equipped amigaists would like to give me a feedback on real Amigas of the little demos I linked in my previous posts, that would be nice.
A wave of small ships : https://www.dropbox.com/s/pu6ldw5ge6...last3.adf?dl=0
A larger (but basic) object: https://www.dropbox.com/s/jousyvpgok...last4.adf?dl=0
Scrolling with speed variation and collision scenery: https://www.dropbox.com/s/9x2fptakuj...last5.adf?dl=0

I have an Amiga 500 (I have had it since 1990:-)) but it is at the family home and so I don't have it on hand at the moment.
So any test on A500,500+,600,2000,2000,1200 etc. is welcome. Thank you.

Bye
Aghnar
alain.treesong is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
"Voices8" 8 Channel Soundtracker "DemoSongI" song - "This is the Amiga with 8 Voices" DemosongIHunter request.Music 40 13 April 2017 05:06
Can't get "Blast Squad" to run earok support.Games 4 23 February 2015 22:10
HELP NEEDED! New "Amiga-daptor" project to support Analogue controllers! SunChild support.Hardware 10 03 November 2013 07:51
"Reminder "Lincs Amiga User Group aka "LAG" Meet Sat 5th of January 2013" rockape News 4 30 January 2013 00:06
Scanned reviews of "Drop It" & "Project Ikarus" Tim Janssen HOL contributions 1 15 May 2003 09:55

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 11:46.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.
Page generated in 0.09706 seconds with 16 queries