Changing BC from Python to C++, a fantasy or a real possibility? -1 reply

  • 1
  • 2

Please wait...

[RNGD]_Dead_Meat

I don't spend enough time here

50 XP

10th February 2004

0 Uploads

26 Posts

0 Threads

#1 14 years ago

ok... wot really causes the instability that BC is notoriously known for? could it be the over all gaming engine? or is it something else? im just a bit curious. lol i posted this here because it refers to the workings of BC. thanx lol




MadJohn

Helm Flunky............Engage!

50 XP

18th April 2003

0 Uploads

134 Posts

0 Threads

#2 14 years ago

Good question, not so simple answer...

The game uses a version of the NetImmerse game engine, however the full capabilities of said engine are not implimented in BC. This is due to the released game containing so much python script, when the game engine is C++ based. This is the problem with BC, The game engine is expecting a C++ command, but because the game is written in python, it has to convert the python into C++ using the app file. My suspision is the suits showed up after 3 months and told the programmers that it had to be ready by the end of the week, so they threw together what they had and thats what we got. I'm sure they intended to release a sequel, but then they lost the licence so we never saw what they origionally intended by the programmers. If you have any tools that allow you to make a log of the program calls, then check out the load order of the files. You will see that for every file in python that gets used, the game looks first for a C++ file ( a.ddl in fact). So for example when the game loads the files for multiplayer it first looks for a .dll, then a python development file .pyd, then a .py, and then a .pyc.

Hope this is some help




elminster

Bridge Commander Master HPer

50 XP

26th October 2002

0 Uploads

1,448 Posts

0 Threads

#3 14 years ago

So in theory the whole lot could be converted over to C++? Obvioulsy thats a helluva lot of code, but since that's what the engine's designed for we should get a faster and more stable game with more features.

Would it be possible to develop new mods in C++ to sit alongside the Python scripts?




shimano55

AoE3 Files Vice *****

50 XP

23rd November 2003

0 Uploads

1,462 Posts

0 Threads

#4 14 years ago

hmmm....since the vast majority of the game is in Python...it might be hard to use some of the variable and functions defined in the python with C++. I am pretty sure that you would have to re-define all the variables/functions over again in C++, and that could be VERY difficult to do. Desining in Python would make a lot more sense becasue that's how the game is written.




MadJohn

Helm Flunky............Engage!

50 XP

18th April 2003

0 Uploads

134 Posts

0 Threads

#5 14 years ago

elminsterSo in theory the whole lot could be converted over to C++? Obvioulsy thats a helluva lot of code, but since that's what the engine's designed for we should get a faster and more stable game with more features. [/QUOTE]

I can't see why not, tho I'm not that far into it yet, but the game engine is supposed to support far more than we currently get, particle systems amongst other things. Imagine nebulas that weren't just a screen effect, but looked and behaved like real nebulas with moving clouds of various colors. Or for that matter a swirling cloud around a wormhole. Now I like messing around in 3dmax and can produce something (on a good day) that looks like a screenshot from an episode , but am dissapointed by what can be exported to the game. Things like moving parts should be standard, as the game engine already articulates the character models, so why not the ship models ? Re-writing the game in C++ would be quicker and could dispense with the confusing elements in python, such as the constant loading and unloading of models. Now I'm not having a go at python, but it's like playing a game with an emulator, why have the extra resorces being used translating back and forth when it's not necessary?

[QUOTE=elminster]Would it be possible to develop new mods in C++ to sit alongside the Python scripts?

Difficult but not impossible, but why not just incorporate the best mod ideas into the program itself, with pre-game or in-game configuration screens to allow you to customise things? Complexity of the technology, is a big part of the Trek universe and is IMHO one of the BIGEST failings of the game.

"What do you mean we can't remodulate sheilds.........!"

Re-writing in C++ would have the advantage that by starting from scratch you could address the 'serious' flaws and shortcommings in the game. The problem is, as i said before the app.py/c file, this is the translator between the game engine and the python script used by the game. The app file dosen't address all the functions of the game engine, particle systems, moving parts, animated textures, better resolution/effects for suns/planets ect.. and so limits the functionality of the game engine.

The biggest problem however in re-writing the game in C++, would be in preserving compatability with a Stock(ie python based) game, theres no point in just re-writing the game if nobody can join unless they have the upgrade. It should still allow someone with a stock game to participate in games with those using the new stuff, albeit in a limited Stock game fashion.




shimano55

AoE3 Files Vice *****

50 XP

23rd November 2003

0 Uploads

1,462 Posts

0 Threads

#6 14 years ago

I suppose that it could work...but to rewrite the game would be against the license agreement...becasue some file types associated with the engine of the game are not allowed to be editied...this is said in the agreement




MadJohn

Helm Flunky............Engage!

50 XP

18th April 2003

0 Uploads

134 Posts

0 Threads

#7 14 years ago

By that they mean the stbc.exe file (which containes licenced 3rd party software, NetImerse and Bink)and any of the files in data/miles/ (same reason) the rest are all in python and they have no enforcable rights concerning what the end user does with such product after purchase. As the licence is included on the disk, which is sealed in a box, you (the consumer) have no oppertunity to view the licence untill after you have bought and installed it, (same situation with microsoft, which I beleve have had rulings against them for just this sort of thing) this type of licence aggrement is unenforcable in a court of law, anywhere. Also the licence says nothing about adding code in C, C++, python or any other language, only about changing files that never showed up in the game anyway (the missing Dll's). They chose to write a game in Public Licence Software, thats there lookout, and had they bothered to do the tytle justice then WE wouldn't have to spend so much time and effort sorting it out. I bought this game for 2 reasons first bcus it had StarTrek on the front, and secondly bcus it had Multiplayer on the back. I would go on but this could quite easly decend into a rant, and this is the wrong place for that. ;) Basicaly anything that is implimented through python is fair game! Including the app file.




shimano55

AoE3 Files Vice *****

50 XP

23rd November 2003

0 Uploads

1,462 Posts

0 Threads

#8 14 years ago

I can move it to the Rants if ya want. Just ask.

Really I wasn't aware o the microsoft/ Activision licesense agreement problem. Thanks for bringing me up to date ;). I don't know C++, but I bet someone who did could work on something like that...




MadJohn

Helm Flunky............Engage!

50 XP

18th April 2003

0 Uploads

134 Posts

0 Threads

#9 14 years ago

lol Hmmm... naw ! I doubt there is enough storage on the planet to deal with the Rants I come out with (ask my girlfriend, who regularly is raotfl at some of them).

But if anybody who writes C,C++ is interested let me know, as the last time I wrote anything was 25 years ago, and that was in basic (a dice based, Judge Dread RPG), on an Apple II( most of you will only be familiar with that machine from seeing it in a computer museum(or a skip)). The big problim is going to be working out 'which' version of the NetImerse engine they licenced, as this will have a direct bearing on what the game can cope with. Anybody intrested might have a look at Relics site http://www.relic.com/ where you can find further info on it.




elminster

Bridge Commander Master HPer

50 XP

26th October 2002

0 Uploads

1,448 Posts

0 Threads

#10 14 years ago

So in theory, and assuming someone skilled in C++ was interested, the whole thing could be re-written. Using something as simple as a seperate install for C++ and Python versions of the game. It should allow the use of C libararies and comunity developed functions for other games that will translate directly. Now I'm no scripting expert, and I realise that this would be a big job, but how long would it take to translate the base game python code into C++? Much of the extra scipting of the mod comunnity could probably by integrated a lot more easily. Edit: I've changed the thread title as this has drifted off topic somewhat.




  • 1
  • 2