Author Topic: Question regarding the openGL port?  (Read 14013 times)

0 Members and 1 Guest are viewing this topic.

Offline Inquisitor

Question regarding the openGL port?
Well, the intent of this post was to see what the OGL people were doing, in terms of preserving the existing windows code, and it sounds like, in at least penguins case, he is keeping the exising code.

So, there's really nothing preventing a DX upgrade to 8 ;)

The OGL gets it in the hands of the mac players, the Linux players (outside of WINEX), and also moves the developers knowledge forward in terms of the renderer on the PS2, does it not?

Now, if only theoddone would come back and get CVS access :)
No signature.

 

Offline daveb

  • WHEE!!
  • 25
Question regarding the openGL port?
Quote
The OGL gets it in the hands of the mac players, the Linux players (outside of WINEX), and also moves the developers knowledge forward in terms of the renderer on the PS2, does it not?


Mac players and Linux players, yes. All 186 of them. And I say that without a hint of sarcasm  ;)

I guess my point is - be realistic about things. Take a deep breath and repeat after me - "the odds that there will be a fully functional PS2 port are about the odds of successfully navigating an asteroid field. Unless I'm Han Solo, its not going to happen". The same thing goes for a Mac or Linux port. Sure, it may happen given some motivated individuals. But really, what possible advantage is it really going to give anyone?  Yes, for the guys who do the work it'll for sure be a very useful learning experience. That alone probably makes it worth it....for them.

As near as I can tell, guys like Icefire and others want to extend the game. Maybe some new graphics here, a bunch of new gameplay there, some improvements to existing functionality. I tell you this now, as a programmer who has seen (and caused) much folly in his days - this goal is incompatible with those who want to go Whole Hog with the code and make it a cross-platform-multi-API-zippedy-doo-da-i'm-a-smartay-man-lunix-developar spectacle.

You can unzip the code right now, and hit F7 in MsDev, and then F5 and it runs. Guess how many keystrokes it'll take to get the newest rev of the Linux port to run? Include the # of keystrokes requried to get Linux installed and running properly on your machine.

Realistic expectations will get you everywhere.

 

Offline WMCoolmon

  • Purveyor of space crack
  • 213
Question regarding the openGL port?
Especially for people like me who can't even get "make" to work right...:doubt:
-C

 

Offline Inquisitor

Question regarding the openGL port?
I dunno, it looks like theoddone has part of it working already, in only a few short weeks. Seems mighty realistic ;)

The way penguin has it set up, it's self contained, the msdev stuff still builds :) So the tinkerers can continue to tinker, and the gameplay stuff can get added independent of it.

Some of DTP's stuff is very cool, some bugfixes, some additions, and there have been a few new sexp's added by different people.

Getting it all i nthe same place is step one (and probably harder than the actual coding ;)).

I see a few major avenues of attack, in no particular order:

1) Bugfix (there are a few)
2) DirectX8 upgrade (at least use native DX8 calls, rather than DX5 backward compatibility, control code, etc which will bring us to possibly 3 and certainly 4)
3) Multiplayer redux/Multiplayer bugfix (maybe even a new masterserver implementation ala one of the many open source master servers out there, also, there has to be a way to get more out of the netcode)
4) Gameplay and engine enhancements (ala Icefire)
5) SDL/OpenGL/openAL port for Linux and Mac users as well as to at least pave the way in understanding a possible ps2 for linux port (all 186 of them), perhaps thru this, some advances in the networking can be made as well?

Those are realistic expections, IMHO, effectively silo'd from one another (because the codebase is so modular) that progress can be made in one, without blowing up the others and because we've collectively come some distance in understanding this codebase, and making the codebase more accessible to even windows users of GCC (VS still has a cost) can't be a bad thing ;)

Addresses both the hobbyist GNU coder as well as folks like Icefire's wants and needs. Keeps the code teams seperate, so stalling on one track doesn't kill the others (provided we keep with good practices like penguin's).

It's not just one or the other, this is having the cake and getting to eat it.

So, who wants to look at the DX 8 upgrade?

:)
No signature.

 
Question regarding the openGL port?
As long as we keep the graphics code seperate and don't do anything stupid that breaks the old stuff, there's no reason some people can't work on porting and others on adding new game features to the core engine. That's why we have CVS.

