Code Monkey home page Code Monkey logo

hpl1engine's Introduction

HPL1 Engine Source Code

Yes, here it is at last the Engine that made the Penumbra Series.

Read through the TODO file for various known things that should be cleaned up / fixed.

Included are project files for Xcode, Visual Studio 2003 and Cmake (for Linux)

Contributing Code

We encourage everyone to contribute code to this project, so just sign up for a github account, create a fork and hack away at the codebase. We will start an Open Source forum on the Frictional Games forums as a place to talk about changes and to submit patches from your forks.

License Information

All code is under the GPL Version 3 license except for the "test" which are included under the ZLIB license. All of the assets are licensed under the Creative Commons Attribution Share-Alike 3.0 license except for the CG shaders which are under the ZLIB license. Please read the COPYING and LICENSE-* files for more information on terms of use.

hpl1engine's People

Contributors

urkle 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

hpl1engine's Issues

VS 2010

I build HPL, and try to build HudObjectEditor with no success, is it because i use Visual Studio 2010?

Compilation difficulties in linux

There are some nontrivial issues that I faced while compiling for linux. There should be some documentation in the readme concerning the following issues :

  • System-wide dependecies : OAL, Vorbis, OGG libraries
  • Local dependencies (see issue #5)
  • Tools compilation

Also, other issues are :

  • Compiler flag -fpermissive (?) (presumably due to the code being compiled on older gcc version)
  • OALWrapper could be a git sub-project (reflect that in CMakeLists.txt)

Compile error on linux

Hello. When I try compile HPL1Engine, I have an error in angelscript.h

angelscript.h:101:66: error: overloaded function with no contextual type information

define asFUNCTIONPR(f,p,r) asFunctionPtr((void ()())((r ()p)(f)))

AngelScript stack misaligned causes SIGSEGV on SSE-optimized libraries

Hi there,

It seems AngelScript causes some issues in modern Linux distributions (e.g. Arch Linux) that optimize some libraries like Mesa and libogg. However, as AngelScript misaligns the stack (the __stdcall attribute on GCC and Clang is usually ignored) when a SSE instruction is executed and a memory operand is not 16 byte aligned, a CPU exception occurs.

To fix this, you just need to recompile AngelScript with the "AS_MAX_PORTABILITY" macro turned on.

Somebody on the forum compiled such library with the flag turned on, see https://www.frictionalgames.com/forum/thread-56758.html . Could you please update your dependency zip?

A bit of foreword: your Steam builds for ALL penumbra games are broken for this reason on a number of target machines (Arch Linux, Ubuntu, Fedora, ... any distro that enables optimizations on final package builds). Apparently GOG builds too. I could only complete Overture with my build. I tried to reach out to you in many ways, but so far received no reply from any dev. We, Penumbra players who paid this title on steam, need some assistance. I understand the game is fairly old and this repo has not been updated for 6 years despite there are some pending PRs out there that should at least be discussed. Especially when they are so simple.

"Your graphics card does not support vertex shaders!" Game is older than GPU

It appear that when I compile the game, it says that my GPU, which is 6 years younger than the game, doesn't support vertex shaders.

I have traced this error to GetCaps from LowLevelGraphicsSDL.cpp returning 0.

It is trying to check if _GLEE_AB_vertex_program is enabled, yet it isn't somehow, why is that? I surely don't know.

Haptic:)

Hi all, please tell me what it means 'Haptic'?
Translator says one nonsense(

thanks in advance)

Has anyone managed to compile this?

I first tried on MacOSX, but the number of libraries and tweeks I have to do is simply ludicrous
on the other hand on Win32 I successfully installed/complied SDL. SDL_Ttf, SDL_image, Newton, OpenAL, CG, Angelscript, libOgg, libVorbis.
i)I'm having trouble compiling libTheora which is non-VS2010 compatible
ii)I have to patch the source to fit Newton 2( 100-200 functions being called with diff number of objects etc.)
iii)theres AL/alext.h and couple other AL/* which I have no idea in which library they belong to
iv) a bunch of asscripting errors appear which make me think that I probably compiled the wrong angelscript engine

has anyone managed to compile this under linux, cause i'll probably ditch the windows version too?

Difficulties on linux compilation

Hi!

I'm having trouble with linux compilation, I downloaded AngelScript and modified the path in include/system/Script.h accordingly, but I'm stuck at 25% of the compilation with the file sources/graphics/Renderer2D.cpp, the error :

/home/xobtah/FG/HPL1Engine/sources/graphics/Renderer2D.cpp: In member function ‘int hpl::cRenderer2D::CreateVertexes(hpl::cVector2f, hpl::cRect2f, float, bool, hpl::cVector2f, hpl::tVertexVec*, hpl::cColor, int, float)’:
/home/xobtah/FG/HPL1Engine/sources/graphics/Renderer2D.cpp:898:74: error: taking address of temporary [-fpermissive]
mpLowLevelGraphics->AddVertexToBatch(&cVertex(vPointPos[0],ShadowColor));
^
/home/xobtah/FG/HPL1Engine/sources/graphics/Renderer2D.cpp:899:74: error: taking address of temporary [-fpermissive]
mpLowLevelGraphics->AddVertexToBatch(&cVertex(vPointPos[1],ShadowColor));
^
/home/xobtah/FG/HPL1Engine/sources/graphics/Renderer2D.cpp:903:72: error: taking address of temporary [-fpermissive]
mpLowLevelGraphics->AddVertexToBatch(&cVertex(vEndPos[0],ShadowColor));
^
/home/xobtah/FG/HPL1Engine/sources/graphics/Renderer2D.cpp:904:72: error: taking address of temporary [-fpermissive]
mpLowLevelGraphics->AddVertexToBatch(&cVertex(vEndPos[1],ShadowColor));
^
/home/xobtah/FG/HPL1Engine/sources/graphics/Renderer2D.cpp:923:72: error: taking address of temporary [-fpermissive]
mpLowLevelGraphics->AddVertexToBatch(&cVertex(vExtraPos,ShadowColor));

I tried to comment this section of the code, but I have another error after this one, so if someone can help me with this one, I'd be glad if he can help me with the next one =)

Thanks for your attention, and thank you FrictionalGames for the sources!

Please update the source to compile against angelscript-2.19.0

Currently, HPL1Engine fails to compile against angelscript-2.19.0 with the following trace :

[ 0%] Building CXX object CMakeFiles/HPL.dir/sources/impl/scriptstring.cpp.o
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp: In function ‘void RegisterScriptString_Native(asIScriptEngine_)’:
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:588: error: ‘asOBJ_CLASS_CDA’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:595: error: ‘asBEHAVE_ASSIGNMENT’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:596: error: ‘asBEHAVE_ADD_ASSIGN’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:600: error: ‘asBEHAVE_ALLOC’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:601: error: ‘asBEHAVE_FREE’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:611: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:611: error: ‘asBEHAVE_EQUAL’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:612: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:612: error: ‘asBEHAVE_NOTEQUAL’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:613: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:613: error: ‘asBEHAVE_LEQUAL’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:614: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:614: error: ‘asBEHAVE_GEQUAL’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:615: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:615: error: ‘asBEHAVE_LESSTHAN’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:616: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:616: error: ‘asBEHAVE_GREATERTHAN’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:617: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:617: error: ‘asBEHAVE_ADD’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:629: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:630: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:634: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:635: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:639: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:640: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:644: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:645: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:649: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:650: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp: In function ‘void RegisterScriptString_Generic(asIScriptEngine_)’:
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:658: error: ‘asOBJ_CLASS_CDA’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:665: error: ‘asBEHAVE_ASSIGNMENT’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:666: error: ‘asBEHAVE_ADD_ASSIGN’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:670: error: ‘asBEHAVE_ALLOC’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:671: error: ‘asBEHAVE_FREE’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:681: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:681: error: ‘asBEHAVE_EQUAL’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:682: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:682: error: ‘asBEHAVE_NOTEQUAL’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:683: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:683: error: ‘asBEHAVE_LEQUAL’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:684: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:684: error: ‘asBEHAVE_GEQUAL’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:685: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:685: error: ‘asBEHAVE_LESSTHAN’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:686: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:686: error: ‘asBEHAVE_GREATERTHAN’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:687: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:687: error: ‘asBEHAVE_ADD’ was not declared in this scope
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:699: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:700: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:704: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:705: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:709: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:710: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:714: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:715: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:719: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
/home/hicham/rpmbuild/SOURCES/HPL1Engine-1.0/sources/impl/scriptstring.cpp:720: error: ‘class asIScriptEngine’ has no member named ‘RegisterGlobalBehaviour’
make[2]: *** [CMakeFiles/HPL.dir/sources/impl/scriptstring.cpp.o] Error 1
make[1]: *** [CMakeFiles/HPL.dir/all] Error 2
make: *** [all] Error 2

too few arguments to function ‘NewtonBody* NewtonCreateBody(const NewtonWorld*, const NewtonCollision*, const float*)

Hello,
I am trying to build the Newton2 branch on Mac OS 10.4 with Newton 2.33 and I get this error :

[  1%] Building CXX object CMakeFiles/HPL.dir/sources/impl/PhysicsBodyNewton.cpp.o
/Users/pierre/Desktop/HPL1Engine/sources/impl/PhysicsBodyNewton.cpp: In constructor ‘hpl::cPhysicsBodyNewton::cPhysicsBodyNewton(const hpl::tString&, hpl::iPhysicsWorld*, hpl::iCollideShape*)’:
/opt/local/include/Newton.h:670: error: too few arguments to function ‘NewtonBody* NewtonCreateBody(const NewtonWorld*, const NewtonCollision*, const float*)’
/Users/pierre/Desktop/HPL1Engine/sources/impl/PhysicsBodyNewton.cpp:47: error: at this point in file

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.