Jump to content
A 2021 backup has been restored. Forums are closed and work in progress. Join our Discord server for more updates! ×
SoaH City Message Board

Sonic Attitude; video on last page


Endri

Recommended Posts

Perhaps saxman with his ProSonic project would know something?

Most likely. Maybe even Taxman of RetroSonic (I bloody love that game...)... I think it used similar concepts to the originals...

Yeah. He might know something. But I'm really curious to know the method Damizean uses in his engines :)

Also, I posted the logo for Sonic Attitude ;)

Link to comment
Share on other sites

I used that method only on my GM engine (the latest one, anyway). In all the tests I performed, I could successfully use very high values (even stupidly high ones) without having much problems with the collisions. On the other engines, only the slopes one is used.

I don't know the approach of the original games, so I can't tell you that. As for Retro Sonic, I know Taxman traces the movement routine (a similar approach to movement tweening, but done by pixel, instead of x number of pixels.

@ ssbfalcon:

No, AFAIK the Sonic engine works kinda like the 360º ones. Instead of calculating the angle on the fly, each 16x16 tile has an angle for each side surface. Asides from that, it works in a "4 directions" mode, wich is selected based on current ground angle. Depending on the mode, it also selects wich side angle use. It's not based on it's speed at all.

Link to comment
Share on other sites

@ ssbfalcon:

No, AFAIK the Sonic engine works kinda like the 360º ones. Instead of calculating the angle on the fly, each 16x16 tile has an angle for each side surface. Asides from that, it works in a "4 directions" mode, wich is selected based on current ground angle. Depending on the mode, it also selects wich side angle use. It's not based on it's speed at all.

Nice. Thanks for that info!

Link to comment
Share on other sites

Now, with all this info, I'm quite ready to release the next demo...

I hope I can finish this demo before the demo I'm setting up for SAGE, with the pathfind implemented and with the Special Stages (ops, spoilers!) :)

Link to comment
Share on other sites

I'd like to help too, Talk to me on AIM or MSN sometime.

Edit: I also have a DS-Xtreme so I'm really looking forward to this!

Thanks, Jsonic! Every help is welcome! ^_^ I've add you to my MSN account. I hope you don't mind :)

Endri great job! I'm making an engine in C++ too (in 2D) and it uses mapping for angles so if you need some help contact me on msn!

Oh! Great! a C++ engine! Also, you're using mapping for the angles, huh? Pretty interesting... I was doing something similar, but it was for a rom hack...

Yes, yes. Add me on your MSN, so we could chat better.

Ps.: I'm from São Paulo!!

Oh! Legal! I could almost tell by your profile: "Brazilians can't speak english properly!" LoL

That was funny! Any brazilian help is welcome! (as the rest of the world, too ;))

Link to comment
Share on other sites

Nice job. You are off to a good start.

The main issue that I encountered was that Sonic had a tendency to fall off of the side of the level after going around a loop, bouncing off of a wall, etc. I am sure that you are working on that, but I thought that I would point it out. Another thing that I noticed was that the camera looked a little close (Maybe it's just me, but I thought that I would mention it.)

Other than that, everything is looking good. Keep it up!

Link to comment
Share on other sites

CoolJerk is writing his own Sonic engine and as I remember him explaining how the Genesis games calculated slopes:

Each "tile" in a Sonic game consists of graphics and mappings. Graphics are what you see, obviously, but on the surface of each tile is basically a ton of smaller, invisible tiles about 8x8 big that tell Sonic what the angle of the floor is.

Link to comment
Share on other sites

Nice job. You are off to a good start.

The main issue that I encountered was that Sonic had a tendency to fall off of the side of the level after going around a loop, bouncing off of a wall, etc. I am sure that you are working on that, but I thought that I would point it out. Another thing that I noticed was that the camera looked a little close (Maybe it's just me, but I thought that I would mention it.)

Other than that, everything is looking good. Keep it up!

Thanks, ClassicSonicRules! Actually, I'm rewritting the engine, because it's been hard to readapt the engine from DS... This demo uses the old test engine...

CoolJerk is writing his own Sonic engine and as I remember him explaining how the Genesis games calculated slopes:

Each "tile" in a Sonic game consists of graphics and mappings. Graphics are what you see, obviously, but on the surface of each tile is basically a ton of smaller, invisible tiles about 8x8 big that tell Sonic what the angle of the floor is.

Thank you very much, BlazeHedgehog! IIRC, when I was into rom-hacking, I saw about it. These are the "collision tiles", wich are stored in a collision array. In SonED2 you can edit them and enable the collisions layer, so you can actually "see" the collision boundary. The main issue here is that we are trying to figure out how the original classic Sonic engine keeps the characters placed on the ground at high velocities, even when the path happens to have slopes...

In currently too busy to figure it out. So I'll try the rendering tweening technic suggested by Damizean, if I don't come with another method first ;)

Link to comment
Share on other sites

The angle of collision of a tile in the Genesis Sonic games is statically defined, independent of the graphics. When the 8x8 patterns are turned into 16x16 tiles, they are assigned collision masks from an array of 256 possible collisions (and a duplicate array of them rotated 90 degrees), which determine if a collision happened at all, and then the predefined angle of the collision mask is used when that happens.

It is a lot different from the way it is performed in Sonic Worlds/Dash, where the collision masks are static, but the collision angle is determined dynamically by moving sensors around. That's because Worlds/Dash have the benefit of precise, pixel-based collision detection (thanks to MMF/Game Maker, respectively), so predefining the angles is unnecessary. The Genesis games can afford to predefine them, however, because they're made in assembly and the information is compressed.

EDIT: The original games put a movement peak on Sonic so that the velocities could not interfere with collision. They removed it in Sonic 3, and that's how collision glitches showed up (which they tried to justify as "traps" in the U.S. manual)

Link to comment
Share on other sites

lets ask naka how he did it! http://www.google.com/patents?id=1c0hAAAAEBAJ&printsec=abstract (very detailed info on naka's collision detection patented method)

edit: for my 3d engine i'm using a raycast to detect face normals and a bit of smoothing (speed compensated) it works pretty well, it doesnt glitches on concave surfaces, but it might have some problems when sonic is exactly in the edge between two faces with very different orientations (i disable slope detection when it goes too slow, so the problem is patched)

Link to comment
Share on other sites

Those just explain how the art is constructed and put on screen:

All level art is constructed of patterns, which are collections of 64 indexes to a palette of 64 colors. Each index is a hex value of 0 - F (15); to reach higher colors, they're given a multiple of 16 as an offset, which we call the "palette line" of the pattern.

Patterns are gathered into groups of 4, then flipped around if necessary and arranged as a 16x16 tile. The mappings for these 16x16 tiles make up the bulk of the art's properties. This includes the palette line (so the patterns point to the correct colors) and the priority/depth/layer of the patterns in use.

The tiles are then brought together into groups of 64, flipped around if necessary, then arranged into a 128x128 "scene." The 128x128 mappings assign to the tiles the "type" of collision that can occur there: either not solid, completely solid, only solid at the top (a platform), or only solid on the sides and bottom.

Now, with the 128x128 "scenes" constructed, they're placed into the level via a mapping of the level layout. It is from this that both the full level and the background is formed.

EDIT:

Animation is formed by swapping the underlying patterns of the 128x128 scenes. The patterns to swap are pushed into and popped from a data queue called the "pattern load cue."

The underlying palette can also change by the pixel, which is how they achieve separate colors for art that is rendered "underwater." The colors for "underwater" are given their own section in the ROM that is referenced when necessary.

Note that in Sonic 1, the scenes are size 256x256, which is basically 256 16x16 tiles, and 1024 8x8 patterns.

Fun fact: you can find all of this information uncompressed in a GENS savestate, only the addresses for each section is different from the addresses in the original ROM. You can edit this information and reload it back into the game without having to edit the ROM itself, which is how hackers create "savestate hacks." The limitation, of course, is that you cannot create new art - you can only rearrange existing art in the ROM.

More information later.

(Before you ask: yes, I've been doing a lot of research into this)

Link to comment
Share on other sites

  • 3 weeks later...

Okay, okay people, it's been a loooooooooooooong time... SAGE sure got us all busy! :)

I, for one, have been all busy trying to put a new demo of Sonic Attitude altogether for SAGE.

But now SAGE is over. That means I don't have anymore deadlines... (and seriously, I hate deadlines... X_X)

I have corrected some bugs in the engine... some bugs that make the characters walk everywhere...

I've created a completly brand new level for the supposed SAGE DEMO (a full, complete level, I mean...)

...but thanks to Slinger's advice:

"<Slingerland> If you release a full game with a water level in it, people might even be forgiving on you... but releasing a demo with a water level... it's suicide!"

So, thanks to these wise words, I took away my dear water-level, and started modeling a brand new one, one that shows the capabilities and integration of both sceens of the DS, and the seamless transitions between 2D gameplay and 3D. What I'm trying to say is, I didn't release the SAGE DEMO because I thought better to replace that level with something better that people might enjoy more... like snowboards... ...

The level I'm currently modeling is a snow-level... kinda an ICECAP-like level (couldn't take the water off... but I put it in a lower height, so people don't need to go in the underwater paths if they don't want...)

The level is a little far from completness, but it will before you know it ;)

Also, regarding exclusively to the DS version, now I'm using both the ARM7 and ARM9 processors in conjuction, so the game's capabilities had increased drastically! yay! I'm also re-writting the DS API... so better graphics, less memory consuption and less z-buffer errors. Also, the 3D moviment is completly implemented, and the use of the "stylus" to move the character in the touch screen is more accurate than ever! Also implemented 3D Special Stages.

Regarding to the iPhone version, I could check it, and it is running flawless! Also, for MacOsx users, you will only need the iPhone version, since it works on both PC and iPhone (that little add wasn't my fault, it happenned ocasionally!). iPhone resolution is higher, and widescreen (480,320?... almost the standard widescreen ratio 1:6)

For iTouch users, couldn't check it yet... maybe someone can? 8D

And, regarding to Windows users... since I don't have anymore deadlines... following Mark_Echidna's suggestion, I'm fully re-creating the engine for the Windows version, that means it will have better 3D models, sounds and music! yay! I'm even thinking of coding it in shader-level... So, for the win ver, it will be at least in a higher resolution... (notice that I said "at least")

Well, that's all I have to say for now. Be tunned, I might release the actual DEMO in a week or two... I only have to give for a few people to test before I release it here. (just need to finish modeling the SNOW-LEVEL, and we are off to go!)

And don't forget kids... STREAK IS SOOOOOOOOO CASUAL!!!!!! XD

Link to comment
Share on other sites

I, for one, love water-levels... but to avoid people cursing me for the entire of my days with life in this earth, I choose to swap the stages... the demo was supposed to be like this:

BEACH-LEVEL -> KNUCKLES -> EASY

WATER-LEVEL -> TAILS -> MEDIUM

SPACE-LEVEL -> SONIC -> HARD

Now, I just changed everything... and swapped the water-level to a snow-level... also, now you can play with whatever character you want in the stage you want and in the difficult-level you choose... the only level that will remain the same is the prologue... but I'm not spoiling the surprises XD

Link to comment
Share on other sites

  • 8 months later...

"Sonic Attitude is NOT dead" Update Thread!!!

Warning! Not 56k friendly!! 720p screenshots!!

Greetings, everyone

It's been a while since I last posted progress over this project.

I would like to announce that the project is NOT dead, and progress has been made.

satt_wip83.png

One thing that I would like to note is that I redefined the engine for the PC version. The PC version will now feature a brand new engine entirely customized by me myself. I like to call it, "Attitude Engine". It's an entire SDK for developing Sonic games for PC. In fact, you can you it to develop other types games but Sonic games, but the main sources included are for Sonic in general.

satt_wip84.png

The main features in the engine I belive is SSAO and almost-with-no-pre-calculations-at-all Global Illumination <3

satt_wip85.png

Demo will be playable at SAGE2k9. So... Let's wait until then!

satt_wip87.png

satt_wip88.png

satt_wip89.png

satt_wip90.png

satt_wip86.PNG

P.S.: Now with 100% more parallax mapping! Yay!

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...