• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

T. Lottes: "If SteamBox happens and I like the GPU I'm definitely building for it!"

He's nvidia's FXAA/TXAA creator. He also has an account here :p

http://timothylottes.blogspot.com/2013/01/kotaku-report-valves-steam-pc-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/2012/11/why-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!
 

panda21

Member
(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?
 

Cynar

Member
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.
 

Dance Inferno

Unconfirmed Member
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.
 
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.
 
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
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.
 
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

Junior Member
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
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.

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
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.
 
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.
 
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
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.
 
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.
 
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.
 
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
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

Banned
(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
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
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
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.
 
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...
 
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.
 
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

Banned
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
 

mrklaw

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

Wow.
 

Orayn

Member
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.
 

Hatten

Member
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
-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.

-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.
 
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.

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
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
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
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.
 
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.
 

alphaNoid

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

Number45

Member
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?
 
Top Bottom