Giter Club home page Giter Club logo

serious-engine's Introduction

Serious Engine

========================

This is the source code for Serious Engine v.1.10, including the following projects:

  • DedicatedServer
  • Ecc The Entity Class Compiler, a custom build tool used to compile *.es files
  • Engine Serious Engine 1.10
  • EngineGUI Common GUI things for game tools
  • EntitiesMP All the entity logic
  • GameGUIMP Common GUI things for game tools
  • GameMP All the game logic
  • Modeler Serious Modeler
  • RCon Used to connect to servers using an admin password
  • SeriousSam The main game executable
  • SeriousSkaStudio Serious Ska Studio
  • WorldEditor Serious Editor
  • DecodeReport Used to decode crash *.rpt files
  • Depend Used to build a list of dependency files based on a list of root files
  • LWSkaExporter Exporter for use in LightWave
  • MakeFONT Used for generating *.fnt files
  • Shaders Compiled shaders
  • GameAgent The serverlist masterserver written in Python
  • libogg, libvorbis Third party libraries used for playing OGG-encoded ingame music (see http://www.vorbis.com/ for more information)

These have been modified to run correctly under the recent version of Windows. (Tested: Win7 x64, Win8 x64, Win8.1 x64)

Building

To build Serious Engine 1, you'll need Visual Studio 2013 or 2015, Professional or Community edition ( https://www.visualstudio.com/post-download-vs?sku=community ).

Do not use spaces in the path to the solution.

Once you've installed Visual Studio and (optionally) DirectX8 SDK, you can build the engine solution (/Sources/All.sln). Press F7 or Build -> Build solution. The libraries and executables will be put into \Bin\ directory (or \Bin\Debug\ if you are using the Debug configuration).

Optional features

DirectX support is disabled by default. If you need DirectX support you'll have to download DirectX8 SDK (headers & libraries) ( http://files.seriouszone.com/download.php?fileid=759 or https://www.microsoft.com/en-us/download/details.aspx?id=6812 ) and then enable the SE1_D3D switch for all projects in the solution (Project properties -> Configuration properties -> C/C++ -> Preprocessor -> Preprocessor definitions -> Add "SE1_D3D" for both Debug and Release builds). You will also need to make sure the DirectX8 headers and libraries are located in the following folders (make the folder structure if it's not existing yet):

  • /Tools.Win32/Libraries/DX8SDK/Include/..
  • /Tools.Win32/Libraries/DX8SDK/Lib/..

MP3 playback is disabled by default. If you need this feature, you will have to copy amp11lib.dll to the '\Bin' directory (and '\Bin\Debug' for MP3 support in debug mode). The amp11lib.dll is distributed with older versions of Serious Sam: The First Encounter.

3D Exploration support is disabled in the open source version of Serious Engine 1 due to copyright issues. In case if you need to create new models you will have to either use editing tools from any of the original games, or write your own code for 3D object import/export.

IFeel support is disabled in the open source version of Serious Engine 1 due to copyright issues. In case if you need IFeel support you will have to copy IFC22.dll and ImmWrapper.dll from the original game into the \Bin\ folder.

Running

This version of the engine comes with a set of resources (\SE1_10.GRO) that allow you to freely use the engine without any additional resources required. However if you want to open or modify levels from Serious Sam Classic: The First Encounter or The Second Encounter (including most user-made levels), you will have to copy the game's resources (.GRO files) into the engine folder. You can buy the original games on Steam, as a part of a bundle with Serious Sam Revolution ( http://store.steampowered.com/app/227780 )

When running a selected project, make sure its project settings on Debugging is set to the right command:

  • For debug: $(SolutionDir)..\Bin\Debug$(TargetName).exe`
  • For release: $(SolutionDir)..\Bin$(TargetName).exe` And its working directory: $(SolutionDir)..\

Common problems

Before starting the build process, make sure you have a "Temp" folder in your development directory. If it doesn't exist, create it. SeriousSkaStudio has some issues with MFC windows that can prevent the main window from being displayed properly.

License

Serious Engine is licensed under the GNU GPL v2 (see LICENSE file).

Some of the code included with the engine sources is not licensed under the GNU GPL v2:

  • zlib (located in Sources/Engine/zlib) by Jean-loup Gailly and Mark Adler
  • LightWave SDK (located in Sources/LWSkaExporter/SDK) by NewTek Inc.
  • libogg/libvorbis (located in Sources/libogg and Sources/libvorbis) by Xiph.Org Foundation

serious-engine's People

Contributors

