• Register
  • TOS
  • Privacy
  • @NeoGAF

angular graphics
Banned
(01-07-2013, 12:31 PM)
angular graphics's Avatar
He's nvidia's FXAA/TXAA creator. He also has an account here :P

http://timothylottes.blogspot.com/20...c-getting.html

If this happens, and I like the GPU, I'm definitely building for this platform! As someone developing a game on Linux first and later porting back to Windows, I can say first hand that Linux is an awesome platform for games, here are some of the highlights for me,

(1.) Low latency direct access to input via /dev/input/event*.
(2.) Nothing running in the background, game gets the full machine.
(3.) Awesome GL drivers on NVIDIA at least (and no Windows WDDM latency).

As someone who is not enslaved to Visual Studio or the complexity nightmare of a massive C++ based project or engine, I've got 1 second compile times on Linux with gcc and optimization on with my C based engine. This is part way possible because my engine uses no headers, because in Linux, it was trivial to just write my own headers in my source for any external interface I needed (all of which are provided by simple Linux system calls, with the exception of OpenGL). My development iteration time on Linux is as fast as a key stroke to save my source in the text editor, which automatically triggers a background compile, and instant in-game reload of a shared library binary without exiting the game. I don't use an IDE or any debugger, it is just too fast to simply modify the code while it is running to try stuff and print stuff on the screen if necessary.

He's talked about his game before: http://timothylottes.blogspot.com/20...hy-gl-now.html

I'm using GL instead of DX for my game (personal independent project), and here is why.

[...]

I'm not supporting MacOSX, but I'm planning on supporting a bootable "Steam Stick" USB2/USB3 thumb drive Linux image which runs Steam and can enable MacOSX users to run the game on their hardware.

He wrote that in November. Funny, that the SteamBox is going to be something like that. I wonder if he had been in talks with Valve. Or if he's going to be now :P

DX11.1 situation is now the same thing. DX11.1 limits important updates like UAV's in every pipeline stage, and constant buffers as regions of other buffers. Things which can easily be done in GL on DX11 cards (don't need DX11.1). This move will limit what game developers can do, and it will negatively impact engine tech. My game for instance requires the features I just mentioned. To put it bluntly, when I'm finished, it will be obvious what you are gaining in visual quality, and gameplay, when a developer goes nuts and pushes a modern PC GPU to the limit as enabled by an API like GL4.3 which exposes what the hardware can do.

Hell yeah!
Last edited by angular graphics; 01-24-2013 at 04:40 PM.
Accoun
Member
(01-07-2013, 12:42 PM)
Accoun's Avatar
So basically Linux itself makes the games run faster?
(partly because of OpenGL)

Nice.
Last edited by Accoun; 01-07-2013 at 12:44 PM.
panda21
Member
(01-07-2013, 12:54 PM)
panda21's Avatar

(2.) Nothing running in the background, game gets the full machine

i don't quite get what he means by this, I'm pretty sure its unpossible not to have other stuff running in the background on a modern linux machine?
Nibel
Member
(01-07-2013, 12:57 PM)
Nibel's Avatar

(2.) Nothing running in the background, game gets the full machine.

Is this really important considering the powerful machines we've got today?
redlemon
Member
(01-07-2013, 12:59 PM)

Originally Posted by Nibel

Is this really important considering the powerful machines we've got today?

It could be for a potential steambox since it would let them get away with cheaper components presumably.
Horse Armour
Member
(01-07-2013, 01:00 PM)

Originally Posted by Nibel

Is this really important considering the powerful machines we've got today?

Seeing as Windows barely takes any CPU time and PCs come with at least 8GB of RAM, I doubt this is all that much of an advantage.
Cynar
Member
(01-07-2013, 01:00 PM)
Cynar's Avatar

Originally Posted by panda21

i don't quite get what he means by this, I'm pretty sure its unpossible not to have other stuff running in the background on a modern linux machine?

If it was steambox, valve could have it tailored to have less running in the background than other distro's though.
ilnadmy
Member
(01-07-2013, 01:01 PM)
ilnadmy's Avatar
While this is probably good news, I have no idea who Timothy Lottes is and I'm sure the mainstream gamer will be more interested to hear whether or not the big PC developers are going to be on board.

Now if what he's saying is true (Linux games will run faster than Windows games), then that is indeed good news, but is it worth it for large developers to expend the effort to build games for Linux instead of Windows, where the bulk of PC gamers reside? I don't know. Developers will probably not want to antagonize Valve though, so there is some room for optimism.
More Fun To Compute
Member
(01-07-2013, 01:07 PM)
More Fun To Compute's Avatar
This sort of tech talk excites me much more than keyboards that can be magnetically attached to touchscreen pad devices. Aw yeah, forget C++, let's see those one second compile times baby.
NemesisPrime
Lil' Billy TryHard
(01-07-2013, 01:08 PM)
NemesisPrime's Avatar

