Giter Site home page Giter Site logo

team-eternity / eternity Goto Github PK

View Code? Open in Web Editor NEW
224.0 224.0 35.0 43.47 MB

The Eternity Engine

Home Page: http://eternity.youfailit.net/wiki/Main_Page

License: GNU General Public License v3.0

C++ 62.02% C 28.65% Shell 3.32% Makefile 1.12% Awk 0.32% Objective-C 0.65% Assembly 0.07% Perl 0.03% CMake 1.08% Module Management System 0.02% DIGITAL Command Language 0.28% SourcePawn 0.09% M4 0.14% Roff 2.04% Python 0.02% Pawn 0.12% Dockerfile 0.01% Batchfile 0.03% Objective-C++ 0.01%

eternity's People

Contributors

altazimuth avatar anotak avatar chungy avatar cxong avatar davidph avatar derekmd avatar devinacker avatar edward850 avatar fozzey avatar haleyjd avatar ioan-chera avatar jaubourg avatar joanbm avatar jwoodie avatar madame-rachelle avatar marrub-- avatar mp2e avatar nemesis-vampy avatar sink666 avatar skillsawed avatar sneakernets avatar somtwo avatar xaseracheron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eternity's Issues

CMake: Eternity won't compile on OS X Yosemite due to CMake bug

The bug is in CMake itself, as referenced in the generated CMakeCXXCompiler.cmake:

set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP)

Due to the m file extension. This is an ObjC file extension, not a C++ extension!
This should be

set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP)

And Eternity will compile as normal.

Node lumps starting with "XNOD" are assumed as ZDBSP lumps despite being vanilla lumps

This means that any first node that starts partitioning at (20056, 17487) will trigger this.

ZDoom solves this problem by first checking for vanilla nodes, and if that fails, try ZDBSP nodes.

The definition at http://zdoom.org/wiki/Node is that SEGS is left empty, and in this case SSECTORS too.

Offending PWAD here (for Doom 2). Be careful launching it; make sure you don't have unsaved data (Eternity may attempt to allocate huge memory): https://dl.dropboxusercontent.com/u/5103936/forum-posts/bspfail.wad

Not loading PWADs GFX in GUI

Eternity does not seem to be loading some of GFX when loading a PWAD from the in-game menu. e.g. Hell Revealed 2's green arrow (on menu). the traditional doom2's skull is shown instead.

the green arrow appear when using -file parameter.

[portal branch] Fix rendering glitches near cyclic line portals

The "cyclic" line portals (in maps where link offsets no longer agree because of "infinite" portal design) have visual glitches with non-drawing segs, because it is assumed the portal line is correct. Need to address this, either by making an exception for cyclic line portals, or handling these specially.

Post-teleport stun does not affect vertical looking

Despite the player being expressly forbidden from turning or moving for a brief moment after teleportation, vertical looking does not seem to be hindered. For consistency it might be a good idea to disable it along with everything else.

(zdoom-hexen-specials) Unify the EV_ procedures

There are similar/duplicate actions between EV_DoStuff and EV_DoParamStuff. EV_DoStuff should really flow into EV_DoParamStuff which will be the only one setting up the thinker or other map action. After that, try to remove the redundant kinds and types of input parameters and thinkers. This will make a Doom->UDMF conversion clearer.

This goes without saying: demo regression testing is most important here.

Light diminishing isn't "flat" enough

It seems like many ports have this problem, even ZDoom did for a while. In Vanilla Doom, smaller screen sizes caused there to be too much contrast introduced in the lighting, and Eternity reflects this "brighter" behavior instead of how the lighting was meant to look.

Gib health doesn't change after dehacked alteration

I've noticed a bug where monsters in Eternity, after a Dehacked modification of their hit points, retain their old gib health. For example sergeants with the following modification:

thing 3 (sergeant)
hit points = 240

can still be gibbed with the berserk pack in Eternity (as long as their health is below -30) but not in MBF or vanilla Doom.

