Sign in to follow this  
Followers 0

Midgard Development Thread

Work on EDF 3.0, or "3DF" for short, is currently proceeding on the edf3-branch of the SVN repo.

Goals for this development branch include the following:

  • Complete runtime dynamic additive logic for all EDF definitions (complete)
  • Inventory (in progress)
  • Weapons
  • Lockdefs
Completion of this branch is a prerequisite to the following projects, which will begin afterward, in rough order (Heretic support may be complete before UDMF is fully implemented):
  • UDMF support
  • 100% Heretic Support
  • 100% Hexen Support
  • 100% Strife Support

Share this post


Link to post

Awesome! By Thor!

- What does "Complete runtime dynamic additive logic for all EDF definitions" involve for the mod author? What tricks can be done now?

- Lockdefs means that I can add all-new keys, also known as "quest items", in arbitrary numbers?

- 100% Hexen and 100% Strife support: I can now use all those codepointers in any game, just like it has been possible with Heretic's?

Share this post


Link to post
printz said:

Awesome! By Thor!

- What does "Complete runtime dynamic additive logic for all EDF definitions" involve for the mod author? What tricks can be done now?

- Lockdefs means that I can add all-new keys, also known as "quest items", in arbitrary numbers?

- 100% Hexen and 100% Strife support: I can now use all those codepointers in any game, just like it has been possible with Heretic's?

  1. Nothing, for modders. It just means that if you load EDFs at runtime via the addfile command, or via a wad loading menu, the EDFs inside them will work as well as is possible, minus any conflicts between mods. thingtype, castinfo, bosstypes, etc. will now be recognized in runtime-additive EDF instead of being ignored as they were after the changes made in EDF 2.0 (before then, they would cause errors). This change was especially needed for EECS branch, although Ladna cannot merge it in until after it merges back to trunk...
  2. LOCKDEFS just like in ZDoom. This is one reason inventory is a prereq to UDMF. Proper support for locked door types requires proper means of defining locks, which requires keys that are properly folded into the inventory system, or otherwise I will just end up rewriting the way keys/locks are handled 3 times.
  3. Not until I declare Hexen and Strife support finalized ;) That stuff is happening *after* edf3-branch is finished. Inventory and weapons are the main two things that have been holding back support for all the other idTech 1 games in EE.

Share this post


Link to post

Monster bump to update the thread with news that work is about to resume on the new inventory-branch, which, unlike the already back-merged edf3-branch, will be kept focused solely on the task at hand so that trunk doesn't get out of date missing major architectural advances in the branch.

Once inventory and weapons are functional, I intend to focus exclusively on finishing Heretic support until it is at 100%.

Share this post


Link to post

Bump to post about the recent addition of proper aspect ratio for screen patches while running in widescreen video modes.

You can find a series of screenshots here:
http://eternity.mancubus.net/pics/widescreen

The final behavior (you can see several different stages of development amongst the screenshots) is to draw the screen border to fill in the "wings" of the status bar. During game states other than in-level, pillar boxing is performed by drawing black rects in the unfilled areas.

Share this post


Link to post

Development update:

DavidPH's acs-branch has been recently merged back into trunk, bringing with it greatly expanded support for ACS, including the ability to load bytecode in ACSE and ACSe formats, support for libraries, A_START/A_END and LOADACS support, and a large number of ZDoom built-in function and opcode extensions.

Work is currently progressing on js-branch to integrate with SpiderMonkey 1.8.0, to provide support through JavaScript for the "Aeon API" (we are considering embedding Python as well, and a large amount of work was done toward that end earlier by Kate).

Share this post


Link to post

Is there a documentation on what one can do with ACS now?

Share this post


Link to post
printz said:

Is there a documentation on what one can do with ACS now?

Yes, it's called the ZDoom wiki ;)

Share this post


Link to post

Is everything ACS from the ZDoom wiki applicable here?

Share this post


Link to post
printz said:

Is everything ACS from the ZDoom wiki applicable here?

No.

Share this post


Link to post

How do we load ACS scripts into the map? The same way as so far, as already documented in the wiki -- by going into EMAPINFO ?

Share this post


Link to post

You can also use libraries. The virtual machine itself can do pretty much everything ZDoom's ACS VM can do.

Share this post


Link to post
Gez said:

You can also use libraries. The virtual machine itself can do pretty much everything ZDoom's ACS VM can do.

Yeah. The deficiencies are in, of course, internal functions that access features EE simply does not have/implement (possibly "yet" in quite a few cases), and in Hexen-style linespecials, which aren't getting implemented til the upcoming UDMF branch :P

Share this post


Link to post
Quasar said:

including the ability to load bytecode in ACSE and ACSe formats,

ACS Eternity or ACS extended?

support for libraries,

Libraries? How use them?

Share this post


Link to post
printz said:

ACS Eternity or ACS extended?

ACS enhanced and ACS (little) enhanced. Both are Randy's creations.

This contains more info.

printz said:

Libraries? How use them?

As in ZDoom. The VM was designed by DavidPH to meet the ZDoom specs. That also means that Eternity will support named scripts, too.

schwerpunk said:

Correct me if I'm wrong, but isn't the simplest example of a library the "#include zcommon.acs" ?

Nah, the #including of stuff isn't a library. It'll just create code that'll end up in the map scripts. Libraries operate in a different space. That's why you have to put the #library instruction in it, and why you'll use #import instead of #include to use the library. Also why there is a difference between #define and #libdefine.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0