Stencyl 3.4.0 is now out. Get it now!

Ghost Song (back on Stencyl -- Warning, big GIFs ahead!)

Photics

  • *
  • Posts: 719
The robot / android waited 70 years and you couldn't even bring some donuts?  :P
Michael Garofalohttp://photics.com – Author of The Interactive Stencyl Textbook 8)

filsdd

  • *
  • Posts: 71
Impressive stuff man! I remember listening you on Second Opinion Games podcast. Really nice interview.

I just want to ask, when you say "Shaders", you are REALLY saying Full OpenGL shaders or are you referring to the "image API" present on Stencyl 3.1?
Jon said something about steam API and Gamepad support on the Blog! Stencyl is really improving fast!

Thanks for sharing your story!
(and thanks for the Linux Support too! Will buy it on Steam for sure!)

Jon

  • *
  • Posts: 17504
They're real, programmable OpenGL shaders using GLSL. We're pre-shipping a bunch that can be used via the block system and allowing user-defined ones via files or typed directly into blocks.

Though Ghost Song doesn't do this to my knowledge, I even hooked it up, so you can tween a shader's uniform (configurable) values.

filsdd

  • *
  • Posts: 71
They're real, programmable OpenGL shaders using GLSL. We're pre-shipping a bunch that can be used via the block system and allowing user-defined ones via files or typed directly into blocks.

Though Ghost Song doesn't do this to my knowledge, I even hooked it up, so you can tween a shader's uniform (configurable) values.

Awesome Jon!
I'm starting to learn Stencyl and GLSL Shaders are really good news! :D

twotimingpete

  • *
  • Posts: 1656
I've gotten a range of feedback on the camera, so I've been tinkering around seeing if I can improve it while also not making it feel strange or jerky.

I've come to a solution that I think works pretty well. It's partly inspired by super metroid, where the camera leads ahead of you, but it doesn't lead back the other way until you MOVE the other way, so it never "jerks".

check this link to see what I did: http://gfycat.com/InfamousSecretAsianlion

the circle represents the camera target. the camera will "ease" toward that target, and the circle itself will extend in front of you based on your motion. dashing will make it extend forward faster so that if you need to move quickly the camera will keep up.

thoughts?

Photics

  • *
  • Posts: 719
thoughts?

It's hard to tell with the fighting. That's because there could be two different types of camera modes... one for fighting and one for exploring. It depends on the focus of attention.

If the character is just running around, it's important to see ahead. The faster the movement, the further the camera should be placed ahead of the camera. I think the camera could take a huge lead ahead of the player. This could also be a setting in the options. How far ahead should the camera go?

The player should also be able to control the camera. Crouching should let the player look down, and pressing up should move the camera up.
Michael Garofalohttp://photics.com – Author of The Interactive Stencyl Textbook 8)

twotimingpete

  • *
  • Posts: 1656
The player should also be able to control the camera. Crouching should let the player look down, and pressing up should move the camera up.

This is something I aim to do soon as well. It makes sense.

Jon

  • *
  • Posts: 17504
Might not be a bad idea to put the trailer, Steam and other links at the top of the original post. I'll be linking to this topic a bit to promo the game.

MadManAdam

  • Posts: 371
They're real, programmable OpenGL shaders using GLSL. We're pre-shipping a bunch that can be used via the block system and allowing user-defined ones via files or typed directly into blocks.

Though Ghost Song doesn't do this to my knowledge, I even hooked it up, so you can tween a shader's uniform (configurable) values.
And these are accessible through coding in Stencyl in Haxe or some other form?  Is this something that just people with paid plans have access to new features?  Either way the information in this post is amazing and eye opening to say the least.  I'm thinking I'll have to upgrade to Indie soon!

Huge props to Pete for making this post and for the comments from Jon.

« Last Edit: April 30, 2014, 10:57:25 pm by MadManAdam »

dripple

  • Posts: 747
And these are accessible through coding in Stencyl in Haxe or some other form? 
To quote Jon here:
They're real, programmable OpenGL shaders using GLSL. We're pre-shipping a bunch that can be used via the block system and allowing user-defined ones via files or typed directly into blocks.

Is this something that just people with paid plans have access to new features?  Either way the information in this post is amazing and eye opening to say the least.  I'm thinking I'll have to upgrade to Indie soon!
The private builds are for paying users only. We're the beta testers, so to say (and paying for it. Happily, I have to say! Great support here.)
Sure, my games won't get better with all the new features of Stencyl.
But I do have more fun creating bad ones.


MayazCastle Keeper

dripple

  • Posts: 747
(I just watched the trailer on Steam greenlight. Damn cool piece of work, Pete!)
Sure, my games won't get better with all the new features of Stencyl.
But I do have more fun creating bad ones.


MayazCastle Keeper

dripple

  • Posts: 747
Could we see some screenshots from your Scene Designer? Or some snaps from some nice parts of the code? Please please :)
Sure, my games won't get better with all the new features of Stencyl.
But I do have more fun creating bad ones.


MayazCastle Keeper

twotimingpete

  • *
  • Posts: 1656
Could we see some screenshots from your Scene Designer? Or some snaps from some nice parts of the code? Please please :)

anything specific you want to see?

here's a shot looking at adam's events.

http://www.ghostsonggame.com/miscd/adamcode.png

it's kind of a big mess to look at, but, frankly, it works. :)

same thing could be said for how I put in dialogue.

http://www.ghostsonggame.com/miscd/dialogue.png

this is a fired event, he will move onto the next line after a delay each time, and you can skip ahead by using input to fire the event as well, the delay checks to see if you've already moved on in the list so that ensures nothing double fires or anything weird happens. like with anything else, I got it working by trial and error.

the opacity number I keep setting each time it fires is actually more like a timer, it's always draining down and if it's 0, the words become invisible. I forget why the attribute is called that. probably started as something else and I then used it as a timer.

If I need him to stop talking and bring the interactive symbol back, I just set that at the end of the timer instead of the fire again event.

if you just want to cycle straight through you just keep firing, otherwise if you need other contextual changes that allow skipping around in the dialogue, you fire and set the list so that everything up to the point you want to read is "stop", on fire it'll read the first one that is set as "play".

there's a "when drawing" event that works in conjunction with this to play the sounds and display the text, it's pretty straightforward.

I actually probably need to refine my way of doing dialogue a bit over the long run, but I know I can at least make it work in an ugly way if I have to.

« Last Edit: May 01, 2014, 08:06:45 am by twotimingpete »

davidmorrisw

  • Posts: 3
This is amazingly helpful to learn from. Thanks so much for sharing the code blocks like this.

twotimingpete

  • *
  • Posts: 1656
you're welcome, and sorry that it is kind of an incomprehensible mess to look at out of context, but the jist of it is to build your logic up one step at a time, and group things into subroutines (aka custom events) and fire them off. honestly, I barely even understand this anymore. I'd have to sit around studying it if I wanted to figure out how it works again, and I'm the one who made it. that's how this stuf fworks though -- you build up your behavior like a house, one foot in front of the other, just pushing forward, and eventually you have this massive organism and if it works -- awesome. :D