And yeah, this is most importantly a learning experience for me. I need to know how to do cross-platform. The hardest thing I can imagine in that area is trying to make something that wasn't become cross-platform. Thus, my desire to port it.

After penguin or Inquisitor commits penguin's port, I'll look at the code myself and see what I can do with it. As a sidenote (no offence penguin) I did say we should use SDL. Probably doesn't really matter in this case, though.

 

Offline penguin

  • Eudyptes codus
  • 28
  • Still alive.
Question regarding the openGL port?
Quote
Originally posted by daveb
This brings up a good point. The poster before who talked about OpenGL not being good at "2d" and therefore being slow with FS2 - that's completely untrue. FS2 uses its hardware API (Glide, DX, etc) purely for rasterizing. There should be practically 0 difference between them. I would suggest that the reason your OpenGL implementation is slow is because _you're_ making the wrong assumptions about what the code needs to do and how OpenGL works. That's not meant as a slight - but it illustrates the point very clearly - if you insist on multiple API's you're going to run into ugly roadblocks.
You are probably right about my making wrong assumptions... and I hope you're right about the eventual performance.  This is still a first crack at getting it to work at all under OpenGL and a non-Win32 API.  Performance tweaks -- which may very well require massive code changes -- can wait.

Quote
The whole "we need to use Linux" ideal has always been goofy to me. You're simply not going to beat MsDev for a sleek development environment, you've got a game that works, and DirectX has tremendously useful documentation.

On the other hand, if you just like the idea of porting it to Linux for the sake of porting it to Linux, that's fine. Go with OpenGL and be happy.
I can handle being called "goofy" :wakka:  And yes, MS has an excellent development environment, vastly better than anything I've seen for any other OS ( :grimace: <-- the smiley for salt being rubbed into an open wound).

And porting to Linux just for the sake of it isn't such a bad idea, IMHO.  I am trying very hard not to wreck any Win32 specific stuff.

Quote
The idea that somehow a Linux/OpenGL port is going to help you is a very silly myth.
Agreed

Quote
Let the OpenGL/Linux guys do their thing, it'll be a fun project.
Couldn't have said it better myself ;)

Quote
Mac players and Linux players, yes. All 186 of them. And I say that without a hint of sarcasm ;)
Hey, there are at least 200 of us, where do you get your statistics ;) ;)

Quote
I guess my point is - be realistic about things. Take a deep breath and repeat after me - "the odds that there will be a fully functional PS2 port are about the odds of successfully navigating an asteroid field. Unless I'm Han Solo, its not going to happen".
Hmm, if I remember my astronomy correctly , asteroid fields in real life are a lot less dense than those in Star Wars (or FS for that matter :p)

Quote
You can unzip the code right now, and hit F7 in MsDev, and then F5 and it runs. Guess how many keystrokes it'll take to get the newest rev of the Linux port to run? Include the # of keystrokes requried to get Linux installed and running properly on your machine.
:grimace: AGAIN!

And yeah, this is a long-term thing.  If people want to go putting beams on bombers, or cloaking devices, etc. than I do not recommend they wait for the linux port ;)

And finally, thanks for staying involved, daveb.  Sorry if I come off as being too defensive :)  This ended up being way longer than I had planned.
your source code slave

 

Offline penguin

  • Eudyptes codus
  • 28
  • Still alive.
Question regarding the openGL port?
Quote
Originally posted by Mysterial
As a sidenote (no offence penguin) I did say we should use SDL. Probably doesn't really matter in this case, though.
None taken -- I am using SDL!  You and kazan and a few others recommended it and I'm glad you did.  It is working very well.

Right now I'm just using it for video/keyboard/mouse, but the joystick and sound look like they'll plug in nicely.
your source code slave

 

Offline EdrickV

  • Valued
  • 29
    • http://members.aol.com/HunterComputers
Question regarding the openGL port?
Quote
Originally posted by daveb

