Git Product home page Git Product logo

xproger / openlara Goto Github PK

View Code? Open in Web Editor NEW
4.6K 160.0 360.0 42.91 MB

Classic Tomb Raider open-source engine

Home Page: http://xproger.info/projects/OpenLara/

License: BSD 2-Clause "Simplified" License

C++ 33.28% C 58.31% GLSL 0.49% Batchfile 0.22% Shell 0.12% CMake 0.03% Java 0.22% Objective-C 0.01% Objective-C++ 0.45% Makefile 0.55% HLSL 0.65% PHP 0.19% Assembly 5.46% Lua 0.01%
tombraider openlara

openlara's Introduction

openlara's People

Contributors

adler3d avatar aikku93 avatar alfrix avatar bananarama203 avatar bax-cz avatar cochrane avatar cookie99999 avatar csanta avatar dantheman827 avatar dmitshur avatar elektronicznypank avatar gh0stblade avatar hexdoll avatar imbackk avatar iorange avatar izarif avatar jste0 avatar leo-89 avatar milescook avatar mrhatkat avatar muddymind avatar notaz avatar octopuserectus avatar pablomaiolo avatar saracenone avatar twojstaryzdomu avatar vaguerant avatar vanfanel avatar vanfanel2 avatar xproger 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  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

openlara's Issues

Crash: Entering room (Stack overflow).

Level: LEVEL10A (Natla's Mines)
Room: 87 (Causes Crash)
Lara Position: 62618, -7859, 25880, Room 18 (Before the room that crashes)

Info: Crash happens when standing on portal sector from room 18 to room 87. Can be avoided by jumping over the sector.

Edit: Same crash occurs in room 33.

Bug: Lara run to walk.

All Levels.
Tested with: d3cf26a

Issue: Simply make Lara run forward then instantly press the walk button. She will stop then proceed to walk. In the original game Lara transitions directly to the walking animations.

sound

  • sound mixing
  • Microsoft PCM / ADPCM support
  • ogg vorbis support
  • volume & panning support
  • pitch & gain support
  • reverberation
  • underwater ambient

License ?

Under what license is this project released under ? I would like to use it as a learning resource. I browsed the source code and it seems really well done.

JavaScript errors / game won't load

I'm using Linux Mint 17 Cinnamon 64-bit, tested in Chrome Version 58.0.3029.81:

Exception thrown, see JavaScript console
Uncaught TypeError: Cannot read property 'getSupportedExtensions' of undefined

Also tested in FireFox Version 53.0:

Gah. Your tab just crashed.

animated textures

Shader implementation for changing texture coordinates (if it's in animation sequence) without rebuild VBO

platforms

  • Web
  • Windows
  • Linux
  • macOS
  • Raspberry Pi
  • Clover NES/SNES Mini Classic
  • PlayStation Classic
  • Windows Phone 8+
  • Android
  • iOS
  • PSP (TODO: render to texture, simple shadows, UI bars, lightning)
  • PSV (TODO: graphics features and performance)
  • TI-Nspire (TODO: optimization)
  • BittBoy (TODO: optimization)
  • RG350
  • 3DS (TODO: water distortion, shadows)
  • Switch
  • Xbox Original (TODO: water distortion, shadows)
  • Xbox One
  • #368
  • #370
  • #407
  • #408
  • #409
  • #410
  • #411
  • #420
  • Mac OS X (PowerPC)
  • Symbian OS S60 3rd
  • BlackBerry RimOS
  • PS2
  • PS3
  • PS4
  • Dreamcast
  • GameCube
  • Wii
  • Wii U
  • Xbox 360
  • Atari Jaguar
  • Amiga 1200

TR1 enemies

  • code refactoring !!!
  • path finding (need to fix circling)
  • wolf
  • bear
  • bat
  • raptor
  • rex
  • crocodile
  • lions
  • puma
  • gorilla
  • rat
  • mutant
  • centaur
  • mummy
  • larson
  • pierre
  • skaterboy
  • cowboy
  • Mr. T
  • Natla
  • giant mutant

Crash rendering static mesh in GYM.PHD

In GYM.PHD, simply turn around. Shortly before 180° there is a crash in MeshRange::bind, as it was called on a null object. Stack trace, as far as it's relevant:

#0	0x0000000100013c14 in MeshRange::bind(unsigned int*) const at OpenLara/src/mesh.h:33
#1	0x0000000100013ba1 in Mesh::render(MeshRange const&) at OpenLara/src/mesh.h:89
#2	0x0000000100013b71 in MeshBuilder::renderMesh(MeshBuilder::MeshInfo*) at OpenLara/src/mesh.h:694
#3	0x000000010002db57 in Level::renderRoom(int, int) at OpenLara/src/level.h:276
#4	0x000000010002d624 in Level::renderRooms() at OpenLara/src/level.h:458
#5	0x000000010002d302 in Level::renderScene() at OpenLara/src/level.h:472
#6	0x000000010000de95 in Level::render() at OpenLara/src/level.h:477
#7	0x000000010000af3a in Game::render() at OpenLara/src/game.h:39

The root problems appears to be in Level::renderRoom, where mesh->meshMap contains null for the index. The problem is easily patched over with an if check in that method, but I suspect the actual issue lies somewhere else entirely.

Wolf under water?

Found a wolf under water. Does not seem to happen?

OSX 10.12.4
Chrome 57.0.2987.133 64-bit

screen shot 2017-04-25 at 13 48 34

screen shot 2017-04-25 at 13 47 19

Bug: Collision, vault onto pushable block.

LEVEL7B (Tomb of Tihocan), LEVEL8A (City of Khamoon)
Works on: cd29100
Reproducible at the very beginning of both LEVEL7B and LEVEL8A.

Issue:
https://www.youtube.com/watch?v=QPYKhzRBQ-o

Happens when Lara vaults onto a pushable block from whilst inside a tunnel room. If you hold UP+Action Lara continues to vault up.

Edit: Lara remains stuck in Room 29, seems like room transition bug? Explains why Lara is invisible as soon as the glitch executes and she's inside other rooms.

Graphical Bugs

Level: LEVEL7B (Tomb of Tihocan)
Room: 20
Lara Position: 57879, 0, 16143.

Issue:
Water ripple effect does not work in this water room.
http://i.imgur.com/CxTSpmx.png

Issue 2:
http://i.imgur.com/YXurpuy.png

Strange flickering graphical artifacts occur at the ceiling of certain water rooms. This is likely the water ripple shader. Also occurs in LEVEL10B (Atlantis).

Bug: Lara run on water.

Level: LEVEL3A (Lost Valley)
Room: 1
Lara Position: 36763, -47, 74841.

http://i.imgur.com/yI2CCd1.png

Issue: Lara can run on water if you try to run forward from here. It is possibly because the floor is too low and Lara does not enter the fall state to initiate underwater transition states.

objects & triggers

  • change soundtrack by trigger (fade in / fade out)
  • trigger masks
  • trigger once flag
  • boulders
  • spikes
  • pendulum blades
  • underwater current
  • lava particles
  • Shooting darts (Caves) [hit collision check]
  • Collapsible floor (Caves)
  • Collapsing ceiling (Tomb of Qualopec)
  • Lightning (St. Francis' Folly)
  • Thor's hammer (St. Francis' Folly)
  • Falling swords (St. Francis' Folly)
  • Hand of Midas (Palace Midas)
  • Fire Traps (Palace Midas)
  • Clamping Metal Doors (The Cistern)
  • Lava (levels in Atlanta)
  • centaur statue
  • save game crystal

collisions

  • correct collision and wall offsets
  • walk through portal
  • static meshers (collision bbox)
  • enemies
  • bridge

lighting

  • fog
  • backlight
  • simple lighting
  • simple shadow
  • point lights

optimization

  • profile markers
  • vertex array object
  • push all model matrices by one call (for entities)
  • merge model meshes to one DIP
  • remap meshes by offsets

user interface

  • health & oxygen bars
  • inventory screen
  • title screen
  • controls settings
  • detail settings
  • sound & music settings
  • save game menu

Stack corruption.

File: Format.h
Based on: 7f00441
Issue: struct "FloorInfo" declared at line beginning 709 specifies the maximum amount of trigger commands "trigCmd[16]". This constant however is not sufficient enough for certain levels resulting in writing to out of bound memory. As a result the stack is corrupted. This noticeably occurs in LEVEL4.PHD (St. Francis' Folly) Damocles key room, if you stand on the sector where the key is laid.
"info.trigCmd[info.trigCmdCount++] = trigCmd;" on line 1043 is where the out of bound writing occurs when info.trigCmdCount++ > 16.

I would suggest replacing the constant with a higher value and adding an assertion.

Cheers.

controls

  • analog support
  • assigning keys (from title & inventory screen)

objects

  • doors
  • switches
  • dartgun
  • pendulum blades
  • floor door
  • collapsible floor

features

  • shadow maps
  • environment reflections for crystal
  • reflections for gold Lara
  • ambient cube
  • contact ambient occlusion for Lara
  • ligth source interpolation
  • water surface (simulation, refraction & reflection)
  • braid
  • dual-aiming
  • stereo rendering support for 3D displays
  • trapezoidal texturing
  • ambient cubes interpolation
  • static ambient occlusion calculation
  • simple shadow projection for FFP GAPI (without self-shadowing)
  • ESM soft shadows
  • HTC Vive & Oculus Rift support
  • Google VR support
  • low-pass filter for air<->underwater sounds
  • flame simullation
  • heat haze effect for flame and lava
  • normal mapping
  • geometry, textures and animations dump and replace
  • underwater dust

Please include a copy of the license in the root of the repository

Your README mentions that OpenLara is released under the terms of the 2-Clause BSD license.

Including a copy of the license in a file called LICENSE will allow GitHub to add which license is used for the repo to the info bar of the repository.

Furthermore including a copy of the license and setting the copyright year(s), author name(s) and author e-mail address(es) (or website(s) if you don't want to reveal your e-mail address) in it will allow your users to live up to the license, which has the following among its requirements:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

Bug: Lara Climb.

Level: LEVEL7A (Cistern) / LEVEL8A (City of Khamoon)
Room: 111
Lara Position: 33453, -1580, 58468

Issue 1:
http://i.imgur.com/PRF6GMg.png
Pressing UP+Action will allow Lara to grab slope edges which isn't possible in the original game.
Edit: https://www.youtube.com/watch?v=Bcvgv_6NqR0 This is also possible due to the ability to grab slope edges.

Issue 2:
http://i.imgur.com/r4iBYDO.png
Lara cannot jump up + hang to grab this wall. But if you climb on-top press back then grab. Lara can grab this wall which shouldn't be possible due to how low it is.

Issue 3: Referring to screenshot 2, if you pull up Lara will go into animation 42, vault up onto block but you can roll during this animation which shouldn't be possible.

Issue 4:
http://i.imgur.com/Ag0Nq59.png

If you run towards the corner of this floor point, Lara will collide with something invisible.

Issue 5:
If you tun towards this wall and press UP+Action Lara will vault the ledge below and clip through the wall.
http://i.imgur.com/09SMn4G.png
http://i.imgur.com/WoXrjM7.png

(Solved in: cd29100) Lara can no longer automatically vault this wall via up+action, will have to confirm if this is possible in the retail game.

Issue 6:
Lara cannot pull up here:
http://i.imgur.com/ZA80PFT.png
May be related to this same bug in LEVEL8A
http://i.imgur.com/YX6AxwX.png

Issue 7:
If you face a certain angle towards low walls, Lara can vault them and appear ontop of ledges.
https://www.youtube.com/watch?v=FyRvyxb310g

Bug: If Lara hits a wall and holds action, she vaults or attempts to climb the nearest sector.

LEVEL2 (City of Vilcabamba)
Tested on: 5bc3ea6

This is most likely reproducible in various areas of the game.

Issue: https://www.youtube.com/watch?v=qt8Z58uVhRA
Walking forward towards the edge of the pool, when Lara stops and you are holding action she will vault some sector inside the pool.

Issue 2: https://www.youtube.com/watch?v=aAnaYmQ4rzc

Side stepping right towards the pool edge. If you hold action when Lara stops she will vault the nearest sector.

Issue 3: https://www.youtube.com/watch?v=g4BjG-juYKE

Same as issue 2 just tested in another area.

Path Finding Error/Collision

One enemy can go inside the other:
Look here

  • Here two wolfs are almost completely one inside the other.
  • Also when you are on water and a bear is in the surface, the bear constantly run and attack lara, it doest walk or leave like the wolfs

Bug: Up+Action facing wall to vault

LEVEL1 (Caves)
Tested on:
Caused by: 44e924b
Room: 10, 40703, 5913, 51300.

Issue: Prior to 44e924b Lara can grab this wall via UP+Action, after this change it's no longer possible (Jump + Action does work though). Probably needs verifying with the original game.

Level play ability status

Here i will list which levels in OpenLara can be completed at this point in time (playable up until level end trigger). Based on: 36b7355

Other:
GYM (Lara's Home) - 100%

Peru:
LEVEL1 (Caves) - 100%
Known Bugs:
1. No collision on some static meshes.
2. Darts do not damage Lara.
3. #34

LEVEL2 (City of Vilcabamba) - 100%
Known Bugs:
1. No collision on some static meshes.
2. #35
3. #52
4. #39

LEVEL3A (Lost Valley) - 100%
Known Bugs:

  1. Water fall splash fx not disabled when pool room is flipped.
  2. Cogs not renderer properly when put in holder.

LEVEL3B (Tomb of Qualopec) - 99%
Known Bugs:
1. No collision on some static meshes.
2. Playable up until scion pick up room. Lara cannot pick up the Scion from the pedestal in room 5 (unimplemented) so it's impossible to continue.
3. The head of mummies in Qualopec throne/scion room do not turn to face Lara.
4. One of the mummies (right) in Qualopec throne/scion room has no collision, ~also bad mesh on right side. #117 ~
5. One of the mummies is not activated when you stand infront of it or shoot it.
6. Game now freezes when attempting to pickup the Scion.
7. After killing Larson the level does not end.

Greece:
LEVEL4 (St Francis' Folly) - 100%
Known Bugs:
1. Heavy triggers not implemented, pushable block does not activate the door in room 0.
2. Lion/Gorilla/Crocodile death animation not triggered.
3. Pierre AI unimplemented.
4. Room 0, push the block ontop of the sector with symbols on. Take it off, if you now stand on the said sector you previously pushed the block ontop of, Lara will look at the item which was activated when the block was pushed ontop of the said sector.
5. Crocodile type is not switched to land when water room is drained.
6. When running through the drainable water room (beneath the second secret room). Water sound effect is played towards the drain exit.
7. Gate is not activated in the Atlas room when you pickup the key making it impossible to exit.
~8. Assertion hit in room 5 causes crash. #118 ~

LEVEL5 (Colosseum) - 100%
Known Bugs:
1. Impossible to leave the first room, once flag trigger doesn't appear to work so the door in start room 59 keeps opening and closing.
2. The switch which opens the gated door leading to another switch in the puzzle room that contains two raisable gates does not activate. This means Lara is unable to complete the puzzle to exit that room.
~3. #118 ~
4. Switch puzzle is still buggy, gates close too quickly and switches can desync.

LEVEL6 (Palace Midas) - 100%
Known Bugs:
1. Pulling any levers in room 29 opens all puzzle room doors containing lead bars.
2. Flip maps prevent two of the lead bars from being picked up.
3. Not possible to turn lead bars into gold bars (unimplemented).
4. #118

LEVEL7A (Cistern) - 100%
Known Bugs:

  1. #38
  2. #86
    3. #87
    4. #88
  3. Rats can climb ontop of pushable blocks.
    6. #118

LEVEL7B (Tomb of Tihocan) - 100%
Known Bugs:
1. #40
2. #43
3. #88
4. #89
5. Pierre ai not implemented.

Egypt:
LEVEL8A (City of Khamoon) - 35%
Known Bugs:
1. #90 playable until room 18.
2. #36
3. #43
4. #119

LEVEL8B (Obelisk of Khamoon) - 100%
1. Puzzle items can now be collected because draw bridges are implemented. After picking up all 4 puzzle items the door to underwater, beneath the draw bridge area does not open.

LEVEL8C (Sanctuary of the Scion) - 100%
Known bugs:
1. Picking up scion will freeze the game.
2. #41
3. #120

Atlantis
LEVEL10A (Natla's Mines) - 100%
Known Bugs:

  1. #39
    2. Can collect 3 fuses and use them. Problem is the room containing Lara's pistols does not drop down.

LEVEL10B (Atlantis) - 80%
Known Bugs:

  1. Playable up until doppelganger room. Lara can kill the doppelganger early when shooting it.

LEVEL10C (The Great Pyramid) - 100%
Known Bugs:

  1. Boss is unimplemented thus it's not possible to leave the starting room as the door is activated when you kill the mutant boss.
  2. Flame collision radius too high to pass flame room without dying.

firing

  • auto-aiming (separately for each arm)
  • hands animation
  • mesh replacement (face, hands, torso, legs with/without guns)
  • bullet hits for walls
  • bullet hits for enemies
  • muzzle flashes

camera

  • trace collisions (check math and fix for TR 2-3)
  • room tracking (for portals culling)
  • movement mode
  • combat mode
  • look mode
  • targeting by trigger
  • targeting to entity

controller for Lara

  • walk
  • run
  • underwater
  • on water
  • slide
  • hang
  • movable blocks
  • mesh swap
  • weapons and animation merging
  • head aiming
  • death
  • look
  • fix air friction
  • fix slide and backflips (LEVEL4 1st secret bug)

billboards

draw camera oriented sprites using shader

  • environment objects (stones, bushes etc.)
  • items (medikits, keys, weapons etc.)

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.