Author Topic: A Contribution  (Read 2416 times)

0 Members and 1 Guest are viewing this topic.

Offline Nomad

  • 21
Hello there.
Let's say, I am willing to contribute as a C/C++ programmer: graphics or general, whatever is needed the most atm.
What's the plan? Do I check out, do what i see fit and then commit? Or there is some TODO list?
I also have some specific questions and suggestions, so.. well, where to start?

 

Offline Zacam

  • Magnificent Bastard
  • Administrator
  • 211
  • I go Sledge-O-Matic on Spammers
    • Steam
    • Twitter
    • ModDB Feature

Well, welcome and well met.

The SVN allows for public checkout by anybody. Common tool can be either TortoiseSVN (There are instructions stickied on that) or GIT.

Using your IDE of choice, you then make and test changes, then use either Tortoise or Git to generate a .patch or .diff and post it here (in a post that describes what it does/changes) and a Badged SCP coder will review it and any discussion about it will take place. Once deemed capable, it will be commited for you (initially). Once further results pass review, you may be granted Internal Forum access and then eventually commit access to the SVN if it all works out to everybodies satisfaction.

Areas where we can use assistance is primarily (as I understand it, and I'm not a Sr. here, chief1983, Goober, Karajorma or The E can substantiate better than I) are in OpenGL Graphics, Collision Detection handling, making the code more thread safe (in an as Cross Platform a way as possible) and most importantly, resolving Mantis Issues.

A good place to start would be to look over the Open/Unresolved or Unassigned issues in Mantis first and see if anything tickles your fancy. If you have an IRC client, we can generally be found at many hours of the day on Esper.Net in the #scp channel.

Again, welcome, it is hoped you enjoy your stay, please feel free to tell us a little more about you (IDE, OS, Programming background and what you predominately feel you might be interested in wanting to work on)
« Last Edit: February 17, 2011, 12:49:46 am by Zacam »
Report MediaVP issues, now on the MediaVP Mantis! Read all about it Here!
Talk with the community on Discord
"If you can keep a level head in all this confusion, you just don't understand the situation"

¤[D+¬>

[08/01 16:53:11] <sigtau> EveningTea: I have decided that I am a 32-bit registerkin.  Pronouns are eax, ebx, ecx, edx.
[08/01 16:53:31] <EveningTea> dhauidahh
[08/01 16:53:32] <EveningTea> sak
[08/01 16:53:40] * EveningTea froths at the mouth
[08/01 16:53:40] <sigtau> i broke him, boys

 

Offline Nomad

  • 21
Zacam
Thanks for heartly welcome, I've been browsing this project from times to times and finally decided to put some effort in.

IDE's MSVS 2010, Win7.
Although my primary specialization is Direct3D (9/11), I can write some moderate things in OpenGL. The general principles hold across the APIs. And for shaders, they're almost identical everywhere, though I haven't figured out yet whether you use shaders. Project's really huge.

I can also do general programming, have been leading some other remake project for a year (here, reverse engineering/decompilation, refactoring, writing engine + render, intended to be crossplatform too), but did not receive much support from programmers and had to halt it.  It would've taken way too much time for me alone to complete it. So, I want to participate in something that has more real chances.

Err.. what is Mantis? :) Searched the forum, looking into it already.
« Last Edit: February 17, 2011, 01:08:18 am by Nomad »

 

Offline Sushi

  • Art Critic
  • 211
Welcome! Feel free to jump right in. Zacam pretty much covered it:
  • grab the code from SVN
  • get it compiling
  • start hacking away at whatever tickles your fancy
  • Once you have something working, post a diff of your changes on the forum and bug people until they test and code review them. :)
You may also want to get on IRC:
#scp on irc.esper.net
is the main channel where FSO coders hang out.

 

Offline Zacam

  • Magnificent Bastard
  • Administrator
  • 211
  • I go Sledge-O-Matic on Spammers
    • Steam
    • Twitter
    • ModDB Feature
IDE's MSVS 2010, Win7.

Good, we already have a project set up for that. Be aware that 2010 is capable of using C++0x which we don't have across all of our platforms yet, so be careful for the current moment and limit to C++98/03 Standards.