You can unzip the code right now, and hit F7 in MsDev, and then F5 and it runs. Guess how many keystrokes it'll take to get the newest rev of the Linux port to run? Include the # of keystrokes requried to get Linux installed and running properly on your machine.

Realistic expectations will get you everywhere.


I can't do that. And I know there were other programmers interested in toying with FS2 that couldn't either. Why? Because we don't have VC++ 6.0. I have 4.0 but it won't compile. If not for the GCC port I wouldn't be able to do anything with the source code except look through it. And VC++ 6.0 is not easy to find locally. Nor am I going to spend $100+ on a compiler I would only use for one program. (I've had too many bad experiences with Microsoft written software, in particular the WMP 6.4 Active X control, to want to use VC++ for programs I want to make and use. I want my programs to run, not crash as Windows often does. :))

Sure, a Linux port may be a niche market (so to speak) but it's our niche. And the PS2Linux community website is filled with programmer types doing all sorts of things including porting programs, (Like Quake 1 & 2.) so I have some hope of getting people interested in porting a Linux based FS2 engine to PS2 Linux. Weirder things are happening all the time. (Like the Neural Net Simulator project on the PS2Linux site.)

Reality is defined by our perceptions of the world around us and our will in shaping it into what we want it to be. :)

PS If we didn't at least intend to do a Linux port we wouldn't have the Warpcore CVS, and finding alternatives could be more complicated.
Ground - "Let me help you out, you're clear to taxi any way you can, to any runway you see."

Mesh Gallery/Downloads:
http://members.aol.com/ArisKalzar/Gallery.html
Turreting 101:
http://members.aol.com/EdrickV/FS2/Turreting.html

http://members.aol.com/HunterComputers

 

Offline daveb

  • WHEE!!
  • 25
Question regarding the openGL port?
Quote
Sure, a Linux port may be a niche market (so to speak) but it's our niche.
PS If we didn't at least intend to do a Linux port we wouldn't have the Warpcore CVS, and finding alternatives could be more complicated.


I agree compeltely. But, here's the trend I'm seeing while puttering around here

- The technical people tend to want to do the OpenGL/Linux/bells-and-whistles thing.

- The non technical people want to fiddle with the code and add stuff, and they're relying on the technical types to tell them the best course of action. They're letting themselves be intoxicated by the holy-grail-speak.

I'm just suggesting that the two are sort of incompatible. Its worth letting the non-technical types know that they should probably not be holding their breath. The Linux/GL project is an end unto itself. Its probably not the same end the simple mod-types are really looking for.

As far as VC++ being a sketchy program, well, that's just silly. Its used for everything, and I can't think of a single problem I've ever had with it, especially related to code generation. On the other hand, I've worked directly with gcc for a shipping product (Summoner PS2) and it was the personification of agony. I think you Linux types let your brains become addled by all the anti-Microsoft rhetoric out there :)
« Last Edit: June 02, 2002, 04:17:51 pm by 700 »

 
Question regarding the openGL port?
Quote
Originally posted by EdrickV


PS If we didn't at least intend to do a Linux port we wouldn't have the Warpcore CVS, and finding alternatives could be more complicated.


Not 100% true. Even if you didn't intend to do it, all I care is that the project allows it :) Even if that means only one or two people end up caring about that part. My main goal was to attract people who had that intent, but as you can clearly see, d3edit doesn't run under Linux. So that's not a 100% requirement, although it's certainly desireable. My biggest thing is to let a community site become a central development grounds for an fs2source project. We've hosted Descent/Freespace related stuff for a long time, and hope to continue to do so...

 

Offline WMCoolmon

  • Purveyor of space crack
  • 213
Question regarding the openGL port?
Personally, I think the first priority should be getting the multiplayer/cutscenes working, so that then FS2 is at the same level of completion that it was before. Then adding all the graphics tweaks should be done. So...
1) Get multiplayer working
2) Fix bugs
3) Get cutscenes working
4) Perform Inqui's 2, 4, and 5
-C

 
Question regarding the openGL port?
Quote
Originally posted by daveb


I agree compeltely. But, here's the trend I'm seeing while puttering around here