aboyett avatar aron1024 avatar icculus avatar ivuk avatar mattl avatar megaserg avatar ragora avatar rocketersalex avatar slawww avatar yamgent avatar zcaliptium 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

serious-engine's Issues

Checking with PVS-Studio static analyser

To demonstrate the capabilities of our analyzer, we regularly perform analysis of open source projects. We had recently checked the Serious Engine project.

Here is the link to the article about it: http://www.viva64.com/en/b/0384/
Official page of the analyzer: http://www.viva64.com/en/pvs-studio/

If you have any questions, or if you are interested in the evaluation of our static analyzer or in any other source code quality control services that our company provides, please contact us at [email protected].

[MSVC][std:c++latest] Serious_Engine build failed due to error C2666: 'CValuesForPrimitive::operator ==': overloaded functions have similar conversions

Description:
After the MSVC team implented P2468R2 The Equality Operator You Are Looking For, we got a compiler error with /std:c++latest like below, the error is due to operator here https://github.com/Croteam-official/Serious-Engine/blob/master/Sources/WorldEditor/WorldEditor.h#L188 and https://github.com/Croteam-official/Serious-Engine/blob/master/Sources/WorldEditor/WorldEditor.h#L577 here needs a 'const'. Could you please look this issue? Thanks.

Reproduction steps:

  1. open VS2019 x86 tools command
  2. git clone https://github.com/Croteam-official/Serious-Engine F:\gitP\Croteam-official\Serious-Engine\Sources
  3. set CL=/std:c++latest /permissive
  4. cd F:\gitP\Croteam-official\Serious-Engine\Sources
  5. devenv /upgrade All.sln
  6. msbuild /p:Configuration=Release;Platform=Win32 /p:WindowsTargetPlatformVersion=10.0.18362.0 All.sln /t:Rebuild /m /p:BuildInParallel=true

log:
build (3).log
F:\gitP\Croteam-official\Serious-Engine\Sources\WorldEditor\DlgPgPrimitive.cpp(393): error C2666: 'CValuesForPrimitive::operator ==': overloaded functions have similar conversions
F:\gitP\Croteam-official\Serious-Engine\Sources\WorldEditor\WorldEditor.h(577): note: could be 'BOOL CValuesForPrimitive::operator ==(const CValuesForPrimitive &)'
F:\gitP\Croteam-official\Serious-Engine\Sources\Engine\Base\CTString.h(83): note: or 'BOOL operator ==(const char *,const CTString &)'
C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\d2d1helper.h(1024): note: or 'bool operator ==(const D2D1_RECT_U &,const D2D1_RECT_U &)'
C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\d2d1helper.h(1016): note: or 'bool operator ==(const D2D1_SIZE_U &,const D2D1_SIZE_U &)'
C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\um\propkeydef.h(35): note: or 'int operator ==(const PROPERTYKEY &,const PROPERTYKEY &)'
C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared\guiddef.h(192): note: or 'bool operator ==(const GUID &,const GUID &)'

Compiling issues

Hello.
Just downloaded sources from master, opened All.sln, and when I trying to build Debug conf. under VS2015 (Update 2 RC, if it matters) I got this:
Severity Code Description Project File Line Suppression State
Error C1083 Cannot open include file: 'Engine/Classes/BaseEvents.h': No such file or directory Depend D:\aGIT\GameEngines\SERIOUS ENGINE\Sources\Engine\Entities\Entity.h 56
Error C1083 Cannot open include file: 'Engine/Classes/BaseEvents.h': No such file or directory Shaders D:\aGIT\GameEngines\SERIOUS ENGINE\Sources\Engine\Entities\Entity.h 56
Error C1083 Cannot open include file: 'Engine/Classes/BaseEvents.h': No such file or directory DecodeReport D:\aGIT\GameEngines\SERIOUS ENGINE\Sources\Engine\Entities\Entity.h 56

I didn't found "BaseEvents.h" file, only "BaseEvents.es".

Is there something I do wrong?

Ecc Fails on Empty Files

I noticed that the Ecc in this repository fails when invoked against a file with no content like Sources/EntitiesMP/ParticleCloudsMarker.es where really the only thing in it is a block comment. It became apparent when I instructed my local repo to recursively build all the Es files: Ragora@375bdb6

So, either we'll need to fix Ecc to generate files with essentially nothing in them or otherwise modify such files to have no-op code in them so that Ecc builds down the line don't fail. I'm not all that familiar with the toolkits used for Ecc to parse and build the files, or I'd fix it myself.

'yyval' is used before being initialized ERROR on logo

Everything built without an error. When starting SeriousSam.exe, the logo shows up then this window appears:
image