Although my primary specialization is Direct3D (9/11), I can write some moderate things in OpenGL. The general principles hold across the APIs. And for shaders, they're almost identical everywhere, though I haven't figured out yet whether you use shaders.

We do use GLSL Shaders. Current minimum support for version 1.20 (else it's Fixed Render Pipeline) as well as Limited Post-Processing. We do have some batching and handler/management tracing issues (namely a lack of a comprehensive sorter), and not all platforms have the ability to actually use the Launchers AA settings option to actually set the AA. And we would need to be able to implement it in a way that still allows Post-Processing to be done. Plans are also in the works to see about leveraging some Geometry shaders at some point as well. Of course, we are also still operating on a single pass rendering system in displaying everything, so there's another area we can also use some help, or even just somebody who's more familiar with a graphics API and the kind of workflow/pipeline it needs to accomplish it's goals. I'm barely begining to scratch the surface on OpenGL myself.

Project's really huge.

Heh. That it is. You'll find that there is a lot that could stand to be documented or standardized or what have you. Still a lot of regular C mixed into the works as well, as well as portability issues to address and 64bit execution. As well, currently SSE/SSE2 takes place on a compiler level (Under MSVC 2008 or higher only) as opposed to actual RunTime detection and instancing, so there is another area we could stand to improve. But in the end, while it's large and in some places frightening, if you stick with it, it DOES begin to make some sense. I had zero C/C++ experience when I came in, but that didn't stop me from coming in anyway. :D

I can also do general programming, have been leading some other remake project for a year (here, reverse engineering/decompilation, refactoring, writing engine + render, intended to be crossplatform too), but did not receive much support from programmers and had to halt it.  It would've taken way too much time for me alone to complete it. So, I want to participate in something that has more real chances.

Very nice. So, debugging, profiling and Analysis are probably things you are familiar with (Is your version of MSVC high enough to give you Analyze functions?) and that's always a plus. Of course, to really be able to profile well, you'll need to have a copy of Freespace 2 (or one of it's TC's if you are more into other Universes) so I hope you do (if not, it's REALLY cheap on Good Old Games (gog.com)) and we can help you set up the minimum needed.

The biggest factor for any change to the code is that, no matter what, at the end of the day the code MUST still be able to load the original Freespace 2 Retail Data and present it just like Retail did (naturally, it'll probably be faster/smoother than, but you hopefully get the idea). This isn't to say that new things can't be done with the engine, we do support a number of TC's as well (The Babylon Project, Diaspora (Battlestar Galactica) and Fate of the Galaxy (Star Wars) just to name a few) and they have plenty of features that regular "Retail" never offered. Whenever possible, we like to make sure that features for one can also be features for all, so long as it doesn't break the Cardinal Rule.

Hopefully, you haven't fled the room in terror yet, so I look forward to how this may develop.
« Last Edit: February 17, 2011, 02:04:09 am by Zacam »
Report MediaVP issues, now on the MediaVP Mantis! Read all about it Here!
Talk with the community on Discord
"If you can keep a level head in all this confusion, you just don't understand the situation"

¤[D+¬>

[08/01 16:53:11] <sigtau> EveningTea: I have decided that I am a 32-bit registerkin.  Pronouns are eax, ebx, ecx, edx.
[08/01 16:53:31] <EveningTea> dhauidahh
[08/01 16:53:32] <EveningTea> sak
[08/01 16:53:40] * EveningTea froths at the mouth
[08/01 16:53:40] <sigtau> i broke him, boys

 

Offline Nomad

  • 21
Zacam
Quote
Good, we already have a project set up for that. Be aware that 2010 is capable of using C++0x which we don't have across all of our platforms yet, so be careful for the current moment and limit to C++98/03 Standards.
Yup, have to abandon new, fancy, highlighted nullptr :)

Quote
We do use GLSL Shaders. Current minimum support for version 1.20 (else it's Fixed Render Pipeline) as well as Limited Post-Processing. We do have some batching and handler/management tracing issues (namely a lack of a comprehensive sorter), and not all platforms have the ability to actually use the Launchers AA settings option to actually set the AA. And we would need to be able to implement it in a way that still allows Post-Processing to be done. Plans are also in the works to see about leveraging some Geometry shaders at some point as well. Of course, we are also still operating on a single pass rendering system in displaying everything, so there's another area we can also use some help, or even just somebody who's more familiar with a graphics API and the kind of workflow/pipeline it needs to accomplish it's goals. I'm barely begining to scratch the surface on OpenGL myself.
Actually, render code scares me a lot. I would strongly advice to intoduce some at least more or less object-oriented architecture at first, withoud that c-style-with-hacks-here-and-there approach, and abandon 16bit colors completely. It would be waaay more easier and comfortable.

Quote
Very nice. So, debugging, profiling and Analysis are probably things you are familiar with (Is your version of MSVC high enough to give you Analyze functions?)
Generally, I spend about 80% of time debugging, so yes. And have some profiling tools too. But not sure about what you mean with "Analysis".
I have access to MSVS 2010 Ultimate.

Quote
Of course, to really be able to profile well, you'll need to have a copy of Freespace 2
Original FS2 is installed, now downloading something using FreeSpace Open Installer, but I doubt I could spend much time to get into custom campaigns. Should see later regarding how good the work will go.

Quote
The biggest factor for any change to the code is that, no matter what, at the end of the day the code MUST still be able to load the original Freespace 2 Retail Data and present it just like Retail did (naturally, it'll probably be faster/smoother than, but you hopefully get the idea).
That's clear :)

Quote
Hopefully, you haven't fled the room in terror yet, so I look forward to how this may develop.
Still here lol :) Checked out, complied. Somehow, gr_init() keeps to freeze or crush explorer.exe, now figuring out the reason. Will be my first bug fix :)
There are also a lot of memleaks, I would propose a little bit different allocation technique I used in my previous project.



Sushi
Hello there and thanks for warm welcome :)

Quote
You may also want to get on IRC:
#scp on irc.esper.net
is the main channel where FSO coders hang out.
Not used to IRC, personally I prefer Skype conferences, but will try to find some time to get into this.

 

Offline Fury

  • The Curmudgeon
  • 213
Not used to IRC, personally I prefer Skype conferences, but will try to find some time to get into this.
You can use this link to get yourself right into #scp IRC channel. It uses your web browser, so no need to figure out how to use IRC clients, just pick a nickname and in you go.

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Yeah, if I'd managed to reply sooner, I could have just pointed you to any of the channel links in my signature ;)

Hope to get a chance to chat with you on IRC soon.
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

 
Skype wouldn't be as effective for this community as IRC because of the large number of people involved and the fact that they're rarely all in one place at one time.
Being a truly global project it's hard enough to try to make that happen when all are willing, let alone on the off chance.


If you feel reallllllllllllly brave you could always do netcode! *puppy eyes*
"Neutrality means that you don't really care, cuz the struggle goes on even when you're not there: Blind and unaware."

"We still believe in all the things that we stood by before,
and after everything we've seen here maybe even more.
I know we're not the only ones, and we were not the first,
and unapologetically we'll stand behind each word."

 

Offline Fury

  • The Curmudgeon
  • 213
If you feel reallllllllllllly brave you could always do netcode! *puppy eyes*
And here I thought you've repeatedly claimed there's nothing wrong with the netcode. :p

 

Offline karajorma

  • King Louie - Jungle VIP
  • Administrator
  • 214
    • Karajorma's Freespace FAQ
I doubt he's a big enough idiot to claim that. In fact I don't think I've ever met someone who was a big enough idiot to claim that. :p
Karajorma's Freespace FAQ. It's almost like asking me yourself.

[ Diaspora ] - [ Seeds Of Rebellion ] - [ Mind Games ]

 
I never said it was perfect, but I do think it's a /lot/ better than most people give it credit for...
"Neutrality means that you don't really care, cuz the struggle goes on even when you're not there: Blind and unaware."

"We still believe in all the things that we stood by before,
and after everything we've seen here maybe even more.
I know we're not the only ones, and we were not the first,
and unapologetically we'll stand behind each word."

 

Offline Spicious

  • Master Chief John-158
  • 210
Have you considered creating a replacement for the OBJ2 format?