Originally Posted by Nibel

Is this really important considering the powerful machines we've got today?

It also is a bullshit argument TBH.
angular graphics
Banned
(01-07-2013, 01:14 PM)
angular graphics's Avatar

Originally Posted by Nibel

Is this really important considering the powerful machines we've got today?

Don't plenty of UE3 games horribly stutter when they stream the next area due to perhaps issues like that while the same game on the consoles has no such issues? Eg Batman: Arkham City.

Linux's lower level access and lighter environment could help.
M3d10n
Member
(01-07-2013, 01:14 PM)
M3d10n's Avatar
I'm not sure this guy is a good sample of most developers. He's too hardcore:

- Writes his core in pure C (no C++)
- Uses no headers
- Doesn't use a debugger
- Uses a plain text editor

It surely works wonders when you have a team of programmers and you're writing a reasonably complex 3D game.
Last edited by M3d10n; 01-07-2013 at 01:16 PM.
dragonelite
Member
(01-07-2013, 01:25 PM)
dragonelite's Avatar

Originally Posted by angular graphics

Don't plenty of UE3 games horribly stutter when they stream the next area due to perhaps issues like that while the same game on the consoles has no such issues? Eg Batman: Arkham City.

Linux's lower level access and lighter environment could help.

Is the difference so significant then?
FoxSpirit
(01-07-2013, 01:25 PM)
FoxSpirit's Avatar
Short question: what makes a C++ project so much more convoluted than a simple C one?? I thought it was mainly about a leaner sytax and shorter code in ++.
Also, no debugger?? You sir are a god amongst the coding dust of the earth.
Randdalf
Member
(01-07-2013, 01:26 PM)
Randdalf's Avatar

Originally Posted by M3d10n

I'm not sure this guy is a good sample of most developers. He's too hardcore:

- Writes his core in pure C (no C++)
- Uses no headers
- Doesn't use a debugger
- Uses a plain text editor

It surely works wonders when you have a team of programmers and you're writing a reasonably complex 3D game.

By this I think he means no external libraries, it's pretty much impossible to write really good large scale C/C++ without using header files.

Originally Posted by FoxSpirit

Short question: what makes a C++ project so much more convoluted than a simple C one?? I thought it was mainly about a leaner sytax and shorter code in ++.
Also, no debugger?? You sir are a god amongst the coding dust of the earth.

Quake 3 was written in C.
Massa
Member
(01-07-2013, 01:30 PM)
Massa's Avatar

Originally Posted by panda21

i don't quite get what he means by this, I'm pretty sure its unpossible not to have other stuff running in the background on a modern linux machine?

He's making a customized Linux stick to run his game so he can put just the bare essentials to get the game running. He could even customize the kernel so it behaves a lot closer to a console in terms of process scheduling and memory management.
mugurumakensei
Member
(01-07-2013, 01:34 PM)
mugurumakensei's Avatar

Originally Posted by M3d10n

I'm not sure this guy is a good sample of most developers. He's too hardcore:

- Writes his core in pure C (no C++)
- Uses no headers
- Doesn't use a debugger
- Uses a plain text editor

It surely works wonders when you have a team of programmers and you're writing a reasonably complex 3D game.

-The core often is in pure C for most games. C++ is mainly relegated to your game objects like Player and Enemy types as C++ is a significant overhead given the additional lookup time necessary for accessing member functions.
-Plain text editor is far more common for development than what you think. Modify vimrc and you can have it compile, run tests, and run the program at save. Regex support is much better in vim than almost any IDE I've worked with so real easy to find and replace even on complex patterns.
More Fun To Compute
Member
(01-07-2013, 01:38 PM)
More Fun To Compute's Avatar

Originally Posted by FoxSpirit

Short question: what makes a C++ project so much more convoluted than a simple C one?? I thought it was mainly about a leaner sytax and shorter code in ++.

C++ did not simplify the syntax of C, whatever it did, it did not do that. OOP languages themselves were designed as a way of standardising and compartmentalising very large scale enterprise projects. For a small programming project OOP is like a fruit and veg stand proudly claiming to be IS0 9000 compliant.
Vaporak
Member
(01-07-2013, 01:38 PM)
Vaporak's Avatar

Originally Posted by angular graphics

Don't plenty of UE3 games horribly stutter when they stream the next area due to perhaps issues like that while the same game on the consoles has no such issues? Eg Batman: Arkham City.

