Open Surge Forum

A fun 2D retro platformer inspired by Sonic games and a game creation system

You are not logged in.

Announcement

Our community has moved to Discord! https://discord.gg/w8JqM7m

#1 Re: General » Help with spriting » 2016-03-29 17:51:41

I decided I'd base my grid of of Tux's spare sprite slots in the sprite sheet and copied the frame size and hot spot. Luckily this time it worked perfectly.

#2 General » Help with spriting » 2016-03-29 03:34:24

S32X
Replies: 3

I've been having trouble determining the frame size and hot spot of this sprite sheet I wrote. So far the "stopped" animation looks fine but everything after that it either out of place or doesn't show anything. I even made a grid that was the (initial) frame size to make sure everything was in the correct spots, but to no success

So here's the sprite sheet
sKuS187.png

Here's the .spr file

// Sprite created by TheSeventhEmerald's JSpriter

sprite SD_SNC
{
    source_file images/sonic_1.png
    source_rect 0 0 280 798
    frame_size 39 47
    hot_spot 0 47

//Animation stopped
    animation 0
    {
        repeat TRUE
        fps 8
        data 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 
    }

//Animation waiting
    animation 1
    {
        repeat TRUE
        fps 2
        data 7 7 7 7 7 7 7 8 8 8 9 8 9 8 9 8 9 8 9 8 9 8 9 8
    }

//Animation walking
    animation 2
    {
        repeat TRUE
        fps 8
        data 14 15 16 17 18 19 
    }

//Animation running
    animation 3
    {
        repeat TRUE
        fps 16
        data 21 22 23 24
    }

//Animation looking_up
    animation 4
    {
        repeat FALSE
        fps 8
        data 28 29 
    }

//Animation ducking
    animation 5
    {
        repeat FALSE
        fps 10
        data 35 36 37 
    }

//Animation springing
    animation 6
    {
        repeat FALSE
        fps 8
        data 42 
    }

//Animation death
    animation 7
    {
        repeat FALSE
        fps 8
        data 49 
    }

//Animation drowned
    animation 8
    {
        repeat FALSE
        fps 8
        data 56 
    }

//Animation ceiling
    animation 9
    {
        repeat FALSE
        fps 8
        data 63 
    }

//Animation jumping-rolling
    animation 10
    {
        repeat TRUE
        fps 10
        data 70 71 72 73 74
    }

//Animation pushing
    animation 11
    {
        repeat TRUE
        fps 4
        data 77 78 79 80
    }

//Animation getting_hit
    animation 12
    {
        repeat TRUE
        fps 6
        data 84 85 
    }

//Animation braking
    animation 13
    {
        repeat FALSE
        fps 8
        data 91 92 93 92 91 92 93 92 91 92 93 94
    }

//Animation ledge
    animation 14
    {
        repeat TRUE
        fps 8
        data 98 99 100 101 
    }

//Animation breathing
    animation 15
    {
        repeat FALSE
        fps 8
        data 105
    }

//Animation winning
    animation 16
    {
        repeat FALSE
        fps 8
        data 112 112 112 113 114 113 114 113 114 113 114 
    }

}

And here's the .chr file

// ---------------------------------------------------------------------------
// Open Surge Engine
// http://opensnc.sourceforge.net
//
// File:   characters/surge.chr
// Desc:   character definition: Surge
// Author: OS Team
// ---------------------------------------------------------------------------

character "Sonic"
{
    companion_object                ".snc_companion"
    
    multipliers
    {
        acceleration                1.0
        deceleration                1.0
        topspeed                    1.0
        jump                        1.0
        jumprel                     1.0
        gravity                     1.0
        rollthreshold               1.0
        brakingthreshold            1.0
        slope                       1.0                                                                                                 
        rolluphillslope             1.0
        rolldownhillslope           1.0
    }
    
    animations
    {
        sprite_name                 "SD_SNC"
        stopped                     0
        walking                     2
        running                     3
        jumping                     10
        springing                   6
        rolling                     10
        pushing                     11
        gettinghit                  12
        dead                        7
        braking                     13
        ledge                       14
        drowned                     8
        breathing                   15
        waiting                     1
        ducking                     5
        lookingup                   4
        winning                     16
        ceiling                     9
    }
    
    samples
    {
        jump                        "samples/jump.wav"
        roll                        "samples/roll.wav"
        death                       "samples/death.wav"
        brake                       "samples/brake.wav"
    }
}