- The technical people tend to want to do the OpenGL/Linux/bells-and-whistles thing.

- The non technical people want to fiddle with the code and add stuff, and they're relying on the technical types to tell them the best course of action. They're letting themselves be intoxicated by the holy-grail-speak.

I'm just suggesting that the two are sort of incompatible. Its worth letting the non-technical types know that they should probably not be holding their breath. The Linux/GL project is an end unto itself. Its probably not the same end the simple mod-types are really looking for.



Perhaps, but I work on other projects where we have lots of win32 and Linux developers, and we have things clean enough that both developers can usually develop without worrying about the other platform. So it is very possible, even in large projects.

Two projects that I work on from time to time that are good examples:

Project Twilight
http://twilight.sf.net/

GtkRadiant
http://www.qeradiant.com/

Project Twilight uses SDL for everything, which allows us to have a version of the Quake engine that runs on win32, Linux, freebsd, etc. without really hampering the development process for any developer on any of those platforms.

GtkRadiant uses STLport (a stable *imho* version of cross-platform C++ STL), GTK+ (not the best cross platform windowing toolkit but more than capable), and a lot of code.

So I'd just like to point out that it's very possible to keep multiple developers on various platforms happy while still keeping the game portable. From my discussions with other developers I don't think any can disprove the fact that writing portable code from the beginning that's as platform agnostic as possible isn't beneficial. It is very much so, now obviously in "Real Life" there are deadlines, publisher demands, and other wonderful things that don't make this ideal situation possible.

Anyway, the point is games are fun, and no one should be left out if possible and reasonable :)

Quote

As far as VC++ being a sketchy program, well, that's just silly. Its used for everything, and I can't think of a single problem I've ever had with it, especially related to code generation. On the other hand, I've worked directly with gcc for a shipping product (Summoner PS2) and it was the personification of agony. I think you Linux types let your brains become addled by all the anti-Microsoft rhetoric out there :)


Visual C++ 6.0 is a bit of a skecthy program,   in that it lacks improved C/C++ standards  complicance, and has some very odd math behaviors with some optimizations. However, I will readily admit that gcc is under heavy development and it has *some* of the same problems, but IMHO less. Of course at the same time VC6.0++ is now ancient in comparison to Visual Studio .NET (not that i'm enthused about the .net part).

I know for a fact that gcc (current) is far more standards compliant than MSVC's compiler, I also know that the number of *nix operating systems and servers out there that use gcc are a *huge* number. gcc is on Linux, Solaris, *BSD, *nixes and various other platforms, it is the defacto compiler outside the Windows world.

In the end, I want something to work on Windows, Linux, Mac OS X, and any other platform that it's reasonable to support.

 
Question regarding the openGL port?
Also, don't forget Intel's C/C++ compiler is available under Linux too ;) One doesn't *have* to use gcc. There's also Metrowerks Codewarrior as well...

 

Offline Inquisitor

Question regarding the openGL port?
WM: DOH Yeah, video :) It's in my notes :) Just was working from memory, good catch.

I'll have a sketch of a plan next week ish, if anyone cares :)
No signature.

 

Offline daveb

  • WHEE!!
  • 25
Question regarding the openGL port?
Quote
From my discussions with other developers I don't think any can disprove the fact that writing portable code from the beginning that's as platform agnostic as possible isn't beneficial.


Its only true in the completely idealistic sense. Writing an agnostic renderer that supports DirectX and the PS2, where the PS2 is your lead platform is going to cause you agony, period. Not all hardware and/or API likes to do what every other hardware/API likes to do. This will trip you up.

I agree with the rest of your post, but I stand by my original statement. This goal is at odds with what the majority of the people around here really want to accomplish.

 
Question regarding the openGL port?
Quote
Originally posted by daveb


Its only true in the completely idealistic sense. Writing an agnostic renderer that supports DirectX and the PS2, where the PS2 is your lead platform is going to cause you agony, period. Not all hardware and/or API likes to do what every other hardware/API likes to do. This will trip you up.


