Coder Social home page Coder Social logo

seriousalexej / serious-engine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from croteam-official/serious-engine

15.0 4.0 2.0 112.78 MB

An open source version of a game engine developed by Croteam for the classic Serious Sam games.

License: GNU General Public License v2.0

Python 0.02% Shell 0.01% C++ 68.38% C 29.28% Yacc 0.63% Lex 0.13% Clarion 0.48% Batchfile 0.01% Perl 0.04% HTML 0.01% Rich Text Format 1.02%

serious-engine's Introduction

Serious Engine

Build status

Video Demonstration (YouTube, clickable)

Feature Showcase

Enhanced and somewhat fixed version of engine tools (Modeler, World Editor)

  • Compatible with 1.07!
  • Engine now supports A LOT more image formats for texture creation (such as PNG for example)
  • Serious Modeler can now import skeletal animations! (baked into vertex frame animation during the import for compatibility)
  • Added Property Tree for Serious Editor for more convenient workflow!
  • Updated version of assimp, more import formats are available!
  • Modeler upgrade to correctly read imported UV map without tears at seams (previously required creation of additional surfaces at seams to avoid that problem)
  • Modeler has convenient UI for configuring model instead of manual script writing
  • Replaced missing exploration3D library with assimp (for importing 3D models into Modeler / World Editor)
  • Added ability to import UV maps (with up to 3 channels) when converting 3D model into brush (World Editor)
  • World Editor bugfix to correctly display color selection window
  • New advanced UV mapping tools for World Editor
Skeletal animation demos

Skeletal animation import support in Serious Modeler

Same model with automatically generated triangles per each bone

New Property Tree in Serious Editor

New 3D formats importing demos

Importing 3D meshes with multiple UV maps as brushes in World Editor

List of new supported 3D file formats

Modeler correctly imports UV map without distorsions by default

World Editor mapping demos

3D Importing with UV maps - General demo:

Advanced mapping - General demo:

Advanced mapping - Rotation alignment:

Advanced mapping - Alignment by adjacent edge:

Advanced mapping - Alignment by tangent edge:

Advanced mapping - Alignment by adjacent and tangent edges:

Original ReadMe:

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 seriousalexej avatar slawww avatar yamgent avatar zcaliptium avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

serious-engine's Issues

How to activate Terrain Editor?

I can see some Terrain Editor in World Editor but don't know how to activate it. There are files inside /Sources/WorldEditor.
Thank you.

Delayed-selection of parented objects in Editor

If you parent many objects (>10) to another one (main) and try to select all of them by double LMB the main, you will experience a delay, more likely freezing of the whole editor. The more objects "attached", the worse the situation, can get up to tens of seconds.

  • The worst case is when all are primitives.
  • Less bad when primitives are parented to an entity.
  • If entities are parented to a primitive - still noticeable, especially when numbers start from hundreds.
  • Entities to an entity is the least evil but still a problem.

Not an issue in a conventional Editor.

Issue with color options in entity properties

When editing the Color properties of any entity, the left-most box can't be changed by dragging left or right. The other boxes (saturation, brightness, alpha) work but dragging them causes the color to transition back to red.

Broken Env. Particles Holder

When using Env. Particles Holder for snow, the snow particles doesn't drop randomly as it should but drops at the same height

2022-01-28_21-54-49.mp4

.

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.