Linux's lower level access and lighter environment could help.

This is one of those situations where optimization is actually really important because PC's aren't as dramatically faster than consoles when it comes to loading data from a harddrive as they are in other respects. Data management in console games gets a lot of optimization attention, but your average port to the PC just throws it on there hoping it'll work well enough.
Horsemama1956
Member
(01-07-2013, 01:44 PM)
Horsemama1956's Avatar

Originally Posted by Vaporak

This is one of those situations where optimization is actually really important because PC's aren't as dramatically faster than consoles when it comes to loading data from a harddrive as they are in other respects. Data management in console games gets a lot of optimization attention, but your average port to the PC just throws it on there hoping it'll work well enough.

That's more of an engine issue though, isn't it? I can't really recall many PC games having problems with loading textures like early UE3 games did on all platforms.
angular graphics
Banned
(01-07-2013, 01:46 PM)
angular graphics's Avatar

Originally Posted by Horsemama1956

That's more of an engine issue though, isn't it? I can't really recall many PC games having problems with loading textures like early UE3 games did on all platforms.

I wasn't talking about textures. That's unique to UE3. Stuttering during streaming next area's level data is not. eg Deus Ex: Human Revolution also has it.
mugurumakensei
Member
(01-07-2013, 01:47 PM)
mugurumakensei's Avatar

Originally Posted by Horsemama1956

That's more of an engine issue though, isn't it? I can't really recall many PC games having problems with loading textures like early UE3 games did on all platforms.

Correct, it's an UE3 issue. So unless the dev wanted to spend time tackling the innards of UE3, it typically was not an issue that anyone spent time on.
Alx
Member
(01-07-2013, 01:49 PM)
Alx's Avatar

Originally Posted by M3d10n

I'm not sure this guy is a good sample of most developers. He's too hardcore:

- Writes his core in pure C (no C++)
- Uses no headers
- Doesn't use a debugger
- Uses a plain text editor

That's the most surprising element here... I'm fine with people preferring performant languages and minimalist tools, but why would you not want to use a debugger ?
TheExodu5
(01-07-2013, 01:50 PM)
TheExodu5's Avatar

(3.) Awesome GL drivers on NVIDIA at least (and no Windows WDDM latency).

This is most exciting to me.

I have 2 major issues with PC gaming:

1) Input lag with vertical sync.
2) Stuttering even with a vertical synced 60fps.

Very few developers on PC manage to avoid both of these issues entirely. I find it quite frustrating as no PC developers seem to even acknowledge these issues.
xenist
Member
(01-07-2013, 01:57 PM)
xenist's Avatar
Is this gonna be another one of those threads where random people on the internet explain why professionals that are programming actual products do not know what they are talking about?

Anyway, I was thinking about making a thread about this:

(2.) Nothing running in the background, game gets the full machine

I was actually going to ask if Linux allows for something like a "game mode" where you can dynamically offload OS modules in order to minimize footprint. Is this what he's talking about?
sub_o
Member
(01-07-2013, 02:00 PM)
sub_o's Avatar

Originally Posted by FoxSpirit

Short question: what makes a C++ project so much more convoluted than a simple C one?? I thought it was mainly about a leaner sytax and shorter code in ++.
Also, no debugger?? You sir are a god amongst the coding dust of the earth.

Actually C++ might probably inflate the lines of code for smaller projects. However, because of Object Oriented paradigm, it makes code reuse much easier, and the whole application a bit easier to understand.

Microsoft Visual Studio on the other hand, I'm still perplexed by it. Somehow it's not easy to configure project for a beginner like me, it takes time to understand the thing, unlike other IDEs.

I'd normally opt for print line to console, rather than using debugger, when it comes to small applications.
1-D_FTW
Member
(01-07-2013, 02:01 PM)
1-D_FTW's Avatar
Hmm. Maybe there's something here. I remember people posting quotes about Source 2 being user friendly for community content. If they truly do make it easier for content creation, I guess I'm warming up to the concept. Linux does seem to have its virtues.

Selfishly, I love 3D. And OpenGl games don't have stereo 3D support at the moment. So this concerns me. Then again, Nvidia seems to have abandoned the 3D initiative (like they abandon everything). And since most games are shipping broken now-a-days, and only DX 9 games can be community fixed (since DX11 forbids it), this was probably going to be an issue in the future anyways. Maybe Linux and Oculus Rift is my best bet for 3D in the future.
Dictator93
Member
(01-07-2013, 02:05 PM)
Dictator93's Avatar

Originally Posted by TheExodu5

This is most exciting to me.

I have 2 major issues with PC gaming:

1) Input lag with vertical sync.
2) Stuttering even with a vertical synced 60fps.

Very few developers on PC manage to avoid both of these issues entirely. I find it quite frustrating as no PC developers seem to even acknowledge these issues.

You can raw input your mouse at all times. Also... Vertical sync by its very definition inputs minimal input lag. It has to.

This can be sorted out though by limiting the frame rate to about 2 or 3 below the Vsync refresh rate. 118 or 58fps.

Tim lottes arguments. Namely the ones about taking the whole machine in linux and this being a big deal is really bogus. I have not had to worry about background processes or core usage in games since about 2004. I am not sure about that...
mugurumakensei
Member
(01-07-2013, 02:08 PM)
mugurumakensei's Avatar

Originally Posted by xenist


I was actually going to ask if Linux allows for something like a "game mode" where you can dynamically offload OS modules in order to minimize footprint. Is this what he's talking about?

The linux kernel is very modular. You can have as much or as little as you want running especially if you have your own custom OS on top of it.
Dictator93
Member
(01-07-2013, 02:09 PM)
Dictator93's Avatar

Originally Posted by mugurumakensei

The linux kernel is very modular. You can have as much or as little as you want running especially if you have your own custom OS on top of it.

Question though. Do modern PCs let alone modern OSs need to be shoved aside to be 0% given how powerful and RAM plentiful our machines are?

I think no.
TheExodu5
(01-07-2013, 02:11 PM)
TheExodu5's Avatar

Originally Posted by Dictator93

You can raw input your mouse at all times. Also... Vertical sync by its very definition inputs minimal input lag. It has to.

You can say that all you want, but this is not a reality.

Examples:

High vsync input lag: Super Hexagon
Low vsync input lag: Sanctum (UE3 title...not sure if it extends to all UE3 titles at the moment)
Stuttering issues at 60fps: The Witcher 2
No stuttering issues at 60fps: Assassin's Creed Brotherhood
Last edited by TheExodu5; 01-07-2013 at 02:13 PM.
mrklaw
MrArseFace
(01-07-2013, 02:12 PM)
mrklaw's Avatar
so a developer who already develops on linux first anyway might be interested in releasing a game on linux?

Wow.
Orayn
Member
(01-07-2013, 02:12 PM)
Orayn's Avatar

Originally Posted by Dictator93

Question though. Do modern PCs let alone modern OSs need to be shoved aside to be 0% given how powerful and RAM plentiful our machines are?

I think no.

I think it's less about needing to shove them aside and more about being able to guarantee a "clean room environment" for the game. I know they're more on the I/O side of things, but the Windows indexing service or an antivirus program running a scan would be two examples of background stuff that can still interfere with gaming.
More Fun To Compute
Member
(01-07-2013, 02:13 PM)
More Fun To Compute's Avatar

Originally Posted by mrklaw

so a developer who already develops on linux first anyway might be interested in releasing a game on linux?

Wow.

You are right. We should only listen to people who have no experience of game programming on Linux.
mugurumakensei
Member
(01-07-2013, 02:13 PM)
mugurumakensei's Avatar

Originally Posted by Dictator93

Question though. Do modern PCs let alone modern OSs need to be shoved aside to be 0% given how powerful and RAM plentiful our machines are?

I think no.

No, but it gets rid of the overhead of having libraries running that don't need to be.
Hatten
Member
(01-07-2013, 02:13 PM)
Hatten's Avatar
I'm all for this, but with >5% of the market I don't see any devs rushing to make or port games to Linux

I'm writing this from a Mint install and I been using Ubuntu for years, but lets get real I'm a very small minority, most gamers I know dont even bother with Linux distros, and at the last open source meetup I went to the only gamers were me and these 2 girls (which was pretty awesome but still just 3 people out of hundreds)

But I hope I'm wrong, I'm tired of dual booting
M3d10n
Member
(01-07-2013, 02:28 PM)
M3d10n's Avatar

Originally Posted by mugurumakensei

-The core often is in pure C for most games. C++ is mainly relegated to your game objects like Player and Enemy types as C++ is a significant overhead given the additional lookup time necessary for accessing member functions.

Don't use virtual functions and you'll get pretty much the same results out from a compiler. I wrote a C++ game for the DS that ran at solid 60fps and had quite a bunch of stuff going on no problem.

Originally Posted by mugurumakensei

-Plain text editor is far more common for development than what you think. Modify vimrc and you can have it compile, run tests, and run the program at save. Regex support is much better in vim than almost any IDE I've worked with so real easy to find and replace even on complex patterns.

I have coded without proper code completion back in my early years and I never want to go back to that.
mugurumakensei
Member
(01-07-2013, 02:36 PM)
mugurumakensei's Avatar