Also a side note to KZR, I am using Notepad++ at this point

#3 Re: General » Nanoparser detecting data that does't exist » 2016-03-28 02:42:47

I found the problem and it had to do with the fact that in Notepad, any space using the Tab key means the same thing as pressing enter to get a new line. For example:

Although it looked like this

object ".snc_companion"
{
        requires 0.2.0
        always_active
        state "main"
        {
        
        create_child ".snc_spindash_controller"
        create_child ".snc_peelout_controller" 
        create_child ".snc_speed_check"      
        destroy
        }
}

It was actually being read as this

object ".snc_companion"
{      requires 0.2.0     always_active     state "main"
        {      create_child ".snc_spindash_controller     create_child ".snc_peelout_controller"      create_child ".snc_speed_check"      
        destroy
        }
}

(Or something like that)

#4 General » Nanoparser detecting data that does't exist » 2016-03-27 23:08:13

S32X
Replies: 4

Hi. I've been having trouble with a companion object I wrote:
DwjrNo2.png

However if we look in the .obj file I wrote and take a look at line 22, there isn't a "{" even there!
8VWJ0aM.png

So, why is it saying there's a "{" on that line when there isn't?

#5 Re: Assets » JBlocks: Java Brickset Designer » 2016-03-27 22:46:20

I've had two issues while using this program

1). When you save your work to a .brk file, any further changes you make and save don't get overwritten to the .brk file, even though if you make changes the program doesn't prompt you to save changes. I first saved it when I made brick 34 and then proceeded to make about 150 more bricks, and none of them got written to the file even though I did Ctrl+S multiple times, and I'm kind of pissed off by that.

2). Opening existing .brk files made with JBlocks doesn't do anything. (i.e., going to File>Open>example.brk closes the file window but doesn't load the brickset)

#6 Re: General » How to change text tile: Surge!!! Neon!!! Charge!!! ? » 2016-03-27 01:09:57

So-Nick wrote:

foto_para_perguntar_e_exmplo?async&rand=0.07151519671549034 how to change this text please?:)

I come back after three years and this is the first thing I see... well then

#7 Re: General » Pseudo 3D - how? » 2015-01-19 02:17:24

A good example of how Pseudo-3Dcould work in the normal levels too.
btw, have you guys added the ability to change to background of a level in-game yet?

#8 Re: Off-topic » Character moveset » 2014-03-02 22:17:58

aronthehedgehog wrote:

no but i have the code.

object ".sonic_complicated_controller"
{
    requires 0.2.0
    always_active

    state "main"
    {
        hide
        observe_player "Sonic"
        change_state "stand by"
    }

    state "stand by"
    {
        on_player_lookup "ready"
    }

    state "ready"
    {
        let "$p = 0"
        on_button_pressed "fire1" "charge"
        on_player_lookup "ready"
        change_state "stand by"
    }

    state "charge"
    {
        set_player_animation "SD_SONIC" "2"
        strong_player
        springfy_player // so that the camera won't go down, since the player is ducking
        disable_player_movement
        play_sample "charge"
        let "$p = min($p+2, 8)"
        change_state "hold"
    }

