[Official] Technical Engine Development faq / blog

General discussions about X Rebirth.

Moderator: Moderators for English X Forum

User avatar
edqe
Posts: 73
Joined: Tue, 19. Nov 13, 15:30

Re: About memory usage

Post by edqe » Fri, 19. Dec 14, 23:19

timon37 wrote:Unfortunately it's still unfinished, but there isn't that much left and some of the todo things aren't strictly necessary.
...
We're sticking to the core-profile with version 3.x (which is roughly equivalent to dx10) as the "minimum requirement", mainly because of the open-source drivers on linux. That doesn't mean that we won't be using anything newer, it just means that we won't "require" it for the game to run.
...
As Roger mentioned because we have a very small team the plan is to completely transition to opengl also on windows. Once that's done we can start to more seriously use the new features and completely phase out the dx9 renderer.
...
I'll make a separate post about ogl/dx9-12, the difference between "using" and "seriously using" stuff, and why dx9 is a Schrödinger's cat that both is and isn't a problem at the same time;)
..
Whether we'll actually release X Rebirth with opengl on windows is an open question which depends on a bunch of factors. But it almost definitely won't happen before the linux/mac release.
...
Great post. It would be great to see OpenGL version of X Rebirth also on Windows. I guess there are no many games this size which uses OpenGL on all platforms. Egosoft is showing the way :)

Do you know how well OpenGL 4.5 + extensions and OpenGL NG are competitive against D3D12?

Mesa OpenGL 3.x and 4.x list of implemented features looks already quite promising.
http://cgit.freedesktop.org/mesa/mesa/tree/docs/GL3.txt

User avatar
BigBANGtheory
Posts: 3168
Joined: Sun, 23. Oct 05, 12:13
x4

Post by BigBANGtheory » Mon, 22. Dec 14, 15:16

Have you experimented to see how many objects and or polys the game can handle in a scene? I wonder if the larger battles need to happen in open space where stations are either on an LoD or not present at all...

User avatar
euclid
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 13291
Joined: Sun, 15. Feb 04, 20:12
x4

Post by euclid » Mon, 22. Dec 14, 23:19

CBJ wrote: .....*snip*..... clearly what is needed is better accessibility to the existing Lua and Anark tools, so that modders can work on it in the same way that our own UI developers do it.
CBJ for president :D

Cheers Euclid
"In any special doctrine of nature there can be only as much proper science as there is mathematics therein.”
- Immanuel Kant (1724-1804), Metaphysical Foundations of the Science of Nature, 4:470, 1786

Scoob
Posts: 10015
Joined: Thu, 27. Feb 03, 22:28
x4

Post by Scoob » Wed, 24. Dec 14, 14:53

Hi,

Thanks for this thread :)

May I ask a game functionality question?

Some may have noticed that in a few of my posts I comment on the lack of remote Zone visibility when player assets are present - i.e. the player can usually only see PLAYER owned ships + all stations. I think enabling this would add HUGELY to the game, especially when the player has assets in many Zones.

I've noticed a couple of times now - most recently with a freshly purchased CV - that every so often one of our ships WILL give us full NPC ship visibility of remote Zones. I've had it also after capturing a ship and leaving the Zone, the freshly captured ship has allowed me to view NPC ships in the Zone remotely.

So, we can see that the engine appears to support such visibility, though we're not sure why it's happening at the moment.

Would you be able to comment on this? I know nothing is guaranteed for version x.x or anything, I'd just be interested in your thoughts on the whole "Remote Zone Visibility" issue in regard being able to see NPC ships if a player asset is present.

Cheers & Happy Christmas :)

Scoob.

User avatar
edqe
Posts: 73
Joined: Tue, 19. Nov 13, 15:30

Post by edqe » Tue, 30. Dec 14, 08:30

Sorry, a bit off-topic ... but anyway.

