Regalis11 / scpcb

SCP - Containment Breach
366 stars 106 forks source link

Engine migration? #80

Open kokole opened 7 years ago

kokole commented 7 years ago

I know an engine migration at this point could be a difficult choice, but I think that this game should be developed on something that is continuously being improved like UE4 or Unity.

I'm also positive that the number of bugs (like access vilations, etc.) will gradually decrease after the initial migration.

Regalis11 commented 7 years ago

I agree, but I'm not actively developing the game anymore and currently have no time or interest in remaking it on another engine. However, there is a Unity remake in the works, you might want to check it out: http://undertowgames.com/forum/viewtopic.php?f=3&t=5553

petershh commented 7 years ago

I suggest creating a new branch for new engine, so anyone can help creating a remake.

lkobot commented 7 years ago

Idea is good. But what about users and user made content? Actually SCP:CB remembered as easy editable indie-horror. All of current modding and developer team trained to work with blitz language. It's hard to imagine how users can mod it. So it's need to add "plugin" or "mod" system into the game, as well as "resource packs" system.

Regalis11 commented 7 years ago

I don't see why switching to something like Unity or UE would make the game harder to mod. I'd argue that the game is not very easy to mod at the moment - doing anything more than simple asset swaps requires you to learn an obscure and outdated engine/language and figure out how the mess that is the game's code works.

Even if no dedicated modding tools were made for a Unity/UE4 port, simply releasing the project as open source would already make it much easier to mod than the current game. The modders would be able to use an easy visual editor and a common, modern programming language (or a visual scripting tool if Blueprints or PlayMaker were used), and have access to an enormous amount of tutorials and documentation to help them get started.

SakuraUO commented 7 years ago

Also, I would like to point out, if this would be ported over to a different engine, people like me would not be able to play it. For example, this game is meant to be played on almost the shittiest PCs. And, since my PC is shit, making it with enhanced graphics, and improved lighting and so on, it would be very difficult for me to play.

Dell Latitude E6410 Laptop Windows XP (32-bit) 4GB RAM i5 Processor Integrated Graphics

Hence, migrating this project would not be good for people like me, with crappy PCs.

r1bnc commented 6 years ago

the blitz3d is an old engine but I still cannot play it on my old PC without a PCI video card(intel graphics). There are a lot of crashes (GL_OUT_OF_MEMORY even if there are lots of memory). Since this game is open source we just need someone to start migrating it one piece at a time. You should (if anyone will try to migrate the game to another engine) the Godot Game Engine is a cross platform engine so you just write codes then deploy everywhere (Windows, Linux, Android, iOS etc.) the engine is also open source unlike Unity and UE4 which are proprietary engines that may also be bugged. Being open source is like being transparent.

VaneBrain commented 6 years ago

That's not that easy to do. It is better to update the engine itself

CorneliusCornbread commented 6 years ago

@SakuraUO Actually the Unity port runs better with better graphics. For as shit as a reputation the Unity engine has it's a great engine.

r1bnc commented 6 years ago

@VaneBrain what do you mean "to update the engine itself"? the blitz3d engine is discontinued and buggy plus only for Windows. The Unity/UE4 engine has royalties and is not free and open source software. there are other engines that does not have royalties like the Godot Game Engine it is Free and Open Source (MIT licensed) which almost matches the games license (CC BY-SA) and is cross platform and a python like language. My PC cannot even play the blitz3d and Unity port since it is a ancient machine and does not have a required opengl version.

Gredys commented 6 years ago

@gr01d - Unity/UE4 is free, utill u making a lot money from them. So dunno why we need to look at "Godot Game Engine". And why the hell we need "open source?")

Unity3D has poor reputation, but it still the most easiest engine with huge assets base.

P.S. Guys, we are living in 2k18 now. Having basic pc (low price one) will be enought to run anything, including scpcb and any unity3d game builded with poor graphics settings.

r1bnc commented 6 years ago

