Jump to content

EDGE-Classic v1.37 (Updated December 2023)


Lobo

Recommended Posts

Well, at any rate, I just pushed Alt+Enter functionality to the repo. It will remember the last windowed and fullscreen modes that were used (there are defaults set on startup so there should always be a "safe" option). If toggling from fullscreen to windowed mode, the mouse cursor will also be released.

 

As far as the Windows key not working, still haven't encountered that yet unfortunately.

 

 

Edited by dasho

Share this post


Link to post
  • 3 weeks later...

Realized it's been a bit quiet, but we've been working on some neat stuff for the next release, most recently support for MPEG video playback. Movies can be defined via DDF for title sequences or pre/post level cutscenes, or can even be triggered in-game via RTS actions. Observe a demo that adds a lore-accurate cutscene before E1M1.

 

 

Share this post


Link to post
  • 3 weeks later...

Question regarding models in EDGE. I understand correctly that each model must have a corresponding sprite? Or maybe it's not? It seems that in the example demo-MD2.wad there are clearly more model frames used than sprites for any monster from doom.

Share this post


Link to post
40 minutes ago, camper said:

Question regarding models in EDGE. I understand correctly that each model must have a corresponding sprite? Or maybe it's not? It seems that in the example demo-MD2.wad there are clearly more model frames used than sprites for any monster from doom.

 

I am not sure what you mean, but there does not have to be any match between the sprite rotations and number of sprites used in a default monster and the frames used when using a model for that monster instead. 

 

The only graphic file that needs to exist is at least one skin for MD2/MD3 models. Quake MDL and voxels have their 'skins' built into the model.

Share this post


Link to post

I also have a misunderstanding, but this is because different ports use different approaches. I'm currently exploring the vavoom approach. But there are some difficulties there and I decided to see how things are in other ports. In particular in EDGE, as in the first one which used md2 models. Sprites all rotations don't seem to need to be displayed, but state sprites do. And the model frames must be associated with decorate code states. There is a special definition file for this. Therefore sprite files must be present.

Spoiler

play_state\spawn (stand)
play_state\spawn\PLAYA1.png

play_state\see (run)
play_state\see\PLAYA1.png
play_state\see\PLAYB1.png
play_state\see\PLAYC1.png
play_state\see\PLAYD1.png

play_state\missile (attack 1)
play_state\missile\PLAYE1.png

play_state\Melee (attack 2)
play_state\Melee\PLAYF1.png

play_state\Pain (Pain)
play_state\Pain\PLAYG1.png

play_state\Death1 (Death)
play_state\Death1\PLAYH0.png
play_state\Death1\PLAYI0.png
play_state\Death1\PLAYJ0.png
play_state\Death1\PLAYK0.png
play_state\Death1\PLAYL0.png
play_state\Death1\PLAYM0.png
play_state\Death1\PLAYN0.png

play_state\XDeath1 (Explosion Death)
play_state\XDeath1\PLAYO0.png
play_state\XDeath1\PLAYP0.png
play_state\XDeath1\PLAYQ0.png
play_state\XDeath1\PLAYR0.png
play_state\XDeath1\PLAYS0.png
play_state\XDeath1\PLAYT0.png
play_state\XDeath1\PLAYU0.png
play_state\XDeath1\PLAYV0.png
play_state\XDeath1\PLAYW0.png

 

In the EDGE example, everything is very different and it seems that the states are greatly changed and expanded compared to the decorate code. It seems EDGE is more flexible in this matter. In EDGE, is at least one object sprite needed in the form of a graphic file, or can only models be used?

Share this post


Link to post
1 hour ago, camper said:

In the EDGE example, everything is very different and it seems that the states are greatly changed and expanded compared to the decorate code. It seems EDGE is more flexible in this matter. In EDGE, is at least one object sprite needed in the form of a graphic file, or can only models be used?

 

No, there are no sprites needed if you are using a model. The DDFTHING definition for a thing defines all that is needed. An example from the MD2 example WAD you mentioned:

STATES(IDLE)=POSS:@1 :7:NORMAL:LOOKOUT,
             POSS:@5 :7:NORMAL:LOOKOUT,
             POSS:@9 :7:NORMAL:LOOKOUT,
             POSS:@13:7:NORMAL:LOOKOUT,
             POSS:@17:7:NORMAL:LOOKOUT,
             POSS:@21:7:NORMAL:LOOKOUT,
             POSS:@25:7:NORMAL:LOOKOUT,
             POSS:@29:7:NORMAL:LOOKOUT,
             POSS:@33:7:NORMAL:LOOKOUT,
             POSS:@37:7:NORMAL:LOOKOUT;

For a WAD, this means that a lump called POSSMD2, POSSMDL, POSSMD3, or POSSVXL (depending on the type of model) needs to be present, as well as a graphic called POSSSKN#, with # being the skin number, for an MD2 or MD3 model. This snippet tells EDGE that the idle state iterates through frames 1,5,9,13,17,21,25,29,33 and 37, with a duration of 7 tics each.

Edited by dasho

Share this post


Link to post
  • 3 weeks later...

For the ones of EC fans out there, an early Christmas present: EDGE-Classic 1.37 has been released! I'll post a full changelog below, but here are some of the major ones:

 

- Lua is now the default scripting language, with COAL loaded on an as-needed basis for PWADs that still use it. There is a COAL compatibility library so that Lua scripts can be written in a similar fashion to COALHUDs

- MPEG video playback is supported via DDF and RTS

MUSINFO changers will now function within the program, assuming that they use the traditional 14100-14164 range of numbers

- A simple IWAD selection dialog box will appear if multiple valid games are detected but none are specified via parameters

- RTS scripts can now use sector tags or indices as trigger boundaries instead of an actual radius

- (For developers) Support has been added for the Tracy profiling tool

- Option menus will now use grayscaled title images as their backdrop by default in an effort that is shamelessly ripping off Doom Retro

- Default console and option menu fonts have been updated; TrueType font rendering and scaling has been improved across the board

- Reality Adlib Tracker v2 modules are now playable (libVGM has been removed, though)

 

Some screenies:

Spoiler

IWAD Selector:

IWADPicker.PNG.8df8ca6f43fe2929265a1c52e293682a.PNG

 

Grayscale menu backdrops + new default font (Russo One)

shot17.png.0d88eedcf39d4929153e7fa8e0f11e48.png

 

Default font for more fantasy-oriented games (Germania One)

shot18.png.c57665fadce0a5ff200e7a5ffbbd5181.png

 

New console font (Fira Code)

shot19.png.cf15f60525b30d0284c2a29e0e59abf5.png

 

Full changelog:

Spoiler

New Features

------------

