Are performances still important in game programming?

Hi

I’m quite disappointed. I have recently found performances problems in some famous open source games and it is sometimes (often?) not seen as a problem for their developers. For example, Warmux is very slow until I switch to the smallest available resolution on my machine whereas such a 2D game should not use so much resources. Its main current developer answered me that it is not a problem as the game works fine on modern machines. I have had quite similar problems with some other games, free of charge, open source or not. I don’t know the situation in commercial games. Who really cares how games work on low end machines? In my humble opinion, games provided with Linux distros should work on any machine supporting these distros themselves. Is this lack of interest in performances a common tendency?

Some people like criticizing performances of Java but some of these guys do not criticize performances of programs using other technologies which is unfair. For example, the French Linux “book” regrouping more than 2 thousands games supported on Linux sometimes contains critics about performances about Java games but it rarely does the similar critics about a game using software rendering in C with SDL like Warmux. In your humble opinion, should Java developers be even more careful than others about performances?

Maybe I personally give too much importance to this aspect but if my game works slowly, it will be my fault, I don’t want to dirty the nice work of others, I don’t want to be a fallacious example of the bad performances of Java.

Get a better computer. period.

Nah I agree with gouessej

[quote]it is not a problem as the game works fine on modern machines
[/quote]
I hate this argument.
I’m making sure that my game runs on netbooks with no problem, always 60 fps, which means it should run on everything above just fine.
I’m actually look at the system requirements of torchlight for the most part.
And its kinda infuriating that Diablo 2 for example needs, crazy little performance, for a 2D game that good - I could never do anything like that, with those system requirements.

But also - much 2D can be tougher that simple 3D obviously.

Bottom line: If you want that many people can play your game, make it available for as many platforms and specs as you can.
For me, with java, thats Windows, Linux, Mac and like I said netbook specs. (which are like Intel Atom 1.6Ghz and up or something) - its still way to high in reality but I can only do so much.

In my opinion you should always try to make your game perform well, and the more systems and specs your game will run well on, the more people that can and will play it. If your game runs slow and lags then people aren’t gonna want to play it.

I think that Java developers have to be extra careful about performance because so many people think “Oh it’s written in Java, it can’t be very good. I bet it runs slow.” which is unfair and in most cases untrue. There are plenty of games that run just fine ( Minecraft, Spiral Knights, Legends of Yore, Revenge of the Titans, etc. ). It’s also dependent on how the game is written, if it isn’t written well then THAT’S why it doesn’t run well, not because it’s written in Java.

The argument that it runs fine on newer computers is really up to you. If you only want people with newer high-end (expensive) computers to be able to run your game then go ahead, you probably won’t have as many people playing it as you would if you made it perform well on mid-range and low-end computers as well. Sometimes that isn’t always an option though.

I hope you are joking… I’m 26, I got my first own computer during the last year of my Licence degree, I had only a very little money… If an expensive video games requires an expensive computer, that is not my problem but when a free of charge game which only displays a few things in 2D or 3D requires a very recent dual core processor with a very recent graphics card, I consider that the target is missed.

It is sometimes difficult with crappy Intel chips. I will have to disable or rewrite some things in my game because it uses OpenGL features badly implemented and particularly slow on these chips.

I agree with you. If we want these prejudices to disappear, we have to do our best to avoid programming games too slow functions of their complexity.

I understand that some projects has no other options than requiring high end machines. I wish my game(s) to have comparable speed than their closest C/C++ equivalents. Jake 2 is an excellent example for me.

In my humble opinion, there could be some more scientifical researches on spatial partitioning and mesh optimization but I’m not sure performances are a major concern for a lot game programmers. Some C/C++ programmers believe that choosing this language is a warranty of good performance; I think it is far from true as the way you program (your algorithms above all) is often more important than the programming language you use. Java has been used in video games since 1995? 1996? Where is there no open source implementation of some famous spatial partitioning algorithms?

I have a computer that is 6 years old and it’s still my main gaming machine. I can run pretty much any game, albeit with settings down. I did need to install a bootlegged graphics driver to get a bit more juice out of it but otherwise it’s smooth sailing.

People calculate it with graphics:performances. As long it looks good on eyes, no matter how greed a game is they wont mind.

I have a 8 (alomost 9) years old PC which can still do lwjgl. Only that, no laptop or anything. So you can bet I build my game (only one project now) with that machine. I have to build a game that will run smoothly on 1Ghz 256MB (which almost looks like nowday android spec) or close my IDE and foobar each time I run it. On the bright side, if I succcess then everyone in the world can play it 8) -what? you have older PC as your main machine?! call me-

yes, I care performances more than anything.

Well, with an exponential increase in computing power it kind of makes sense that the code will get worse and worse. Games were made better when they had to be better. Just look at Flash…
Really sad but true. Game developers shouldn’t be allowed expensive computers. xD

Perfomance is important. But only thinking that and it will kill imagination. Some flash game devs are teribble coders and still produce popular games and that is all what counts.

Mobile platforms bring perfomance argument back. Game need to be really performant so it can run on every crappy device and still look good.

I’m in the same case, my main computer was assembled in 2005.

I’m not alone, fine :slight_smile: I’m going to repair my old Celeron 700 Mhz to be absolutely sure that my game still works fine with only OpenGL 1.3. However, an Android smartphone with a 700 Mhz processor is slower than a desktop computer with a 700 Mhz processor when running Java programs because the DVK is slower than JavaSE For Embedded.