Originally Posted by M3d10n

Don't use virtual functions and you'll get pretty much the same results out from a compiler. I wrote a C++ game for the DS that ran at solid 60fps and had quite a bunch of stuff going on no problem.

This is not that valid of an anecdote. It doesn't really compare performance to another C based version.

A lot of performance intensive stuff is C. Google's V8 engine is in javascript as well as Mozilla's spidermonkey though they both have C++ wrappers.

Originally Posted by M3d10n

I have coded without proper code completion back in my early years and I never want to go back to that.

You can do code completion in VIM ( a plain text editor ).
Serra
Member
(01-07-2013, 02:37 PM)
Serra's Avatar

Originally Posted by Hatten

I'm all for this, but with >5% of the market I don't see any devs rushing to make or port games to Linux

Its kind of a dumb situation at the moment. There are alot of people who only have windows installed for games and use their preferred linux distro for everything else. If games become available on linux, they will uninstall windows.
mrklaw
MrArseFace
(01-07-2013, 02:39 PM)
mrklaw's Avatar

Originally Posted by More Fun To Compute

You are right. We should only listen to people who have no experience of game programming on Linux.

my point is that this isn't surprising in the least. Valve would need to convince windows devs to move over, and publishers to fund that move. This guy is a convert already, he doesn't need preaching to.
JohnsonUT
Member
(01-07-2013, 02:41 PM)
JohnsonUT's Avatar

Originally Posted by Alx

That's the most surprising element here... I'm fine with people preferring performant languages and minimalist tools, but why would you not want to use a debugger ?

Quite a few "famous" programmers do not use a debugger. Using a debugger comes down to preference and skill.
BlackClouds
Member
(01-07-2013, 02:57 PM)
BlackClouds's Avatar

Originally Posted by JohnsonUT

Quite a few "famous" programmers do not use a debugger. Using a debugger comes down to preference and skill.

Can you name one, or a few?
mugurumakensei
Member
(01-07-2013, 03:04 PM)
mugurumakensei's Avatar

Originally Posted by BlackClouds

Can you name one, or a few?

Linus Torvalds didnt do any debugging on the kernel.

You shouldn't really need debugging if you have proper tests.

The tests will tell you where it fails as opposed to the debugger.
More Fun To Compute
Member
(01-07-2013, 03:32 PM)
More Fun To Compute's Avatar

Originally Posted by mrklaw

my point is that this isn't surprising in the least. Valve would need to convince windows devs to move over, and publishers to fund that move. This guy is a convert already, he doesn't need preaching to.

He is saying that the game performance and development environment are very good while some were saying before that Valves efforts would suffer because of issues like these. For some people it is a surprise and why cast doubt on the value of what he is saying if you agree that it is no surprise that you can get very good performance from Linux.
MaLDo
Member
(01-07-2013, 03:38 PM)
MaLDo's Avatar
wrong thread ._.
Last edited by MaLDo; 01-07-2013 at 03:55 PM.
JohnsonUT
Member
(01-07-2013, 03:56 PM)
JohnsonUT's Avatar

Originally Posted by BlackClouds

Can you name one, or a few?

Linus Torvalds - http://lwn.net/2000/0914/a/lt-debugger.php3
Rob Pike and Brian Kernighan - http://taint.org/2007/01/08/155838a.html
Ken Thompson - http://jmprog.blogspot.com/2009/11/k...ging-with.html
alphaNoid
Banned
(01-07-2013, 03:57 PM)
alphaNoid's Avatar
I'm posting from Unbuntu right now.. and I'll believe it when I see it. People have been talking Linux for years, talking ...
dragonelite
Member
(01-07-2013, 06:15 PM)
dragonelite's Avatar

Originally Posted by alphaNoid

I'm posting from Unbuntu right now.. and I'll believe it when I see it. People have been talking Linux for years, talking ...

You would almost think it is the decade of linux.. :)
Number45
Member
(01-07-2013, 06:19 PM)
Number45's Avatar

Originally Posted by Dictator93

Question though. Do modern PCs let alone modern OSs need to be shoved aside to be 0% given how powerful and RAM plentiful our machines are?

I think no.

Someone mentioned earlier in the thread though, surely if you look at it from Valve's perspective the more efficient the OS then the cheaper you could build the hardware? I know that's not directly relevant to what's in the OP, but surely on a case by case scenario he's saying you'd get better performance running it on Linux over Windows?
opticalmace
Member
(01-07-2013, 06:34 PM)
opticalmace's Avatar
So, how are AMD's Linux drivers? :|

Thread Tools