Popular Post fastman92 Posted November 26, 2016 Popular Post Share Posted November 26, 2016 (edited) Welcome everyone. I want to join the MTA team and make some changes to the MTA source code. Who to contact? How can I start? Edited November 26, 2016 by fastman92 6 Link to comment
MTA Team Popular Post jhxp Posted November 26, 2016 MTA Team Popular Post Share Posted November 26, 2016 Hi! Thank you for taking an interest in contributing to our project. Multi Theft Auto: San Andreas is an Open Source software, so anyone who feels confident in C++ (and/or possibly other utility languages we use) can contribute to the code base. A good start would be to check out our project page at GitHub, or more specifically - our README: https://github.com/multitheftauto/mtasa-blue/blob/master/README.md. After giving that a read, you might want to read our Coding Guidelines as well (which are also mentioned in the README): https://wiki.multitheftauto.com/wiki/Coding_guidelines. These guidelines explain the structure of our code, how to write your code so it can be accepted by us, and what you should try to focus on when submitting your first patches/pull requests to us, amongst other things. Having read both of these, you should get the general idea of how this project operates. Now, to answer the rest of your questions: You do not need to be a MTA Team member in order to submit your code to us. You have to be registered on GitHub though (don't worry, it's completely free of charge) and should know how to use Git. Obviously, you will be listed as an author of any code you contribute to us (provided that we accept it). You can find a list of our developers here: https://forum.multitheftauto.com/staff/, (ones with a Godfather (The MTA Team) rank, although not everyone is active), but you do not need to contact anyone individually per se (unless it's a confidential question eg. regarding a security issue). If you have any other questions then feel free to ask. Good luck. 5 Link to comment
MTA Anti-Cheat Team Popular Post Dutchman101 Posted November 26, 2016 MTA Anti-Cheat Team Popular Post Share Posted November 26, 2016 (edited) 52 minutes ago, jhxp said: You do not need to be a MTA Team member in order to submit your code to us. You have to be registered on GitHub though (don't worry, it's completely free of charge) and should know how to use Git. That's right because the definition of an MTA contributor/developer (someone who actively develops our codebase) is different from MTA team, which is a title you get by broad recognition that only the devs who play(ed) a key role in making MTA what it is /those who lay MTA's foundation have (not of added value while developing for MTA). As a contributor, which you're looking for to become, you can create pull requests with your patches/feature implementations. Your chances to ever get any official status such as on forums depend on your own performance, if you become well known for your good quality code and judgement/self-review capabilities (realiably and structurally knowing how stable and desired certain patches are) you could be granted commit rights to cut the code review by other developers. While you're at it you can be granted additional tools and statuses if required for your assignments. (Especially don't take this literally, I'm just trying to draw an image for you of how it works here) Any current ''MTA Team'' or ''Contributor'' member around here has walked through this whole chain of reputation and recognition building which takes time, and is very informal (not needed to actually develop for MTA or contribute code as mentioned before) The conclusion: you're already part of a team if you start contributing code, and being formally part of it attachs zero value, if you deserve it over time it'll get to you and as you advance some groups such as Contributor until (theoretically) MTA team it only increases your recognition/honour. fastman92 by the way you're widely known within the GTA:SA modder community so you do have experience with GTA mechanics, which is of immense added value to developing MTA. Currently we can use some developer manpower and if you want to improve MTA utilizing your present skills you're very much welcome (as any contributor would be though, skilled with GTA internals already or not) Edited November 26, 2016 by Dutchman101 5 Link to comment
fastman92 Posted November 26, 2016 Author Share Posted November 26, 2016 (edited) Thanks for replies. At the moment I only want to make the MTA compatible with the FLA. Some addresses are reallocated and the C++/ASM code will have to be altered. I need to learn how to use a Github and make changes to the MTA project, submit changes to it. I'm using Visual Studio 2015. fastman92 limit adjuster Edited November 26, 2016 by fastman92 1 Link to comment
MTA Anti-Cheat Team Dutchman101 Posted November 26, 2016 MTA Anti-Cheat Team Share Posted November 26, 2016 (edited) 7 minutes ago, fastman92 said: At the moment I only want to make the MTA compatible with the FLA. Some addresses are reallocated and the C++/ASM code will have to be altered. So you basicly want to make THIS (https://forum.multitheftauto.com/topic/88462-fastman92-limit-adjuster-and-stream-memory-fix) possible? Read the wiki on how to use GIT, easy explanation: create a Github account, fork (sort of clone) the project repo, and use SVN software such as TortoiseSVN to fetch the repo to your PC. Start making those changes you want now, and I advise you to make it a new branch in consultation with MTA team members, as integration of something like this could need extensive testing/integrating all those commits at once by later merging the repositories after code and stability reviews are done. Make sure to read the Wiki about using our Git before my explanation, it was only meant to show you it's not all that complicated. Edited November 26, 2016 by Dutchman101 1 Link to comment
fastman92 Posted November 26, 2016 Author Share Posted November 26, 2016 Just now, Dutchman101 said: So you basicly want to make THIS (https://forum.multitheftauto.com/topic/88462-fastman92-limit-adjuster-and-stream-memory-fix) possible? Read the wiki on how to use GIT, easy explanation: create a Github account, fork (sort of clone) the project repo, and use SVN software such as TortoiseSVN to fetch the repo to your PC. Start making those changes you want now, and I advise you to make it a new branch in consultation with MTA team members, as integration of something like this could need extensive testing/integrating all those commits at once by later merging the repositories after code and stability reviews are done Yes, ok. I'll download TortoiseSVN. Not really, when coding I know what I'm doing. If you need a proof, you can see that my project the FLA patches over 9000 memory addresses in GTA SA and game is completely stable. Link to comment
Popular Post darkdreamingdan Posted November 26, 2016 Popular Post Share Posted November 26, 2016 I'd advise against TortoiseSVN, there's no need for it. Probably something like GitHub for Windows is much easier to get up and running. This guide has more or less everything you need to know: https://wiki.multitheftauto.com/wiki/Compiling_MTASA Quote Not really, when coding I know what I'm doing. There's really more much to developing on a large project than simply applying patches. MTA's codebase is very large in nature, and there are likely to be some integration challenges involved as well as harmonizing with our own coding standards. Good luck. 5 Link to comment
MTA Anti-Cheat Team Dutchman101 Posted November 26, 2016 MTA Anti-Cheat Team Share Posted November 26, 2016 4 minutes ago, fastman92 said: Yes, ok. I'll download TortoiseSVN. As suggested above by me and darkdreamingdan you're better off to use the recommended methods from the wiki, mine was just an example that its not all that complicated to get started, and is one of the (not recommended) methods. Link to comment
fastman92 Posted November 26, 2016 Author Share Posted November 26, 2016 (edited) 39 minutes ago, darkdreamingdan said: I'd advise against TortoiseSVN, there's no need for it. Probably something like GitHub for Windows is much easier to get up and running. This guide has more or less everything you need to know: https://wiki.multitheftauto.com/wiki/Compiling_MTASA There's really more much to developing on a large project than simply applying patches. MTA's codebase is very large in nature, and there are likely to be some integration challenges involved as well as harmonizing with our own coding standards. Good luck. Tell me what is MTA codebase made of. Is it C++ code or something else as well? I'm thinking about the LUA. Suppose it gets rellocated: .data:00A9B0C8 ; CModelPeds *CModelInfo::ms_modelInfoPtrs[20000] .data:00A9B0C8 _ZN10CModelInfo16ms_modelInfoPtrsE dd 4E20h dup(?) Where would 0xA9B0C8 get referenced? Only in the MTA C++ code, where the value could be found or in the LUA as well? I'm using the Github for Windows and cloning the MTA at the moment. Edited November 26, 2016 by fastman92 2 Link to comment
MTA Team sbx320 Posted November 26, 2016 MTA Team Share Posted November 26, 2016 The MTA codebase is entirely written in C++ with some parts written in inline assembly. The modelinfo array is referenced all across the game_sa and multiplayer_sa code, but Lua does not have direct access to any memory locations. All you can do from Lua is to call C++ functions, which then do something. 2 Link to comment
fastman92 Posted November 26, 2016 Author Share Posted November 26, 2016 Good. It shouldn't be that hard then. I'll continue tommorow. 1 Link to comment
Captain Cody Posted November 27, 2016 Share Posted November 27, 2016 (edited) Would adding FLA into MTA by any chance increase the LOD limits? Trying to break MTAs streaming limits is a huge pain in the butt with just lua. Edited November 27, 2016 by CodyL Link to comment
MTA Anti-Cheat Team Dutchman101 Posted November 27, 2016 MTA Anti-Cheat Team Share Posted November 27, 2016 (edited) 1 hour ago, CodyL said: Would adding FLA into MTA by any chance increase the LOD limits? Trying to break MTAs streaming limits is a huge pain in the butt with just lua. Yes, check your previous comments on what fastman is now trying to achieve, to see where this is about; (also check https://bugs.multitheftauto.com/view.php?id=9368) Edited November 27, 2016 by Dutchman101 1 Link to comment
Einheit-101 Posted November 27, 2016 Share Posted November 27, 2016 This could be the #1 request of all time and it would be amazing to see this someday. Draw distance is the mayor drawback in MTA. Especially when you have placed so many objects, that it gets decreased below the 300 meter limit. 2 Link to comment
fastman92 Posted November 27, 2016 Author Share Posted November 27, 2016 I'm getting these errors: 1>------ Build started: Project: DirectX9GUIRenderer, Configuration: Debug Win32 ------ 2>------ Skipped Build: Project: breakpad, Configuration: Debug Win32 ------ 2>Project not selected to build for this solution configuration 3>------ Build started: Project: Client Core, Configuration: Debug Win32 ------ 1>cl : Command line warning D9025: overriding '/MTd' with '/MT' 1> d3d9texture.cpp 1>e:\projects\mtasa-blue\vendor\cegui-0.4.0-custom\src\renderers\directx9guirenderer\d3d9texture.cpp(31): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory 3>cl : Command line warning D9025: overriding '/MTd' with '/MT' 1> d3d9renderer.cpp 3> StdInc.cpp 3> Compiling precompiled header. 3> 3>e:\projects\mtasa-blue\client\core\stdinc.h(16): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory 1>e:\projects\mtasa-blue\vendor\cegui-0.4.0-custom\src\renderers\directx9guirenderer\d3d9renderer.cpp(31): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory 1> Generating Code... 4>------ Build started: Project: GUI, Configuration: Debug Win32 ------ 4>cl : Command line warning D9025: overriding '/MTd' with '/MT' 4> StdInc.cpp 4> Compiling precompiled header. 4> 4>e:\projects\mtasa-blue\client\gui\stdinc.h(13): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory ========== Build: 0 succeeded, 3 failed, 36 up-to-date, 1 skipped ========== I have DirectX SDK installed. What should I do? Link to comment
Captain Cody Posted November 27, 2016 Share Posted November 27, 2016 If this can be acheived it would help so much with what I'm working on currently; trying to break mtas limits with just lua is near impossible. Link to comment
Neproify Posted November 27, 2016 Share Posted November 27, 2016 2 hours ago, fastman92 said: I'm getting these errors: 1>------ Build started: Project: DirectX9GUIRenderer, Configuration: Debug Win32 ------ 2>------ Skipped Build: Project: breakpad, Configuration: Debug Win32 ------ 2>Project not selected to build for this solution configuration 3>------ Build started: Project: Client Core, Configuration: Debug Win32 ------ 1>cl : Command line warning D9025: overriding '/MTd' with '/MT' 1> d3d9texture.cpp 1>e:\projects\mtasa-blue\vendor\cegui-0.4.0-custom\src\renderers\directx9guirenderer\d3d9texture.cpp(31): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory 3>cl : Command line warning D9025: overriding '/MTd' with '/MT' 1> d3d9renderer.cpp 3> StdInc.cpp 3> Compiling precompiled header. 3> 3>e:\projects\mtasa-blue\client\core\stdinc.h(16): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory 1>e:\projects\mtasa-blue\vendor\cegui-0.4.0-custom\src\renderers\directx9guirenderer\d3d9renderer.cpp(31): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory 1> Generating Code... 4>------ Build started: Project: GUI, Configuration: Debug Win32 ------ 4>cl : Command line warning D9025: overriding '/MTd' with '/MT' 4> StdInc.cpp 4> Compiling precompiled header. 4> 4>e:\projects\mtasa-blue\client\gui\stdinc.h(13): fatal error C1083: Cannot open include file: 'd3dx9.h': No such file or directory ========== Build: 0 succeeded, 3 failed, 36 up-to-date, 1 skipped ========== I have DirectX SDK installed. What should I do? Check if your DXSDK_DIR environment variable is pointing to 2010 version. I had this problem too. Link to comment
fastman92 Posted November 27, 2016 Author Share Posted November 27, 2016 (edited) It's set up correctly DXSDK_DIR = C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\ One thing that raised my attention, Client core can't be compiled because of the missing d3dx9.h, but at the same time the file "Client Core.vcxproj" doesn't have any occurence of string DXSDK_DIR Edited November 27, 2016 by fastman92 Link to comment
AfterAll14 Posted November 27, 2016 Share Posted November 27, 2016 On 26.11.2016 at 6:31 PM, fastman92 said: Welcome everyone. I want to join the MTA team and make some changes to the MTA source code. Who to contact? How can I start? 20 hours ago, fastman92 said: At the moment I only want to make the MTA compatible with the FLA. Some addresses are reallocated and the C++/ASM code will have to be altered. Wow, thats a great news! Really looking forward to this! That could open some serious game developmnet into MTA. Just one personal preference from me - if possible, make MTA object streamer work same way as standart GTA SA streamer (wich is brilliant both in object loading logic and draw distance). Link to comment
Jusonex Posted November 27, 2016 Share Posted November 27, 2016 45 minutes ago, fastman92 said: but at the same time the file "Client Core.vcxproj" doesn't have any occurence of string DXSDK_DIR MTA doesn't use DXSDK_DIR directly in VS project files. Instead, the real path is inserted by premake. So it will most likely/should look similar to this (in Client Core.vcxproj): <AdditionalIncludeDirectories>..\vendor;..\Shared\sdk;D:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;..\vendor\sparsehash\src\windows;..\Client\core;..\Client\sdk;..\vendor\tinygettext;..\vendor\zlib;..\vendor\jpeg-9b;..\vendor\pthreads\include;..\vendor\sparsehash\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> If it's not in place, check the value of dxdir in /premake5.lua by adding print(dxdir) as follows after line 29: dxdir = os.getenv("DXSDK_DIR") or "" print(dxdir) ...and run create-projects.bat again Link to comment
fastman92 Posted November 27, 2016 Author Share Posted November 27, 2016 6 minutes ago, AfterAll14 said: Wow, thats a great news! Really looking forward to this! That could open some serious game developmnet into MTA. Just one personal preference from me - if possible, make MTA object streamer work same way as standart GTA SA streamer (wich is brilliant both in object loading logic and draw distance). It's not my intention. The question why there's a different streaming could be answered by the lead MTA developers. 3 minutes ago, Jusonex said: MTA doesn't use DXSDK_DIR directly in VS project files. Instead, the real path is inserted by premake. So it will most likely/should look similar to this (in Client Core.vcxproj): <AdditionalIncludeDirectories>..\vendor;..\Shared\sdk;D:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;..\vendor\sparsehash\src\windows;..\Client\core;..\Client\sdk;..\vendor\tinygettext;..\vendor\zlib;..\vendor\jpeg-9b;..\vendor\pthreads\include;..\vendor\sparsehash\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> If it's not in place, check the value of dxdir in /premake5.lua by adding print(dxdir) as follows after line 29: dxdir = os.getenv("DXSDK_DIR") or "" print(dxdir) ...and run create-projects.bat again Tell me what I should do if I want to add a new CPP or H file. Link to comment
Jusonex Posted November 27, 2016 Share Posted November 27, 2016 MTA's build configuration uses wildcards for files, so just create your files and run create-projects.bat again. Link to comment
fastman92 Posted November 27, 2016 Author Share Posted November 27, 2016 (edited) I removed "Build" directory, then used create-projects.bat again The path defined by DXSDK_DIR wasn't inserted to vcxproj files. What to do? Edited November 27, 2016 by fastman92 Link to comment
fastman92 Posted November 27, 2016 Author Share Posted November 27, 2016 (edited) Compiled. How do I run the MTA and test how it's working? Edited November 27, 2016 by fastman92 Link to comment
Einheit-101 Posted November 27, 2016 Share Posted November 27, 2016 I get this error when MTA isn't installed (no registry entry) and I try to run it by just copying the files on the pc. Have you installed MTA before you replaced the default stuff with your own stuff? Link to comment
Recommended Posts