PCEngineFans.com - The PC Engine and TurboGrafx-16 Community Forum
Tech and Homebrew => Turbo/PCE Game/Tool Development => Topic started by: nodtveidt on December 11, 2010, 06:49:32 PM
Title: Platform engine demo
Post by: nodtveidt on December 11, 2010, 06:49:32 PM
OK so this is just a little test rom of the platform engine that I've been working on recently. Enjoy. :)
http://www.nodtveidt.net/action1.7z
EDIT: In case you wanna just look here for the latest demo... here ya go. :D
http://www.nodtveidt.net/monolith-xmasdemo.7z
Title: Re: Platform engine demo
Post by: Arkhan on December 12, 2010, 04:25:41 AM
nice nice.
still rockin the HuC or did you go straight ASM?
Title: Re: Platform engine demo
Post by: nodtveidt on December 12, 2010, 07:41:57 AM
Since this is based on the mature VM engine, this is HuC. When I do shooters, it's pceas only. Reason being is that it is much more effective to implement finite state machines in HuC than it is in assembly, so HuC is much better for platformers (and any other games requiring FSMs, like fighting games), but shooters do not require FSMs, and performance is the #1 issue in shooters, so assembly is required.
Title: Re: Platform engine demo
Post by: Vecanti on December 12, 2010, 04:38:35 PM
Really, really nice. My daughter played it for quite a while too. :)
Title: Re: Platform engine demo
Post by: nodtveidt on December 15, 2010, 10:29:01 AM
OK, here's a more advanced prototype build. The map is greatly expanded, and you can now attack (but not kill) enemies.
http://www.nodtveidt.net/action1-dec15.7z
Kudos to anyone who can figure out how to get to the giant topless naga. :D
Title: Re: Platform engine demo
Post by: turbogrfxfan on December 15, 2010, 11:08:42 AM
wwhen is this game going to be finished
Title: Re: Platform engine demo
Post by: nodtveidt on December 15, 2010, 11:12:26 AM
Shooting for early June 2011.
Title: Re: Platform engine demo
Post by: henrycsc on December 15, 2010, 11:40:50 AM
Title: Re: Platform engine demo
Post by: nodtveidt on December 15, 2010, 12:59:31 PM
Nah, maybe July 2018. :D
Title: Re: Platform engine demo
Post by: Vecanti on December 15, 2010, 02:15:43 PM
BOOBS! She's past the book case. The hardest part was the 3 blocks where there is rope in between each block you have to leap onto. Pretty awesome!
Title: Re: Platform engine demo
Post by: nikdog on December 15, 2010, 02:18:14 PM
(http://pic.photobucket.com/bwe.png) After all the satanic jumps, made it.
Title: Re: Platform engine demo
Post by: nodtveidt on December 15, 2010, 03:16:01 PM
Still quite a bit left to add, but it's shaping up nicely so far. I plan to add moving platforms (the classic platforming staple feature), swinging vines (a la Pitfall!), and maybe some water effects.
Title: Re: Platform engine demo
Post by: Emerald Rocker on December 15, 2010, 03:26:55 PM
I got a virus
Title: Re: Platform engine demo
Post by: RoyVegas on December 16, 2010, 07:51:32 AM
Title: Re: Platform engine demo
Post by: Arkhan on December 16, 2010, 08:09:11 AM
damn, that nagawhore with the bow has a nice rack.
Title: Re: Platform engine demo
Post by: MottZilla on December 16, 2010, 09:24:58 AM
Nice to see some active PCE homebrew. So does C program code get good performance on the PCE? I know with SNES it's not a great idea and that you might get by on Genesis's 68000. PCE has a pretty fast 65xx family CPU so I'm guessing it should atleast be a good bit better than the SNES trying to run C compiled code. Basically what do you think is possible with C on PCE? Probably not crazy object heavy fast paced action? But say something with a reasonable amount of action going on, perhaps like what you'd see in a NES or SNES game? Just curious as C is handy though ASM in the 65xx family is no problem for me.
And what do you mean by Finite State Machine?
Title: Re: Platform engine demo
Post by: nodtveidt on December 16, 2010, 09:55:00 AM
http://en.wikipedia.org/wiki/Finite-state_machine
The existing C compilers for the PCE (HuC, cc65) aren't the best, but with clever programming techniques (and the occasional assembly boosts), you can do some really nice work. I've never done C on the SNES, but I would imagine that it isn't terribly good because the SNES CPU moves at a snail's pace. Tomatheous has stated that C on the Genesis should work out well because the 68000 is a good CPU for a C compiler.
Title: Re: Platform engine demo
Post by: TheOldMan on December 16, 2010, 10:08:36 AM
Quote
The existing C compilers for the PCE (HuC, cc65) aren't the best,
Awww.... You're being too nice ;-)
Quote
but with clever programming techniques (and the occasional assembly boosts),
Yeah. The way code is generated for arrays is deadly to speedy programs. I tend to make it work for one item in C, then drop to assembler to make things work for multiple items.
Quote
C on the Genesis should work out well because the 68000 is a good CPU for a C compiler.
If it's anything like it's younger brother the 6809, it has one helpful feature the 65xx lacks - built in indirection. I know, you -can- do it on the turbo, but it would be so much nice to point to a table (with an offset in a register) and say "jsr [table,y]" to indirectly call the routine at entry Y in the table. On the 65xx, the address has to be in the zero-page, which means it has to be copied there somehow...and if you have to copy it, you might as well add in the index while doing it. It still drives me crazy trying to do state-based calls :-(
Title: Re: Platform engine demo
Post by: nodtveidt on December 16, 2010, 10:21:49 AM
Tomatheous mentioned something about optimizing code generation for array access, but I don't know if he ever messed with it or not.
Title: Re: Platform engine demo
Post by: nodtveidt on December 18, 2010, 03:23:07 AM
I released another prototype build, but it's on the Eponasoft website at http://www.eponasoft.com/ ... it has a couple of new features, mainly background parallax (see-through windows!) and water obscuring.
Title: Re: Platform engine demo
Post by: spenoza on December 18, 2010, 08:36:23 AM
It's pretty cool so far, though I think some of the physics could use a tweak. The character moves just quickly enough that precise control is a little hard. Also, jumping off of ropes and ladders has some odd behavior when you're at or near the top. Additionally, sound effects seem to lag the triggers by a bit much, so that if you're jumping a lot the landing sound plays when you're already up in the air from the second jump.
Impressed with some of the graphics, though, certainly.
Title: Re: Platform engine demo
Post by: nodtveidt on December 18, 2010, 01:31:07 PM
The sound effect lag is a known problem with certain emulators. I noticed it in Ootake. The problem doesn't seem to exist in Mednafen or Magic Engine. I'm not thrilled about how the jumping works, but now that it has Y-axis correction, it will be a lot easier to implement a better jump method. I can slow down walking... he does move a bit fast, I agree. The graphics aren't final; they're mostly ripped from RM2K tilesets. I'm currently in the market for a tile artist for this production.
Thanks for checking it out. :) I'm not sure how many more public prototypes I'm going to release of it though... maybe a few more.
Title: Re: Platform engine demo
Post by: Vecanti on December 18, 2010, 01:40:50 PM
http://www.eponasoft.com/ has been down all day for me. Hoping to test the latest soon. :)
EDIT: Right after I wrote that is started working. Great work. The transparency (windows) seems to work in the X and Y axis at the same time?
Title: Re: Platform engine demo
Post by: nodtveidt on December 18, 2010, 01:50:23 PM
The data center had a DNS server failure... everything should be working now.
Title: Re: Platform engine demo
Post by: Arkhan on December 18, 2010, 02:20:46 PM
Slight hijack of thread: Click the big banner in my signature, lol. There is some other active stuff, :D
Quote
So does C program code get good performance on the PCE?
No. Not at all. If you are making a game that isn't action packed like a shmup, it'll be just fine. It's great for RPGs. Anything that involves alot of things going on on screen at the same time, has problems. HuC is pisspoor at generating certain things in assembly.
Arrays being the big one, and lets be honest, who the hell doesn't use arrays for things in C?
If you plan to do a homebrew and don't want to do Assembly, you better plan something simple otherwise, chances are you'll need to twiddle around with assembly within the C code to make it work good. Insanity was done largely in C, but assembly was required to solve the problem of having no struct functionality, and the problem of array indexing being a disaster. Sure Insanity isn't exactly action packed, but it is possible to have 10 robots, 10 enemy shots, You, and Your shot all on screen at the same time. The collision checking then becomes a bit of a problem. If there weren't so many possibilities of collisions, it would be alot simpler. Platforming games, and RPGs seem to be two things that are C friendly. Anything involving a ton of sprite collision checking, is not so good.
I suspect something like Keith Courage or even Bonk could be done entirely in C.
For Insanity though: You have to check all 10 robots against all 10 robots plus you.. Thats 110 checks. Then you check All 10 robots for wall collisions. 10 checks that are slow because the built in tile functions suck. Then you check all 10 robot shots to all 10 robots plus you. Thats another 110 checks. Then you check the shots vs. walls, so 10 more slow checks... and then your shot vs all 10 robots AND their shots (you can shoot their shots), so 20 checks. along with you vs walls.
Alot of checking that needs to be done in one vsync. Alot of array indexing would be used in C. Inefficient array indexing. Along with slow map tile checks. Definitely not going to work out so good with the slow HuC stuff. Go Go Gadget Assembly.
and yes the only old CPU that really manages C code well is the 68k. The Amiga uses a 68k, and youd be amazed what you can do on that machine in C without ever having to touch assembly.
Ecco the dolphin on Sega was written entirely in C.
Title: Re: Platform engine demo
Post by: MottZilla on December 18, 2010, 03:37:09 PM
Thanks. Exactly what I wanted to know. I'd heard before that 68000's design is pretty C/High level language friendly compared to the 65xx family atleast.
Title: Re: Platform engine demo
Post by: nikdog on December 18, 2010, 03:45:54 PM
It's pretty cool so far, though I think some of the physics could use a tweak.
Another thing I feel that could be done is to be a little forgiving on delayed jumping. I have defiantly gotten to the edge many of times and hit jump, only to fall to the ground in frustration. It may have been the emulator lagging. I should cross check it with mednafen just in case, and I may be the only one with this opinion.
Title: Re: Platform engine demo
Post by: nodtveidt on December 18, 2010, 05:59:24 PM
The interesting thing about collisions is that you don't have to process them all at once. You can easily delay some of them by a frame or two, shaving off hundreds of cycles per vsync. It's just one of the many ways around the flaws of HuC's code generator. However, the huge number of collisions that a game like Insanity requires simply isn't suited for arrays; you would only get decent performance by having individual variables for each entity and the expense of much larger code size. That is, of course, if you were to stick with straight HuC with no assembly-level modifications. As of right now, this platform engine is pure HuC, though it will get "the cleansing" eventually to maintain performance.
nikdog, I'm not quite sure what you're referring to...
Title: Re: Platform engine demo
Post by: Arkhan on December 18, 2010, 06:20:24 PM
The interesting thing about collisions is that you don't have to process them all at once. You can easily delay some of them by a frame or two, shaving off hundreds of cycles per vsync. It's just one of the many ways around the flaws of HuC's code generator. However, the huge number of collisions that a game like Insanity requires simply isn't suited for arrays; you would only get decent performance by having individual variables for each entity and the expense of much larger code size. That is, of course, if you were to stick with straight HuC with no assembly-level modifications. As of right now, this platform engine is pure HuC, though it will get "the cleansing" eventually to maintain performance.
Delaying collisions in a game that operates on a frame by frame basis for movement/ai won't work so good. You'll have robots die and one will noticeably go first, and dealing with that many individual variables for that many things would just be obfriggingnoxious. :D
That's what DIY structs are for. :)
If HuC had structs, shit would be alot frigging easier.
Title: Re: Platform engine demo
Post by: nodtveidt on December 18, 2010, 06:57:30 PM
RPGs would be a lot easier with structs, that's for damn sure. But I managed Mysterious Song without them. It took more work than normal but it was certainly doable. goto would have been useful in a few places too, but that can be faked with inline assembly anyways, or by simply monkeying with the assembly code generation.
Title: Re: Platform engine demo
Post by: Arkhan on December 18, 2010, 07:45:19 PM
yeah. Not having structs makes way more work than is needed to do game programming.
Title: Re: Platform engine demo
Post by: sunteam_paul on December 18, 2010, 10:01:11 PM
This could be the new Rastan.
Title: Re: Platform engine demo
Post by: nodtveidt on December 19, 2010, 03:14:35 AM
Paranoia Dragon calls it "Exile 4" hehehe
Title: Re: Platform engine demo
Post by: sunteam_paul on December 19, 2010, 08:51:40 AM
Nooo, the PC Engine NEEDS a proper clone of Rastan. Change the main dude to a shirtless barbarian and call it Natsar. Job done :)
Title: Re: Platform engine demo
Post by: Arkhan on December 19, 2010, 10:27:38 AM
Well, depends on how you look at it :) We never got Exile/Xzr 1, the PCE started out with a version of Xzr 2(which I believe does have some levels missing from the original MSX version), & then we got what they called Xzr 2(Wicked Phenomenom), but is technically Xzr 3. It'd be nice if somebody someday actually ported Xzr 1, maybe call it Exile Zero or something, or call it Exile 3 but label it a prequal.
And that's still not as confusing as the Dragon Slayer series is!
Title: Re: Platform engine demo
Post by: spenoza on December 20, 2010, 03:38:27 AM
PCEjin, which is a TAS-enabled GUI mod of Mednafen also has sound delay problems. None of the official games I've played with PCEjin or Ootake have sound delay like that, so it might be worth taking another look at the sound engine.
Title: Re: Platform engine demo
Post by: nodtveidt on December 20, 2010, 04:30:28 AM
Oh yeah, PCEjin, I had forgotten the name of that one. Anyways, it might be a problem with Garner's original code. It'll likely be swapped out for Squirrel soon anyways, since Arkhan's new development version is supposed to support sound effects. But I'll check it out with PCEjin too.
EDIT: PCEjin is a f*cking moron. I gave it the cuesheet to load, and instead of loading track02.iso like the cuesheet instructs, it tries to load monolith.bin. That file isn't anywhere in the cuesheet. Stupid program doesn't even know how to follow simple f*cking directions.
EDIT2: Its framerate is pathetic too. But I took notice of the sound delay there as well. Then again, that could simply be because its performance is so poor.
EDIT3: It is most definitely an emulator problem. I just tested in it Hu-Go! which, despite having some of the worst sound emulation ever, does not have the problem.
Title: Re: Platform engine demo
Post by: TheOldMan on December 20, 2010, 05:34:14 AM
Quote
It'll likely be swapped out for Squirrel soon anyways, since Arkhan's new development version is supposed to support sound effects
Are you producing a Hu-Card, or a CD? Squirrel can do sound effects for CD, but I don't think the Hu-Card stuff is quite there yet :-)
Title: Re: Platform engine demo
Post by: nodtveidt on December 20, 2010, 11:14:24 AM
The real game is a CDROM. I just built this as a ROM because it's not yet dependent on data overlays.
Title: Re: Platform engine demo
Post by: nodtveidt on December 23, 2010, 10:11:47 AM
Nooo, the PC Engine NEEDS a proper clone of Rastan. Change the main dude to a shirtless barbarian and call it Natsar. Job done :)
I could clone it shittily! Im good at crappy clones :)
I could probably clone it properly! :P But I think I have enough projects already... Tatsujin is still waiting for PCE Aliens! :D
Title: Re: Platform engine demo
Post by: nodtveidt on December 24, 2010, 05:19:02 AM
OK, another new shot of the work in progress...
(http://www.nodtveidt.net/monolith35.html)
The HUD was started. Yep. Pretty basic for now, but it'll get there.
Title: Re: Platform engine demo
Post by: Vecanti on December 24, 2010, 05:31:33 AM
Download? :pray:
Title: Re: Platform engine demo
Post by: nodtveidt on December 24, 2010, 05:42:17 AM
Download soon... probably later today once I've finished the statistics system and implemented the rest of the coldet. :)
Title: Re: Platform engine demo
Post by: Vecanti on December 24, 2010, 07:01:32 AM
Awesome! Bit of an early Christmas present.
Title: Re: Platform engine demo
Post by: nodtveidt on December 24, 2010, 01:16:10 PM
Running a bit late :) but still working on it. I really wanted to have a playable demo of Jungle Bros prepped for tomorrow, but ran into some technical issues that can only be resolved by our tile artist, who is current MIA. :(
Title: Re: Platform engine demo
Post by: ParanoiaDragon on December 24, 2010, 03:41:33 PM
And my song for the level isn't ready yet either, we'd have to use something similar in it's place as a substitute(in regards to JB).
Title: Re: Platform engine demo
Post by: nodtveidt on December 25, 2010, 12:43:42 AM
I'm almost done with the demo game... got all collisions coded in and the stats system is half-done. Just gotta finish it up now... will take a couple of hours to do the rest of the code, and then some time to fill out the test level a bit more. I'll likely release it this evening. :)
Title: Re: Platform engine demo
Post by: Vecanti on December 25, 2010, 02:44:15 AM
I'll plan on some Christmas Day Obeying! :) Merry Christmas guys and don't work too hard. We can always have some boxing day obeying instead!
Title: Re: Platform engine demo
Post by: nodtveidt on December 25, 2010, 05:47:00 AM
The demo is almost done... it's an almost fully playable game at this point, most of the statistics are in place (just missing experience/leveling, but that gets added next), and it even has a boss fight (although it's pitifully easy). There's no magic spells yet though, and the submenu isn't implemented either... those won't be added for this demo release. The release will come with my next posting. :)
Title: Re: Platform engine demo
Post by: nodtveidt on December 25, 2010, 09:57:13 AM
The demo is ready.
http://www.nodtveidt.net/monolith-xmasdemo.7z
Not quite everything I wanted to have done made it in, but it's still good for a few laughs. However, it's actually a playable game at this point... just not a complete game.
Title: Re: Platform engine demo
Post by: Vecanti on December 25, 2010, 10:19:09 AM
Amazing how fast you did this. Got to the boss and he kicked my butt. This is just awesome!
Title: Re: Platform engine demo
Post by: nodtveidt on December 25, 2010, 11:15:57 AM
The shadow boss is pretty easy to beat... all he does is follow you, he never attacks (although he actually has attack frames... he never uses them). You take a swing at him, hop on a rope, and jump over his head... rinse and repeat. :D
Title: Re: Platform engine demo
Post by: nodtveidt on December 26, 2010, 06:17:59 PM
A lot of subtle little details are being added here and there...
(http://www.nodtveidt.net/monolith45a.html)
Title: Re: Platform engine demo
Post by: nodtveidt on December 27, 2010, 07:39:09 PM
Just a quick little update... the game engine now supports "door warps"... going through doors to end up in a different part of the map. It also now supports basic dynamic parallax. As a side-effect of door warps, it now also supports enemy respawning a la Exile II. I'm going to release a supplemental build of the ISO soon that shows off these new features if anyone is interested.
Title: Re: Platform engine demo
Post by: nodtveidt on December 27, 2010, 08:27:38 PM
Try this out. It's a replacement for track02.iso so use it with the xmas demo release. CLICKY (http://www.nodtveidt.net/monolith-dec28.7z)
Title: Re: Platform engine demo
Post by: Vecanti on December 28, 2010, 02:21:06 AM
Will try when I get home from work!
Title: Re: Platform engine demo
Post by: nodtveidt on December 28, 2010, 05:43:55 AM
Our server is having DNS issues at the moment so if it doesn't work, just try again later on.
Title: Re: Platform engine demo
Post by: TheOldMan on December 28, 2010, 05:06:01 PM
I musta snagged it before then :-)
Very Nice! Like the earth showing behind the walls, but there's only one good place to see it. Tricky jumps aren't my thing, but the controls were very responsive, even after adding all the extras over the last few days. Really impressed by the transparent HUD, especially scores. Some day I'll have to figure out how to do it :-)
My Complaints? Need to be able to change sides while climbing rope, and the ladder animation needs a back view. I know, it's a demo - just keep it in mind :-)
Good Work!
Title: Re: Platform engine demo
Post by: nodtveidt on December 28, 2010, 07:58:31 PM
The rope thing is a result of no X correction, and the ladder animation is a result of my first artist at the time not drawing the frames. :) The X correction is low on the priority list but it's in the plan, and Keranu is now drawing the sprites so it will be added. I have an even more recent version of the game built here:
http://www.nodtveidt.net/monolith-dec29.7z
It has a total of three rooms (four doors now total) with some serious timing corrections, plus new samples added and more exposure of the moon. :)
Title: Re: Platform engine demo
Post by: nodtveidt on January 03, 2011, 08:54:02 PM
OK... back from vacation. :D Getting some more work done on this. New shots to reveal. :D
(http://www.nodtveidt.net/monolith49.html) Area names are now working, a la Exile II. This particular area, as stated before, is not going to be in the final game so I can call it whatever the hell I want to. This name just kinda popped into my head. Dunno why. I guess it means something still works upstairs. :P
(http://www.nodtveidt.net/monolith56.html) This is the start of the submenu. As you can see, there is no "armor", "shields", or "headwear" in this game... instead, you have Bracer and Ring. Bracer is similar to Armor, and Ring is similar to something like Relic in FF6, or like the Rings in Ys Book I. Magic selects which spell you're currently using, and Item allows you to... use an item. :D I guess I don't have to explain Exit. :D At the bottom of the submenu is the statistics. Most should be easy to figure out. :) STR = Strength, DEF = Defense, M.A = Magic Attack, M.D = Magic Defense, W.P = Weapon Power, A.C = Armor Class, MLH = Moolah, the game's currency.
(http://www.nodtveidt.net/monolith54.html) New title screen. :D
Title: Re: Platform engine demo
Post by: nodtveidt on January 05, 2011, 12:15:23 PM
Quote from: Keranu
Nod needs to post the Monolith update on PCEFX so people can worship my ego
OK. :D
http://www.nodtveidt.net/monolith-jan5thupdate.7z
This has a ton of changes from the last public release, most notably Keranu's new character sprite, some tweaks to enemy damage, the start of the subscreen, and some new sound effects.
Title: Re: Platform engine demo
Post by: Vecanti on January 08, 2011, 03:36:18 AM
Finally got a chance to play the latest version last night. It's looking great. I still can't believe how fast it's come along. Great work.
Oh, yeah I was going to ask about the rooms with the red/black stripe, is that some sort of copper effect? It's scrolling at a different speed is why I was asking. Very cool effect.
Title: Re: Platform engine demo
Post by: nodtveidt on January 08, 2011, 03:45:45 AM
There's even more changes in the most recent build... Keranu's sprite set is now complete and includes the ladder-climb animation as well as a death sequence. Also, the platform collision code is going to be upgraded with a new technique that will not only allow slopes to be constructed, but virtually any kind of dips or cracks in the floor, including curves. Using this technique, it will be possible to create floors similar to those found in games like Sonic The Hedgehog... rounded hills will be a piece of cake to create. I'll be starting the code for this today and if all goes as planned, I'll bring out another demo after it's implemented. I don't want to go too crazy with the demos but this has been one hell of an educational production thus far and once the game is complete, I'll be releasing the source code to the game engine so other people can utilize it to make their own platformers. :)
Title: Re: Platform engine demo
Post by: ParanoiaDragon on January 08, 2011, 02:05:32 PM
Finally got a chance to play the latest version last night. It's looking great. I still can't believe how fast it's come along. Great work.
Oh, yeah I was going to ask about the rooms with the red/black stripe, is that some sort of copper effect? It's scrolling at a different speed is why I was asking. Very cool effect.
I believe Nod missed yer question, so, I will answer it! IIRC, that is an example of some dynamic paralax. It's not that copper effect, as if I understand, that effect(used frequently on Amiga) is vertical, while this is horizontal. Can this paralax go both horizontal & vertical? I don't know. Ultimately, if you want a real explanation, you'll have to wait for Nod/Old Rover to get back up in here! :D
Title: Re: Platform engine demo
Post by: Vecanti on January 08, 2011, 02:45:40 PM
I believe Nod missed yer question, so, I will answer it! IIRC, that is an example of some dynamic paralax. It's not that copper effect, as if I understand, that effect(used frequently on Amiga) is vertical, while this is horizontal. Can this paralax go both horizontal & vertical? I don't know. Ultimately, if you want a real explanation, you'll have to wait for Nod/Old Rover to get back up in here! :D
Yeah, I add the question a little late. But yeah, as an old Amiga user you're right, the copper goes the other way, but looks similar so wasn't sure. Should be interesting to find out how they do it as it seems like 2 layers.
Title: Re: Platform engine demo
Post by: nodtveidt on January 08, 2011, 03:37:06 PM
What you're seeing is dynamic tile parallax. A lot of PCE games use it. Dracula X, for example... in MANY places, but most notably in the first part of Stage 6... those blue bricks in the background that move slower than the rest of the level... dynamic tiles. And it's easy for games like that which rarely scroll on both axes... when you deal with dual scrolling, it's a whole new ball game... required memory for two-dimensional dynamic parallax will be no less than 3x that of one-dimensional dynamic parallax... and that's to say nothing if you have a complex design which requires an entire tile scroll... that equates to 8x the memory required. And if you have such a complex pattern, you're already going to be using 8 unique tiles for horizontal alone... you then need 7 more variant sets of 8 tiles each. That's 64 unique tiles... and that's only for *one* repeating pattern... imagine if you have several independent scrolling tiles (like Dracula X does). Now, each of these dynamic tiles tile consumes 1KB of RAM. However, in a game like this one, tiles are represented as *metatiles*, which means that everything has now expanded to 4x the usage. Again, this is also dependent on the complexity of your tiles. In my demo, only four tiles are required to pull off the parallax, and since it's a solid up-down pattern, it could go vertical without even noticing that there's no actual vertical parallax.
Another thing Dracula X does, which is also seen in quite a few other games (like Air Zonk) is h-int parallax. Basically, what you're doing here is redrawing parts of the screen based on the position of the raster. That's how you get games with serious full-line parallax. Air Zonk nailed this one *hard*, as did Shadow Of The Beast. My platformer currently doesn't show off this technique, but it will later on. Of course, some games combine both techniques in the same display, and then you can also mix sprites into the display to give the illusion of "true" parallax by creating "uneven" scrolls.
So yeah, anyways... you do dynamic tile parallax when you want to create areas where the background is simple but you need a complex foreground arrangement, and you use h-ints for when your foreground is simpler but you need complex backgrounds with full-line parallax scrolling.
Title: Re: Platform engine demo
Post by: spenoza on January 09, 2011, 04:35:10 AM
Well, this is coming along quite nicely, now. Jumping still feels just a little bit fiddly, like the physics of it still need a little tweaking, but definitely improved. The character also still seems a little fast. Perhaps a slower character with a double-tap to run function would be easier to manipulate. I like what you've done with the background work, and though the level design seems interesting but sparse, I'm sure that'll change as the level becomes populated with more enemies and stuff.
Title: Re: Platform engine demo
Post by: ParanoiaDragon on January 09, 2011, 06:02:38 AM
That level's not going to even be in the game, it's just a demo level to base everything on.
As for dynamic paralax, it doesn't bother me when a level have verticality in it, but no vertical paralax, just horizontal, & I believe that's totally doable IIRC. I've seen plenty of games do it, even on the Gen & SNES, let alone the Turbo, so I hope we can do some more complex looking bg tiles in this in an area that has vertical scrolling, & not worry about the vertical paralax. Just leave the bg where it's at(solid, so it scrolls at the same speed as the rest of the tiles), or maybe make it static like the moon.
Title: Re: Platform engine demo
Post by: Vecanti on January 09, 2011, 07:00:48 AM
I've seen plenty of games do it, even on the Gen & SNES, let alone the Turbo, so I hope we can do some more complex looking bg tiles in this in an area that has vertical scrolling, & not worry about the vertical paralax.
Do you mean something like this?
The far background only moves horizontally and when the guy climbs down ladders it doesn't move vertically at all.
Or are you meaning something more like first 10 seconds of this?
Where neither of the backgrounds move vertically, but have parallax when going horizontally.
I was just playing Gradius II and level2 does the second one just fine.
Title: Re: Platform engine demo
Post by: awack on January 09, 2011, 10:06:35 AM
Yeah, they're two levels in gradius II that use horizontal and virtical scrolling dynamic tiles.
Title: Re: Platform engine demo
Post by: nodtveidt on January 09, 2011, 10:51:35 AM
The current demo level has reached the end of its usefulness. I'm going to be preparing a new demo level, which will be an outside area, with the new slope functionality as well as passable platforms and probably some h-int parallax.
The movement speed is probably going to stay the way it is. If there's one thing I can't stand, it's games like this that move way too slow and feel like you're controlling a lethargic tortoise ass. JB originally moved at this speed but it was a bit too fast for that game so we slowed it down a bit. However, the movement speed is not the reason for the spotty jumping... that's the result of the hitbox being too small. I will increase the size of the hitbox on his feet by 1 unit in each direction, which will give more solid control on edges.
Well anyways, here's the final test build of the Aroso map. The bookcases are big black boxes in this build for some reason but I'm not concerned with that as this is the final build using this test map. It was compiled the other day so it doesn't have any changes to the collision just yet. It does, however, have Keranu's additional sprites.
http://www.nodtveidt.net/monolith-arosofinal.7z
Title: Re: Platform engine demo
Post by: ParanoiaDragon on January 09, 2011, 11:36:20 AM
I've seen plenty of games do it, even on the Gen & SNES, let alone the Turbo, so I hope we can do some more complex looking bg tiles in this in an area that has vertical scrolling, & not worry about the vertical paralax.
Do you mean something like this? http://www.youtube.com/watch?v=KHU2guYH7Og&feature=player_detailpage#t=68s
The far background only moves horizontally and when the guy climbs down ladders it doesn't move vertically at all.
Or are you meaning something more like first 10 seconds of this? http://www.youtube.com/watch?v=KHU2guYH7Og&feature=player_detailpage#t=253s
Where neither of the backgrounds move vertically, but have parallax when going horizontally.
I was just playing Gradius II and level2 does the second one just fine.
I'm confused, are those both the same links? I didn't see a difference in either's scrolling, seemed like both vertically did the same thing, with them both being in the same level. :-s I think from a technical standpoint Shadow of the Beast's vertical scrolling for the bg (or lack thereof) makes it static(which I believe is still dynamic paralax) which is easier then to have it scroll. But having a bg that would scroll along with the rest of the level(at the same speed) making it solid vertically I would figure would be eaier yet. Offhand I don't remember what games I've seen do this for SNES & Gen, but I do recall finding some, even though both can technically do vertical with no problem(atleast in regards to having atleast a 2nd bg layer if not more).
If I recall, the Gen version of Valis 3's tower level, actually have the reverse of sorts. When you move horizontally, the bg is solid, but horizontally it uses regular paralax(as opposed to static). Other then that, I can't think of any examples at the moment.
Title: Re: Platform engine demo
Post by: Vecanti on January 09, 2011, 02:45:24 PM
I'm confused, are those both the same links? I didn't see a difference in either's scrolling, seemed like both vertically did the same thing, with them both being in the same level. :-s
Yeah, same video but different times. On the first link I was wanting to show the vertical scrolling where the farthest away background doesn't actually move (vertically). The second was I was just meaning the first ten seconds.
On level5 in Aero blaster there are 2 layers with horizontal and vertical parallax at the same time.
level6 has this part that is interesting, looks a little like Air Zonk, but the layers are moving vertically and horizontally in parallax to each other.
Title: Re: Platform engine demo
Post by: ParanoiaDragon on January 09, 2011, 08:18:58 PM
Yeah they did some neat stuff with Aeroblasters, that Stage 6 part might be considered h-int(horizontal interupt), like you said, in Air Zonk, though, this seems to overlap slightly, so, I'm not 100% sure.
Title: Re: Platform engine demo
Post by: ccovell on January 09, 2011, 11:50:23 PM
I think from a technical standpoint Shadow of the Beast's vertical scrolling for the bg (or lack thereof) makes it static(which I believe is still dynamic paralax) which is easier then to have it scroll. But having a bg that would scroll along with the rest of the level(at the same speed) making it solid vertically I would figure would be eaier yet.
The clip from SotB does have both horizontal and vertical parallax, in that the two backgrounds are scrolling in relation to each other. The only thing that fooled you is that the far background has a vertical scroll speed of 0 yet the near background has a nonzero scroll speed. It has no relationship at all to "dynamic" tiles (or "static" ones or whatnot.) The Amiga can manage 2 scrolling background planes just fine.
Oh, and stages 5 and 6 on Aeroblasters has H-int parallax scrolling no different than stage 1 or 2, etc. The bars that scroll up the screen are still solid strips of horizontal BG tile layer, and can't be seen through at any point, like they could on a system that has two true BG layers (MD, SGX, SFC, Amiga.)
Title: Re: Platform engine demo
Post by: ParanoiaDragon on January 10, 2011, 01:29:49 PM
Wow, then yeah I guess vertically it's going reaaaaaallly slow rather then static, like the moon in Monolith.
As for Aeroblasters, yeah I forgot about that solid bar......not that I still 100% understand paralax, but I know stuff on the Turbo usually has to be straightedged for it to overlap if using tiles, & if curves are needed, you add some sprites on those straightedges.
Title: Re: Platform engine demo
Post by: Vecanti on January 10, 2011, 04:22:06 PM
Oh, and stages 5 and 6 on Aeroblasters has H-int parallax scrolling no different than stage 1 or 2, etc. The bars that scroll up the screen are still solid strips of horizontal BG tile layer, and can't be seen through at any point, like they could on a system that has two true BG layers (MD, SGX, SFC, Amiga.)
Ah! Ok, I think I got it now. I thought the BG tile layers couldn't overlap. I knew you couldn't see through them. Making sense. Thanks guys.
Title: Re: Platform engine demo
Post by: mrhaboobi on February 13, 2011, 01:11:35 PM
now what id love is something that documents teh concepts and says what algorithms are used and why, essentially the dummies guide to 2d platform games for newbies.. Seeing nicely documented source may be a great start :).. ive been tinkering on PSX dev in C, and this "knowledge" would be helpful on that platform aswell :)
Title: Re: Platform engine demo
Post by: Black Tiger on February 13, 2011, 01:27:31 PM
Oh, and stages 5 and 6 on Aeroblasters has H-int parallax scrolling no different than stage 1 or 2, etc. The bars that scroll up the screen are still solid strips of horizontal BG tile layer, and can't be seen through at any point, like they could on a system that has two true BG layers (MD, SGX, SFC, Amiga.)
Ah! Ok, I think I got it now. I thought the BG tile layers couldn't overlap. I knew you couldn't see through them. Making sense. Thanks guys.
I believe that full horizontal sections can push up or down over the rest, but not vertical ones going left or right. The KO bar in SFII' is a famous use of that.
Title: Re: Platform engine demo
Post by: nodtveidt on March 06, 2011, 06:09:58 PM
It's been awhile since I posted anything about this game, since MSR has been in the forefront for some time now. But anyways...
I've decided to change from doing it dual-presentation style to just sticking with side-scrolling, similar to Cadash. The main reason for this is that honestly... I actually prefer it that way. :) This also means that there will be less code involved, and also, fewer graphics requirements, meaning that both the environments and the characters in them can be more detailed.
The hired musician for this production has been doing a kickass job on the soundtrack. I will likely do some youtube videos featuring her work not long after MSR is finished. We're still aiming for a Summer 2011 release, but it's still too early to tell.
Title: Re: Platform engine demo
Post by: henrycsc on April 08, 2011, 03:02:57 PM
Bravo Rover! Can't Wait!
Title: Re: Platform engine demo
Post by: nodtveidt on April 09, 2011, 05:50:44 AM
Shiny new youtube video:
and the build used to make it:
http://www.nodtveidt.net/monorisu.7z
Title: Re: Platform engine demo
Post by: ParanoiaDragon on April 09, 2011, 03:54:34 PM
Lookin' nice! Music is sounding nice as well! And for anyone wondering, no, I didn't do the music. I don't have time to be involved in Epona, mainly cuz Epona is a professional company with deadlines, whereas, Frozen Utopia is more of a hobby company. So, atleast for now, I won't be offering to do music on the Epona label. But, I'm jealous of the quality of the musician Nod got!
Title: Re: Platform engine demo
Post by: esteban on April 09, 2011, 08:15:32 PM
Title: Re: Platform engine demo
Post by: sunteam_paul on April 09, 2011, 09:02:38 PM
Looks very promising. I'm eager to see the final game now.
Title: Re: Platform engine demo
Post by: spenoza on April 10, 2011, 08:07:11 PM
I still think the dude moves too quickly and the jumping is a little twitchy. Graphically, however, it looks quite impressive.
Title: Re: Platform engine demo
Post by: _joshuaTurbo on April 11, 2011, 04:51:08 AM
I really like the inclusion of climbing ropes and using that as a strategy on the boss! Great stuff! Kind of like a mix of Super Mario Bros. 2 and Downland for the Tandy CoCo.
Really looking forward to this!
Title: Re: Platform engine demo
Post by: shubibiman on April 11, 2011, 09:11:44 PM