(crossposted from Doomworld Eternity forum)

Horizontal and vertical mouse sensitivity extremely inconsistent

Vertical mouse movement seems to be a lot more sensitive than horizontal mouse movement. It'd be nice if the having the same sensitivity value on both axes caused them to move the same number of degrees (taking aspect ratio correction into account, of course).

As it is right now, I have to have my horizontal sensitivity a lot higher than the vertical setting just to get it to feel roughly consistent.

Simplify UDMF map reading

According to last discussions:

  • UDMF maps shouldn't look to Doom as specially UDMF after level setup has finished. Remove all checks of a UDMF format map during the game. Map should just be considered as Doom, Hexen or something else based on namespace.
  • Do not do anything more than mapping id/arg0..4 to tag/args[0..4]. No complicated processing if id/tag data. It's up to the parameterized specials to interpret that correctly

Implement slope collision

This is somewhat complex, because special behaviour needs to be done when descending slopes, to prevent trembling and sliding.

Use SLOPE_TODO wherever we have stuff to implement but don't know / cannot currently...

TO DO

  • ACS GetSectorFloorZ and GetSectorCeilingZ
  • Automap: display slope edges correctly, not according to horizontal surface heights.
  • Automap HUD z coordinate
  • P_GetFloorHeight, P_GetCeilingHeight: replace floorheight and ceilingheight with these. Have x/y as parameters.
  • P_SetFloorHeight, P_SetCeilingHeight: Move slopes with the sector surfaces (on master they render at the same plane all the time)
  • EV_DoCeiling: refer to proper slopes when limiting ceiling movement.
  • Vertex slopes (editor support)
  • A_ThingSummon, A_PainShootSkull
  • D'sparil spawning height checking needs to check against a collision model
  • E_HitWater
  • Heretic teleport glitter spawning
  • ACS SetActorPosition: proper floor Z
  • CAM_ portal aware traces partially done, but sector height calculation is incorrect! Needs fixing.
  • E_GetThingFloorType: proper floor Z
  • E_HitFloor: proper floor Z
  • EV_DoCeiling neighbouring sector floor or ceiling
  • EV_DoDoor
  • EV_DoElevator neighbouring sector floor and ceiling
  • EV_DoFloor, EV_DoChange: finding neighbouring sector floor
  • EV_DoParamFloor, EV_DoParamCeiling, EV_DoGenLiftByParameters, EV_DoParamStairs, EV_DoParamCrusher, EV_DoPlat, EV_DoParamPlat, EV_DoParamDoor
  • EV_PillarBuild
  • EV_PillarOpen
  • EV_SilentLineTeleport
  • FrictionThinker::Think
  • G_CheckSpot: telefog proper floor Z
  • Game saving (are slopes serialized? They're static on master.)
  • Mobj::Think waterstate
  • P_AdjustFloorClip
  • P_CheckFPortalState, P_CheckCPortalState
  • P_CrossSubsector, P_CheckSight (p_sight)
  • P_DripEffect
  • P_ExplodeMissile
  • P_ExtremeSectorAtPoint
  • P_Find...Surrounding, P_FindModelFloorSector, P_FindModelCeilingSector (for sector movement)
  • P_FloorPortalZ, P_CeilingPortalZ
  • P_GetChasecamTarget
  • P_GetFriction, P_TeleportMove, P_CheckPosition, P_CheckPosition3D, P_CheckPositionExt, PIT_ApplyTorque, P_TryMove
  • P_HereticCurrent
  • P_LineOpening, P_getLineHeights, P_blockingLineDifferentLevel, PIT_CheckLine3D
  • P_LocateFollowCam camparams.cz
  • P_NightmareRespawn
  • P_ParticleThinker
  • P_PlayerInSpecialSector, P_PlayerOnSpecialFlat
  • P_RespawnSpecials
  • P_SectorTouchesThingVertically
  • P_SetFollowCam, P_FollowCamTicker followcam.z
  • P_SpawnMobj
  • P_WalkTicker, P_ResetWalkcam walkcamera.z
  • P_XYMovement
  • P_ZMovement
  • PIT_AvoidDropoff
  • PIT_GetSectors
  • PushThinker::Think
  • PTR_AimTraverse
  • PTR_chaseTraverse
  • PTR_ShootTraverseVanilla, P_Shoot2SLine, PTR_ShootTraverse
  • R_1SidedLine 1-sided linedef portal situation
  • R_FakeFlat, R_SectorColormap, R_ProjectSprite: sloped transfer_heights
  • R_ProjectParticle
  • RIT_checkMobjProjection
  • ScrollThinker::Think
  • sloped anchor portals (see R_DefinePortal too)
  • sloped horizon portal rendering
  • sloped linked portals
  • sloped portal overlays
  • VerticalDoorThinker::Think floor height

NEED TO CHECK (uncertain):

  • Add_Scroller
  • CeilingWaggleThinker::Think, EV_StartCeilingWaggle
  • EV_BuildStairs step height setup
  • EV_DoFloor absolute floor movement
  • EV_DoParamDonut floor height lookup
  • FloorMoveThinker::Think delayed stairbuilding
  • FloorWaggleThinker::Think, EV_StartFloorWaggle
  • P_CreateSectorInterps
  • P_MoveAttached
  • P_SaveSectorPosition(s)
  • R_AddLine, R_Subsector surface height checks
  • R_DrawSpriteInDSRange
  • R_RenderMaskedSegRange
  • R_setSectorInterpolationState
  • sloped plane portal rendering?
  • T_MoveFloorDown, T_MoveFloorUp, T_MoveCeilingDown, T_MoveCeilingUp

NOTES:

  • 3dMidTex y offset and clipping heights can't use the slopes, it will just be relative to the editor sector heights.

PROPOSITIONS

  • Collision model: decide how slopes should block actors. There are three ways:
  1. Block completely: the thing's bounding box rests completely above slope. This is consistent with behaviour against walls and sectors and results in smooth movement when clipping against linedefs.
  2. Block only the Z axis. A thing base's centre will always be at floor level. This is closer to a legged actor's model where some legs are bent higher than others to stand on a slope. But it will look funny with wide monsters and steep slopes, and it will bump against any step linedefs.
  3. A compromise between 1 and 2, where only about 50% of width is clipped by slopes
  • Friction model: decide when should slopes become slippery (make things fall off them), unclimbable. Should moving against a slope also be tougher than moving on horizontal terrain? Keep in mind that classic steps produce no such hindrances!

It makes sense that monsters should check their "monkeys" compatibility setting to determine if they can walk on slopes or not. Dropoff calculation should be like usual, and it will be highly dependent on the chosen collision model.

FreeDM 0.9 DEMO3 desyncs

Seems to start the level on the wrong player-start(s?), everything goes wrong. This is a vanilla demo that plays back fine in doom2.exe, chocolate, and prboom+

Interpolation doesn't work through line portals

It's not trivial to implement proper interpolation when passing through line portals. The bug is most visible with projectiles, but the player may also notice it if the FPS is high enough.

Eternity does not load the correct Freedoom IWAD files with -iwad

This is some strange behavior. With -iwad freedoom2.wad, Eternity loads freedm.wad instead. With -iwad freedm.wad, it claims the IWAD cannot be found at all. Only -iwad freedoom1.wad seems to work properly.

Specifying the absolute path to the files works, however, such as -iwad /usr/share/games/doom/freedoom2.wad and -iwad /usr/share/games/doom/freedm.wad.

Running on 64-bit Arch Linux

"Sparklies" on textures with transparency

I just noticed that the edges of pixels are sometimes filled with index 0, which is particularly noticeable using palettes with white instead of black as the first index.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.