You are not logged in.
Starting from build 18.830-dev, we'll have an updated character system. Modders should take notice of this update.
1. New multipliers have been added and old ones have been removed. Removed multipliers (like rolluphillslope, brakingthreshold and others) didn't help much and were quite obscure in their meaning. The new ones are: friction and charge.
2. A new block called abilities has been conceived. The engine provides a few built-in abilities (moves) that you can turn on/off.
3. The charge-and-release ability (aka "spindash") has been moved into the engine. It used to be controlled by scripts. However, given that this is such a basic ability (used by virtually by every MOD, as well as Open Surge itself), I decided to move it into the engine. This allows everyone to benefit from engine updates that deal with this ability. Not only that, but the physics for it has also been improved.
Important for modders: please update your character .chr files according to the documentation. To benefit from the improved physics and improved calculations for the charge-and-release ability, you'll need to remove/erase the old .player_spindash_controller object in the scripts/legacy folder. This object is spawned by the companion objects of your characters.
Offline
Nice changes!
I only have a suggestion, that may be already implemented: the abilities block contains only built-in moves or can be customized? It would be very cool if these moves are read from some file (or maybe recognized as a class in SurgeScript or something similar). This way I could create an ability and check it on for every character I want, or I could download abilities as any other game asset (such as maps or music).
BTW, all the changes look amazing! I'm very hyped about the 0.5.0 thing
Piece of cake...!
Offline
Nice changes!
I only have a suggestion, that may be already implemented: the abilities block contains only built-in moves or can be customized? It would be very cool if these moves are read from some file (or maybe recognized as a class in SurgeScript or something similar). This way I could create an ability and check it on for every character I want, or I could download abilities as any other game asset (such as maps or music).
BTW, all the changes look amazing! I'm very hyped about the 0.5.0 thing
Hi TheSeventhEmerald,
The abilities block contains built-in moves. Custom abilities are handled by scripts. Custom abilities can be added by adding objects to the companion.
The update should come today.
Offline
Nice!
I liked how you mentioned the method of creating a more traditional platformer game. The only obstacle to this for now is not being able do edit the collision box size due to sensors and such, making a scenario like "Mario and Mini-Mario" impossible to do without having to write a collision script by the ground up.
It makes me very honored to see my brickset included in dev-builds also!
I intend to improve on it a lot and make it more presentable from time to time.
Importing levels from the original games is super fun and more practical than ever now with the new system, it's cool to see that it's helping developing the engine in some way.
Creating and Editing Sprites.
Offline
further on the collisions topic, it would be most useful if the collision maps also worked for sprites so we could fine tune the collisions of any given sprite, not only the player
Also I believe the new angle detection system causes characters to play the ledge animation more often when stopped on a slope. but because the character is not moving, the engine defaults its angle to 0 and then the ledge logic kicks in.
Last edited by KZR (2018-09-06 09:13:43)
https://discord.gg/w8JqM7m ---> Open Surge's Discord server
Offline
further on the collisions topic, it would be most useful if the collision maps also worked for sprites so we could fine tune the collisions of any given sprite, not only the player
Yes, that makes sense. Have you checked the Sensor utility?
I'll be updating every item to SurgeScript, and in the process I'll be building a new API for accessing the engine. I'm open for suggestions.
Offline
that's the old brick_*() functions crunched into one, and it only works for bricks. Correct me if I'm wrong, I assume you are computing collision shapes for sprites based on their opaque pixels. sometimes this produces undesirable results.
let's say surge stretches an arm over or in front of himself. you want his collision to stay consistent and take only the body into consideration, so that if an enemy projectile flies by it will not hit the arm. if the collision is precomputed, the only way to effectively change the hitbox is to also modify the sprite.
Last edited by KZR (2018-09-06 23:45:18)
https://discord.gg/w8JqM7m ---> Open Surge's Discord server
Offline
I assume you are computing collision shapes for sprites based on their opaque pixels. sometimes this produces undesirable results.
No.
I'm doing the opposite. Collisions are checked against sensors, not against Surge's sprite.
Pixel perfect collision will become impossibly slow once we move to A5. Working with individual pixels stored in video memory is untenable.
When I designed the new brick system, I had the A5 port in mind. There's a very efficient system that works on regular RAM, so we won't have these issues.
let's say surge stretches an arm over or in front of himself. you want his collision to stay consistent and take only the body into consideration, so that if an enemy projectile flies by it will not hit the arm. if the collision is precomputed, the only way to effectively change the hitbox is to also modify the sprite.
Detecting collisions between sprites on SurgeScript will come through a new method, most likely through (a combination of) geometric shapes. Let's call them colliders.
Offline
Character system update
Starting from build 18.830-dev, we'll have an updated character system. Modders should take notice of this update.
1. New multipliers have been added and old ones have been removed. Removed multipliers (like rolluphillslope, brakingthreshold and others) didn't help much and were quite obscure in their meaning. The new ones are: friction and charge.
2. A new block called abilities has been conceived. The engine provides a few built-in abilities (moves) that you can turn on/off.
3. The charge-and-release ability (aka "spindash") has been moved into the engine. It used to be controlled by scripts. However, given that this is such a basic ability (used by virtually by every MOD, as well as Open Surge itself), I decided to move it into the engine. This allows everyone to benefit from engine updates that deal with this ability. Not only that, but the physics for it has also been improved.
Important for modders: please update your character .chr files according to the documentation. To benefit from the improved physics and improved calculations for the charge-and-release ability, you'll need to remove/erase the old .player_spindash_controller object in the scripts/legacy folder. This object is spawned by the companion objects of your characters.
Hi, Alex. I try to move my Speedy character to your latest new version, but when I try to run a level after modifying it to add Speedy, I get this error:
'Can't find sprite 'SD_SPEEDY' (animation 0)'
What's going on?
Offline
Never mind. I fixed the problem. I forgot to add the .spr file. My bad +sweatdrop in anime style+
Offline
since we're discussing characters, I see two things that can be improved:
a dust effect with the spindash (can be a sprite)
a faster spindash release, and the possibility to charge it up, 3 to 5 times maybe?
https://discord.gg/w8JqM7m ---> Open Surge's Discord server
Offline
since we're discussing characters, I see two things that can be improved:
a dust effect with the spindash (can be a sprite)
a faster spindash release, and the possibility to charge it up, 3 to 5 times maybe?
Absolutely.
For a dust effect to be placed, scripting can be used. Currently, we do not have a sprite for it though.
The release speed can be configured in the character file.
(also, if you press the jump button a lot while charging, the character will go faster)
Offline
how's this
ok, since the rest is already in, could the sample pitch be raised every time you charge, so that we have an audio cue?
https://discord.gg/w8JqM7m ---> Open Surge's Discord server
Offline
Did you make this?
Would you mind if I asked you something? Some time ago, I made an animation of a water splash (played when Surge gets into water). However, my sprite is not very convincing. Would you make a better water splash? (more frames, more convincing water)
ok, since the rest is already in, could the sample pitch be raised every time you charge, so that we have an audio cue?
We can try it.
Offline
yes, you know I would not contribute materials from other sources. I've gotten quite proficient at pixel art and animation in the last few years, as I've been involved in a few projects besides my own.
I figured I'd return home with the acquired experience
so, yes, I'll redo the splash right away. perhaps even add a small sinewave distortion to the bubble
by the way, give me a list of graphics you'd like to see redone.
Particle and special effects are quite simple, as I can generate them and capture the results, or even start from a still image.
In fact this gave me an idea for a particle generator app, which will automatically export frames from any generated effect.
planned features:
-user may define particle parameters
-multiple layers of particles
-blending effects and shaders
-loading user images
-static and dynamic particles (react to movement, rotate, may have collision with other particles)
-exporting sequence to PNG
hopefully with the jump to A5 we get to use PNG alpha, making the effects look a lot more convincing.
also, can we set separate animations for rolling and charging? the roll animation doesn't convey the action very well
see how Sonic slightly angles forward and blurs?
Last edited by KZR (2018-10-04 10:11:39)
https://discord.gg/w8JqM7m ---> Open Surge's Discord server
Offline
yes, you know I would not contribute materials from other sources. I've gotten quite proficient at pixel art and animation in the last few years, as I've been involved in a few projects besides my own.
ah, that's why.
I figured I'd return home with the acquired experience
that's great, because we were lacking in this area (graphics)
by the way, give me a list of graphics you'd like to see redone.
Change the item boxes for a handheld gaming device (a red one, like the one Surge holds on his waiting animation). That's your suggestion coming true.
The checkpoint sprite.
The "animal prison" at the end of levels (not only a new sprite, but a redesign).
There's more to do, but if you can get these done, I'll ask you some things related to Sunshine Paradise later.
--
A bigger project:
Change Charge (his sprite looks too much like Sonic). Make him in the art style of the Salamander. Also, we'll need a "stomp" animation.
If this bigger project succeeds, we can tackle the other characters.
also, can we set separate animations for rolling and charging? the roll animation doesn't convey the action very well
yes, if you can draw it.
Offline
great, looks like I have work for some time. Don't expect much done until next week, though. I'll try to finish the splash before the weekend.
here's a quick shot at the item box in handheld style
some sort of explosion can be made as a separate sprite to complement the effect
I'll add a flickering light effect too, for when the item picture is displayed
this sort of thing takes me 30-60 minutes so they're the perfect bite-sized exercise for schedule gaps. I can do a lot more smaller things than focusing long times on one thing, I'm afraid. And I don't have time on weekends because of my son, so I can only work on this between shifts.
Not like I have to explain myself, but I figured I'd let you know what you can count on
Last edited by KZR (2018-10-04 22:13:00)
https://discord.gg/w8JqM7m ---> Open Surge's Discord server
Offline
here's my attempt.
it can more easily rest, but I have more difficulty coming up with this pixel shading, so I made it flat.
Not like I have to explain myself, but I figured I'd let you know what you can count on
In this case I would suggest you to pick only small things, but put the absolute best quality possible on the work.
While suggestions will be given, it's possible that some works might get rejected.
If you feel the pull to contribute, it's great, please do so in the absolute best spirit
Offline
I've been experimenting a lot with the new system, and I have to say, it's incredible how much you can change the game's feeling with these values alone! I got very close results to a traditional platformer! Thank you for giving that focus to those looking to do something other than the default Sonic's physics!
I have two questions about it:
It seems that the movement in the air is predefined, if I'm not mistaken. Are there plans to be able to customize these values too?
I don't know what the current plans for making the collision editable are, but I noticed that when the player jumps, the collision box gets lower and a bit wider (I supose that is to fit it with the rolling animation). If customizing sizes is out of the question, could we have an option to have a fixed value, even when jumping? The constantly size changing can be a bit of trouble for more accurate platformers.
Last edited by Race the Hedgehog (2018-10-06 04:15:58)
Creating and Editing Sprites.
Offline
https://discord.gg/w8JqM7m ---> Open Surge's Discord server
Offline
I don't know what the current plans for making the collision editable are
I'm aware of this request, though it isn't supported yet.
Messing with the collision sensors is a pain. Get a few pixels wrong, and there will be glitches everywhere.
I proposed the creation of a configurable "collision box", a simple abstraction that would be mathemagically mapped to the real sensors.
but I noticed that when the player jumps, the collision box gets lower and a bit wider (I supose that is to fit it with the rolling animation). If customizing sizes is out of the question, could we have an option to have a fixed value, even when jumping? The constantly size changing can be a bit of trouble for more accurate platformers.
Regarding editing the jumping collision region: I haven't thought about it. I see the validity of what you're saying. There's a different configuration for rolling, and that's on purpose.
For the time being, what if you roll out a jump of your own?
I got very close results to a traditional platformer! Thank you for giving that focus to those looking to do something other than the default Sonic's physics!
I'm glad it helps. Our extended niche is retro platformers.
Once you succeed, I would ask you to share your results with the community
It seems that the movement in the air is predefined, if I'm not mistaken. Are there plans to be able to customize these values too?
I'm not sure what you mean?
it kind of looks like a red game gear
yep, that's awesome.
I wonder how the following would look like in-game?
Enjoy Coca Cola (see the cartridges)
Offline
I proposed the creation of a configurable "collision box", a simple abstraction that would be mathemagically mapped to the real sensors.
That sounds great!
Even if it were to be a separate object that could have a functional and customizable collision box, it would already be great for me. I tried to make one myself with the old API, but I didnt get a perfect constant result.
For the time being, what if you roll out a jump of your own?
Yea, is not as big as a problem, I believe that springfying the player would already fix my case.
Once you succeed, I would ask you to share your results with the community
No problem! For now they are super experimental projects to see what can and what can not be done with the engine, but as soon as I achieve a more presentable result I'll be sure to show it here.
I'm not sure what you mean?
It seems that modifying friction, acceleration and deceleration only changes the player's movement on the ground.
While its movement in the air is always the same, independent of the values.
Creating and Editing Sprites.
Offline
It seems that modifying friction, acceleration and deceleration only changes the player's movement on the ground.
While its movement in the air is always the same, independent of the values.
ah, yes. There's an acceleration that takes place in the air as well. Good point, we need to add it.
Offline
Version 18.1008-dev includes two new multipliers: airacceleration and airdrag. The charge sound has also got variable pitch, as has been suggested (feedback is welcome).
I ask you guys to test things out and see how well adjusted the default multipliers are.
Thank you.
Offline
just downloaded and extracted to a new folder
https://discord.gg/w8JqM7m ---> Open Surge's Discord server
Offline