Author Topic: Gun Ranger neXt, Game Progress thread  (Read 5417 times)

0 Members and 1 Guest are viewing this topic.

Offline Pixel_Outlaw

  • Pentium
  • *****
  • Posts: 1382
  • Karma: 83
    • View Profile
Gun Ranger neXt, Game Progress thread
« on: September 12, 2007 »
The bullet hell engine for Gun Ranger neXt is done.
Gun Ranger was my first game in Blitzmax and was well recieved by much of the shmup community. The sequil will feature scriped levels and bosses and a special movement combo system found in figting games. It will be difficult but fair.

I'll post the source when I can clean it up and optimize.

« Last Edit: October 10, 2007 by Pixel_Outlaw »
Challenge Trophies Won:

Offline Rbz

  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 2757
  • Karma: 493
    • View Profile
    • https://www.rbraz.com/
Re: Gun Ranger neXt - Bullet hell engine done.
« Reply #1 on: September 12, 2007 »
Ah, I like shoot em up games!   I hope we can play this one soon  :)
Challenge Trophies Won:

Offline Pixel_Outlaw

  • Pentium
  • *****
  • Posts: 1382
  • Karma: 83
    • View Profile
Re: Gun Ranger neXt - Bullet hell engine done.
« Reply #2 on: September 12, 2007 »
Still some work to do on the optimization but here is a demo with source for the Bmax users.

You will need the bullet image, name it "image.png"

Code: [Select]
Strict
 

Global enemy_shots:TList= New TList ' list for our enemy shots
Global cell_groups:TList = New TList ' this is for the cell groups
Type enemy_shot
Field x:Float, y:Float, direction:Float, speed:Float, radius:Float
Function Create(x:Float, y:Float, direction:Float, speed:Float, radius:Float)
Local temp:enemy_shot= New enemy_shot
temp.x=x
temp.y=y
temp.speed=speed
temp.direction = direction
temp.radius = radius
ListAddLast(enemy_shots,temp)
EndFunction
Method update()
outside_screen()
move()
draw()
End Method
Method move()
x:+Cos(direction)*speed
y:+Sin(direction)*speed
End Method
Method outside_screen()
If x<0
destroy()
End If
If y<0
destroy()
End If
If x>640
destroy()
End If
If y>480
destroy()
End If
End Method
Method destroy()
ListRemove(enemy_shots,Self)
End Method
Method draw()
DrawImageRect(image, x - radius, y - radius, radius * 2, radius * 2)
End Method
End Type ' basic bullet

Type shot_burst
Field x:Float, y:Float, fill_angle:Float, numshots:Float, direction:Float, step_delay:Int, shot_speed:Float, shot_radius = 16
Method fire()
Local start_angle:Float = direction - (fill_angle / 2.0)
Local sub_angle:Float = fill_angle / numshots
For Local i = 0 To numshots - 1
enemy_shot.Create(x, y, start_angle + (i * sub_angle) + (sub_angle *.5), shot_speed, shot_radius)
Next
End Method
End Type  ' resides witin a burst timeline  'describes a pattern

Type burst_timeline
Field num_bursts#=0,bursts:shot_burst[],event_time%,reset_time=0
Method add_burst(burst:shot_burst) ' add a burst and time from last shot to be executed
Local new_length%=bursts.length+1
bursts=bursts[..new_length]' holds bursts
bursts[new_length-1]=burst
num_bursts:+1
If burst.step_delay>reset_time ' if the new burst needs more time add to the reset time
reset_time=burst.step_delay
End If
End Method
Method update()

For Local i:shot_burst=EachIn(bursts)
If i.step_delay=event_time
i.fire()
EndIf
Next
event_time:+1
If event_time>reset_time
event_time=0
End If
End Method
End Type

'test

Local p:burst_timeline = New burst_timeline ' here is a burst timelie-
' that might be stored in an enemy or boss type



' use a series of for loops to add burst patterns to our burst_timeline object