I agree with you, they should at least test a bit on older machines if they make a game on a recent one.

I’m not sure I understand what you meant. There is a real lack of WYSIWYG editors for Java; if the situation was different, artists could use such tools to focus on artistic aspects.

Performance does still matter more than meets the eye - especially for 2D games. 2D has the general complication that all the rendering has to be done with the painter’s algorithm (back to front), and also most of the things you’re drawing aren’t physically connected in a mesh. The end result is that you’re using a modern drawing API in a fairly sub-optimal way compared to what they can achieve when you’re drawing optimal data (ie. large meshes with single textures using the depth buffer). It’s by no means slow though. On really old hardware though you might find that using 3D APIs to draw 2D is slower than using dedicated 2D APIs. I shouldn’t think it’d be noticeably slower though.

Revenge of the Titans was pushing the boundaries of what I could achieve, rendering-wise. Some frames have thousands of sprites in them, and I like to keep things running at 60Hz on computers up to 4 years old. Even that requires a ton of effort as the low-end machines of 4 years ago are still pretty crappy - usually the problem is overdraw, as nearly all our sprites are nicely alpha blended and antialiased. If we were to use cookie cutter sprites mostly then we’d easily achieve fantastic drawing rates even on ancient hardware.

At the end of the day though it’s a cost:benefit ratio equation and like it or not, there are very very few machines over 5 years old actually being used by people playing games, or should I say more specifically, by those people paying for games, which are the people I consider who take gaming seriously enough to support it. You might occasionally throw up the odd, “Yeah but that’s not true! My computer is 20 years old!” sorts of comment as evidence but you are mere blips in the statistics and honestly nobody going to the effort of making games should listen to you. Support the industry - throw a bit of money at your computer.

Cas :slight_smile:

Also one more point to note - as little as 10 years ago developers spent a ridiculous amount of time just trying to code around trivial performance problems to get simple special effects working nicely. In fact much beyond that and you can often find games whose main gimmick was simply that a programmer wasted a vast amount of time on one trick. This led to a whole bunch of really crappy games that weren’t actually very much fun to play because all the time was spent coding instead of designing.

Nowadays we’re spoilt with excess computing power and we can concentrate on game designs without having to worry all the time about whether it’s technically feasible. The only thing really limiting us now is the cost of developing assets.

Cas :slight_smile:

princec, I understand your position but we are targetting a different public. You sell your games whereas I don’t (as I said in the past, I lose all my motivations when money arrives in a project). Between 40 and 60% of players of my game use Linux even though it might have changed a bit since it is on the Chrome Web Store.

Au contraire, I’m targeting the very same public as you - about 17.5% of all my sales are to Linux customers (though, irritatingly, about 90% of the tech support). Although I have specifically targeted very low-end machines with my games (most of them only need about 1GHz with a dedicated GPU with the sort of power of a GeForce 3 or thereabouts - probably a lot less most of the time).

You could consider looking at it from a different perspective: by targeting ancient, unsupported rigs with cranky operating systems you’re actually really being exclusive rather than inclusive. By spending all your time making games for this tiny, tiny demographic, you’re not actually helping the hugely overwhelming majority of people who might potentially benefit from your efforts.

Cas :slight_smile:

Responsiveness, has and still is, important. It’s not to be confused with performance, as these days you can do lots of inefficient and slow operations whilst still remaining responsive.

[quote=“princec,post:14,topic:37005”]
When I spend some time in trying to fix a bug concerning Linux, KDE 4 and AWT, I target a very small niche. However, I have not fixed this bug, I stopped working on it several days ago (NEWT already contains a working version of this fix, I only wait for it to support Mac OS X properly to give up using AWT) and as far as I know, the 2 major optimizations on which I have been working recently are useful on any machine even though they are even more efficient on really old hardware. In this case, I have a bigger target.

I didn’t know that you were interested in Linux users, was it already the case 3 years ago?

Linux users are a pretty big deal these days for indie developers. They can provide upto 25% of the total revenue an indie game makes, so a good idea to support them.

Just look at the sales figures from the Humble Indie Bundles (its even beating Mac atm on HIB3).

!
We’ve supported Linux since 2003!

Cas :slight_smile:

I know that, I think that princec was less interested by Linux users before he realized that they can pay, the Humble Indie Bundles caused this change, didn’t they?

Some people on the French forum of Mageia Linux said that the latest Humble Indie Bundle (the third) contains only “native” Linux games, I remind them that the second one contains at least one game written in Java (Revenge of the titans?). I’m fed up because some of them created a new thread to speak only about “native” Linux games whereas I did my best to speak about Java games, I spoke about the Java Game Tome for example:




It’s in French but Google Translate is your friend :slight_smile:

Not really. Map the story and gameplay first, optimization later.

[quote]Revenge of the Titans was pushing the boundaries of what I could achieve, rendering-wise. Some frames have thousands of sprites in them, and I like to keep things running at 60Hz on computers up to 4 years old. Even that requires a ton of effort as the low-end machines of 4 years ago are still pretty crappy - usually the problem is overdraw, as nearly all our sprites are nicely alpha blended and antialiased. If we were to use cookie cutter sprites mostly then we’d easily achieve fantastic drawing rates even on ancient hardware.
[/quote]
I can run demos of Ultratron, Droid Assault and Titan Attack pretty smooth. Use Geforce MX II. For RotT I get looooong loading time.