Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411423 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 19, 2024, 01:48:59 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsFrogatto & Friends - Arcade Update
Pages: 1 2 [3]
Print
Author Topic: Frogatto & Friends - Arcade Update  (Read 12081 times)
Jetrel
Level 0
***



View Profile
« Reply #40 on: December 01, 2010, 06:25:12 PM »

Another related idea is the possibility of your tongue reflecting upwards off of slopes in front of you.  This might not be compatible with the "hookshot" tongue idea, though.


Anyways, in other news, we've finally got the arcade levels actually wired into the arcade room that's right off the titlescreen.  We've also got another level or two, there.  Gameplay isn't totally put together on these, though;  you don't die from falling off the bottom (kid icarus-style) yet.  Still trying to decide if we want the level to slowly encroach on you or not.  We might do a rising-acid thing to give players a second-chance if they stumble into it momentarily.


Also, with that snazzy new "progress icons" thing;  I'm gonna name this thread after each release milestone, and go from 0->100% on each one.
Logged
Landshark RAWR
Level 10
*****



View Profile
« Reply #41 on: December 01, 2010, 06:48:39 PM »

along with making the tongue a hookshot, you could be able to hold enemies at the end of the tongue and whip them around slamming them into other enemies and the ground to damage them.

i think that would be cool
Logged

DanFornace
Level 1
*


danfornace.com


View Profile WWW
« Reply #42 on: December 01, 2010, 07:02:50 PM »

Played the demo!

Really cool looking project. The graphics definitely pulled me in, but the gameplay didn't keep me for very long. I didn't really enjoy using any of the abilities, but I did love all the tilesets.

I feel like the game needs a clearer direction that makes the gameplay more unique. Like if the platforming required use of all the abilities.

-Dan
Logged
Jetrel
Level 0
***



View Profile
« Reply #43 on: December 09, 2010, 03:03:09 AM »

along with making the tongue a hookshot, you could be able to hold enemies at the end of the tongue and whip them around slamming them into other enemies and the ground to damage them.

i think that would be cool

It's definitely a cool idea.  Not sure how workable it is for regular enemies (how one would control it is the scary bit).

One twist would be for frogatto to be able to pull oversized blocks (2-3 tiles square).  Slowly, with exertion, but maybe enough to drop them from above.

I didn't really enjoy using any of the abilities, but I did love all the tilesets.

I feel like the game needs a clearer direction that makes the gameplay more unique. Like if the platforming required use of all the abilities.

My feelings exactly - it'd be best to end up with something like kirby, wherein all the abilities are central to playing the game.  Especially, kirby's flight and enemy-grabbing feel joined at the hip, even though it's only graphical justification.
Logged
Jetrel
Level 0
***



View Profile
« Reply #44 on: December 29, 2010, 05:03:21 PM »

Huge note:  we have semi-weekly dev builds up here: http://www.frogatto.com/download
This means you can actually try out the changes I'm yammering about, rather than relying on idle speculation.

At the moment I write this; the windows one is almost a month old.  Check the timestamps, I'll get ben to update them.


Arcade Progress:
- Arcade levels are now actually accessible from the titlescreen of the game.  We only have two varieties; horizontal, and vertical takes on "getting as far into the level as you can, and getting more points the further you get".
- vertical arcade levels auto-scroll and kill the player if you can't keep up;  this speed can procedurally increase over time
- arcade levels can include optional elements - including entirely optional segments, that only appear further in.  We don't use this yet.
- we don't have a nice presentation when you die and it tallies up your points.  Doing this kind of stuff is unfortunately awkward because we don't have a way to do it, yet, without doing a hardcoded dialogue layout in C++.  We'll get there.

Other Progress:
- I've refactored the entire damage system in frogatto, because there was a ton of stuff we just couldn't do.  For example, all the stuff we talked about in this thread.  A few key examples:  we had no concept of damage type; no way to react differently to different kinds.

We also couldn't cap the DPS of enormous streams of shots - consider exactly what happens when you attack a boss with the fire-breath in kirby.  Your damage is only dealt every second or so.  If literally every shot (every individual little puff of fire that makes up the attack) dealt damage, the boss would be dead almost instantly.  It's actually kind of amazing just how many shots get spewed with an attack like that.  It's dozens of times higher than my intuition told me.

Previously, we had sort of a half-implemented thing which tracked the "source" of the damage, and rendered a target invulnerable to that specific attacker, until some set time in the victim elapsed (and this time was really arbitrary, usually when the object entered a new animation).  This had no provision for giving the attack, itself, control over the cooldown.  I ripped that system out, and replaced it with something much simpler:  when a character gets hit, they mark when.  Every attack has a numerical cooldown value.  When it hits, if the time between now and when the victim last got hit is less than this value, the attack is cancelled.  From this, it has the nice side-effect that if an attack is set to zero, it always hits (which was a must-have feature).


- Also, I've begun a new copy of the player character which experiments with some radically different physics, trying to make the character much easier to control.  This is accessible by entering the editor (control+e), and opening the level "test4.cfg".  This is hugely a work-in-progress, so you can expect severe screwiness at times.  I'm abandoning most preconceived decisions we had made (such as the character sliding down during wall-clings) in favor of just free-experimentation.  Not everything may be plausible in the real game; some stuff might be game-breakingly powerful.