For Local i:Float = 1 To 11
Local d:shot_burst = New shot_burst 'Left side

d.step_delay = i * 10

d.x = 320 - 120
d.y = 128
d.shot_speed = 2
d.direction = 180
d.numshots = 5
d.fill_angle = i * 36
p.add_burst(d)
Local e:shot_burst = New shot_burst

e.step_delay = i * 10 'right side

e.x = 320 + 120
e.y = 128
e.shot_speed = 2
e.direction = 0
e.numshots = 5
e.fill_angle = i * 36
p.add_burst(e)
Next ' add twin burst pattern
Local m = p.reset_time ' this local var will give us
'a continue count from the last for loop
For Local i:Float = 1 To 30
Local e:shot_burst = New shot_burst

Local n = i
If n > 12
n = 12
End If
e.step_delay = m + i * 2

e.x = 320
e.y = 240
e.shot_speed = 2
e.direction = 90
e.numshots = n
e.fill_angle =M+ i * 12
p.add_burst(e)
Next ' add bottom bloom
 m = p.reset_time ' update our left off count
For Local i:Float = 1 To 30
Local e:shot_burst = New shot_burst

e.step_delay = m + i * 2

e.x = 320
e.y = 120
e.shot_speed = 2
e.direction = i * 12
e.numshots = 12
e.fill_angle = 360
p.add_burst(e)
Next ' add top radial burst
 m = p.reset_time ' update last ticks again
For Local i:Float = 1 To 10

For Local j = 0 To 11
Local e:shot_burst = New shot_burst

e.step_delay = m + i * 10

e.x = 320 + Cos(j * 30) * 32
e.y = 240 + Sin(j * 30) * 32
e.shot_speed = 3
e.direction = i * 15
e.numshots = 6
e.fill_angle = 360
e.shot_radius = 8
p.add_burst(e)
Next
Next ' add ring shots
m = p.reset_time ' update last ticks again
For Local i:Float = 1 To 10
Local e:shot_burst = New shot_burst

e.step_delay = m

e.x = 320
e.y = 240
e.shot_speed = 2 + (I *.05)
e.direction = 0
e.numshots = 36
e.fill_angle = 360
e.shot_radius = 32
p.add_burst(e)
Next ' add exanding line ring

Graphics 640, 480
SetMaskColor(0, 0, 0)
SetBlend(ALPHABLEND)
 
Global image:TImage = LoadImage("image.png")
While not KeyDown(KEY_ESCAPE)
Cls

p.update()
For Local e:enemy_shot=EachIn(enemy_shots)
e.update()
Next
DrawText("Bullets: :" + CountList(enemy_shots), 12, 12)
Flip
Wend



EDIT HERE is the .exe
http://www.mediafire.com/?cmwymv4f0ln
« Last Edit: October 10, 2007 by Pixel_Outlaw »
Challenge Trophies Won:

Offline benny!

  • Senior Member
  • DBF Aficionado
  • ********
  • Posts: 4384
  • Karma: 228
  • in this place forever!
    • View Profile
    • bennyschuetz.com - mycroBlog
Re: Gun Ranger neXt - Bullet hell engine done.
« Reply #3 on: September 12, 2007 »
Wow ... that s a real bullet inferno. Runs smooth here. N1
[ mycroBLOG - POUET :: whatever keeps us longing - for another breath of air - is getting rare ]

Challenge Trophies Won:

Offline Clyde

  • A Little Fuzzy Wuzzy
  • DBF Aficionado
  • ******
  • Posts: 7271
  • Karma: 71
    • View Profile
Re: Gun Ranger neXt - Bullet hell engine done.
« Reply #4 on: September 12, 2007 »
Neat Bullet effects Pixel_Outlaw :)
Still Putting The IT Into Gravy
If Only I Knew Then What I Know Now.

Challenge Trophies Won:

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: Gun Ranger neXt - Bullet hell engine done.
« Reply #5 on: September 12, 2007 »
Very pretty actually!
Shockwave ^ Codigos
Challenge Trophies Won:

Offline Jim

  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 5301
  • Karma: 402
    • View Profile
Re: Gun Ranger neXt - Bullet hell engine done.
« Reply #6 on: September 12, 2007 »
It's kind of like an infi-bob demo with REAL infinite bobs!  One thing you might want to fix is the clipping on the right and bottom.  When the sprites go off left and top, the sprite slides off nicely.  At the right and bottom, the sprites pop off as soon as they touch the edge.
Good demo :)
Jim
Challenge Trophies Won:

Offline Pixel_Outlaw

  • Pentium
  • *****
  • Posts: 1382
  • Karma: 83
    • View Profile
Re: Gun Ranger neXt, Game Progress thread
« Reply #7 on: October 10, 2007 »
Since my engine is done, I'm beginning work on the main game. Currently the weapon has two firing patterns controlled with a button tap and holding down the button. If you have not played DonPachi or DoDonPachi now would be the time to do so to gain a feel for the system. Mine differs a bit in that my spread shots are a bit wider. Also with this system speed is relative to holding down or tapping the fire button. The focus shot slows down the ship for tight pattern manourving and the spread beam or just not holding the button at all sets the ship's speed to normal. The beauty of this system is you are controlling 2 variables with one button, truly an efficent and minimalistic design. This game will be a bullet hell or danmaku or manic shooter. The controlls will be kept to two buttons and a directional pad. This means that the person playing with a NES controller (with adaptor) can play the same as a person playing with a newfangled XBOX controller. Currently there is only keyboard support, I'll need to make a little library of functions that will come later in development. Oh yes, the z button is fire. As is traditional.

I've yet to start mapping out the levels and designing bosses and adding enemies but I'll include a screen and .exe of what I have so far so you can get the concept. (This pattern is a little too difficult it's just there to strain the system in order to get your framerate data)

Link:
http://www.yourfilehost.com/media.php?cat=other&file=types_data.zip
« Last Edit: October 10, 2007 by Pixel_Outlaw »
Challenge Trophies Won:

Offline rain_storm

  • Here comes the Rain
  • DBF Aficionado
  • ******
  • Posts: 3088
  • Karma: 182
  • Rain never hurt nobody
    • View Profile
    • org_100h
Re: Gun Ranger neXt, Game Progress thread
« Reply #8 on: October 10, 2007 »
Nice one Pixel_Outlaw, The collisions are done well. I for one think that a starfeild would look good in the background. Good work

Challenge Trophies Won:

Offline Pixel_Outlaw

  • Pentium
  • *****
  • Posts: 1382
  • Karma: 83
    • View Profile
Re: Gun Ranger neXt, Game Progress thread
« Reply #9 on: October 10, 2007 »
Thanks a lot!

Basically this is just to test bullets and player interaction. The game will feature more visual delights. I plan to add bullet grazing mechanisms and point increasing objects. I don't really like chaining though so that will probably be out of this one.
Challenge Trophies Won:

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: Gun Ranger neXt, Game Progress thread
« Reply #10 on: October 11, 2007 »
Needs insane explosions too :)
Looking great though!
Shockwave ^ Codigos
Challenge Trophies Won:

Offline Pixel_Outlaw

  • Pentium
  • *****
  • Posts: 1382
  • Karma: 83
    • View Profile
Re: Gun Ranger neXt, Game Progress thread
« Reply #11 on: November 14, 2007 »
I'm now working on the enemy designer. Each enemy will be composed of 3d geometric cell shapes that fire and move as one organism. I shall post the enemy designer soon but for tonight I'll just post a teaser shot. The enemy clusters may be blown away piece by piece with a special bonus for destroying ALL parts of each organism.

A screen of the WIP simple enemy designer.

Challenge Trophies Won:

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17409
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: Gun Ranger neXt, Game Progress thread
« Reply #12 on: November 14, 2007 »
That looks a little bit like the hilt of a sword :)

Great shape!
Shockwave ^ Codigos
Challenge Trophies Won: