Jump to content

Photo

Z3 Scrolling?


  • Please log in to reply
21 replies to this topic

#16 Timelord

Timelord

    The Timelord

  • Banned
  • Location:Prydon Academy

Posted 14 January 2017 - 10:03 AM

I messed with Z3 scrolling one afternoon many moons ago when I was contemplating a Smash TV'ish quest. Proof of concept; https://www.youtube....h?v=hL7BBtLcVFY

The verdict:
-Rooms have to be small (2x2) unless you script the enemies.
-Scrolling screens are probably best reserved for boss fights, or areas with no enemies.
-You have to script a lot of boilerplate for basic things ZC already does for you.
-Kind of a pain to do (and use).

Enemy list, and ffcs pulled from the upper-left quadrant? This is whatI suspect.

 

You can spawn real npcs, using combo flags; but until I finish Link's hitbox and draw positioning--if that ever happens--Link and npc interaction is a huge pain.

 

In my case, the combos on screens were drawn as normal. Flags could also be drawn but things like screen secrets would be a pain to make work (and would not be able to be set up like normal, as far as I know); likewise with enemies, there isn't a way to read the exact enemies on a screen without being on it.
All of this is assuming that the engine is in ZC 2.5.2 (or 2.5.1, or 2.5.0); I'ven't a clue if anything I've mentioned here has been made easier or harder in the most recent version(s?).

 

No real changes yet, in line with this. I'd like to add GetScreenNPCs() at some point. That, and the aforementioned Link hitbox, and draw position variables.

 

It occurs to me that this one basic addition might make scrolling engines magnitudes easier to create, as you can then move Link's hitbox and sprite separately from his true x/y, and utilise engine collisions.

 

The more that we can get working that allows remotely reading screen values, the easier this sort of thing becomes without needing to reinvent...everything.


Edited by ZoriaRPG, 14 January 2017 - 10:12 AM.


#17 peteandwally

peteandwally

    chiubicabachiukicaca

  • Members

Posted 16 January 2017 - 09:28 PM

Is there a way to read a quest file into a different build of zelda classic altogether? Is that the question? Or are you re-doing ZC as well?



#18 strike

strike

    life is fragile, temporary, and precious

  • Members
  • Real Name:Olórin

Posted 17 January 2017 - 11:30 AM

I mean I think Z3 scrolling could possibly be done without building literally everything from the ground up. It would just have to be done in a tricky manner. I'm thinking about using layers to make it look like it's scrolling when the engine is really for the most part the same.

-Strike

#19 Timelord

Timelord

    The Timelord

  • Banned
  • Location:Prydon Academy

Posted 17 January 2017 - 03:45 PM

I mean I think Z3 scrolling could possibly be done without building literally everything from the ground up. It would just have to be done in a tricky manner. I'm thinking about using layers to make it look like it's scrolling when the engine is really for the most part the same.

-Strike

 

Look, if any of you want to try using some of this new stuff, to build this kind of engine as a proof of concept utilising the new commands, I can prioritise some of them. I added reading NPC lists, doors, and some other things, from anywhere in the game world.

 

The way I see things, the biggest roadblock for making a scrolling engine, is that various values that are screen-based are not readable in 2.50. This, and the inability to move Link's hitbox and draw position. Once those things are resolved, and some minor support functions are implemented, you could far more easily run a game from a single screen, and rely on internal collision.

 

You would still need to manually control hitbox movement, but that is far simpler when you can control all of them. Reading ffcs remotely should also be possible, although I'm not sure if I like the idea of it.

 

In the latest build, as an example of how useful this stuff is, consider this: With the additional instruction Game->GetScreenEnemy(map, screen, index), an enemy placement (0 to 9) flag, and the new 'Spawn NPC' flag, you can, by script, scan the screen flags, find an instance of an enemy position (0 to 9) flag, and if it has a spawn flag on it too, read the list for that screen, stop on the index that matches the placement combo, and spawn the npc.

 

Then, move the draw position and hit position of that npc, to control its movement with scrolling. it could still move normally, but you use the offsets to control it, and you can even have it 'move off-screen'. The same applies to drops, as you can spawn them anywhere, and control the hit and draw offsets; and to weapons.

 

I would mostly worry about Link class weapon offsets, not matching the planned draw and hit offsets for Link. Implementing this sort of thing is a true pain.

 

 

I can confirm; it is far from complete, however, and I haven't worked on it in awhile. Also, if I do end up working on it again I'll probably end up reworking a lot of the existing code, so it's not very reliable to use.

 

You should drop by in chat, and discuss this thing with me. I think I can give you some special tools / builds, to make what you want to do far, far easier, and if those prove workable, and stable, ensure that there is a way for the average questmaker to do this in the future.

 

There is no way that I would have the time to make a scrolling game template, and work on all of the other things that I'm doing. I might play with the Ys engine, and try to adapt it to make use of some of this, but I pretty much tossed my own scrolling engine into the rubbish tip, because I grew tired of trying to code all sorts of faked collision, without being able to access typed arrays from a global scope.

 

Now that you can pass those by reference globally, handling even that might be easier.


  • Anthus likes this

#20 SUCCESSOR

SUCCESSOR

    Apprentice

  • Banned
  • Real Name:TJ

Posted 17 January 2017 - 05:10 PM

I mean I think Z3 scrolling could possibly be done without building literally everything from the ground up. It would just have to be done in a tricky manner. I'm thinking about using layers to make it look like it's scrolling when the engine is really for the most part the same.

-Strike


This has been done before. By me and at least one other person. I still think it is the best way to do it but do t get it in your head that it will be easy. There is still a great deal that has to be handled via script that the game can't manage for you. You won't be off the hook handling enemies, weapons, etc. Its still a tall mountain to climb.

#21 Moosh

Moosh

    Tiny Little Questmaker

  • ZC Developers

Posted 22 January 2017 - 08:59 PM

an absolute madman

Oh yeah, I forgot to quote this post when the entries went up, but...absolute madman. That's me. :P



#22 strike

strike

    life is fragile, temporary, and precious

  • Members
  • Real Name:Olórin

Posted 23 January 2017 - 10:49 AM

I have no intention to do it because I don't think it would be easy at all and I'm not really into ZQuest right now. But I really do think it is possible, I've thought about it a good bit. Enemies are the major problem in my mind since they are really one of the only things that often would need to move between screens. I think a universal system could be set up to work for most enemies though. Zelda Classic's dumb secret system and things like that would be a problem but an avoidable one with scripts. I just think Jerry rigging is the way to go with Z3 scrolling, not some from scratch approach. Z3 scrolling is 80% a visual thing. The last 20% is hard but I think doable.

And no I have no intentions of doing this any time soon, I don't feel a need to prove anything. But I do think this challenge is often seen as overly terrible because people don't get creative and work with the tools ZQuest already has, since most people who attempt this in the first place are hard core scripters who aren't very used to going out of their way to abuse ZQuest's initial engine.

-Strike


1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users