17 April 2021, 16:06 | #21 |
Registered User
Join Date: May 2001
Location: ?
Posts: 19,645
|
Why not go ahead and make something that isn't on Amiga, like R-Type 3? Pretty sure ripping SNES graphics would be easy.
You got a nice thing going here. |
18 April 2021, 19:06 | #22 |
Registered User
Join Date: May 2017
Location: AmigaLand
Posts: 459
|
Love reading game's WIP threads.
Nice job. |
19 April 2021, 18:48 | #23 |
Registered User
Join Date: Oct 2020
Location: Italy
Posts: 26
|
Development Diary
19/04/2021: Player ship collision with background
We define 4 test points: T1, T2, T3, T4 as in the following figure. To check if the ship collides with the background, just determine the tile underlying each test point. If the tile is solid, there is a collision. The calculation of the underlying tile to a point Ti is simple as we used a tile map: Code:
convert Ti in world coordinates xw,yw calculate the indices of the underlying tile on the map: i = xw/16 j = yw/16 underlying tile index = map(i,j) if underlying tile is solid change ship state to hit, because there is a ship-background collision [ Show youtube player ] |
19 April 2021, 19:18 | #24 |
J.M.D - Bedroom Musician
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,518
|
|
19 April 2021, 22:19 | #25 | |
Registered User
Join Date: Apr 2002
Location: Germany
Age: 43
Posts: 742
|
Please not. Regarding R-type LEO:
Quote:
I would vote for not remaking R-Type, as it's already a good port. When the game engine is finished, perhaps use the assets from R-Type 1 and/or 2 and create a new R-Type from there ? But in the end it's Coppis decision what he does. If he wants to do an easier R-Type 1, then so be it. I would still follow this thread with interest . |
|
19 April 2021, 22:37 | #26 |
J.M.D - Bedroom Musician
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,518
|
R-type for SNES has somewhere mode 7 that i doubt he can replicate - or am getting confused with Super R-type?
He could even do completely different levels if he has a pixel artist (one could be me in example) Last edited by saimon69; 19 April 2021 at 23:31. |
19 April 2021, 22:42 | #27 |
Gets there in the end...
Join Date: Sep 2005
Location: Wales
Posts: 862
|
Regarding the collision have you thought of using a hardware sprite for the ship and using the built in collision commands? In JetHunters I draw the tiles then the enemies and bullets then I check if the sprite has hit anything. After that check I then draw the player bullets, stars and powerups.
|
20 April 2021, 01:59 | #28 |
Registered User
Join Date: Mar 2018
Location: Austria
Posts: 615
|
Very interesting Coppis, carry on please!
|
20 April 2021, 10:05 | #29 | |
Registered User
Join Date: Oct 2020
Location: Italy
Posts: 26
|
Quote:
Thank you for the suggestion, i will try to optimize the game using hardware sprite for the ship and hardware collision detection between sprite and playfield. |
|
21 April 2021, 18:47 | #30 |
Registered User
Join Date: Oct 2020
Location: Italy
Posts: 26
|
Development Diary
21/04/2021 - Information Panel
We want to create an information panel, at the bottom of the screen, to show the score, the number of lives etc ... To do this we will take advantage of an Amiga feature that allows you to have different video modes simultaneously on the same screen. The following picture shows the screen layout: We have a game window, with a 320x192 pixel size, which starts at raster line 44. The game window uses dual playfield mode with 4 bitplanes for each playfield, so has 16 colors. Then we have an information panel, with a 320x64 pixel size, which starts at raster line 237. In fact we need to leave a 1 raster line gap between two different video modes. The panel uses 3 bitplanes, so has only 8 colors. The following code snippet initalizes the information panel: Code:
; create bitmap for panel and load graphics BitMap #BITMAP_PANEL,#PANEL_WIDTH,#PANEL_HEIGHT,#PANEL_BPP LoadBitMap #BITMAP_PANEL,"panel.iff",#PALETTE_PANEL ; panel copperlist settings: panelCopperList.l = $3 ; 3 bitplanes ; initialize copperlist used for panel, starting at y=44+192+1=237, height 64 px, 8 colors ; we need to divide the two copperlists at least by 1 scanline InitCopList #COPPERLIST_PANEL,237,64,panelCopperList,0,8,0 ; copy color data from palette to copperlist DisplayPalette #COPPERLIST_PANEL,#PALETTE_PANEL BLITZ ; setup the screen display with the copperlists CreateDisplay #COPPERLIST_MAIN,#COPPERLIST_PANEL Code:
Repeat VWait DisplayBitMap #COPPERLIST_PANEL,#BITMAP_PANEL To draw the current score, we need to draw numbers using a bitmap font. So we create a numeric font, in which each digit is 8x8 pixel and save these tiles into an iff file, like the following: To display the score, which is a numeric variable, we will convert it into a string. Then we will extract each character from the string, calculate the index into the tilesheet and then blit the tile to the screen. For the blitting we use BBlit command, which saves and restores the background. The background is stored into a dedicated buffer. This code snippet displays the score: Code:
Statement DisplayScore{} Shared score Use BitMap #BITMAP_PANEL ; restore the background UnBuffer #BUFFER_SCORE ; convert score into a string text$ = Str$(score) offset=0 ; loop for each character of the score string For i=0 To 5 ; extract one character from the string c$ = Mid$(text$,i+1,1) ; get the ascii code of the current character ascii = Asc(c$) ; calculate shapeID from the ascii code shapeID = ascii - Asc("0") ; display the current character BBlit #BUFFER_SCORE,#SHAPE_NUMFONT+shapeID,56+offset,9 ; space for the next character offset = offset + 8 Next End Statement The number of lives is displayed using icons. These icons are stored into a spritesheet. When the number of lives decreases, we blit a new frame on the panel, showing the new icons number. The following code snippet displays the lives on the panel: Code:
Statement DisplayLives{} Shared lives Use BitMap #BITMAP_PANEL ; restore the lives blob background UnBuffer #BUFFER_LIVES If lives >0 ; calculate the offset for frame number offset = 3 - lives ; display a blob with number of lives BBlit #BUFFER_LIVES,#SHAPE_LIVES+offset,1,2 EndIf End Statement [ Show youtube player ] |
21 April 2021, 20:41 | #31 |
Registered User
Join Date: Aug 2006
Location: Scunthorpe/United Kingdom
Posts: 1,977
|
|
21 April 2021, 20:52 | #32 |
Inviyya Dude!
Join Date: Sep 2016
Location: Amiga Island
Posts: 2,770
|
|
21 April 2021, 22:07 | #33 |
Jackie Chan
Join Date: Mar 2012
Location: Ireland
Age: 46
Posts: 985
|
If it were an original game I could help out on graphics too as best as I could. Saimon 69 is a good artist too.
|
23 April 2021, 12:29 | #34 | |
Banana
Join Date: Jul 2016
Location: Darmstadt
Posts: 1,213
|
Quote:
I'll post some example code later. Beware, there's a bug in the Blitz2 compiler when generating the BCD instructions. Search on this forum for a macro work-around. This would be much faster than converting to a string and doing string manipulations. |
|
23 April 2021, 18:52 | #35 |
Registered User
Join Date: Oct 2020
Location: Italy
Posts: 26
|
Development Diary
23/04/2021 - Beam bar and beam fire
I implemented beam bar as an animated blob, using 11 frames. There are 2 versions of beam fire: small and big. The first is shooted when beam bar is greater than 50% while the second only when beam bar is full. Look this video: [ Show youtube player ] |
23 April 2021, 20:50 | #36 | |
J.M.D - Bedroom Musician
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,518
|
Quote:
[ Show youtube player ] Last edited by saimon69; 23 April 2021 at 21:05. |
|
23 April 2021, 20:59 | #37 |
Phone Homer
Join Date: Jun 2006
Location: 5150
Posts: 5,773
|
you can just use block or whatever it is in blitz for the score you you don't need to restore anything.
|
23 April 2021, 21:14 | #38 |
Phone Homer
Join Date: Jun 2006
Location: 5150
Posts: 5,773
|
maybe you can help with this, not sure this is the correct thread
https://eab.abime.net/showthread.php...ht=bullet+hell question raised by Shatterhand you are firing Several bullets at several enemies, what is the quickest way to do your collision? That could easily be pre-rendered if the SNES version isn't already, how many frames would it be? Last edited by Retro1234; 23 April 2021 at 21:23. |
24 April 2021, 00:24 | #39 | |
Registered User
Join Date: Aug 2006
Location: Scunthorpe/United Kingdom
Posts: 1,977
|
Quote:
Edit: That was in agreement with Saimon69's post. |
|
26 April 2021, 19:42 | #40 |
Registered User
Join Date: Oct 2020
Location: Italy
Posts: 26
|
Development Diary
26/04/2021: Implemented different damage level for enemies
Different damage level for each type of enemy: to hit the enemy in the video below with the basic fire, you need to hit the enemy 3 times. [ Show youtube player ] |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
A bejewelled clone, deviish clone, columns clone | Gordon | Looking for a game name ? | 10 | 16 June 2014 19:28 |
What has Happened To clone-A? | digiflip | Amiga scene | 61 | 23 November 2013 16:41 |
clone xilinx is possible? | cpiac64 | support.Hardware | 3 | 24 September 2011 10:35 |
Clone-A presentation. | ppill | News | 60 | 16 September 2009 00:57 |
Name that Turrican clone | dreamkatcha | Looking for a game name ? | 4 | 17 June 2002 01:23 |
|
|