Neil Trevett from NVIDIA kept a presentation about the state of OpenGL:
Whats Next in Graphics APIs (SIGGRAPH Asia Dec14)

AramDol
Posts: 25
Joined: Tue, 23. Jul 13, 18:47
x4

Post by AramDol » Sat, 10. Jan 15, 07:52

QtCreator is the IDE I'd be giving the MSVC familiar folks to play with. It has debugging that works almost identical to MSVC. Despite the Qt part of the name, it will debug anything that GDB can get at, no need to use Qt at all.


Has Oculus support been in your minds with the OpenGL rendering? :)

timon37
EGOSOFT
EGOSOFT
Posts: 485
Joined: Fri, 14. Dec 12, 11:02
x4

Post by timon37 » Mon, 12. Jan 15, 09:49

@AramDol
Yeah I'm actually using qtcreator right now. Honestly it's not that great, though imho all IDEs are meh.

We do have a dk2 and we want to support VR since it's a really good fit for a space-sim.
The main thing stopping us right now is performance. For VR you really need consistently high fps (120-140) otherwise you'll get sick quickly.

Technically we only need 120 on the render thread and the move thread can stay at 60.
Which helps a lot since as I said before, the logic is the main bottleneck, also it's easier to scale graphics down/up.
But that's still a non-trivial jump from where we are.

P.S. @everyone
Sorry for the lack of posts I promised, but the more work goes on the less talking happens;p At work there's work, at home I've got my projects, thus it takes a while to find a crack in between.

Skeeter
Posts: 3674
Joined: Thu, 9. Jan 03, 19:47
x3

Post by Skeeter » Mon, 12. Jan 15, 10:39

It would be nice to see xrebirth have multiple api choices that were selectable in game. I remember homeworld 1 had the choice of d3d or opengl. Opengl was faster but d3d had nicer nav lights. Some other modern games also allow different APIs I believe also.

Also I don't understand why rebirth was DX 9 and not dx11 as its backward compatible and u could lock dx11 specific features to a ultra preset like most games do and lower profiles allowed for lower DX based machines.

I would love it if someone from a devs perspective could reply why dx9 for a 2014 game especially when u see star citizen and elite both going for dx11 as there all space games too and look so much nicer in some areas.
[ external image ]
7600x cpu 5.4ghz 32gb DDR5 5600mhz 6700XT 32" 1440p mon

CBJ
EGOSOFT
EGOSOFT
Posts: 51906
Joined: Tue, 29. Apr 03, 00:56
x4

Post by CBJ » Mon, 12. Jan 15, 11:11

The problem with your DX9 vs DX11 question, Skeeter, is that it doesn't take into account the timeline. We did not sit down and "choose DX9 for a 2014 game" (though actually it was released in 2013). We started development back in about 2006, at which point DX9 was the only rational option. Any decision to switch to DX11 subsequently would have had to have been made on the basis of whether it was a good idea to change the project over to DX11. This was quite a simple decision to make: the delays it would have caused to the project as a whole were quite simply not a viable option, and even if they had been the gains we would have achieved would not have made it worth the effort.

cyberfuzzie
Posts: 134
Joined: Tue, 21. Nov 06, 13:58
x4

Post by cyberfuzzie » Mon, 12. Jan 15, 20:41

Many thanks for the overview, nice to see work on a linux version is in progress, can't wait to try it out.

Regarding UI modding:
Having already created a mod containing some UI code in my opinion the things that would help modders most are:
- Complete list of functions that are exported from C++ (or whatever the correct technical term is), with named parameters and ideally a short description what it does.
- Source code for _some_ of the games existing UI code (mainly the FullscreenHelper) or again an API description of these.
Those two points were the biggest problems in developing UI components.
An editor isn't really necessary, Notepad++ does a decent job and the game runs just fine with plain lua files, no compilation necessary, although I haven't checked for any impact on performance.

User avatar
ezra-r
Posts: 3420
Joined: Fri, 14. Oct 05, 21:04
x4