- Added support for Lua as the default scripting language

  - Includes a COAL compatibility layer to ease porting

  - Ported DOOM, Heretic, Blasphemer, and Harmony stock scripts to use Lua

  - Script debugging capabilities are included (https://github.com/slembcke/debugger.lua)

  - COAL, for the time being, will still be instantiated if a PWAD or external pack contains a COALHUDS file

- Added support for MPEG video playback

  - Files must use MPEG1 video and MP2 audio for proper decoding

  - New DDF filetype added: DDFMOVIE/MOVIES.DDF

    - MOVIE_DATA = \<LUMP or PACK\>:\<lump or packfile name\>

      - Defines type and location/name of movie file

    - SPECIAL = \<special command list\>

      - MUTE is currently the only special and will suppress audio for the movie

    - SCALING = \<AUTO/NONE/ZOOM/STRETCH\>

      - AUTO: The default option; will fit the movie to the display as much as possible while keeping aspect ratio in mind

      - NONE: Will not adjust the dimensions of the movie at all, even if this causes portions of it to be unviewable

      - ZOOM: Will scale the movie's height to match the height of the display; sides of the movie may be clipped

      - STRETCH: Will match the movie's dimensions to the display without preserving aspect ratio

  - DDFGAME: TITLE_MOVIE=\<movie definition\> command added

    - Movies will always play before any defined TITLE_GRAPHIC entry in the same definition

  - DDFLEVL: PRE.MOVIE=\<movie definition\> and POST.MOVIE=\<movie definition\> commands added

    - Text will always be printed first, followed by movie playback, followed by any defined graphics

      for a DDFLEVL PRE/POST entry

  - RSCRIPT: PLAY_MOVIE \<movie definition\> command added

  - `skip_intros` CVAR added to disable movies that play as part of a title sequence if desired

    - Default is 0 (off)

  - Any playing movie may be skipped by holding a mouse/keyboard/gamepad button for one second

    - A skip progress indicator will be displayed at the bottom of the screen

- Added support for MUSINFO-based music changer things

  - Uses same numbering and methodology as detailed in https://doomwiki.org/wiki/MUSINFO

- Added simple IWAD selection dialog window if multiple valid IWADs are found on startup

  - Previous "best choice" scoring system removed

- RSCRIPT:

  - New sector-based trigger conditions (alternative to using radii)

    - SECTOR_TRIGGER_TAG \<tag\>: Script will trigger once any sector with this tag is entered

    - SECTOR_TRIGGER_INDEX \<index\>: Script will trigger once the sector with this index (as viewable via map editor) is entered

- Added support for Tracy frame profiler (https://github.com/wolfpld/tracy)

  - Added frame metrics for runits, wall/planes, things, and light/glow iterators which can also be displayed with: debug_fps 3

 

General Improvements/Changes

--------------------

- "GMGSx" (Default.sf2) and "microGM" soundfonts removed for licensing/copyright issues

  - "sf_GMbank" soundfont added as the new Default.sf2

  - "16-Bit Game Station" soundfont added as replacement for microGM

- "DMXOPL" instrument bank removed for licensing/copyright issues

  - Replaced with fully free variant from the Freedoom project

- YMFM OPL emulator replaced with Opal from Reality Adlib Tracker

  - RAD-format modules (version 2) are now supported in addition to regular OPL MUS/MIDI/IMF playback

- libVGM removed

  - gzip component of miniz also removed (was only used to decompress VGZ files)

- Alt+Enter will toggle between fullscreen and windowed modes

  - If toggling into windowed mode, the cursor will be released

- Z/R/D/MAPINFO parsing removed in order to focus on better validating UMAPINFO and adherence to its standards

- Updated default console and Options/Load/Save menu fonts

- Improved scaling and sampling quality of TrueType fonts at varying resolutions

- Improved kerning and sizing when drawing console text with TrueType fonts

- Option/Load Game/Save Game menu backgrounds will, by default, be a grayscaled version of the first valid title image

  - DDFSTYLE custom backgrounds for these menus are rendered afterwards to account for tinting or other desired effects

- Removed randomising from IMPACT_OBJECT and EFFECT_OBJECT spawning.

- Doom Builder 2 Configuration files added, courtesy of akaAgar (https://github.com/edge-classic/EDGE-classic/pull/579)

- Formatted EDGE Classic sources to have consistent style and included Clang formatting configuration

- Default Purple and Black splash objects added

- RSCRIPT:

  - START_MAP directive will no longer clear existing scripts for the map in question

  - #CLEAR_MAP \<mapname\> directive added for granular clearing of map scripts

- "Zoom" and "Stretch" choices removed from the "Title/Intermission Scaling" menu option

 

Bugs fixed

----------

- Fixed UMAPINFO entries with no sky defined and past the range of stock levels causing a CTD

- Removed sector fog color check that was causing the HOM debugging texture to appear even with debug_hom set to 0

- Fixed A_CloseShotgun2 frame only playing the DBCLS sound and not calling A_Refire as well

- Fixed custom Dehacked weapons that use the chainsaw attack not playing the SAWFUL sfx when attacking (regardless of hitting a target)

- SKULLFLY attacks that cause zero damage no longer make victim enter painstate

- Fixed Nightmare/Fast Monster state duration reduction for monsters with a value for the 'FAST' parameter

  - Speed in fast mode is now governed by the 'FAST_SPEED' parameter in all cases, instead of using 'FAST' as a multiplier against the base speed

- Fixed calculation of scroller push forces when multiple scrollers affect the same mobj

- Fixed mirror and portal issues with GLES2 renderer

- Fixed most compiler warnings under GCC/Clang

- Fixed custom PLAYPAL/palettes not being applied to the TEXTURE image class

- Fixed the "Reset to Defaults" menu option not properly resetting smoothed or upscaled images

- Fixed IWADs being dragged-and-dropped onto the program executable being treated as PWADs

- Fixed memory leak involving detail slope creation

- Fixed the "Blood Level" gameplay option defaulting to "Extra"

- Fixed inconsistent menu item width when non-default text scaling was used

- Fixed incorrect Boom ANIMATED and SWITCHES lump parsing causing garbage values to be entered into the DDFANIM conversion

- Fixed CHOKE_DAMAGE being applied during extra rendering tics

- Fixed malformed Eureka configuration file

- Fixed "Fill Border" Title/Intermission scaling option not working for all display modes

- Added corrected Blasphemer/Heretic tome and wings graphics to prevent distortion of the spinning "activated" images

 

Grab it HERE

Edited by dasho

Share this post


Link to post

Quick update: I had to fix the CI build scripts because they omitted the Harmony base EPK. You'll want to re-download the release package now that it's been fixed. Or just not play Harmony, but it's a cool game.

Share this post


Link to post

The Web Player has now been updated to version 1.37 as well; you may need to force-reload (Ctrl+Shift+R) or otherwise clear your cache for that page to ensure you have the latest version loaded.

Share this post


Link to post

I wanted to clarify. Does Edge Classic support split-screen mode for multiplayer?
I run the -splitscreen option but nothing happens.

Share this post


Link to post
14 minutes ago, camper said:

I wanted to clarify. Does Edge Classic support split-screen mode for multiplayer?
I run the -splitscreen option but nothing happens.

 

No, this was a feature of 3DGE/EDGE 2.x and I do not know how thoroughly it had even been implemented.

Share this post


Link to post
  • 1 month later...
On 11/15/2023 at 12:53 AM, dasho said:

Realized it's been a bit quiet, but we've been working on some neat stuff for the next release, most recently support for MPEG video playback. Movies can be defined via DDF for title sequences or pre/post level cutscenes, or can even be triggered in-game via RTS actions. Observe a demo that adds a lore-accurate cutscene before E1M1.

 
It's kind of interesting news, I believe the whole map could be pre-rendered in a 360 panoramic video and used as a dynamic environment map - at least. Well, maybe in a distant future this technique could also allow the engine to cull really far places and use parts of that video instead of fog.

Share this post


Link to post
10 hours ago, Darkcrafter07 said:

 
It's kind of interesting news, I believe the whole map could be pre-rendered in a 360 panoramic video and used as a dynamic environment map - at least. Well, maybe in a distant future this technique could also allow the engine to cull really far places and use parts of that video instead of fog.

 

Reminds me of The Journeyman Project 3 for some reason, but to be clear this is intended for cutscenes and as such the gameplay loop is suspended while videos are playing. 

Share this post


Link to post
  • 1 month later...
On 11/14/2021 at 2:06 AM, Lobo said:

ECLogo.png.1af3da9e4ec24ba814d63934e4bd4729.png

EDGE-Classic is a Doom source port that provides advanced features, ease of modding, and attractive visuals while keeping hardware requirements very modest.

Taking EDGE 1.35 as the base, the new fork has the aim of solving long-standing bugs and adding some quality of life features.
Also, one of our primary goals is to have an EDGE that will run well on older or less powerful hardware compared to the 2.x fork. Right now it runs perfectly on Raspberry Pi for example. We've even got vintage users covered in the form of a WindowsXP binary ;)

 

Major new features so far compared to EDGE 1.35:

- WebGL platform support

- UDMF map support

- DEHEXTRA compatibility

- DSDHacked compatibility

- UMAPINFO compatibility (almost complete)

- Compressed container support (.EPK, .ZIP)

- A soundfont-capable MIDI player (.sf2 support)

- Support for OGG and MP3 as music and sound effects

- Many more music formats (module/tracker music as well as AY, GBS, GYM, HES, NSF, SAP, SPC, VGM and even C64 SID)

- Quake MD1, MD2 and MD3 model support

- KVX and KV6 voxel model support

- TrueType Font support (TTF and OTF)

- MPEG video playback

- Erraticism (aka SuperHot) gameplay mode: Time will only advance when the player moves or fires

- Improved support for gamepads

- Expanded DDF, RTS, and COAL features

- Lua scripting

- Full support for both HacX 1.2 and Harmony IWADs

- Greatly improved Heretic/Blasphemer IWAD compatibility

- Enhanced support for the Freedoom 1/2 IWADs

- Widescreen statusbar, intermission, and title screens

- Replaced GLBSP with AJBSP as the internal nodebuilder

- Inventory system

- Autoload folder

- New Liquid animation (SMMU and Parallax)

- Optional Dynamic Sound Reverb

- Optional Pistol Start feature

- Support for image/spritesheet fonts

- A load of longstanding bugs fixed (see full changelog)

 


EDGE-Classic team:
*Dashodanger : coding.

*Lobo : coding.

*PaleBlue: coding.

*CeeJay: testing, feedback, ideas. 

 

*Andrew Apted: heavily contributed to v1.3

 

 

Grab it here: https://edge-classic.github.io/download.html

 

Githubhttps://github.com/edge-classic/EDGE-classic

 

ModDB page: with Old classics as well as new projects and mods: https://www.moddb.com/mods/edge-classic-add-ons

 

Discord ServerInvite

 

Try it in your web browserhttps://edge-classic.github.io/play.html

 

Full ChangeLog: Here

 

In-Game screen-shots of some mods running in EDGE_Classic:

  Reveal hidden contents

 

Aliens: Stranded

shot35.jpg.7a280b03d9afb7df6c65d6e2629d2fba.jpg

 

shot28.jpg.c7c45bf21f382cf47353dfb4662db718.jpg

 

 

  Reveal hidden contents

Operation: Arctic Wolf Revisited:

ARW.jpg.374e92f9062faef2ec75941129ebb1ed.jpg

 

 

Heathen:

heathen.jpg.81f78e8ebafb052fe253205dc8d02666.jpg

 

Duke it out in DOOM:

dioid.jpg.442b844970b89d84f66aa02282c6703b.jpg

 

d64ified:

shot04.jpg.e63d50b626f8d64270f5c3d675601124.jpg

 



 

edge?

Share this post


Link to post

That MPEG support is so cool! Now let's see someone rip those old VCDs just to have them play in an EDGE-exclusive mod.

Share this post


Link to post
  • 3 weeks later...
On 12/22/2023 at 11:58 AM, dasho said:

The Web Player has now been updated to version 1.37 as well; you may need to force-reload (Ctrl+Shift+R) or otherwise clear your cache for that page to ensure you have the latest version loaded.

 

Is multiplayer possible on the Web Player?

Share this post


Link to post
21 minutes ago, mmx said:

 

Is multiplayer possible on the Web Player?

 

No, EDGE/EDGE-Classic had multiplayer support removed a long time ago. There are Deathmatch and Co-op bots available from Options->Start Bot Match, though.

Share this post


Link to post
  • 1 month later...
1 hour ago, kevstan said:

This is an open invitation for you to join the illuminati have you been trying to join,now is your opportunity. The illuminati helps in any area of your life, your business, work and anything you are good on join us now and start receiving $5,000,000 car,house, and some order things included to it 

           ARE YOU INTERESTED?? If so 
Email:officiallilluminatihome@ gmail . com       

 

I've been sending my CV to the Illuminati for years without success, good lookin' out

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...