    state "hold"
    {
        //textout menu.small 0 0 $p
        set_player_animation "SD_SONIC" "2"
        let "$p -= 0.234 * floor(8*$p) * dt()"

        // check if there's a platform underneath the player
        attach_to_player 0 20
        unless "brick_exists(0,0)" "cancel"

        // create cool particles
        let "$_pixelparticle_anim = 1 + random(3)"
        let "$_pixelparticle_xvel = -player_direction() * (120 + random(60))"
        let "$_pixelparticle_yvel = -60 - random(120)"
        create_child .pixelparticle -player_direction()*7 -2
        let "$_pixelparticle_anim = 1 + random(3)"
        let "$_pixelparticle_xvel = -player_direction() * (120 + random(60))"
        let "$_pixelparticle_yvel = -60 - random(120)"
        create_child .pixelparticle -player_direction()*7 -2
        let "$_pixelparticle_anim = 1 + random(3)"
        let "$_pixelparticle_xvel = -player_direction() * (120 + random(60))"
        let "$_pixelparticle_yvel = -60 - random(120)"
        create_child .pixelparticle -player_direction()*7 -2

        // check if the user wants to charge more, or if we can release the player
        on_button_pressed "fire1" "charge"
        on_button_down "up" "hold"  
        change_state "release"
    }

    state "cancel"
    {
        enable_player_movement
        weak_player
        change_state "stand by"
    }

    state "release"
    {
        play_sample "release"
        enable_player_movement
        weak_player
        set_player_xspeed "(700 + 30 * floor($p)) * player_direction()"
        change_state "stand by"
    }
}

it's basically the same as the spindash though it's pressing the up button. big_smile


Tested it. It works.

XMYouH9.png

Oh wait....

uPfeWfy.png

he he he.... now I remember the problem. I you did the exact same thing I did; and that's what happens when you try to do that just by reversing the control scheme. The player looks like it's belly-flopping in sideways gravity.

#9 Re: Off-topic » Character moveset » 2014-02-24 23:33:14

The actual code for the spindash is located in a character's companion file as shown below

object ".surge_spindash_controller"
{
    requires 0.2.0
    always_active

    state "main"
    {
        hide
        observe_player "Surge"
        change_state "stand by"
    }

    state "stand by"
    {
        on_player_duck "duck"
    }

    state "duck"
    {
        let "$p = 0"
        on_button_pressed "fire1" "charge"
        on_player_duck "duck"
        change_state "stand by"
    }

    state "charge"
    {
        set_player_animation "SD_SURGE" "6"
        strong_player
        springfy_player // so that the camera won't go down, since the player is ducking
        disable_player_movement
        play_sample "charge"
        let "$p = min($p+2, 8)"
        change_state "hold"
    }

    state "hold"
    {
        //textout menu.small 0 0 $p
        set_player_animation "SD_SURGE" "6"
        let "$p -= 0.234 * floor(8*$p) * dt()"

        // check if there's a platform underneath the player
        attach_to_player 0 20
        unless "obstacle_exists(0,0)" "cancel"

        // create cool particles
        let "$_pixelparticle_anim = 1 + random(3)"
        let "$_pixelparticle_xvel = -player_direction() * (120 + random(60))"
        let "$_pixelparticle_yvel = -60 - random(120)"
        create_child .pixelparticle -player_direction()*7 -2
        let "$_pixelparticle_anim = 1 + random(3)"
        let "$_pixelparticle_xvel = -player_direction() * (120 + random(60))"
        let "$_pixelparticle_yvel = -60 - random(120)"
        create_child .pixelparticle -player_direction()*7 -2
        let "$_pixelparticle_anim = 1 + random(3)"
        let "$_pixelparticle_xvel = -player_direction() * (120 + random(60))"
        let "$_pixelparticle_yvel = -60 - random(120)"
        create_child .pixelparticle -player_direction()*7 -2

        // check if the user wants to charge more, or if we can release the player
        on_button_pressed "fire1" "charge"
        on_button_down "down" "hold"
        change_state "release"
    }

    state "cancel"
    {
        enable_player_movement
        weak_player
        change_state "stand by"
    }

    state "release"
    {
        play_sample "release"
        enable_player_movement
        weak_player
        set_player_xspeed "(480 + 30 * floor($p)) * player_direction()"
        roll_player
        change_state "stand by"
    }
}