I've searched and found four "yyval" variables in the whole source, two of them being type of a struct and the other two of an union. I've tried initializing them with the usual cpp initializer style eg. <type-here> yyval{ {} } but I still can't run the exe. Also, after building again, after the changes, the code changes back to its default.

freenode channels?

Would there be any way for you or us to create #seriousengine and #seriousengine-admin on freenode.net?

build instructions for Linux

Hi there, I wish to build the engine on Linux, is there any official instructions?

(Realised I was posting a error report for the wrong repo and was meant for a forked project so I changed the post, sorry)

Serious Engine 2 source code release?

I know that there already was an issue (#14 to be exact), but it was almost 6 years ago. I REALLY love Serious Sam 2 for its unique mix of graphics style, gameplay and enemies. Serious Sam 3 will turn 10 years (wow) soon, so maybe you guys will release the source code of SE2 as anniversary gift?
(P.S: I know that there was a linux port of SS2, but its really old and crappy, requires specific library versions to work, couldn't make sound to work)

First Encounter

Is it possible to run singleplayer campaign from First Encounter?

I was successfully able to run Second Encounter (Steam version), but when I copy all the files from FE in the same way, I get errors: it still looks for SE specific files (like Levels\LevelsMP\1_0_InTheLastEpisode.wld).

High-res logo?

Is there a high-resolution copy of the Serious Sam logo laying around Croteam's offices that we can put in revision control? There's already Sources/SeriousSam/Splash.bmp, at 256x256 pixels, but modern machines can use 512x512 just for the game's icon. :)

Build error SDK issue?

Hello, I'm getting this error
Severity Code Description Project File Line Suppression State
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int Engine C:\Program Files (x86)\Windows Kits\8.1\Include\um\winnt.h 342

All over the place in Visual Studio 2015, it looks like DirectX is enabled by default too. What is the build configuration ( includer paths libraries , vc++ compiler versions) you are using ?

I feel like I should be using the windows platform sdk 7 but not sure how to set this up in vs 2015

GPL headers absent

It seems so unusual to open a source file of a GPLv2 engine to see there's still a "(C) 2002-2012 Croteam All Rights reserved" instead of the usual GPL header block.

Also is this GPLv2 or GPLv2+? The latter allows GPLv3 use, as well as being more legally compatible (such as those earlier id software engine GPLv2+ releases)

Generated files

This is just a listing of all generated files I stumble[d] across (in Sources/ subdir):

  • Ecc/Scanner.cpp
  • Engine/Ska/smcPars.cpp
  • Engine/Base/Scanner.cpp
  • Engine/Ska/smcScan.cpp
  • SeriousSkaStudio/Scanner.cpp
  • WorldEditor/hlp/resources.hm

these can be safely removed.

Possibly one should also add the Configuration files to the .gitignore

Any chance for a source code release of Fusion?

Fusion has been pretty much abandoned, with no new updates or fixes, and the newer Sam games (4 and Siberian Mayhem) use a newer version of the engine, than what is used for Fusion.

Open sourcing Fusion would give the community an opportunity to fix any issues Fusion may have.

Possibly error in Bison Source file.

At least I get:

Serious-Engine/Sources/Ecc/Parser.y:1076:96: error: expected ‘;’ before ‘}’ token

snippet (3rd line here is 1076 line in source):

statement
  : expression ';' {$$=$1+$2;}
  | k_switch '(' expression ')' '{' statements '}' {$$=$1+$2+$3+$4+$5+$6+$7}
  | k_case case_constant_expression ':' {$$=$1+" "+$2+$3+" ";}
  | '{' statements '}' {$$=$1+$2+$3;}
  | expression '{' statements '}' {$$=$1+$2+$3+$4;}

This seems correct as it's the only one where there's no ';' before the closing brace. I fixed this locally and on my devel branch and it builds correctly with this fix -- but I'm no expert in Bison so you might want to look into this yourself.

Why was OGG support removed?

Anyone who prefers OGG over MP3 for philosphical reasons is getting thrown under the bus here. Can you explain why OOG support was removed?

License of LightWave SDK

Thanks for freeing the serious engine! I was just wondering what license the LightWave SDK is under. The README only states it's 'not under the GPLv2', but there is no different licensing information available.

Community project website?

It would be useful to have a community website for this game engine and tools. E.g. The site could include screenshots, documentation, and a discussion area (such as Discourse). What are the plans for creating a portal to build community around this project?

How use GRO file?

Hello,
I have compiled the source code, when I run it I get an error when loading a level of .wld (which does not exist).

Have you any tips about it?

Thank you, Regards
Sesilla

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.