Author Topic: Multiple CPU cores  (Read 17078 times)

0 Members and 1 Guest are viewing this topic.

Offline Col. Fishguts

  • voodoo doll
  • 211
Actually, i read if you had 10 dual core centrino's hooked up via a GNDN coudit,
plugged your satilite dish into the tv card of your pc but reversed the polarity of the LNB,
all while watching Tron you could....

You would trigger a resonance cascade, that's what.

More on-topic: He's trolling, but at least in a very original and entertaining way, so keep it coming.
"I don't think that people accept the fact that life doesn't make sense. I think it makes people terribly uncomfortable. It seems like religion and myth were invented against that, trying to make sense out of it." - D. Lynch

Visit The Babylon Project, now also with HTL flavour  ¦ GTB Rhea

 

Offline General Battuta

  • Poe's Law In Action
  • 214
  • i wonder when my postcount will exceed my iq
I concur.

 

Offline CaptJosh

  • 210
I never said anything about being stuck in the past. Nevertheless, the game engine with which we work simply is too old to take advantage of multiple CPUs/multiple cores directly. Processor drivers that balance load can assist with this, but making the engine, especially a game engine this age, multi-threaded would be too much work for far too little gain. If we want multi-threading, then we'll just have to wait for the Ferrium project or whatever has succeeded it as an attempt to write a new game engine we can use, assuming there were any plans to multi-thread a successor game engine in the first place.
CaptJosh

There are only 10 kinds of people in the world;
those who understand binary and those who don't.

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
IBX (Cache) generation would be useful to have multi-threaded.  It seems like it would be embarrassingly parallel and really help out a lot of people.  It took like 5 or 10 minutes to generate them all for the new mediavp models using -pofspew, and that's on a 6 month old pc.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline CaptJosh

  • 210
Ok, can't argue with that one. Definitely could be useful.
CaptJosh

There are only 10 kinds of people in the world;
those who understand binary and those who don't.

 

Offline WMCoolmon

  • Purveyor of space crack
  • 213
Modders should be shipping IBX files with their ships, and IBX generation should be implemented into PCS2 so that it exports the IBX data in the POF file as a POF chunk. For that particular problem, it would reduce the generation time to basically nil, whereas shifting it to multithreaded wouldn't really help people who would be hit hardest by it (people with old computers).

My comment was more of a general one directed at the mentality that seems to pervade this place. When you're rejecting reasonable points on the basis that an engine is too old, you should be considering what you're going to do about the engine being too old. One of the reasons listed for not implementing my last batch of code was that it had never been done before, so the engine wasn't designed for it, and the engine was too fragile. Furthermore, there's been multiple comments made about how unreliable the engine is in general, plus the general hardcoded nature of everything, and overall there's this general opinion that if you change too much, something, somewhere, is going to get screwed up and that will cause more bugs in mantis. It's like the boogeyman, except with code.

The only way to fundamentally change all of these complaints is to make some serious change. And some serious change is not possible unless you decide to break backwards compatibility, or risk breaking backwards compatibility, in order to make something better. That is why I refer to it as being stuck in the past. At some point, you have to let go and move on for the greater good, as a natural cycle of life. You can't have your cake and eat it too.

Here, the obvious solution is to make a new game engine. That opens up the possibility for optimizing the graphics code, implementing a proper physics engine that can be upgraded as time goes on, implementing a more 'loose' AI system that can be upgraded without breaking all prior missions, designing things to be run on a multicore processor, and so on and so forth. Then you go from talking about hacking the HUD so you can put better gauges in to talking about GMod for Freespace 2. Instead of Newtonian physics being the next thing, the people developing the physics engine release an update and you can have solar sails with realistic cloth physics.

The amount of work required to do such a thing would be considerable, but if you did it right, you would have something that would still have FS2 compatibility in mind but have the ability to be upgraded with other improvements as time went on. You could plan for feature requests instead of figuring out some clever workaround regarding the code that's already there.

The way things are going, I just don't see a critical change in the way that FS2Open works for a long long time. It will be upgrade after upgrade, but things will get harder and harder to implement as the restrictive nature of the code causes people to implement things in different, non-uniform ways because there is no good way to implement them, without ripping out a large portion of the code, which would have a significant change of introducing bugs and breaking backwards compatibility.

And just for the sake of stating it, I make a pretty ****ty programmer for what Goober and taylor want. I prefer to see people innovating and making things better in general, rather than dotting every 'i' and crossing every 't'. So if that's your thing, by all means, do forget about multicore support and focus on fixing every single bug in mantis. If you find the prospect of being able to create your own game engine from scratch and design it to support things you never dreamt of seeing in Freespace 2, then you might want to pay more serious attention to how you can leverage new technologies to this community's benefit.