Each player has a certain companion file with this code in it (with variations depending to the player's graphics of course). They used to be in .inc format, but have seemed to changed to .obj format since whenever tongue

I had a lot of fun messing with this file about a little over a year ago when I was in England for a few weeks.

Loilkas wrote:

Just make another spindash but instead you have to press up instead of down...
Kinda like the super peel out big_smile

Ah, see while I was messing around with the file (about a little over a year ago when I was in England for a few weeks), I also attempted to reverse-engineer the code/script so I could do what you're trying to do now; create a super peel-out, however the way the actual procedure of the code/script works makes it impossible to create this effect in method of just reversing the control scheme due to the Engine's game physics.

Eventually it led me to making a half-assed "psuedo" peel-out where I just changed the somersault animation to a running animation. hmm

I'm sure there's another way to achieve a super peel-out-esque move, just not this way.

#10 Re: General » Beta website » 2014-02-24 23:19:25

fahyda wrote:

could you add a video of the game play for newcomers


Well there's not much in the game atm...

#11 Re: Off-topic » am i? » 2014-02-02 05:55:52

KZR wrote:

It was more lively 2 - 3 years ago.

I think the forums will become like this once more when we finally have a stable build of the engine and a complete [demo] version of the game and start getting a larger audience, until then it's sorta... dead. hmm

#12 Re: Off-topic » I fall out of the sky. » 2014-01-09 20:28:30

Thanks. I found a link to the latest bleeding-edge last night.

#13 Off-topic » I fall out of the sky. » 2014-01-08 02:49:06

S32X
Replies: 2

Hello, I'm back. It's been a while since I've been on here, but I came to drop by just say hello, to the new and the old members.

Where have I been? YouTube, Punchwood (another forum/community), Skype, Minecraft, Terraria, League of Legends, but more importantly, Working on music.

From the last time I posted some work of mine, I look at it now and see it wasn't all that good. but I've been working at it, and now I've made these!

Track 1
Track 2
Track 3
Track 4
Track 5

I might get back into working with the Engine, I'm not sure. Anyway, I'll be around, not sure when, I'd also be happy to make something for the game. So that said, I'll see you all later!

P.S. Uh... where do you get the latest version again? I sorta forgot... tongue

#14 Re: Assets » i need music like this... » 2013-08-02 07:23:47

Do you need that exact music, or music like it? I could make something for you, I have a lot of free time, so I'm spending most of my time on FL Studio.

#15 Re: Off-topic » [bug] Sonic 2 Genesis Maximum of lives » 2013-08-01 13:13:32

Does this only work with a specific version of the game, CPU and/or Bios?

#16 Re: General » Modified Version of the Engine » 2013-08-01 13:12:17

jobromedia wrote:

Hey there! Game assets is for finished assets only. Questions about game assets still belongs in the general forum, so I'm moving this topic there.

Okay; I wasn't really sure where to put a topic like this, Game Assets seemed like a good idea at the time. *shrugs*

#17 Re: Off-topic » Attention: surgeswarehouse and ssdw sites claimed to have malware! » 2013-08-01 13:10:23

I've also noticed that parts of the Pages graphics aren't loading correctly, mainly the background, and now my browser instantly blocks the site.

I think you should contact Ssdw. This could be a serious problem for him. hmm

#18 Off-topic » Attention: surgeswarehouse and ssdw sites claimed to have malware! » 2013-07-25 04:00:09

S32X
Replies: 8

Today I received a message from my browser saying that this sight had malware
http://surgeswarehouse.com/upload/

I've been to this site countless amounts of times and never have gotten that message....

:edit by mod: I gave this topic a little more urgent title.

#19 Re: Games » Sonic and the Magical Stone (Now with 30% more download link » 2013-07-24 04:49:26

MatheusRRR wrote:

aron, with all due respect, but I think u should not look only for others.
look at this page
http://opensnc.sourceforge.net/forum/vi … hp?id=1542

hehehe....

Aron, what you did here was mini-mod (where you act like you're a staff member), and even worse you mini-modded to a post that doesn't exist (anymore?). You used to be very 'spammy' in your own posts; having double, triple posts as well.

While this post itself also seems like it is mini-modding, I am only stating truths past of your posts, (proof: Matheus' link), and I am not telling you what and what not to do.

(So don't use that as an excuse to yell at me tongue )

#20 Re: General » Modified Version of the Engine » 2013-07-24 04:43:14

lunarrush wrote:

Yes, you would, the nanoparser compiles what I was referring to.

I thought this was something in the source code itself (raw data of the Engine), not this. (Or maybe it was... hmm ) Anyway, if their just .inc files then I can study off of them, since I understand the object scripting system.

#21 Re: General » Modified Version of the Engine » 2013-07-21 05:10:01

lunarrush wrote:

Well, as far as that hack goes it is because we overrode a few of the behaviors you find in the main engine, you are always free to look into the source code of the combat system in there and see how we ended up doing it.  Basically what happened in version 0.3 of Shinobi Densetsu and later is I wrote a prototype combat system, we completely did away with engine enemy detection, and we used enemy states to figure out how to damage the player.  This actually kills two birds with one stone for you if you want to take the time to adapt my original combat system concept I would suggest downloading that version of the game and figuring out what I did, its in a system called fracture combat system.

Well as far as that goes I don't think the time or patience/interest to figure that out. Plus even if I did manage to do that, I would have no way of compiling it.


S32X wrote:

Also, I need to know how to make a projectile shot by the player move the direction the player is facing, I think I can do this using 'player_direction()' though I think if the player turns around the object will the move the opposite direction it was originally going in since the player's direction has changed.

In Shinobi Densetsu you did exactly what I'm trying to accomplish, could you tell me where to look in Version 0.3 so I can figure out how to do this?

#22 Re: General » Modified Version of the Engine » 2013-07-19 20:49:11

I think I have a way to work around the jumping thing, so that's not a problem.

However for the health thing, hey KZR. Didn't you make a hack of the Engine that allowed players to not lose all of their rings when they got hit?

#23 Re: General » Modified Version of the Engine » 2013-07-15 21:13:03

To your first post:

I need something that makes the Engine not activate what the same attributes of "strong_player" are when the player jumps (in basic terms "The Engine's version of 'strong_player'), which is something scripting can't do since the Engine would override it, same goes for doing "on_player_fall" "this", then setting an animation for when the player falls, this wouldn't work; I've tried doing it before.

Second Post:

I don't see how this would make a projectile that ejects out of the player become 'locked' in that direction the player was facing even if the player turned around. If it was just 'player_direction()' the projectile would still remember what way the player was facing even after it was thrown, thus move the opposite direction if the player turned around.

I appreciate your help, but it doesn't... well... help. hmm

#24 General » Modified Version of the Engine » 2013-07-15 15:13:54

S32X
Replies: 11

Yes it has been a while...

Hello everyone, I'm alive! tongue
I came to ask a favour. I don't know much to nothing about the source code of the Engine, so I need someone to do the following for me:

-Make players unable to destroy enemies just by jumping
-Remove the feature that makes player lose all of their rings/health
-Add a feature for an animation when the player is falling rather than using the running animation

Also, I need to know how to make a projectile shot by the player move the direction the player is facing, I think I can do this using 'player_direction()' though I think if the player turns around the object will the move the opposite direction it was originally going in since the player's direction has changed.

Thanks, Technoid Sigma

#25 Re: Games » sonic x opensurge 1 » 2013-04-22 04:23:25

I've looked at the name of this MOD for a few minutes

"Sonic X Open Surge"

Is the 'X' part a reference to the anime TV show "Sonic X"?

Board footer

Powered by FluxBB  hosted by tuxfamily.org