Popular Post Secrets Posted November 2, 2016 Group: Developer Topic Count: 36 Topics Per Day: 0.01 Content Count: 588 Reputation: 437 Joined: 01/26/16 Last Seen: Wednesday at 03:00 PM Popular Post Share Posted November 2, 2016 rAthena C++ Migration It's a well-known fact that people can get old. A software can also get old. It has been years that rAthena forked from eAthena, which is a fork of jAthena. Countless changes were committed. A large number of developers come and go. So, we think that it's time to move forward and leave things from 200x behind. I'd like to announce the project that was started by @Lighta, picked up later by the rA dev team, Project rAthena++. It is an attempt of converting rAthena source code from C language to C++ with utilizing object-oriented programming in mind. We believe that libraries available in C++ will facilitate us greatly in creating new features in the future. Code for the project can be found in our GitHub Repository. However, the project has its downside. It may break every single source mods out there. Although, I believe that it will be much easier to recreate mods in the future. In addition, rAthena being in C++ open the possibility for a nice plugin system to make mod developers' life easier. Also, currently the project will not compile on Linux. We will make a change to our Makefile later to support Linux. Additionally, I'd like to ask you to help test this new branch of rAthena throughout the development process for bugs or bad merges that may happen here and there. The project is still in very early stage. Its code is not much different to what we currently have now, but it will get refactored everywhere possible to make a good code base to develop in the future. Finally, special thanks to @Lighta for a good base of code. @Sirius_Black for his refactored solution for rAthena. @Aleos for great advices and tips. @Lemongrass for great advices and tips. @Cydh for a great piece of code that get me out of the compile errors hell. Secrets signing out! Links: C++ development branch: https://github.com/rathena/rathena/tree/refactor/rA-cpp 18 1 Quote Link to comment Share on other sites More sharing options...
Start_ Posted November 2, 2016 Group: Members Topic Count: 26 Topics Per Day: 0.01 Content Count: 950 Reputation: 180 Joined: 04/05/13 Last Seen: 21 hours ago Share Posted November 2, 2016 I'm glad to hear this. I want to help your guys but all I can do is say goodjob to dev. Quote Link to comment Share on other sites More sharing options...
Akkarin Posted November 2, 2016 Group: Forum Manager Topic Count: 282 Topics Per Day: 0.06 Content Count: 3144 Reputation: 1630 Joined: 03/26/12 Last Seen: April 15 Share Posted November 2, 2016 I'm glad to hear this. I want to help your guys but all I can do is say goodjob to dev. You can help in lots of ways! Submit issues to github, test for compiling errors, hit the donate button, review changes, suggest updates, etc etc. 2 Quote Link to comment Share on other sites More sharing options...
Start_ Posted November 2, 2016 Group: Members Topic Count: 26 Topics Per Day: 0.01 Content Count: 950 Reputation: 180 Joined: 04/05/13 Last Seen: 21 hours ago Share Posted November 2, 2016 I'm glad to hear this. I want to help your guys but all I can do is say goodjob to dev. You can help in lots of ways! Submit issues to github, test for compiling errors, hit the donate button, review changes, suggest updates, etc etc. In 2-3 month ago I want to donating, But I wonder how to donate. Because of I was saw donate button and again I saw donate in shop. Quote Link to comment Share on other sites More sharing options...
Akkarin Posted November 2, 2016 Group: Forum Manager Topic Count: 282 Topics Per Day: 0.06 Content Count: 3144 Reputation: 1630 Joined: 03/26/12 Last Seen: April 15 Share Posted November 2, 2016 The button on the right side of the forums allows you to donate any amount, the button in the "store" automatically gives you donator status. 2-3 months is a long time to wait to ask a question @.@ On-Topic: This is a massive leap for the dev team and i'm looking forward to their lives being made easier at the end of it Quote Link to comment Share on other sites More sharing options...
Jey Posted November 2, 2016 Group: Members Topic Count: 5 Topics Per Day: 0.00 Content Count: 249 Reputation: 73 Joined: 10/20/12 Last Seen: August 16, 2018 Share Posted November 2, 2016 (edited) Good thing. Can you give some more information about this? There are a lot of open questions: - Should we fully focus on ra++ now? - When will the support for ra end? - Despite from linux compiling: Which major issues are open? - On which "version" is ra++ currently? Which commits needs to be reapplied from ra? Edited November 2, 2016 by Jey Quote Link to comment Share on other sites More sharing options...
lekkereten Posted November 2, 2016 Group: Members Topic Count: 8 Topics Per Day: 0.00 Content Count: 148 Reputation: 46 Joined: 11/02/11 Last Seen: November 25, 2024 Share Posted November 2, 2016 Do you plan on using modern C++ for this port? Quote Link to comment Share on other sites More sharing options...
Azeroth Posted November 2, 2016 Group: Members Topic Count: 36 Topics Per Day: 0.01 Content Count: 383 Reputation: 121 Joined: 03/31/12 Last Seen: January 29, 2023 Share Posted November 2, 2016 (edited) Another emulator again re-engine to C++? xDWell goodluck Edited November 2, 2016 by Azeroth Quote Link to comment Share on other sites More sharing options...
anacondaq Posted November 2, 2016 Group: Members Topic Count: 42 Topics Per Day: 0.01 Content Count: 1096 Reputation: 348 Joined: 02/26/12 Last Seen: May 30, 2023 Share Posted November 2, 2016 (edited) This is just my personal opinion, but i should to say my few cents about it: Looks like you guys don't even understand HOW IS BIG AMOUNT OF WORK need to do You do not even answer to yourself -> for what do you need to do it? Because some knows better C++? You do not even answer to yourself -> HOW WILL YOU DO IT? Or you will keep c based functions in C++? Do you even understand, that you CAN'T change C to C++ easy as 1-2-3, and C++ project it's TOTALLY ANOTHER EMULATOR First few years (2-3) you will just try to convert C functions with C logic to another language. Then next few years you will understand that you have builded C code on C++ what you have before I really want to say a lot of words, but the main question? For what? Why not Rust? Why not GO? Why not python? What do you want to get in result? More bugs, more work, bigger time window between latest kRO episode & current rA? Or do you want just death of rAthena? What C can't do right now for you in code? Maybe it's time to better optimize C code and current functions and split millionlinesfunctions to small compact 60-70 lines function with deep & good parameters checks? Maybe it's better start to write C unit tests? I really trying understand your logic in your wishes, but i can't. Because C is hard, C in few things more limited then any other languages, but with C++ you will have million of problems with memory usage, etc things... Anyway, i respect your opinion about switching to another platform, it's ok for me, and i can't say you stop not doing it, but please think about it very well first, because looks like you guys don't even know what you are building, and i hope you will not waste a lot of your potential, time, and energy to trash. Edited November 2, 2016 by Anacondaqq 1 1 Quote Link to comment Share on other sites More sharing options...
Secrets Posted November 3, 2016 Group: Developer Topic Count: 36 Topics Per Day: 0.01 Content Count: 588 Reputation: 437 Joined: 01/26/16 Last Seen: Wednesday at 03:00 PM Author Share Posted November 3, 2016 Typed this on my tablet, so sorry for bad format. I will edit the format later. I appreciate all questions and feedbacks. - Should we fully focus on ra++ now? Ans. Some of originally planned feature are postponed in favor if rA++ instead. - When will the support for ra end? Ans. We have no plan of ending support for rA yet. - Despite from linux compiling: Which major issues are open? Ans. There no real major issue at the moment. - On which "version" is ra++ currently? Which commits needs to be reapplied from ra? Ans. rA++, as of now, is almost up-to-date in comparison to rA, and I will regularly merge commits from rA. - Are we going to use modern C++ for rA++? Ans. rA++ will use C++11 as its standard. - Do you understand how big of work this is? Ans. Yes, and it's being done part by part. Usage of our redundant C implementation is slowly being dropped. For example, StringBuf is dropped in my local branch in favor of std::string that is more efficient and powerful. - Why? Ans. rA is in technical debt for long time. We don't want to create any custom implementation of , for example, containers that is already available and more powerful in C++. Implementing one ourselves will just make the project harder to maintain. Another example is STL containers such as vector. It has more use and functions compared to our macro based vector. - Do you understand that this is not 1-2-3 *poof* C++ Ans. Yes. - For first few year, you'll only convert C logic to C++ Ans. Dropping something and totally rewrite it in modern C++ is my choice if something is too big. - Statements on C++ Ans. C++ has improved in these past few years. I believe this is worth the time. - Azeroth's statement Ans. Which one have you seen refactored to C++? Go away 1 Quote Link to comment Share on other sites More sharing options...
Jey Posted November 3, 2016 Group: Members Topic Count: 5 Topics Per Day: 0.00 Content Count: 249 Reputation: 73 Joined: 10/20/12 Last Seen: August 16, 2018 Share Posted November 3, 2016 So rathena will stay on C-Based Code for now and will not rush into fully OOP C++, but will implement C++ step by step. I like the idea, hopefully it works out well :> Quote Link to comment Share on other sites More sharing options...
Azeroth Posted November 3, 2016 Group: Members Topic Count: 36 Topics Per Day: 0.01 Content Count: 383 Reputation: 121 Joined: 03/31/12 Last Seen: January 29, 2023 Share Posted November 3, 2016 (edited) Secret? why i will 'go away' kid? it's just my own opinion I'd rather stick to C Based Code on rAthena since it's forked from eAthena from ages of Athena that was original from japan Athena than making another refactored C++. Anyways. we'll see what people can feedback Edit:Anacondaqq i totally agreed with you. Edited November 3, 2016 by Azeroth Quote Link to comment Share on other sites More sharing options...
Secrets Posted November 3, 2016 Group: Developer Topic Count: 36 Topics Per Day: 0.01 Content Count: 588 Reputation: 437 Joined: 01/26/16 Last Seen: Wednesday at 03:00 PM Author Share Posted November 3, 2016 Secret? why i will 'go away' kid? it's just my own opinion I'd rather stick to C Based Code on rAthena since it's forked from eAthena from ages of Athena that was original from japan Athena than making another refactored C++. Anyways. we'll see what people can feedback Edit: Anacondaqq i totally agreed with you. Now that's a more constructive reply instead of your unconstructive first reply.I hope you understand why I told you to go away. So, I understand your opinion, but, old codes from eA/jA or even rA is why we want to refactor. We sweared from times to times in the developer channel because of these old codes. Quote Link to comment Share on other sites More sharing options...
Azeroth Posted November 3, 2016 Group: Members Topic Count: 36 Topics Per Day: 0.01 Content Count: 383 Reputation: 121 Joined: 03/31/12 Last Seen: January 29, 2023 Share Posted November 3, 2016 Secret? why i will 'go away' kid? it's just my own opinion I'd rather stick to C Based Code on rAthena since it's forked from eAthena from ages of Athena that was original from japan Athena than making another refactored C++. Anyways. we'll see what people can feedback Edit: Anacondaqq i totally agreed with you. Now that's a more constructive reply instead of your unconstructive first reply.I hope you understand why I told you to go away. So, I understand your opinion, but, old codes from eA/jA or even rA is why we want to refactor. We sweared from times to times in the developer channel because of these old codes. I hope so everything will be fine. because from time to time there are still a lot of issue hasn't solved yet. As what Anacondaqq said i totally agreed what he saying. Even though i don't post any issue at github but i always keep on update to date with issue and pull requests. Goodluck then! Quote Link to comment Share on other sites More sharing options...
lekkereten Posted November 3, 2016 Group: Members Topic Count: 8 Topics Per Day: 0.00 Content Count: 148 Reputation: 46 Joined: 11/02/11 Last Seen: November 25, 2024 Share Posted November 3, 2016 @Secrets Why not C++14? I believe all compilers that matter support. Also Azeroth said about this probably: https://github.com/eathena/eathena/tree/eapp Quote Link to comment Share on other sites More sharing options...
Akkarin Posted November 3, 2016 Group: Forum Manager Topic Count: 282 Topics Per Day: 0.06 Content Count: 3144 Reputation: 1630 Joined: 03/26/12 Last Seen: April 15 Share Posted November 3, 2016 I hope so everything will be fine. because from time to time there are still a lot of issue hasn't solved yet. Even though i don't post any issue at github but i always keep on update to date with issue and pull requests. Maybe you should start posting issues at github, so the devs can work on the issues? 2 Quote Link to comment Share on other sites More sharing options...
Azura Skyy Posted November 3, 2016 Group: Members Topic Count: 49 Topics Per Day: 0.01 Content Count: 545 Reputation: 221 Joined: 03/01/13 Last Seen: January 2, 2023 Share Posted November 3, 2016 I hope so everything will be fine. because from time to time there are still a lot of issue hasn't solved yet. Even though i don't post any issue at github but i always keep on update to date with issue and pull requests. Maybe you should start posting issues at github, so the devs can work on the issues? Don't be silly. Users come here to bitch about what they would be doing differently if they had hands and an opinion worth hearing. It is comforting to see that there is a continually dedicated staff giving up hours of their free time to improve things for the long run then staying the same for short term convenience. Way to go Secret and others! Regards, ~Azura Skyy Quote Link to comment Share on other sites More sharing options...
Cydh Posted November 3, 2016 Group: Developer Topic Count: 153 Topics Per Day: 0.03 Content Count: 2285 Reputation: 748 Joined: 06/16/12 Last Seen: February 21 Share Posted November 3, 2016 This is just my personal opinion, but i should to say my few cents about it: Looks like you guys don't even understand HOW IS BIG AMOUNT OF WORK need to do You do not even answer to yourself -> for what do you need to do it? Because some knows better C++? You do not even answer to yourself -> HOW WILL YOU DO IT? Or you will keep c based functions in C++? Do you even understand, that you CAN'T change C to C++ easy as 1-2-3, and C++ project it's TOTALLY ANOTHER EMULATOR First few years (2-3) you will just try to convert C functions with C logic to another language. Then next few years you will understand that you have builded C code on C++ what you have before I really want to say a lot of words, but the main question? For what? Why not Rust? Why not GO? Why not python? What do you want to get in result? More bugs, more work, bigger time window between latest kRO episode & current rA? Or do you want just death of rAthena? What C can't do right now for you in code? Maybe it's time to better optimize C code and current functions and split millionlinesfunctions to small compact 60-70 lines function with deep & good parameters checks? Maybe it's better start to write C unit tests? I really trying understand your logic in your wishes, but i can't. Because C is hard, C in few things more limited then any other languages, but with C++ you will have million of problems with memory usage, etc things... Anyway, i respect your opinion about switching to another platform, it's ok for me, and i can't say you stop not doing it, but please think about it very well first, because looks like you guys don't even know what you are building, and i hope you will not waste a lot of your potential, time, and energy to trash. Good, you wrote more than what I want to ask. tbh, even lighta started to migrate to CPP (on his own fork) I never know what's the reason. If I -or we who don't know the reason- have lots of questions, totally normal. And your last sentence, yes, we have same thought. Quote Link to comment Share on other sites More sharing options...
Athan17 Posted November 3, 2016 Group: Members Topic Count: 1 Topics Per Day: 0.00 Content Count: 57 Reputation: 16 Joined: 09/26/16 Last Seen: August 16, 2020 Share Posted November 3, 2016 Hello rAthena Devs, first of all, thank you for doing hard work on making rAthena to keep up with the latest RO. im a dev too, and i know exactly how it feels to keep up with the current trends.back to topic, i would like to ask the same question anacondaqq asked. Why not Rust? Why not GO? Why not python? There are lots of platform to choose from, but why C++? Quote Link to comment Share on other sites More sharing options...
Secrets Posted November 3, 2016 Group: Developer Topic Count: 36 Topics Per Day: 0.01 Content Count: 588 Reputation: 437 Joined: 01/26/16 Last Seen: Wednesday at 03:00 PM Author Share Posted November 3, 2016 Hello rAthena Devs, first of all, thank you for doing hard work on making rAthena to keep up with the latest RO. im a dev too, and i know exactly how it feels to keep up with the current trends. back to topic, i would like to ask the same question anacondaqq asked. Why not Rust? Why not GO? Why not python? There are lots of platform to choose from, but why C++? (Copied from Discord) Since C codes can be reused in C++, we can reduce our workload of rewriting stuffs. That also allows us to go bit by bit instead of rewriting the whole thing at once. Quote Link to comment Share on other sites More sharing options...
sketchyphoenix Posted November 3, 2016 Group: Members Topic Count: 6 Topics Per Day: 0.00 Content Count: 112 Reputation: 89 Joined: 11/12/11 Last Seen: April 5 Share Posted November 3, 2016 (edited) Where's Shinomori when you need him? The dream is real, boys! @Secrets Why not C++14? I believe all compilers that matter support. Only partial support for VS https://msdn.microsoft.com/en-us/library/hh567368.aspx Edited November 3, 2016 by sketchyphoenix Quote Link to comment Share on other sites More sharing options...
Darknessfmy Posted November 4, 2016 Group: Members Topic Count: 6 Topics Per Day: 0.00 Content Count: 78 Reputation: 12 Joined: 05/08/16 Last Seen: February 10, 2020 Share Posted November 4, 2016 (edited) Better Get to implement what is missing, we are in 2016 (starting 2017) and has content emulator 2012 and part of 2013 ... The time you will spend in c ++ perfectly Might dedicate to improve what exists. You know perfectly well I'm right. Why fill the void with these things? This project needs much attention in the void to fill missing and you think about changing everything from scratch again? You need to focus and find a direction. I write with great respect for you and the work of all. I would love to have the knowledge and studies all have to improve this project, unfortunately I specialize in managing and directing dont know programming. Edited November 5, 2016 by Darknessfmy Quote Link to comment Share on other sites More sharing options...
Akkarin Posted November 4, 2016 Group: Forum Manager Topic Count: 282 Topics Per Day: 0.06 Content Count: 3144 Reputation: 1630 Joined: 03/26/12 Last Seen: April 15 Share Posted November 4, 2016 Better Get to implement what is missing, we are in 2016 (starting 2017) and has content emulator 2012 and part of 2013 ... The time you will spend in c ++ perfectly Might dedicate to improve what exists. You know perfectly well I'm right. Why fill the void with these things? This project needs much attention in the void to fill missing and you think about changing everything from scratch again? You need to focus and find a direction. I write with great respect for you and the work of all. I would love to have the knowledge and studies all have to improve this project, unfortunately I specialize in managing and directing no programming. Someone didn't read anything that was posted earlier in this thread.. It won't require a COMPLETE rewrite. As for "missing features", most will be much easier to add once the conversion is complete. For example, Aleos and Secrets were having a discussion earlier about how much easier it would be if the Achievement System was being written using functions available in C++. But because we don't have those functions available in C, the Devs have to write functions and hacked out methods of doing things. In C++ many of these functions are already available to us. It's difficult to improve what we currently have due to various limitations. One of those limitations is the restrictions placed on rA's code by C itself. Unless we add lines and lines of code to use functions that are already available in another language. "You need to focus and find a direction." We have, and it's with C++. Current changes and fixes are easily merged into the C++ branch, where they can be written correctly and expanded upon in the future. Implementing "what is missing" is difficult to do if it will introduce bugs/glitches/screaming rAthena users who won't do anything to help the Devs except complain. @everyone else: When you guys start to contribute to the src instead of only posting issues that your custom features affects official xyz implementation, then by all means cast opinions, or even join in the discussion. Until then, let the Devs provide your money-making-code for free without being harrased about their decisions to help you. 2 Quote Link to comment Share on other sites More sharing options...
Hijirikawa Posted November 4, 2016 Group: Members Topic Count: 19 Topics Per Day: 0.01 Content Count: 193 Reputation: 42 Joined: 07/21/16 Last Seen: August 7, 2019 Share Posted November 4, 2016 I completely support this project. I'll probably send in donations to Secret every now and then. Also, Better Get to implement what is missing, we are in 2016 (starting 2017) and has content emulator 2012 and part of 2013 ... The time you will spend in c ++ perfectly Might dedicate to improve what exists. You know perfectly well I'm right. Why fill the void with these things? This project needs much attention in the void to fill missing and you think about changing everything from scratch again? You need to focus and find a direction. I write with great respect for you and the work of all. I would love to have the knowledge and studies all have to improve this project, unfortunately I specialize in managing and directing no programming. Are you serious? I don't want this to be a flame thread, but re-read your reply, and then re-read the whole point of this project or update or something. It's gonna make life easier (I'm a C++ programmer too and I approve of this with lots of <3s) Quote Link to comment Share on other sites More sharing options...
Secrets Posted November 5, 2016 Group: Developer Topic Count: 36 Topics Per Day: 0.01 Content Count: 588 Reputation: 437 Joined: 01/26/16 Last Seen: Wednesday at 03:00 PM Author Share Posted November 5, 2016 I completely support this project. I'll probably send in donations to Secret every now and then. If you are going to donate, donate to rA instead. I'd like some money for some coffee, but this project is solely for the community. Better Get to implement what is missing, we are in 2016 (starting 2017) and has content emulator 2012 and part of 2013 ... The time you will spend in c ++ perfectly Might dedicate to improve what exists. You know perfectly well I'm right. Why fill the void with these things? This project needs much attention in the void to fill missing and you think about changing everything from scratch again? You need to focus and find a direction. I write with great respect for you and the work of all. I would love to have the knowledge and studies all have to improve this project, unfortunately I specialize in managing and directing no programming. Thank you for your feedback. You might be afraid that 100% of time available by our team will be dedicated to this project, but, no, we still improve our current emulator (rA) with current information we have. As for the void you mentioned, I'd like to fill those where I can, too. However, it was mostly caused by no official server files being leaked since a year or two years ago. New features were datamined from official servers, and it takes longer time than converting stuffs directly from official server files. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.