Endri Posted August 11, 2008 Author Report Share Posted August 11, 2008 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 More sharing options...
Damizean Posted August 11, 2008 Report Share Posted August 11, 2008 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 More sharing options...
Endri Posted August 11, 2008 Author Report Share Posted August 11, 2008 Well, I'm trying to figure out a good way for doing it, in a 3D environment... Currently, the engine is pretty smooth... but only at medium to high speeds... Link to comment Share on other sites More sharing options...
ssbfalcon Posted August 12, 2008 Report Share Posted August 12, 2008 @ 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 More sharing options...
Endri Posted August 12, 2008 Author Report Share Posted August 12, 2008 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 More sharing options...
Jsonic Posted August 12, 2008 Report Share Posted August 12, 2008 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! Link to comment Share on other sites More sharing options...
The ParadoxX Posted August 12, 2008 Report Share Posted August 12, 2008 Unzip it I had the same problem. Heh it worked, thanks! 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! Ps.: I'm from São Paulo!! Link to comment Share on other sites More sharing options...
Endri Posted August 12, 2008 Author Report Share Posted August 12, 2008 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 More sharing options...
ClassicSonicRules Posted August 12, 2008 Report Share Posted August 12, 2008 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 More sharing options...
BlazeHedgehog Posted August 12, 2008 Report Share Posted August 12, 2008 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 More sharing options...
Endri Posted August 12, 2008 Author Report Share Posted August 12, 2008 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 More sharing options...
VectorSatyr Posted August 12, 2008 Report Share Posted August 12, 2008 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 More sharing options...
cyborg_ar Posted August 12, 2008 Report Share Posted August 12, 2008 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 More sharing options...
VectorSatyr Posted August 12, 2008 Report Share Posted August 12, 2008 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 More sharing options...
Endri Posted August 29, 2008 Author Report Share Posted August 29, 2008 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 More sharing options...
Aerosol Posted August 29, 2008 Report Share Posted August 29, 2008 eh. That whole water-level thing was stupidity on the part of many people. I wouldn't mind a water level at all. But you do what you have to dude! Link to comment Share on other sites More sharing options...
Endri Posted August 29, 2008 Author Report Share Posted August 29, 2008 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 More sharing options...
Aerosol Posted August 29, 2008 Report Share Posted August 29, 2008 ah well, just don't take too long. you'll make me sad. also, I hear developing for the PSP is a snap nowadays....*ahem* Link to comment Share on other sites More sharing options...
Endri Posted August 29, 2008 Author Report Share Posted August 29, 2008 Oh, it is... developing for PSP... Since I'm coding the game mainly in C and C++, it would be a "BLINK-OF-EYE" to put it on the PSP... *ahem* Link to comment Share on other sites More sharing options...
Endri Posted August 29, 2008 Author Report Share Posted August 29, 2008 P.S.: ah well, just don't take too long. you'll make me sad.I'm making lots of peoples sad! XD Link to comment Share on other sites More sharing options...
Perry_ Posted September 2, 2008 Report Share Posted September 2, 2008 Really nice looking game. Looking forward to hearing more in the future. Also, I'm wondering. How many characters do you plan to have playable? Link to comment Share on other sites More sharing options...
tentril Posted September 2, 2008 Report Share Posted September 2, 2008 Almost everyone hates water levels, but every game needs one at least. People just need to accept this. Looking forward to this game. Link to comment Share on other sites More sharing options...
Khorney Posted September 2, 2008 Report Share Posted September 2, 2008 wait, you're going to put this on the PSP too? please do, that would be off the scale on awesomeness Link to comment Share on other sites More sharing options...
Endri Posted May 7, 2009 Author Report Share Posted May 7, 2009 "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. 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. The main features in the engine I belive is SSAO and almost-with-no-pre-calculations-at-all Global Illumination <3 Demo will be playable at SAGE2k9. So... Let's wait until then! P.S.: Now with 100% more parallax mapping! Yay! Link to comment Share on other sites More sharing options...
Felik Posted May 7, 2009 Report Share Posted May 7, 2009 This looks awesome... but i need videos!!! please! Link to comment Share on other sites More sharing options...
Recommended Posts