In this new player, there's a fire-breath attack accessible by pressing "d".
Logged
crimson_penguin
Level 0
*


View Profile
« Reply #45 on: December 31, 2010, 03:36:10 PM »

FYI, I put up new Mac and Windows builds yesterday.
Logged
Jetrel
Level 0
***



View Profile
« Reply #46 on: January 04, 2011, 12:45:10 AM »

As part of a really offbeat experiment, I just hacked together an RPG character in frogatto's engine - thus far, just able to walk around on a map, like zelda/chrono.  This did not take a single line of C++.  It's not in the latest public builds crimson_penguin just posted, but if you're able to compile from trunk, it's visible on the level named test5.cfg  (if you can't compile from trunk, you could still conceivably grab the associated level, image, and object file, and they should run in the previous build.

This is the core control code thus far;  if you're interested in any explanation, ask away and I'll explain.  Those interested might not that this took, start to finish, maybe 30min of coding/testing.  In just 30 minutes, I was able to implement the heart of a completely different game.  Frogatto's engine isn't good for anything that's not "2d sprites moving over a tiled, square background", but if that describes your game, it's damn near a glove fit.  (We still have a few things that aren't generalized, but if anyone needs them to be, we can quickly get them to that.)


Code:
[object_type]
id=rpg_char_test
hitpoints=4
feet_width=1
mass=5
friction=0
solid_area=4,48,23,60
traction_in_water=1000
affected_by_currents=yes

[properties]
set_stand_anim="def() execute(me, if(velocity_x = 0 and velocity_y = 0,[if(animation = 'walk_north', animation('stand_north')),if(animation = 'walk_east', animation('stand_east')),if(animation = 'walk_south', animation('stand_south'))]))"
pressing_north="ctrl_up and (not ctrl_down) and (not ctrl_left) and (not ctrl_right)"
pressing_south="ctrl_down and (not ctrl_up) and (not ctrl_left) and (not ctrl_right)"
pressing_west="ctrl_left and (not ctrl_right) and (not ctrl_up) and (not ctrl_down)"
pressing_east="ctrl_right and (not ctrl_left) and (not ctrl_up) and (not ctrl_down)"
pressing_nw="ctrl_up and (not ctrl_down) and ctrl_left and (not ctrl_right)"
pressing_ne="ctrl_up and (not ctrl_down) and ctrl_right and (not ctrl_left)"
pressing_sw="ctrl_down and (not ctrl_up) and ctrl_left and (not ctrl_right)"
pressing_se="ctrl_down and (not ctrl_up) and ctrl_right and (not ctrl_left)"

moving_north="velocity_x = 0 and velocity_y < 0"
moving_south="velocity_x = 0 and velocity_y > 0"
moving_west="velocity_x < 0 and velocity_y = 0"
moving_east="velocity_x > 0 and velocity_y = 0"
moving_nw="velocity_x < 0 and velocity_y < 0"
moving_ne="velocity_x > 0 and velocity_y < 0"
moving_sw="velocity_x < 0 and velocity_y > 0"
moving_se="velocity_x > 0 and velocity_y > 0"
[/properties]


on_process="[ if(pressing_north and (not moving_north), [animation('walk_north'), facing(1)]),
if(pressing_south and (not moving_south), [animation('walk_south'), facing(1)]),

if(pressing_west and (not moving_west), [set(velocity_x,-400),animation('walk_east'),facing(-1)]),
if(pressing_east and (not moving_east), [set(velocity_x, 400),animation('walk_east'),facing(1)]),

if(pressing_nw   and (not moving_nw), [set(velocity_x,-400), animation('walk_north'), facing(1)]),
if(pressing_ne   and (not moving_ne), [set(velocity_x, 400), animation('walk_north'), facing(1)]),

if(pressing_sw   and (not moving_sw), [set(velocity_x,-400), animation('walk_south'), facing(1)]),
if(pressing_se   and (not moving_se), [set(velocity_x, 400), animation('walk_south'), facing(1)]),

if(ctrl_up and ctrl_down, [set(velocity_y,0),set_stand_anim()]),
if(ctrl_up + ctrl_down = 0, [set(velocity_y,0),set_stand_anim()]),
if(ctrl_left and ctrl_right, [set(velocity_x,0),set_stand_anim()]),
if(ctrl_left + ctrl_right = 0, [set(velocity_x,0),set_stand_anim()])
]"
on_end_anim="animation(animation)"

[editor_info]
category=player
[/editor_info]

[base:animation]
image=experimental/claudius.png
accel_x=0
accel_y=0
pad=3
body_area=all
[/animation]

[animation]
id=stand_south
rect=1,1,30,62
frames=1
duration=6
[/animation]

[animation]
id=stand_north
rect=1,66,30,127
frames=1
duration=6
[/animation]

[animation]
id=stand_east
rect=1,131,30,192
frames=1
duration=6
[/animation]

[animation]
id=walk_south
rect=39,1,68,62
frames=8
duration=5
velocity_y=400
[/animation]

[animation]
id=walk_north
rect=39,66,68,127
frames=8
duration=5
velocity_y=-400
[/animation]

[animation]
id=walk_east
rect=39,131,68,192
frames=8
duration=5
[/animation]
[/object_type]

Logged
Pages: 1 2 [3]
Print
Jump to:  

Theme orange-lt created by panic