@Gredys the game is licensed as CC BY-SA ( it is also open source that is why many people can contribute to the development of the game, free and open source software is good thing because they respect your freedom (to use,to modify, to study,to redistribute your modifications) and there are these news about global surveillance so it is better to support open source than proprietary, unity and ue4 game engines are free (with caveats), but why will you choose free (proprietary, just because of their resources or ease of use? there are lots of resources in godot too if you just know where to look) if there are free and open source software (free as in freedom/free speech not as in "free beer"). The game cannot be commercialized because the author of the real image of SCP-173 prohibits the commercial use of his work.

Gredys commented 6 years ago

@gr01d - in same way we don't need to edit any sources of Unity3D/UE4 to make game better. They already have anything needed to make a game. And if u need to add something new (content or extension) - u can do it with scripting/resources, like in any other game engine.

Scripts/resources made in both IDE are under same license as game (i.e. it wont change from current), that means u can upload sources to github and continue working with others.

I dont see any problem using Unity3D or UE4.

ENDSHN commented 6 years ago

@Gredys I myself wouldn't see a big problem on using UE4 or Unity3D. I myself want to learn how to use Unreal Engine 4 but currently, I wouldn't really be ready to port SCP:CB to it. Besides, there is a Unity version out there, so I'm sure that this version would also be out faster than a newly ported version we do (porting a game to another game engine is also not the most easy thing to do, especially if the programming languages are different from each other or if the engine we want the game to port to doesn't accept model files like .b3d (or any other file extensions in general)). Another aspect is that we don't have much time to port the game to another engine, as we also have other stuff to do like school or we also work on other projects as well. I would say that the Unity version so far is in a pretty good state and it might actually be fully developed (unlike the other attempted ports in the past that have been discontinued after some time), so there wouldn't be a point on porting the game to another engine if somebody else at that time already does it.

baptx commented 6 years ago

Another open source and cross-platform game engine you could consider is Irrlicht. It also has the advantage to use the same model / animations b3d files (that's how I heard of this game). The scripting of Irrlicht is entirely done in C++ so it could have some performance advantage compared to Godot which uses an interpreted scripting language by default.

When I tested the Irrlicht examples 21.Quake3Explorer and 09.Meshviewer (with OpenGL renderer in 1920x1080 fullscreen resolution), it was really fast and lightweight on my Linux XPS 13 Ultrabook, compared to Godot examples which where using all my CPU resources and heating my laptop so much that it was freezing / unplayable and the fan was always on (I have an Intel HD 4000 graphic card which has the advantage to use open source drivers by default, so you may not experience this problem depending on your configuration).

Choosing an open source game engine like Godot or Irrlicht is important for an open source project, some people don't use any proprietary software on their computer to prevent spyware and there is also the advantage to be able to edit / patch the game engine if necessary and port it to new mobile platforms like it is done with Irrlicht on SailfishOS: https://github.com/savegame/sailfish-irrlicht

Jummit commented 5 years ago

I want to contribute to the ported version, but I am on Linux and unity wouldn't work for me. I am "experienced" with the Godot engine, and would be happy to contribute to the project if it used Godot.

ENDSHN commented 5 years ago

@Jummit Currently noone makes a port for the game actually (except the Unity version). Instead, there are developers who make a 1.4.0 version of SCP:CB using a custom made engine based on DirectX 11. However, this version will take quite some time until it is fully developed (don't expect this version to come out this year, it may even have a release date over 2019).

Jummit commented 5 years ago

Why did they choose to use a custom made engine? Wouldn't using a existing engine make it easier for others to contribute?

ENDSHN commented 5 years ago

@Jummit Well, I think they chose to make it like this because it is easier that way to implement the components and features required for the game, like the sound library or other parts of code such as the collision detection. So they basically choose the things they think is the best and make the engine and implement the features required for the game basically. I know that the engine is written in C++, so for people who know the programming language, it may not be that hard to implement certain things (altough they would need to look at the code first to understand how it is structured and such).

juanjp600 commented 5 years ago

Using a custom engine mainly has to do with having a relatively easy path to convert all the assets and having more control over the tech we're using. It's not really easier than just using an existing modern engine, but given that we're doing almost a 1:1 conversion of the codebase, it's not that much harder either since we can make the new engine's API match Blitz3D pretty closely.

baptx commented 5 years ago

Using a custom game engine could be a good idea since you have control over everything and you don't rely on a game engine that may be unsupported in the future (e.g. Blender Game Engine has been removed from the latest Blender version and Irrlicht is not in active development anymore). But it would be better to make a custom game engine using OpenGL (version 3 would be fine and supports more hardware than Vulkan) instead of DirectX, this way the game can be cross-platform and not Windows-only.

juanjp600 commented 5 years ago

From my experience, OpenGL's performance and reliability on Windows is not perfect. It's probably really good right now, but it'll never be on par with DirectX's support for obvious reasons. That doesn't mean an OpenGL renderer is out of the question, I just won't be prioritizing implementing that myself for the time being.

ghost commented 2 years ago

(update on the Unity fork:

Although the game has been canceled as of 2021 (due to health issues & other reasons), you can still download and play it from here. The site will remain up for the foreseeable future as an archive of the game, and as a thanks to all the people who supported it over the years.
--https://mega.nz/file/x09ADToT#l2HVu2vhXW6AfFPQ6rYGbs2UzWC3MRjguAlzya1jRP4)