Hard Light Productions Forums
Modding, Mission Design, and Coding => FS2 Open Coding - The Source Code Project (SCP) => Topic started by: karx11erx on May 06, 2009, 01:55:16 pm
-
I just started to play FS2 Open using the hires media, and when firing rockets I noticed they had no smoke trail! I think having missiles expel smoke from their thrusters would look just awesome in FS2. I have implemented a simple particle emitter in D2X-XL that shouldn't be too hard to adapt to FS/FS2 open.
I cannot do it as I don't know the FS code, but I would certainly help as much as I can. What you basically have to do is to create a smoke emitter, set it up with a few parameters like smoke density, particle size, particle lifetime, attach it to an object, update its position as long as the emitting object is alive and kill if if the object gets destroyed. It's really not hard.
How about it? I would look fricken awesome.
-
A lot of missiles leave trails, but I believe these are generally ribbon-like textures instead of particle effects. I'm not an expert on the code, so somebody with more know-how should probably comment on it.
One big concern is performance.
-
Missiles already use particles, and the Engines had an inbuilt particle system as well, but I'm not sure if it's still implemented.
The problem was that the original 'puffs' used in game could not be black because they were multiplied (iirc) which the screen value, however, that's been fixed, for example, I believe the Babylon 5 Mod uses black smoke effects.
-
What I have seen so far in-game looks pathetic and not like a real nice smoke trail. Watch this: http://www.descent2.de/downloads/movies/d2x-xl-volcano-part-1.wmv , and you'll understand what I'm talking about.
The original missile trails probably are just short fire trails.
-
The original missile trails are just stretched Bitmaps, FSO has a seperate particle system added for missiles. the particle system itself is a standard particle ejection/lifetime/fade system, so the quality of the output depends totally on the quality of the images/animations used. And the fact is that smoke is the only media in that entire video that is of a higher quality than FSO, and you can see the frame-rate plummet whenever there is a large amount of smoke in view.
BTRL doesn't use black smoke, more light grey, but this gives an idea of the newer particle system in action:
http://www.youtube.com/watch?v=0yoxcWYehyI
-
That looks pretty neat. That's what I would like to see in FS/FS2 Open. Framerate for that kind of particle system depends very much on the graphics card's fill rate, and the closer you get and the bigger the smoke appears, the slower it will get - unless you have fast gfx hardware.
-
BTRL is, in fact, running on FS2Open, so it appears the system is ingame and working fine.
-
And that's before you get to the fact that the video is at least a couple of years old.
-
http://www.hard-light.net/wiki/index.php/Weapons.tbl#.24Pspew:
That's the wiki entry for the particle system, might be handy :)
-
So how do I enable smoke trails for missiles with that info?
-
You need to edit the weapons.tbl and add the PSpew function to the required weapon:
http://www.hard-light.net/wiki/index.php/Weapons.tbl#Weapons_Table
The factors for the PSpew function are:
# +Count:
* Defines how many particles are spawn when they are ready to be created
* Syntax: Integer
# +Time:
* Defines the time in milliseconds between next particle(s) spewed
* Syntax: Integer, milliseconds
# +Vel:
* Defines the created particles velocity as percentage of the weapons velocity
* Syntax: Float
# +Radius:
* Defines the size of the created particles
* Syntax: Float, meters
# +Life:
* Defines how long the particles last.
* Syntax: Float, seconds
# +Scale:
* Defines the particle spread. Small value will make particles group together
* Syntax: Float
# +Bitmap:
* Defines the animation used to create the particle spew effect
* Syntax: String, filename
You need to add 'Particle Spew' to the weapons flags and add the PSpew details later on in the table, though it'll need someone else to clarify where, it's been a while since I modded those tables ;)
-
i did write some high level particle code that would make particle effects more versitile. the problem is the low level particle code was designed for a small number of detailed particles, instead of a larger number of more primitive particles. using point sprites instead of quads would probibly allow for more particles. there have been some issues with point sprites so quads are still used. i think these issues arise from the fact that point sprites were always intended as primitives, not to be used in place of detailed sprites. could add an alternative render meathod to use pointsprites and a small texture/rgba vaule.
ive done some nice smoke effects with the current particle system, but it tends to slow up the game a lot.
-
D2X-XL's smoke doesn't slow the game down very much, unless you're up close and there's a real lot of smoke (or you have a weak gfx card - fill rate, again). The original particle system probably was rather built to create a fire effect which doesn't have many particles.
Flipside,
I had understood I have to modify these tables, but I don't know where they are in. Are they plain text? And what has the particle bitmap's format to be (1xM frames stacked vertically, or NxN frames, where N = sqrt (M)?)
Edit:
Can someone point me to the latest FS2 source code? I have read you'd like to have shadows, too. ;)
-
http://www.hard-light.net/forums/index.php/topic,52845.0.html
That should cover how to get hold of it.
-
Thanks. I hope so much there's a Visual Studio solution available for fs2open ... :rolleyes:
-
Yep. For VC6, 2005 and 2008 (although the middle one might be a little out of date since I don't think anyone still uses it).
-
Thanks. Got the source code now.
-
Is it right that rendering has not been optimized at all, using vertex buffers and stuff like that, but that it has been left pretty much in the original state, apart from finally calling OpenGL to render primitives? It looks like a model is rendered face by face, setting up everything as required for that face.
The entire code looks like being pretty much in the original state and just having had the file extensions changed from .c to .cpp.
Can that be?
Edit:
I just found the code where particles are emitted from ship thrusters if the afterburner is on. The thruster renderer explicit calls the particle emitter during each render pass, telling it how many particles to emit to which direction ... there is no encapsulation of that functionality, not even on file base. That's horrible.
In D2X-XL you simply create an emitter, tell it the desired smoke density (which translates into particles per second), and all you have to do is to update its position and direction every frame and then tell it to update itself ... it will then create new particles and shove them over to the transparency renderer which takes care of all transparent stuff.
D2X-XL's model renderer sorts all faces by properties and then renders all faces with identical properties in one batch, using OpenGL transformation, hardware lighting and vertex buffer objects. Once the VBO is loaded there never has any render data to be sent to OpenGL except for texture handles, buffer indices and lengths. I have completely abandoned the face by face lighting and rendering code quite a while ago.
Sorry for being so straight forward, but: What did you do with the FS2 source code in all the years you had it? I had expected significant optimizations using OpenGL having been done already. I have to say that my first impression from poking around in the code leaves me a bit surprised and rather disappointed.
-
Yeah, but this isn't D2X-XL. The engine behaves differently, and even if putting the feature in works the same way, you also have to make it WORK. D2X-XL may have a similar goal, but Descent is an FPS, FreeSpace is a space sim. They work differently.
-
Go ahead and start fixing it. I'm sure the rest of the team will be happy to have the help. I believe a total rewrite of the graphics code has been under discussion for a while, but from what I know, it's rather problematic.
Your input would doubtless be welcome, but the team here is close-knit - I'm sure they'd be happy to work with you just as long as it sounds like you'd be happy to work with them!
As for what they've been doing the whole time, you can go check out a list of features that have been added to the SCP. I think you'll agree that a tremendous amount of progress and improvement has been made.
-
Do you know how long it took me to bring D2X-XL in the shape it has now? I took me five years. I reckon it would take me at least two years to understand the FS2 source code real well and transform it into something that could be worked with more easily. It would need to be reformed from the ground up. When I started to rewrite D2X-XL into classes, it took me around 6 months to finally get every loose end together and deliver an acceptably stable new version - and that is after having worked with the code for over four years already.
I don't want to offend anybody here - please don't take me wrong - just analyze the current state of the FS(2) source code. It looks very much like its creators didn't invent too much new stuff, but simply built on what they had achieved with Descent 1 and 2. Quite a few things look strikingly similar and like Volition more or less expanded on the Descent code (doesn't matter whether they wrote everything from the ground up). Many things seem to have been just hacked in (the particle system is a prime example). The entire code has no good structure, no clean encapsulation. In that regard it resembles the original Descent code: Its makers knew where they wanted to get, and they knew the ins and outs of 3D math, but they didn't know at all about good software design.
If I would start to work on this code, none of you would recognize it after a year. To really bring it up to scratch rendering wise, you would need to completely rewrite the rendering stuff. I bet you could speed up rendering in by least half an order of magnitude that way, and it would also get much easier to put new stuff in.
I on the other side hade hoped that all that had already happened, and that I could half easily plug new stuff into the engine. My particle manager e.g. is encapsulated in a C++ class, but there's no way you'd throw that in the FS2 code and add a few lines of code to make it work.
Adding stencil shadows in the current code is even less feasible. If I understand it right, the D3D interface is from Volition and hasn't been added by you guys here, right? One should have thought that the code would show that by throwing a bunch of faces at the rendering API, and not work face by face, gathering all relevant lights in the process.
I have a pretty harsh verdict for the code Parallax and as I can see, Volition Inc. as well, have produced, and that is that just because you can get such a game to work, doesn't mean you're a good software engineer. Descent 1 and 2 are awful hacks, and FS2 seems to be only marginally less of a hack.
I oculd as well start to mod something like the UT3 engine into Descent 4 - that would probably be less work, as a good modern engine is way better documented and coded.
-
Sorry for being so straight forward, but: What did you do with the FS2 source code in all the years you had it? I had expected significant optimizations using OpenGL having been done already. I have to say that my first impression from poking around in the code leaves me a bit surprised and rather disappointed.
Given that the SCP has never had a dedicated OGL coder before that's a little difficult. Taylor is probably the closest we ever had but he is a generalist who has had other major calls on his time regarding the engine. Bobboau is probably the only dedicated graphics guy we've had as long as I've been on the team but he's a D3D coder. At no point AFAIK have we had anyone working the majority of their coding time on OGL.
We've been looking to hire someone who actually knows OGL and is willing to work on it for years.
-
karajorma,
I have to say that it surprises me to read that. I had no clue of OpenGL when I started with D2X-XL (D2X-W32 at that time). I worked my way into all that stuff, and I still have a hell of a lot to learn. Actually rendering in FS should be simpler than in Descent as it has no static geometry, but only moveable objects. That means a lot less light sources, a lot less lighting calculations, and only a single renderer (plus a transparency renderer).
But if I started to change all this, I'd really have to rip the FS code apart and create many parts new. It's not just about the renderer. It would need to get a new light manager. It would need to get a new internal model manager separating models' render and game data. It would have OpenGL do the coordinate transformations. It would need a new texture manager (the FS texture handling seems to only allow for a limited number of textures, like the original Descent texture manager did - that stuff all looks so strikingly similar to what I had found in Descent). I put all these things in D2X-XL by and by, and had intimate knowledge of the functionality and code I was working on when I did that; a knowledge of the FS code I don't have at all.
I don't know why none of you took that up with FS, but maybe it is because we have a different background. First of all I am a professional software developer for about 25 years, and then I always tended to investigate and try new stuff and tackle challenging tasks. I am also a perfectionist and never quite satisfied with what I have achieved. The SCP coders have had time enough to get equally far with the FS code as I did with D2X-XL. I just wonder why they didn't. Where is your ambition to delve so deep into such stuff and to acquire enough knowledge to really improve the code base significantly and not just tinker with it somewhat more or less superficially?
Not trying to offend you here, but to challenge you. :)
-
I think time is the biggest factor. On top of not having anyone who isn't already knowledgeable about OpenGL, the coders we do have also tend to be involved in other aspects of the game. Off the top of my head Taylor and WMCoolmon are the only people on the team who are primarily coders. Both Goober and I are FREDders, admins and team leaders. Chief is team lead of the Fate of the Galaxy project. Wanderer is a scripter on several projects. Kazan and Bobboau spends all their time on PCS II now. Most of the other coders tend to surface only occasionally with code.
The core SCP is actually very small. I don't think we've had more than five active coders at any point in the last three years.
-
Yeah.
D2X-XL has only one coder, plus a Mac coder supporting the OS X code. I have been rebuilding D2X-XL, DLE-XP (the level editor), building missions, creating a web site, making movies and running a forum on top of it.
Yeah, I know I'm awesome. :D
Looks like I operate on a different level of energy than regular mortals. I almost ruined my health with sleep deprivation on a few occasions though.
-
Heh, been there ;)
It seems to be a common trait in creative people, that they push themselves to dropping point, especially when they are on a 'roll' :)
-
Yeah, I know I'm awesome. :D
Well then, fixing the renderer should be no problem. :p
-
If the rest of the source code was in proper shape, no. But that's the problem: It isn't. ;)
-
Can you start with the rest of the source code then?
-
ROFL!
The "rest" amounts to 90% of the code.
You FS people would really love to see that stuff revised, wouldn't you? :)
The question is what would kill me faster if I started to do it: Sleep deprivation, or my wife because I am not available for the family anymore ... :rolleyes:
-
Problem is the very core of the codebase was a mixture of Programming, some of which was very very good, but was also, in places, extremely unfriendly in terms of update/expansion. This was mostly because, the source code wasn't really designed to be seen by anyone but Volition, and, like most companies, coding to a time limit always results in some degree of 'rushed' work.
From what I understand, there's very little encapsulation in the coding, and that means that changing one thing in one place can have unpredictable effects in a completely different section of code, which makes the whole job somewhat akin to unthreading a plate of spaghetti.
-
Flipside,
id Software's engine code is a really good counter example.
You are just confirming my impression that the FS source code (like the Descent source code) is an example of extremely bad, no: complete lack of software engineering. It's kind of hacked together to get something out the door.
-
I don't doubt that to be honest.
-
I think part of the problem is that this is code that has been built on and built on, but wasn't designed to be, the very heart of the Freespace code is based on the Descent engine, with stuff bolted on to it, but I think the original code was never designed with that kind of treatment in mind, and, as Scotty would put it, the more complicated you make the plumbing, the easier it is to plug up the pipes.
-
The question is what would kill me faster if I started to do it: Sleep deprivation, or my wife because I am not available for the family anymore ... :rolleyes:
*waves hand* you don't need a wife and family...you need to clean the FS2 code...or at least finish cleaning it before dieing of sleep deprivation.
:D
-
You're superhuman. In fact, your genius and productivity outclass everyone here, and if we'd only had you from the start, we'd have a modern engine instead of a tacked-together beast. I grovel before you.
What d'you think you can do to help out?
-
Oooh-oh. There had to be forum members w/o a sense of humor ... :rolleyes:
Exaggeration is a preferred means of mine of poking fun on others and myself.
From genius to average human: If I would start to work in this project, I wouldn't "help out". First of all I would rewrite a lot from ground up, and then you could come and ask where you could "help out". Got that?
You could haven taken what I have said the other, proper way round too: If I can manage all that while having a regular job and a family, then imvho you guys should have easily been able to rebuild FS(2) from ground up and with top notch rendering in all the years this project is under your wings already.
I am good, and I know it (and I also know that there are others who are better - some way better). Some people consider that a problem, but I don't. It puts me in the enviable position of having the freedom to ignore people who are trying to trouble me. On top of that I really don't care about what other people think of me - at least those who don't like me. ;)
Do you know how I started with D2X-XL? I bet you don't. In the beginning, I fiddled around in D2X 0.2.6 to make it work on Windows XP, and submitted my changes to the Descent newsgroup. They started to tell me that I should provide diffs, and that I should do this and stop doing that. They also told me that once I proved to be trustworthy I might get write access to their repository. I had been fed up with that pretty soon, so I got the entire source code and developed my own branch. Today, D2X is dead, the "other" port is .... ummmm so-so, and D2X-XL is King Of The Hill.
Now I have not come here to take everything over and command people around. I have however definitely also not come here as humble apprentice who accepts orders and goes through whatever initiation rites are common here. I am a 47 year old man and family father, and I know who I am and what I can do, and I prefer to work with people on the base of mutual respect and confidence in the other's capabilities.
I have come to know the members of this forum as a truly and exceptionally friendly bunch of people it is easy to get along and probably also to work together with, and I dearly hope that no one here sets out to change that.
-
Heh, don't worry about it, better to know you are good than to undersell yourself ;)
People will react differently, once/if you start working on the code, they'll find that actions speak louder :)
-
It will take a considerable amount of time to achieve what I have in mind. A year to have a good frame work, another year to have a stable release. I am still asking myself whether I want to invest that much time.
Problem is that watching TV bores me, playing computer games bores me too, and programming in my free time usually is fun. ;7
-
Oh no, you misunderstand - I have no problem with you, and you seem like a perfectly decent guy. I just want to get the introductions over with so you can get to work, and if that means telling you you're a genius, fine by me. It sounds like you're exactly what the SCP coders could use. No initiation necessary, no need to prove yourself.
I apologize if I seemed like I was being facetious or sarcastic. I have a fine sense of humor, and I don't dislike you whatsoever.
-
Alright. Misunderstandings removed.
And I don't think I'm a genious (if I was I would probably work on something different than modding old computer game classics - though you never know ...).
-
If you were, we'd have Descent4! ;)
-
I could do a Descent 4, simply by e.g. modding the UT3 engine. But a game doesn't just consist of a rendering and game engine. It needs textures, models, sounds ... and we simply don't have these resources (or only in very incomplete form).
FS on the other hand has hires models and textures and would just need an engine overhaul (the engine also is simpler - just 3D models in a big open "room").
-
stop the talk, and get to work already, old man ;)
-
If you could pull this off without destroying compatibility with current content, you'd be a hero. As I understand it (and I'm not a coder, so anyone can step in to correct me), the graphics code is so gruesome that it's blocking hopes of getting things like stencil shadows in-game. A rewrite could open up all sorts of possibilities.
And the FS2Open community is very active, so your work would earn you the adulation of the masses.
-
Gruesome is an understatement. I've just had a shifty (I think spelunk is more appropriate) through the graphics code for mantis 1922. I've given up :(
-
stop the talk, and get to work already, old man ;)
Oh boy ... :rolleyes: ... at least I have hair where you have yet to grow some. :P
Battuta,
destroying compatibility would render any such efforts rather useless, don't you think? I'll use an example from D2X-XL to explain the plan: It reads the regular model data from the standard game data, but then converts it to a format that is more suitable for OpenGL rendering. To speed up game launch the converted model data is stored in D2X-XL's cache folder (a special subfolder where it stores all kinds of dynamically precomputed stuff, like level meshes, lightmaps etc.)
The internal texture manager has also been completely rewritten, but D2X-XL can still read the original game textures and stuff them in the new texture manager.
That would be the approach.
But - first I would have to clean up the code, put stuff in C++ classes, and get a good understanding of the code base.
And I haven't promised anything yet. Just thinking aloud.
-
Y'know, why is it that I look at this thread, all I can think of is, "Hey, it's Diedel being Diedel again!" And then I chuckle quietly to myself and shake my head...
-
Mongoose,
What I see when looking at this thread is a discussion about the FS code base and my (potential) position related to it, plus a very superfluous flamebait post prior to this one. I really don't know what the descentbb habit of making below the belt remarks has to do here. There are few things I resent more than dumb ass comments like yours.
Are you Top Gun from PlanetDescent? (That's the guy who attacked me in the most arrogant and hypocritical way on descentbb for fighting back after having been harrassed for months and years there. I tend to only forget such things after a sincere and honest apology, and I have found that an amazing number of people is not capable of something apparently as simple as that).
One thing is for sure: If I have to deal with asshats like I've met on the dbb here, I will certainly not work on the FS2 code. So if you do not have anything significant to contribute, why don't you STFU instead of making slimey insinuations.
Yeah, Diedel, exactly, hardened, honed, sharpened and polished by years of abuse in certain very unfriendly and arrogant internet forums with people who mostly are occupied with their own colonoscopy, as someone put it in my forum just lately. Places quite different from this one, I hoped.
-
Stay out of General Discussion!
-
Karx11erx: don't let him bug you. You yourself called it a flamebait, and yet you took it. If it's really that stupid and superfluous, then why dignify it with a response? Far better to just ignore him and continue having an intelligent discussion with some of the SCP coders, which is what we were having.
Mongoose: You obviously have nothing constructive to say, therefore I say this: Get out, and Stay out of General Discussion!
-
Actually I read one comment of yours on the previous page that reminded me of another member who stopped by recently with some code changes, and I would probably say that members like that are the reason that we do have a bit of an unwritten evaluation process for opening up repo write access. Any community is going to have that. Granted some might be more intimidated than others by the comments you've made, but around here that's actually quite welcome. You're right that the code has always been a big hack-a-thon in some places, and the bolt on parts haven't made it any better over the years. Some areas have seen significant rewrites since the original release though. Software development in general has been plagued by a lack of engineering processes in most organizations, Carmack is an exception to that rule though, and not a counter-point. Volition is no exception. Their developer application test is still comprised of how quirky of a solution you can come up with for some trivial programming issues in pure C. They don't ask you anything about OOP, etc. They're looking for old school hack programmers who can get things out the door quickly under the gun, as far as I can tell. Some things never change, as I only applied for them a little over a year ago.
Anyway, a rewrite on the scale you're talking about just begs that someone should bring up the Ferrium project. It was to be a from-scratch recreation of the FS engine, fully backwards compatible with the FS2 engine but yet released under a truly open source license. The website is stil up at Alliance Productions (http://alliance.sourceforge.net/) on Sourceforge. If a true rewrite were to be done, doing it without actually using the original source code would be ideal because then we'd be out from under the restrictions of the Interplay/Volition license. Just something to think about. I'm not going to go around saying "we need you, please help us Obi-Wan" like some of these jokers seem to be doing ( :P ), but I won't say that having another engineering-minded coder to really tear into things wouldn't be appreciated. I'm sure that if this were something you wanted to do, you'd do it with or without our blessing and support, and I'd much rather you were working with us than off on your own because of some silly reason or another.
And GB is right, stay out of GD and you should be mostly ok. Keep in mind this is a fairly large and diverse community, and you shouldn't ever have to 'deal with' asshats, as often as they might try to poke their heads in your business. That's what the 'ignore' feature is for.
-
I think the best course at this stage is for people to discuss the code, and leave opinions out of it, this is not a question of what people think of karx, it's a question of how the SCP team and he can work together and create a better product, so this should really be a discussion mainly involving the SCP guys and karx him/herself.
If people want to add comments pertaining to the code, then that's fine, but let's save the usual HLP cynicism and sarcasm until karx is more settled in, and more aware of who to take seriously, and who not to ;)
-
I am not askng for repo access. It wouldn't make any sense, given the massive changes I would have to do. I would rather put the source code in a separate repo, and should I ever do it and get it done, merge it back (or merge changes from your trunk into it).
I know that you are not begging me on your knees to redeem you from the current FS code's flaws.
At least most of you. :D (Sorry, I just had to say that, it was itching too much)
-
:lol:
Well, either way, it's a bit unfair for people to start with the baiting when you're still pretty new to the community, though, in a somewhat convoluted way, it's kind of a compliment, but obviously, it doesn't feel like it when you are on the receiving end ;)
-
If Mongoose == Top Gun from PD, then it wasn't a compliment at all. Let's leave it at that. :)
Flamebaiting or flaming never is ok. I didn't attack anybody here, and if people cannot live with the way I express myself then it should be easy enough to avoid me.
-
I am not askng for repo access. It wouldn't make any sense, given the massive changes I would have to do. I would rather put the source code in a separate repo, and should I ever do it and get it done, merge it back (or merge changes from your trunk into it).
To be honest, a branch in our repo would make more sense than having one of your own. That way the rest of us would keep up to date on any changes you made and could make sure that we don't work at cross-purposes.
-
I actually meant to suggest that but got distracted while typing it up. Although if it were a complete rewrite, a separate repo might be better than a branch, since it would be an entirely unique code base. The repo could be hosted alongside fs2open maybe, but a full rewrite isn't really a branch, unless it's done incrementally I suppose, but that's probably not possible.
-
If Mongoose == Top Gun from PD, then it wasn't a compliment at all. Let's leave it at that. :)
Flamebaiting or flaming never is ok. I didn't attack anybody here, and if people cannot live with the way I express myself then it should be easy enough to avoid me.
Which is why I suggested we keep comments limited to subject ;)
I'd say a Repo alongside the FSO code would be the best idea as well, simply for cross-reference purposes,
-
If I would use my own repo, it would be publicly accessible (read), no worries.
-
The reason why I suggested a branch in ours is that every SCP coder will automatically get updates that way, set up your own and only those who bother to register with it will.
Plus if any part of your code is portable it makes it easier for us to notice and stick it into trunk and get an immediate benefit from it now rather than waiting two years until you're done. :)
-
i myself wouldnt mind a complete engine overhaul of anything that can be overhauled. id help if i could get my braincells to stop killing eachother. :D
-
I still don't understand why people have to attack people on the internet. It's so pointless and laughable.
Even if karx doesn't choose to support us or cannot keep his promises, we should welcome him nevertheless.
If he would only start now instead of answering assh*** like mongoose :D.
PS: I have hair, I just choose to shave :P
-
If it's a rewrite like it sounds like, there wouldn't really be any code that could be ported, it would be too disconnected. Since it's not likely to share any real similarity to the existing code, a branch just really wouldn't make a lot of sense since it probably wouldn't even be based on the original code. There wouldn't be any need to copy the current code to a new branch, so a branch doesn't really apply, in SVN terms.
-
PS: I have hair, I just choose to shave :P
I didn't really think you hadn't. ;)
And I haven't promised anything yet. I explicitly stated that here already. I am extremely careful with giving promises, because I believe promises have to be kept.
-
And I haven't promised anything yet. I explicitly stated that here already. I am extremely careful with giving promises, because I believe promises have to be kept.
This is good mental attitude right there! I like you already :D
-
To he who dares tread into the realm of the FS2 rendering engine, I have but two words:
HAVE FUN!
</sarcasm>
I had a similar attitude towards the rendering engine when I first saw it. Then I tried fixing it.
-
Blackhole,
grab the original D2X code. Then grab the D2X-XL code and compare.
Then you will know what I can do. I have dug my way through crappy code before. ;)
karx
-
ok, so all bsing aside, what exactly is it you have in mind, and be specific. I'm the guy who hacked together the interface (the D3D implementation I did has been disabled for a while now) for the current graphics pipeline, note I did this years ago while learning how to program, and there are a number of horrors I added to the already racooncity level coding mess we started out with. keep in mind one of the biggest hurtles has always been reverse compatibility.
are you planning a complete graphics abstraction layer rewrite, or are you just planning on improving the particle system.
-
You hacked around in the FS code to learn to program? :eek2:
I really don't want to offend anybody here, but are any of those who have tinkered with the FS code professional software developers, or at least software engineering students who knew what they did? :wtf:
I mean, if I start to fiddle with the FS code, does that mean that I have to work with a messy code base that has been messed up even more by amateurs? :shaking:
-
I'm sure a few of the programmers work in the industry.
But, I think you have the original codebase to thank. It's been organically grown from what was started with, and it is a credit to the SCP team that it still works, and that they've managed to grow a community around it.
I don't think there is a single person who would call the codebase 'clean' or 'beautiful'. The original team used the words 'horrifying atrocities' to describe the released code.
By all means, I encourage the development of a new codebase, including graphics pipeline, and base filesystems. But you've gotta realise that this community has been brought together by a love of the game (myself, the story is much better than any other game I've come across recently - IMHO) and a desire to improve the engine and the available campaigns and missions.
Your level of experience will help with developing a new engine, however, we're not all professionals, and working on this game engine has taught some people rather a lot. I look forward to seeing what you can bring to the team.
-
If I ever will.
-
Blackhole,
grab the original D2X code. Then grab the D2X-XL code and compare.
Then you will know what I can do. I have dug my way through crappy code before. ;)
karx
Your funeral :P
That's not to say I don't appreciate the help your trying to offer, I'm just giving you fair warning about what your stepping into. It's not gonna be a piece of cake.
-
He hasn't actually offered anything yet, everything up to this point is mere speculation and what-if. So I think it would be good if everyone stopped assuming he's already offered to rewrite FSO or something. And I'm pretty sure he knows exactly what he's going into, considering the code bases were written by many of the same programmers with probably a significant shared code base, he's probably seen a lot of it before.
-
Hmm. Dunno if he'll be able to or not, and I can't program anything, so I'll stay away from any of the points made here, but I have to say, I use D2X-XL, and if karx can help do a re-write, that'd be really cool. I have always kind of wondered about the possibility of a complete re-write of the FS2 engine, but it's kinda pointless for me to wonder about such things, as like I said, I'm not a programmer at all. Whatever happens, thanks for considering it, karx. And if you do re-write the code I'm going to have something to dream about for the next few years. :D
-
Again, it wouldn't be the first time it was considered, Ferrium was supposed to be a complete _blind_ rewrite of the entire engine. But he might have the attention span to finish it off. IF he's interested. (Get it? It's a 'big if')
-
He does. IF he so chooses.
-
What's with the if's? It's obvious that nobody here is obligated to work on the SCP, or on FreeSpace related projects at all. Whether or not he chooses to do this is (I'm guessing) based on the enjoyment he'd get out of it. When you're working for free, enjoyment (in some cases, experience) is the only real driving force.
On an unrelated note: Karx, while he may have more experience and technical ability than the rest of the team, isn't the messiah. Should he decide not to work with Freespace, there's others of his skill out there. It's just a matter of fortune to happen upon one. That doesn't mean, however, that we actually will find another...
-
I really don't want to offend anybody here, but are any of those who have tinkered with the FS code professional software developers, or at least software engineering students who knew what they did? :wtf:
A "Software Engineering" degree is in no way a guarantee of perfection. Even professionals can "screw up". And you got plenty of examples for that.
p.s.: I would even go as far as saying that "software engineering" is really useless in the industry, even though I was trained as one.
-
dammit I was hopping to have some code talk... :(
-
I really don't want to offend anybody here, but are any of those who have tinkered with the FS code professional software developers, or at least software engineering students who knew what they did? :wtf:
A "Software Engineering" degree is in no way a guarantee of perfection. Even professionals can "screw up". And you got plenty of examples for that.
p.s.: I would even go as far as saying that "software engineering" is really useless in the industry, even though I was trained as one.
read through this... http://www.sampioni.com/en/zasto_sampioni.htm
-
:wtf: I am missing something... Oh well, back to work.
-
What do you mean you were 'trained' as a software engineer? Are you referring to an SE2004 type of program or just something the local community college called 'Software Engineering'? My job title is technically software engineer, but it's a bit misleading because we don't really do a whole lot of 'engineering' with our applications. That's what karx is talking about I think. Saying it's useless...I don't even know what to think of that. I weep for you, honestly I do. True software engineering is the only thing that could save the industry, and employers need to be able to see Software Engineer and have it actually mean something, same as if you were a civil engineer or a mechanical engineer or whatever. But right now everyone just gets a computer science degree, which is probably more useless in the industry than a software engineering degree would be, if it were really engineering.
-
Most of my degree has focussed on the important of design and encapsulation, of keeping each part of the program seperate so that you can alter one part without having to change everything that relates to it. Stuff like UML really helps with those sorts of concepts.
-
Most of my degree has focussed on the important of design and encapsulation, of keeping each part of the program seperate so that you can alter one part without having to change everything that relates to it. Stuff like UML really helps with those sorts of concepts.
As my degree was, actually. UML is a really powerful tool. But it is NOT the panacea of all software development. What they don't teach you is that, no matter how powerful you "modeling" tools and theories are, there will always be something that you overlook, forget, don't have enough time to implement, whatever... The "why" is simple, the word "model" means a "conceptual representation of a phenomenon" (as my Physics professor put it), most of the time "a simplification of reality" (ESPECIALLY in Physics). And, as such, imperfect. :)
Because one thing is an UML diagram, another is going from THAT, to a complete product. :) And, maybe it's just my experience which has been "bad", but that process can be quite of a shock. Nothing that I couldn't overcome, but it took time.
So, my point being, bashing someone's code just because it hasn't an UML diagram attached is bogus.
-
Agreed, my main project was initially designed without the need for editing software even considered, and then as it progressed, it became obvious that an editor system was vital, because objects referenced other instances of objects, so it's perfectly possible to create a UML system that is, in essence, nothing like the finished product.
It's always a good place to start in my opinion, however, abstracting a whopping create big idea up into lots of little ideas can go a long way towards relieving the burden of trying to think of a program as one huge homogeneous lump, and start the coder thinking about it as lots of 'little' programs all linked together and interacting.
I've not looked at the FS2 source, so I'm not really stating an opinion on it, or on the coders who designed it, and, it should always be borne in mind the FS2 code wasn't designed to be updated as it has done by the SCP, but certainly for larger projects, where several coders may be required to work on or maintain the code for several years to come, engineering is a very important factor, though, in defence, a very large percentage of games software isn't designed to be treated like that, things like the Quake engine are an exception, rather than a rule.
-
I'm just saying that complex code needs to be blueprinted somehow the same way you would with any other type of engineering. You wouldn't trust a skyscraper that someone just started building without doing the legwork first, and code should be done the same way.
-
I do agree that it would be good to see more university-level programs that focused on Software Engineering, for those who just want to focus more on designing/writing solid software and aren't as interested in the theoretical nuts and bolts. That said, I resent the idea that Computer Science is a useless discipline because it does place so much emphasis on theory. Those algorithms have to come from somewhere. :D Sure, much of that theoretical stuff isn't immediately applicable to most software tasks, but for some of the very coolest ones, it's vital.
-
In some ways, I actually prefer software design to the actual coding :nervous:
One thing I do like about UML is that I'm experienced in Java, but a complete novice in C++, that's not a problem if you've engineered the software however, because once I get more experienced at C++, having the system pre-designed will (mostly) make life a lot lot easier if I want to convert from one language to another.
-
I didn't say it's useless though, but it's near useless in the industry, because you need engineers typically more than you need scientists, unless you're staffing the R&D department. Engineering is the application of science, and it needs to be more clearly split.
-
I really don't want to offend anybody here, but are any of those who have tinkered with the FS code professional software developers, or at least software engineering students who knew what they did? :wtf:
A "Software Engineering" degree is in no way a guarantee of perfection. Even professionals can "screw up". And you got plenty of examples for that.
p.s.: I would even go as far as saying that "software engineering" is really useless in the industry, even though I was trained as one.
This is so clueless and even stupid that it was hard to bring myself to even write this sentence in reply.
read through this... http://www.sampioni.com/en/zasto_sampioni.htm
What exactly are you trying to tell us by linking there? That stuff there is immature, exaggerated, and these guys are still sobbing from the "great injustice" that they had to bear in their past. All I can say is that there are very few - I actually dare to say: no - people of the kind they describe in the company I work for, and that goes right through to the very management.
blackhole,
hands-on experience only gets you so far. You will have a hard time to expand beyond certain preconceptions of yours, or break through limits in your understanding, intellectual capacity or time. There are concepts regarding good software engineering or coding etc. that have been developed and proven to be working by very smart people, and it is a good idea to apply such concepts. That encompasses all stages and processes in the creation of a piece of software.
-
blackhole,
hands-on experience only gets you so far.
You know, that's probably why I said this:
hands-on experience is no substitute.
Please read my post carefully before replying.
-
So upset when I basically confirmed you, staying completely polite?
Time to leave. Happy mud slinging.
-
You silly little boobs, you just couldn't leave well enough alone could you. Oh well, I didn't think he'd have the energy to help much anyway after doing D2X-XL but you all just had to grab that little hanging thread and unravel the whole sock. :sigh:
-
Well, in all fairness, I think Karx somewhat over-reacted to the situation, but nonetheless, this has become Drama, and is therefore lockéd.