Post by ezra-r » Mon, 12. Jan 15, 21:10

@timon37

First, I'd like to re-thank you for the feedback back in december about how the porting for Linux had already started, despite the speed of the results, or even if it's just triangles rendering, it is great news (and I had some good laughs with your comments about releasing the game just rendering triangles in opengl)

--

Now an illiterate question about the "sound engine" porting of the game.

Do you use OpenAL? (if there is anything else I don't really know) and once the sound engine is ported to Linux, do we get 5.1/7.1 sound out of it? and If we do, does it matter at all or Rebirth sound is just stereo? I found this helping a lot in the inmersion for flybies and engine sounds when flying around stations, or close to a destroyer shooting, etc..

Excuse If I ask silly things, I don't really have clue about developing this but I am really curious on what the outcome will be in the aspect.

Thanks a huge lot for the updates whenever you can.

fooka
Posts: 14
Joined: Sat, 13. Jan 07, 00:41

Post by fooka » Tue, 13. Jan 15, 08:16

wow. I can't believe this thread. I am going to throw my monies at you for your X-Rebirth for Linux, thank you for this whole thread. I am so happy, i can't even think straight.

thank you in advance.

-m
-m

Recycle or die.

User avatar
wysiwyg
Posts: 585
Joined: Thu, 26. Feb 04, 00:08
x4

Post by wysiwyg » Tue, 13. Jan 15, 08:54

cyberfuzzie wrote:Many thanks for the overview, nice to see work on a linux version is in progress, can't wait to try it out.

Regarding UI modding:
Having already created a mod containing some UI code in my opinion the things that would help modders most are:
- Complete list of functions that are exported from C++ (or whatever the correct technical term is), with named parameters and ideally a short description what it does.
- Source code for _some_ of the games existing UI code (mainly the FullscreenHelper) or again an API description of these.
Those two points were the biggest problems in developing UI components.
An editor isn't really necessary, Notepad++ does a decent job and the game runs just fine with plain lua files, no compilation necessary, although I haven't checked for any impact on performance.
+1

The standard LuaJIT compiler works just fine for converting lua back to bytecode as far as Ive been able to ascertain so far. As above, no need for any fancy bespoke editor - just some basic sound documentation for exported functions and 'helper' code.

Actually arc_ did extract some of the exported functions many moons ago here The main problem with this list is that it's not intuitive what some of the function arguments and return values actually mean, particularly given that Lua functions often can have variable argument lists - '...' It's fairly obvious what GetComponentData(object, property<...>) does but it's not immediately apparent what the property list is (or can be). Some properties from the XML code seem to work, some don't?

timon37
EGOSOFT
EGOSOFT
Posts: 485
Joined: Fri, 14. Dec 12, 11:02
x4

Post by timon37 » Tue, 13. Jan 15, 15:06

We're using OpenAL of course (http://openal-soft.org to be precise). The good news is that I've done that quite a while ago on windows. It'll need some updating and it doesn't produce the exact same output as XAudio2, but the bulk of work is already done.

Regarding surround, honestly I don't know yet;p I never had it so I never could test. Theoretically OpenAL should handle that on it's own (I just added a "todo" to test that;).
If you have other games using OpenAL (e.g. X3) and they work with surround on linux for you then it should be fine for Rebirth as well.

pete910
Posts: 8
Joined: Sun, 10. May 09, 16:18

Post by pete910 » Wed, 14. Jan 15, 00:47

Nice to see it's been ported, I had pretty much given up on it coming to *nix

Nice surprise when I read you were porting it :D

Spent many a hour on the previous X3's. Have to confess though X3:R is still my favourite :oops:

Darlandra
Posts: 48
Joined: Wed, 22. Oct 08, 02:51
x4

Post by Darlandra » Fri, 16. Jan 15, 17:39

Skeeter wrote:It would be nice to see xrebirth have multiple api choices that were selectable in game. I remember homeworld 1 had the choice of d3d or opengl. Opengl was faster but d3d had nicer nav lights. Some other modern games also allow different APIs I believe also.

Also I don't understand why rebirth was DX 9 and not dx11 as its backward compatible and u could lock dx11 specific features to a ultra preset like most games do and lower profiles allowed for lower DX based machines.

I would love it if someone from a devs perspective could reply why dx9 for a 2014 game especially when u see star citizen and elite both going for dx11 as there all space games too and look so much nicer in some areas.
Im currently working with a DK2 myself, and you're definitely correct regarding the high FPS (I made a coworker throw up when I insisted he keep trying a project I was working on for as long as possible...luckily he missed the keyboard)

The big issue I've seen with DK2 is resolution and text. Even Elite which I fired up for a peek had serious issues regarding reading text. That alone would make developing hard for this game just because in X you have to READ so much relatively speaking.

The real question I have is: The best uses of VR will come in the walking in stations, moving in the cockpit, and over course looking AROUND while flying. This means head tracking, which at the moment has yet to be effectively (IMHO) implemented in the X games. Is there any current effort/goal to utilize head tracking in the "relative" future, be it TrackIR or OR?

User avatar
Eriru Drourojj
Posts: 98
Joined: Sat, 29. Oct 05, 11:56
x4

Post by Eriru Drourojj » Tue, 20. Jan 15, 04:42

Will controller driver/support for example xbox one controller be coded into the game for the ports? At the speed valve is going timon will have ported the game to OS X and linux before the steam controller is ready.
Ever since man first left his cave and met a stranger with a different language and a new way of looking at things, the human race has had a dream, to kill him so we don't have to learn his language or his new way of looking at things!!! - Zap Brannigan

timon37
EGOSOFT
EGOSOFT
Posts: 485
Joined: Fri, 14. Dec 12, 11:02
x4

Post by timon37 » Wed, 21. Jan 15, 10:03

@Eriru Drourojj

Well we're gonna use SDL2, so whatever works with it should be fine.
Though I haven't looked at that yet, so not sure how many problems I'll encounter. Any hacks for e.g. "modifier buttons" tend to get in the way.

I'll try to provide an automatic preset for the xbox controller and a "generic joystick", for anything else you'll probably have to remap some buttons/axes.

As for the steam-controller, honestly I haven't thought about it at all yet, it probably isn't even a task for me;p

User avatar
edqe
Posts: 73
Joined: Tue, 19. Nov 13, 15:30

Post by edqe » Thu, 22. Jan 15, 10:26

edqe wrote:Neil Trevett from NVIDIA kept a presentation about the state of OpenGL:
Whats Next in Graphics APIs (SIGGRAPH Asia Dec14)
Source code is now online: https://github.com/nvpro-samples

Additional to just source code they have very nice explanations about the performance etc.

UniTrader
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 14571
Joined: Sun, 20. Nov 05, 22:45
x4

Post by UniTrader » Thu, 22. Jan 15, 14:33

timon37 wrote:I'll try to provide an automatic preset for the xbox controller and a "generic joystick", for anything else you'll probably have to remap some buttons/axes.
can i ask for a PS3/4 Controler Profile? i would help with that of course ;)
(PS3-Controller works out-of-the-Box with bluez5, in fact it was far too simple to get it to work.. just plug it in via USB and its paired for Bluetooth when bluez runs in BG ^^ no need to enter any commands ^^)
i prefer that one over the XBox controller because i dont need a seperate dongle on my lappy
if not stated otherwise everything i post is licensed under WTFPL

Ich mache keine S&M-Auftragsarbeiten, aber wenn es fragen gibt wie man etwas umsetzen kann helfe ich gerne weiter ;)

I wont do Script&Mod Request work, but if there are questions how to do something i will GLaDly help ;)

Post Reply

Return to “X Rebirth Universe”