(64 replies, posted in General)

S32X wrote:

That seems like a long decorator, maybe something like "set_player_animation_fps"

let "$frameaccelerator = max(1, (abs(player_xspeed()) / 200))" 
on_player_walk "speed up!"
state "speed up!"
set_player_animation_fps "$frameaccelerator
let "$frameaccelerator = max(1, (abs(player_xspeed()) / 200))" 
set_player_animation_fps "$frameaccelerator

This is more accurate, it has to update itself constantly.

But, regardless, the reason why its so long is so its similar to 'set_animation_speed_factor' and makes it easier to remember. You don't want a moment where you struggle to figure out if its 'fps' or 'speed factor'.

Plus, fps and speed factor are two completely different things, fps is the frames per second, and speed factor is a number multiplied by frames per second:

FPS * Speed Factor = Speed
8 * 0.5 = 4

This would be 'set_player_animation_speed_factor 0.5' as opposed to what would be 'set_player_animation_fps 4', and it would work different.

tl;dr the command name I chose was long but its less confusing in the long run.


(64 replies, posted in General)

Excerpt from MM's object-based character system (By that I mean every animation is made through an object instead of the engine's built in definitions):

        state "walking"
        let "$_leaderspeedfactor = max(1, (abs(player_xspeed()) / 200))"
        let "$_leaderangle = player_angle()"
        change_state "main"
        state "running"
        let "$_leaderspeedfactor = max(1, (abs(player_xspeed()) / 200))"
        let "$_leaderangle = player_angle()"
        change_state "main"

That speed factor makes it so the main character accelerates into his running animation. Basically, it starts out at the default fps and speeds up as the player goes above 200 pixels per second.

This worked well for me, anyways, so maybe a new scripting command like 'set_player_animation_speed_factor' could be built into the engine for this purpose.


(64 replies, posted in General)

KZR wrote:

well, you know that collision mask thingy, well, how about running the full mile and porting that to players and objects? that would be a sure fix for about 99% of common collision problems like when the engine computes an odd collision shape for PPC (per pixel collision)

^ This.

Changing player collision with built-in items and other things can't really be scripted, so this actually would be really useful.

And even if it could be, collision in this manner would be used so much that it would literally cut the required objects in half and thus make the game more compact and better to run. We need this to be done, especially for player collision with anything built in or unchangeable via scripting, because some animations can cause some weirdness to occur.


(9 replies, posted in Game assets)

S32X wrote:

Personally, I really want to have at least one of my tracks in the Open Surge soundtrack. If a remix is accepted instead, I would feel cheated. hmm

Lol, I don't wanna do it as a submission. I'm just bored and I really like it. tongue I'd ask you before actually doing it, and I'd never remix something without giving credit where it is due. Just look at some of my youtube videos, I've remixed a friend's music multiple times and I always give him credit where he deserves it.

I probably won't actually do it, though, especially if you don't want me to. I'm a bit more tempted to remake my own Dragon Nest music for MM, anyways.


(9 replies, posted in Game assets)

I like this! It's really good. Try to EQ it a bit better though, some of the instruments get drowned out.

I see what Jobro means about the drums, they seem a bit off at times. But if you fix that, I think you have a really nice track here.

I'm honestly tempted to make a remix of this now. tongue


(64 replies, posted in General)

Alexandre wrote:

I do. Example: bricks with non-default behaviors.

Could you be a bit more specific?


(64 replies, posted in General)

Alexandre wrote:
SilverstepP wrote:

But what IS the collision mask?...

say you have a solid brick that looks like a "spikey" grass (the grass is very irregular). This affects the collision pretty badly: when walking on top of it, Surge will keep shaking. The collision mask solves this problem by considering some other picture file as the collision image, while the engine still displays the irregular grass on the screen.

this is the syntax:

    type                OBSTACLE
    behavior            DEFAULT
    angle               0

        source_file     <BRICKSET_IMAGE>
        source_rect     <X> <Y> <WIDTH> <HEIGHT>
        frame_size      <FRAME_WIDTH> <FRAME_HEIGHT>

            repeat      TRUE
            fps         8
            data        0

        source_file     <COLLISION_MASK_IMAGE>
        source_rect     <X> <Y> <WIDTH> <HEIGHT>

