Jump to content

Photo

Zalttp?


  • Please log in to reply
5 replies to this topic

#1 peteandwally

peteandwally

    chiubicabachiukicaca

  • Members

Posted 25 October 2020 - 10:43 AM

Not sure if this is the correct subforum or not, sorry mods.

 

What would it take to build a 'LoZ: a link to the past' game engine similar to ZC?

 

The only major feature that I'd want to build in is multi-screen zones. Things like graphics and sound can stay as they are. Is the multiscreen capability largely an allegro limitation? Could there be a newer library that we could use and retain the same data structures from previous zc files?

 

Perhaps it'd be better to start from complete scratch? Is there already something like what I'm describing out there?

 

So many questions.. what do y'all think?

 

~PnW



#2 Saffith

Saffith

    IPv7 user

  • ZC Developers

Posted 25 October 2020 - 11:20 AM

If I'm not mistaken, Solarus was originally Open Zelda, which was more or less exactly that. It's certainly geared toward such games, and there's a LttP resource pack available. I don't know what it's like to use, though; it may require some degree of scripting.

 

In theory, there's no reason ZC couldn't be extended to have scrolling areas, with or without Allegro. It's just that there's a ton of code that would need updated. The current behavior is hard-coded pretty much everywhere.


  • Anthus likes this

#3 peteandwally

peteandwally

    chiubicabachiukicaca

  • Members

Posted 25 October 2020 - 12:14 PM

The current behavior is hard-coded pretty much everywhere.

 

So, it's a matter of time, which is pretty significant for anyone with work/school to manage.



#4 Emily

Emily

    Scripter / Dev

  • ZC Developers

Posted 25 October 2020 - 03:19 PM

So, it's a matter of time, which is pretty significant for anyone with work/school to manage.

Yes. It will be quite a while before multi-screen zones (Z3 Scrolling) is available in-engine. It won't be happening until such a time as we are... frankly, rewriting the engine from the ground up.

To do that in ZC with scripting, on the other hand, is possible; albeit, extremely difficult. A few people have done it to date.


  • Bagu likes this

#5 Timelord

Timelord

    The Timelord

  • Banned
  • Location:Prydon Academy

Posted 26 October 2020 - 05:06 AM

To a certain extent, I have made scrolling games, but they have distinct limitations that would not be suitable for a Z3 clone. 

 

https://github.com/Z...RPG/ScrollingZC

 

I designed this for a Dragon Quest type of game. 

 

As for Solarus, it is not all that easy to use. Everything requires Lua scripting, but it's solid enough. Chistopho is a good man, and you should certainly look at his software. 

 

As for the ZC engine, this is not a total rewrite, but it is a major refactor and not happening anytime soon. It is not an Allegro issue--Allegro  can support it--but too many things depend on fixed screen dimensions and I would not be sure where to begin o add larger screen sizes in an effective manner. I saw where this was started and planned for a uture version, but outside of making some screen vars such as height and width, nothing else exists to make it functional. 

 

In general, ZC is designed to emulate 8b games, and does not have scrolling HW simulation built in a this time. There is a general behind the scenes plan to merge ZC and Solarus for ZC v4, with an intermediate layer that runs the appropriate engine based on whether the quest is made for 3.x or earlier, or 4.x or later; and of course to make Solarus easier t use, bu that is a long way off. The general plan of this is outlined in severa documents distributed with ZC, filename __future_logic_diagram.txt.

Premise:
Allegro 5 is the main lib.
All Allegro 4 stuff is handled by Allegro Legacy, linked to AG5
CLassic Quests play in a background running process of ZC 3.xx (Legacy Environment)
on top of ZC4 (New Environment).
 
New quests run entirely on new environment.
 
No emulation is needed, nor do new quests need to maintain compatibility with
legacy quests, as the old software runs invisible over the new, with input and video
output being translated.
 
All old quests run in this 'Blue Box' module, running on top of 'Yellow Box', invisibly to the user. 
 
 
INPUT     VIDEO bitmap +-----------------> Display
-----     ------------------------
V         ^  Modern Audio Output +-------> System Audio Devices
V         ^ +---------+-----------      
V         ^ |         ^ 
V         ^ ^
V         ^ ^
+---------+-+<<<<<<<<<+-------------------------------
|           |         | Legacy Audio and RAM Bitmaps |
|  Allegro  |         ------+-------------------------
|     5     |               ^
|  Library  |       --------+---------      -------------
|           +<<<----+ Allegro Legacy +->**<-+ ALLEGRO 4 | * Linked via AL
|           |       ---------+---+----      -------------
-------------                |   ^
      ^                      |   ^
      |                      |   ^
      |                      |   |-----------------
      ^   Blue/Yellow Layer  |---+   RAM Bitmaps  |
      |   --------->>>>>>+   |   | Old Quest Data | 
      |   | Read Into*   V   |   ------------------
------+---+----      ----+---+---------
|  ZC Rerwite |      |  Zelda Classic |
|   Engine    |      |    ZQuest      |
|  Yellow Box |      |    Blue Box    |
------+----+---      ----+---+---------
      ^    ^  Read Into* V   ^
      ^    ^<<<<<<<<-----+   ^
-------------                ^    
|  New Type |              ^ 
-------------                ^
      ^                      ^
------+--------        ------+-----------
|  Quest Type |=====>>>+ OLD QUEST TYPE | 
---------------        ------------------   
  
*Old quest read into ZC4, loads classic ZC3 engine in the baqckground.
This background layer pipes new input in

  • peteandwally and Bagu like this

#6 peteandwally

peteandwally

    chiubicabachiukicaca

  • Members

Posted 26 October 2020 - 09:15 AM

Thank you, that makes a ton of sense and it's good to know that there are some plans. Making zelda games is something I have wanted to do since 1989 as soon as I played the first one as a kid. If I ever take a sabbatical or something, I'd like to work on something like this about once or twice a week. That's the dream at least. Perhaps when my kids get old enough, I will teach them to code and we will help the cause together.


  • Bagu likes this


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users