When you involve consoles, or get down to optimizations and fine tuning certainly. But writing without thinking about one specific platform to begin with should make it easier to work with multiple platforms later due to non-reliance on platform specifics. Now consoles are whole another ballgame, they're just pitiful in comparison to the PC when it comes to limitations.

Quote

I agree with the rest of your post, but I stand by my original statement. This goal is at odds with what the majority of the people around here really want to accomplish.


And you certainly have the experience to say so, but note I did qualify that this ideal situation does not always happen due to "real life" demands. However, I completely disagree that this goal is 'at odds', I believe I already documented that it is very possible to work on a large project without having every developer having to worry about the platform specific issues. I do this all the time, GtkRadiant is an iD Software sponsored development product, and we seem to have no problem (for the most part) keeping both platforms happy. Is it harder? Sure. But is it worth it? It has been for us...

(*please note that i'm not affiliated with iD Software in any way, I'm simply a volunteer involved with one of their sponsored projects)
« Last Edit: June 02, 2002, 05:09:35 pm by 750 »

 
Question regarding the openGL port?
Quote
Originally posted by EvilTypeGuy

When you involve consoles, or get down to optimizations and fine tuning certainly. But writing without thinking about one specific platform to begin with should make it easier to work with multiple platforms later due to non-reliance on platform specifics. Now consoles are whole another ballgame, they're just pitiful in comparison to the PC when it comes to limitations.
 


Lest I seem foolish, I am certainly aware that a project without a target audience, and goals will go nowhere fast, and in the publishing world *focus* is very much a necessity. Limited resources means limited support of a limited set of platforms.

 

Offline penguin

  • Eudyptes codus
  • 28
  • Still alive.
Question regarding the openGL port?
Quote
Originally posted by EvilTypeGuy
Lest I seem foolish, I am certainly aware that a project without a target audience, and goals will go nowhere fast, and in the publishing world *focus* is very much a necessity. Limited resources means limited support of a limited set of platforms.
Heh, that's why daveb's comments about the Mac/Linux audience size didn't bother me...  I'm not a publisher, I'm essentially doing this for an audience of one anyhow (me).  Of course if someone else wants to play w/ it that would be cool too :)

The point is, at this point, unlike Volition and Interplay, we are not being paid to do this.  No deadlines, no bosses, either, so the pressures and requirements are vastly different.  We can afford to please ourselves.
your source code slave

 

Offline IceFire

  • GTVI Section 3
  • 212
    • http://www.3dap.com/hlp/hosted/ce
Question regarding the openGL port?
Well this is all very interesting indeed.  I thank all of you for answering questions and telling me stuff :)

There sounds like alot of enthusiasm so I am hopefull.  Hopefully with VWatch and HLP trying to work this thing together we'll have some solid community support for you guys.
- IceFire
BlackWater Ops, Cold Element
"Burn the land, boil the sea, you can't take the sky from me..."

 
Question regarding the openGL port?
Gosh Dave, who pissed in your package of caffinated penguin mints?

People run Linux, those people want games, my friends and I work our tails off to give them games.  I don't care if there are 186 Linux users or 186,000, I do it because it's fun and because I want to play games on Linux.  Lighten up, this isn't a game company trying to decide how to make a profit, this is a bunch of people trying to figure out how to make a game they enjoy run where they would most like to play it.  Any approach that completely excludes Mac and Linux players makes the game less fun for less people.  And since no modifications anyone makes to the FS2 source now will get them any money, people are free to consider markets ignored by the original developers due to financial restrictions.

There's no publishing studio breathing down our necks, no deadlines creeping up on us, just us, some code, and some great ideas.  Stifling those ideas will not get anyone anywhere.

Our Linux version of FS2 will be completed shortly.  We will include source with our release.  Thanks to the magic of Open Source, you guys are free to use anything that helps you out from our tree in your own.  We just ask that proper credit be given.

After a release or two we will probably ignore this project.  We have a lot of stuff to do and this will become low priority quickly.

Also, penguin, never use glDrawPixels/glReadPixels.  That is likely why your 2D drawing is slow.  Split your image into textures and draw those instead.  I believe there's a nice document on it in the ZSNES source package.