got it?

in the collision_mask_image, magenta = rgb(255,0,255) pixels will be non-solid. You can adopt black pixels as solid, for example.

for whoever chooses to help on this, in the documentation it would be very helpful having a couple of images to explain the idea (one would display the brick; the other would display the collision mask). smile

I honestly don't really see what this could accomplish that a passable brick and an obstacle brick together couldn't...

If the collision mask could work for OBJECTS and make them less 'fall through the ground' like, then it would be great.


(64 replies, posted in General)

But what IS the collision mask?...


(2 replies, posted in Off-topic)

S32X wrote:

I had always wondered if there were going to be other levels than just Blue Ocean and Exotic Paradise. So here's the question

Were there any levels planned before the Open Surge levels?

Simply put, the levels planned for Open Surge were also planned for Open Sonic. It was just adapted to fit Open Surge instead. The only really canned level was Soda Pop Zone. Pun intended.


(5 replies, posted in General)

You're being overly sensitive.

They're jokes. If we get some blogger posting about it, they'll likely read the topic first and realize they are jokes before posting the details. Otherwise, they aren't even very smart bloggers to begin with.

If someone does actually blog about it, then we'll probably know about it, and we'll just tell them they've been misinformed. It really isn't that big of a deal.

Also, they're in off-topic, so that should be an indicator that it has nothing to do with Open Surge.

Chill out a bit, dude.


(12 replies, posted in General)

S32X wrote:

0.1.0-0.1.3 used midi.

That was .it, not midi.


(1 replies, posted in General)

No need. We already have this.

Change it to a state that destroys it.


(15 replies, posted in General)

I have to agree with Alex on this one. I personally never have had any problems with background positioning, and showing the background in the editor seems pretty useless to me. I don't want to lose track of my bricks when I'm placing them.

A background editor would be nice, but I think focus should be placed on other things.


(23 replies, posted in General)

S32X wrote:

Please,would you stop with that *sigh* thing? It makes me feel like an idiot.

I'm sighing because I'm basically just repeating exactly what everyone else has posted. Please, just read other's posts carefully before responding to them.


(23 replies, posted in General)

S32X wrote:



1.0.0 = Open Surge is complete, every level is made, every character is done, the game is done and ready to play.

2.0.0 = Open Surge is complete and made enough progress from 1.0.0 to be considered an absolutely new release.

0.1.4 and below = Open Sonic, incomplete.

0.2.0 and above = Open Surge, incomplete, demo of competed levels, and plans for levels to come.

Anything above 1.0.0 would mean that everything in the primary game is finished. We are nowhere close to that, let alone all the way to 2.0.0. This is why its 0.2.0. Because it is below 1.0.0, the first official release of every single level.

Lunar and Jobro both already explained this. Read what they said.


(15 replies, posted in General)

@jobro: It probably would make using the grid and seeing the bricks harder.

@S32X: It's already been suggested as a command and is already planned.

S32X wrote:

I know. But I'm a bit tight on $ right now.


You can still get the FL 10 Demo.

S32X wrote:

Good. Maybe I can finally get FL Studio 9 to work faster on my computer. smile


FL 10 is already out.


(8 replies, posted in Game assets)

It's decent, but it needs to be reordered and readjusted:

jobromedia wrote:

1. From small things, big things one day come!

Not the other way around. New COD's want to design a fancy boss first of all, but fails due to the lack of knowledge. Babies need to learn how to eat, crawl, then talk, and once they've got that right they learn to walk.

Should you skip the boss all together? Hell no!

I think this could perhaps be reworded. It's a bit difficult to understand the point being made here, though I understand it is about equivalent to "You can't learn to script if you don't take the time to do it".

jobromedia wrote:

6. Assemble your toolkit

Get the softwares you need to create your objects. Paint programs, mindmap software, text editors etc, just make sure that you use legit bought software, or freeware if you don't have the cash needed.

jobromedia wrote:

5. Face the bleeding edge!

Make sure to download the latest bleeding edge of open surge. Why? Because it features new stuff that isn't available in the stable version.

These should be put into the same step, and this should be the first real step. It's vital you have all the software and tools you need before even thinking about starting to script. You need to practice with the tools you start with. Open Surge's Bleeding Edge itself is one of those tools.

jobromedia wrote:

2. The wiki is your friend!

As a new COD you need to understand the basics of the scripting language. Study the API reference, and the case studies to better understand how the scripts works.

You are missing something extremely important here.

You have to learn how to make spritesheets as well as everything else before you even begin thinking about jumping into coding. Be sure to add something along those lines here. This is absolutely vital. Many would-be scripters stop dead in their tracks because they simply don't know how to add sprites and art to their scripts.

jobromedia wrote:

3. Test everything!

There is no better way to learn from the start, so test the scripts:

* alter variables,
* change it's speed
* how many bullets it fires

And do this with the API reference opened in your browser so you can get first hand info on what all decorators do.

Could use better examples, but the general idea is OK. Mentioning 'bullets' out of nowhere in the list could throw people off.

jobromedia wrote:

4. Stick paint the actions

Design on paper the way the boss (object) acts, the way it attacks, it's death sequence and so on (how it reacts to players, what happens when it touches a different object). Heck even the guys behind Mortal Kombat uses this method.

jobromedia wrote:

7. Designing the files

As your knowledge grows so does the idea of the boss  (object) you want to design. Now it's time to create the art / sounds you need for the boss  (object).

Bolded text would be what needs to be there instead thing relating to just bosses. It should be a bit more general. Not every person who wants to learn to script wants to make a boss as soon as they begin. (I know that I didn't, I wanted to make boost rings as soon as I got the first version of the scripting engine, and I did). Make sure to let the person know you can make more than just bosses with it.

jobromedia wrote:

8. Putting your dream into action

You've studied the scripting language, made your sketches, assembled the tools and created the needed files. Now it's your time to create the scripts it needs to work properly.

This is fine as is.

jobromedia wrote:

9. Testing it out

Now comes a long period that you need to follow through, and it is the part to test the object you've made. Fact is that this is the period that divides the amateurs from the pro's. Windows has over 3000 test builds before it was even released. Now I'm not saying you have to be that extreme, but test at least 100 times the boss so you can get the worst bugs sorted out before you release a beta version.

This is a bit generalized. You need to also tell them WHAT to test. Does the object react as expected when the player attacks it? What if an inactive player touches it? What does it do if it goes offscreen and inactive for too long? Did you test every state of the object? Do the sounds play properly? Are variable values what they should be?

jobromedia wrote:

10. Release some betas

Now it's time to release a beta of your object here on the forum. Provide a test level where the object is available. Post the known bugs you've found, and ask for assistance to test the object even more. Then you release a new beta every 7-14 days until you got the object working the way you want it to act.

It's a bit rare to see this actually happen, but it is important, nonetheless. I'd suggest to also release it with the bleeding edge version it's for, because you'll likely get several "It doesn't work with my version!"s from a few people.

Be sure to mention, again, the what. Beginners should know what files they have to release. The .obj, .spr, and the .png of the object, most importantly.

jobromedia wrote:

11. Release some candidates

As the last beta is released it's time to release a few release candidates. This object is almost 100% completed. It needs just some fine adjustments.

jobromedia wrote:

12. Time to go viral!

Once the object is finished it's time to spread the word on this and other forums. Find a permanent place for the download to reside, and bask in the awe and glory your creation has given you. Go out, get a soft drink and enjoy the sun.

The two of these probably need to be rewritten completely, and combined.

Why would it go in other forums? I don't quite see the purpose of why it should leave 'Custom Objects', seeing as it is... well... a custom object. People should release their object betas in "Custom Objects" and the scripter needs to just continue to receive feedback on their objects as more bugs are found in them. Once you stop finding oversights, you're done. Before then, there's no real "release" point.

Also, you should probably mention that testing others' objects is a good way to learn how to make your own. Having pre-built things you can learn from helps a lot.


(24 replies, posted in Game assets)

S32X wrote:
Engine wrote:

Can't find built-in function "Physics" in "Physics"

I looked in the script, and I don't see a "physics()"

And you shouldn't. I didn't put that in there.

If you got that, then it's not something I did, nor something I can help you at the time, seeing as I couldn't know what you did to get that without seeing each script you put anything involving this in. All you had to do is paste the script somewhere in some .obj, spawn the object, and you're done. Nothing else really fancy is required.

How, exactly, did you spawn it?


@ Integer / Decimal hoopla

Last time I checked, YSpeed can be a decimal without crashing. It can also be positive or negative.

Whether the engine actually takes decimals into consideration when setting yspeed (as opposed to it rounding the value) is beyond me. The difference would be so ridiculously small as it is, anyways, unless you want a very slow object.

As long as yspeed is a real number of any kind, it should work. Whether it works as intended or sends you flying the wrong way is completely up to the scripter.


(14 replies, posted in Off-topic)

I don't see how it can, given the fact that I'm not a moderator anymore and probably won't be again any time soon.

But alright. Let us speak of this no further. Alex, can you close this?


(3 replies, posted in General)

jobromedia wrote:

Sorry if I hijack your topic, but what's the green and yellow layer used for?



(14 replies, posted in Off-topic)

No. That's actually part of a bug that Alex and I have discussed in the past.

Please. Stop posting here.


(14 replies, posted in Off-topic)

S32X wrote:

Like Redshrike?


No. Not Redshrike. He isn't even a lurker. It's nobody you know. They don't have usernames here.


(14 replies, posted in Off-topic)

I see you want to continue this publically. Then, we shall, Jobromedia.

jobromedia wrote:

Well then you're back. Welcome.

Why did you alter our passwords? I've been trying hard to get on here. Was almost ready to create a new account. So, a proper explanation is due expected.

You gotta treat everyone the way you want to be treated yourself. With respect! I for instance would never ever for a second gain moderator status to alter anyone elses passwords than my own. That's for sure. As a moderator you're taking on the responsibility to keep the forum clean and tidy. That's the main responsibility you have as a moderator. And yet you audacity took the liberty to alter our passwords for no appearant reason. Why?!


Um, did you look at your Facebook? At all? You know, where I private messaged you and apologized to you directly? I did that before I even posted this topic.

I already told you that it was my fault and that I had no excuse. If you would kindly read my post and the load of apologies that I've given everyone, including you, you would have seen that it was indeed me doing a bad thing, and me trying to make up for it. You screaming at me in front of everyone is not the answer, especially since I've outright mentioned nearly in every sentence that I had no right to do so as it was. You don't need to remind me.

Jobromedia wrote:

As a moderator you're taking on the responsibility to keep the forum clean and tidy. That's the main responsibility you have as a moderator.

I suppose that those hundreds (literally, hundreds) of spammers that got banned just did that to themselves. Or those topics that got moved to their proper areas moved themselves. Some of which were your own.

I didn't become moderator to abuse it. I could have done this little trick to you a long time ago, Jobromedia. And, if I hadn't voluntarily revealed that I did it just before I left, you would have never known that I did it. I tried to apologize and to make up for it, and I'm trying to be a better person by learning from what I did. So, how about, instead of screaming at me publically, you actually read what I sent you on Facebook and actually look at what I said and continue this in PRIVATE. Or are you going to ignore me as you have dozens of other times? Such as when I sent you PMs as moderator?

I apologized, I did everything I could to fix it, so I don't feel any more guilt about doing it. I tried to make things right. If you're going to bitch about it, feel free, but I can't do much else other than tell you that I already apologized to you before I even posted here in the forum.

And next time, at least choose an image that fits your post.

S32X wrote:

What I want to know is why was it specifically Jobro and So-Nick out of all people.

Several of my friends (none of which are actually members, but lurkers) pushed me to do it because they were both seemingly "the most annoying" or "the biggest jerk" out of everyone who posts here. Jobromedia and I have never seen eye-to-eye, which is obvious given this tension.

So-Nick just seemed to be annoying with his posts. I feel that So-Nick, in this case, especially didn't deserve it, because he didn't even dislike me.

I already apologized to everyone. If anyone is going to drag this out further, then that's their problem.