That's my $0.02
-C

 

Offline Col. Fishguts

  • voodoo doll
  • 211
What you're describing would essentially be writnig a new engine from scratch. There's nothing wrong with that, but you're looking at a multi-year project.

Anyway, mods/campaigns are still years behind the SCP in terms of using the full potential of the engine in its current state. New features are still implemented faster than mods can keep up with. As long as this is the case, I prefer the current policy of the SCP to fix as many bugs as humanly possbile to get a rock-stable engine. This, of course, is an opiniion from a modders perspective, and not a coders perspective.
« Last Edit: November 28, 2008, 08:58:56 am by Col. Fishguts »
"I don't think that people accept the fact that life doesn't make sense. I think it makes people terribly uncomfortable. It seems like religion and myth were invented against that, trying to make sense out of it." - D. Lynch

Visit The Babylon Project, now also with HTL flavour  ¦ GTB Rhea

 

Offline General Battuta

  • Poe's Law In Action
  • 214
  • i wonder when my postcount will exceed my iq
You could try to finish up Ferrium, Coolmon. Was that project abandoned?

 
I thought some of the more popular games used an open source 3d engine? (my brain isn't working atm so i cant remember titles) But i swear something in my mind is screaming that i read one of the major 3d engines being open source

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
WMC, I have nothing against making things better, but there comes a point in time when you need to stop the line, so to speak, and fix your problems.  The codebase currently has quite a few bugs, multiplayer has been plagued with problems making it almost useless for years, GLSL has all but completely broken the graphics on OS X, and you want to keep cramming more features into the system?  I'm sorry but that just can't happen sometimes.  It's like painting a house without scraping off the old paint first, if you keep doing that it's going to start falling off the siding from its own weight because the foundation (the old paint) can't support it anymore.  At least by taking care of all the bugs and focusing a significant portion of coding time on cleaning up the codebase, it makes it easier down the line to add those new features.  Sometimes it just needs to be done.  I'm sorry if you don't agree, but you saw the state of the codebase when no one was fixing bugs and everyone was just committing feature after somewhat broken feature.  Mantis bugs have been going down, even with all the new bugs being discovered by the testing builds, even some old ones have been ironed out recently.

As far as building IBX generation into PCS2, I'm pretty sure there was a reason we let the FS2 engine do that and not a separate program, although I can't exactly remember what it was.  I don't know how having PCS2 generate it would make it go any faster than FS2 can do it, they both have access to the same data.

Also Vertigo, this _is_ an open source 3d engine.  It's just not a free as in freedom license.  But there are several other free 3d engines, most of them seemed to be geared towards FPS gaming, at least that's all I've seen done with them so far.  Ogre is one, and then there's the Cube engine.  Couple others as well but I can't remember them all off the top of my head.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline WMCoolmon

  • Purveyor of space crack
  • 213
As far as building IBX generation into PCS2, I'm pretty sure there was a reason we let the FS2 engine do that and not a separate program, although I can't exactly remember what it was.  I don't know how having PCS2 generate it would make it go any faster than FS2 can do it, they both have access to the same data.

Kazan wasn't around and he, last asked, doesn't want to take the time to take the time to implement the IBX generation code into PCS2, nor does anyone else.

Having PCS2 generate it wouldn't make it go any faster than FS2...I didn't say it would, either. It could be twice as slow, too. But you act like people running -pofspew is a big enough deal to multithread it; they shouldn't be doing that in Freespace 2 if you can save IBX data in POF files. It should be done automatically in PCS2 when the geometry is converted to the POF, and loaded and saved with the rest of the POF data, so that the end users aren't required to be bothered with POFSpew. Granted, there's still reasons to test POF files, but I can't see much reason for that to be a frequent enough occurrence to spend a lot of time on optimizing it.

WMC, I have nothing against making things better, but there comes a point in time when you need to stop the line, so to speak, and fix your problems...

I don't know how to respond well to an ad hominem (however valid or invalid it may be) when it's in lieu of actually understanding what I said. General Battuta and Vertigo7 seem to get my point; you didn't.

I am extremely hesitant to work on the SCP for the concerns I expressed below. Communication on the team is complete crap; Goober scheduled a code freeze in the middle of the only free time I had this last summer. I've expressed this concern time and time again and there's been no change made. In fact, as near as I can tell, the majority of communication happens via PM or IM at this point.

I have no wish or desire to be made into a volunteer slave. I've worked, in some form, on the project for about 5 years. It's outlived its usefulness to me, personally, and I don't see the project as going in the direction for some 'higher good' right now. It's a game. It's not helping starving children in Africa. Its usefulness is measured by how entertaining it is, and how many people it entertains.

So if your claim is that I have some duty to sit around and bugfix all day, then, no. I don't want to spend the rest of my life redoing what other people have already done. If the existing game engine isn't capable of taking advantage of other people's work, if it's written in such a form that obstructs innovation more often than not, then the time I or anyone else spends working on it is suffering reduced leverage. At some point, the amount of time lost due to working around the existing constraints will equal the amount of time that could be used to write a new game engine with the same general properties as the Freespace 2 engine. It's impossible to measure that time, but I do think it can be said to exist. There's also a lot of capabilities that you lose out on in using the old engine, because you MUST maintain backwards compatibility, you MUST support the old files, you can't rewrite everything all at once, and so on and so forth.

So my personal opinion is not fixing bugs is dumb. My personal opinion is that good design leads to less bugs. Or rather, good design for the intended use leads to less bugs. The present engine had time constraints and assumed technology constraints with it. Those constraints may or may not exist now, and it's possible to take the time to question those constraints. Building a simple game engine doesn't take a whole lot of time. If it's done right, you can make little games that people can play and draw an audience for the engine. The fact that it's a new game engine has additional draw.

But if you want my own personal reason for why I'm not going to be bugfixing anytime soon - I don't enjoy it, and I absolutely disagree with the direction this project is headed, both in what I've detailed here, and in the attitude I've seen in spending $300 of community money on a toy, random forum pranks that more often than not end in forum crashes and errors, absolutely no inclination to listen to anything anybody else says without a considerable amount of condescension, banning community members because they ask the wrong question, and so on and so forth. No one act that's particularly horrible, but this is not an attitude or an environment that I can support in good conscience. Arguing hasn't changed anything. So I've done my own thing, done my best to make it work, and I'm pretty satisfied how that turned out. I've seen far less bugs flashing across mantis that had anything to do with them than I've ever seen, and I got far more implemented and repaired in the couple of months that I was coding full-bore than any other time.

I would prefer to work in a community where people try to find answers to problems and feature requests and there's enough manpower that there is time to innovate. I'd rather see that there are enough good ideas floating around and the environment is conductive enough that people can find a balance between preventative measures and enabling systems. I see some kind of mutual cooperation as being a necessity in such an environment, because everyone, including the lowliest bug tester, is giving up some kind of time for participation in the project. If you aren't paying them, you can't expect them to want to work for you, so some kind of individual expression or payback is necessary to make them want to participate. Or if you want to be less self-centered about it, you are obligated to do something for those other people in order to make it worth their time to participate, or you are guilty of unfairly exploiting them.

I don't know if such a place exists, but I do see a significant deviation from that vision and here. Sadly, I seem to be the only one who sees it, so all I can do is express my opinion and wait and see if my hypotheses is correct. It is possible that 3 or 4 people will come in and renovate the old engine to be fully functional and up-to-date, but I think it's extremely unlike. On the other hand, I think it's extremely unlikely that anybody in the community will have the desire, drive, time, and skills necessary to undertake such a project. I've expressed my opinion but I don't expect other people to necessarily agree and I'm certainly not planning on undertaking it myself. At this point I plan to stick around in a sort of advisory role if anybody has any further questions or problems that I'm needed to answer, but other than that, my coding days are over. I've given & sacrificed much for this project, and it's time for me to move on and let this project go this own separate direction so I can get on with the rest of my life.

Much more interesting post than I expected to write. :) [/soapbox]
-C

  

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
I was only addressing the last portion of your previous post, not the post in its entirety.  You're right, hitting so many walls due to the constraints of the engine can be frustrating, but I think the majority of the coders still has a lot of miles left on it, and it's still worth the time investment to maintain it instead of switching to a new, from-scratch system.  Until the rest of the developers feel otherwise, I can't expect it to change.  As for my statement being ad hominem, I guess I should have mentioned this article.  I'm not even going to pretend I have a lot of experience with agile development and other modern software engineering philosophies, but I am familiar with many of their concepts.  That article got me thinking recently and reinforced my mindset that the current bugfix period is the right course of action and was long overdue.  I don't expect any coder to do anything, what you spend your time on is your choice, but what I would appreciate is at least all serious bugs currently assigned to a coder to either be addressed or marked for resolution at a later date.  I want to see the bugcount go down every release instead of up and start having a shorter release cycle.  As much as I'd like to resolve every bug though, I know this isn't likely right now, but I think baby steps towards that direction can't hurt.
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays