Secrets

[Future of rA] rAthena C++ Migration

Recommended Posts

I'm glad to hear this. I want to help your guys but all I can do is say goodjob to dev.

Share this post


Link to post
Share on other sites

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.

  • Upvote 2

Share this post


Link to post
Share on other sites

 

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.

Share this post


Link to post
Share on other sites

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 @[email protected]

 

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 :)

Share this post


Link to post
Share on other sites

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 by Jey

Share this post


Link to post
Share on other sites

Do you plan on using modern C++ for this port?

Share this post


Link to post
Share on other sites

Another emulator again re-engine to C++? xD

Well goodluck :)

Edited by Azeroth

Share this post


Link to post
Share on other sites

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 by Anacondaqq
  • Upvote 1
  • Like 1

Share this post


Link to post
Share on other sites

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 :)

  • Upvote 1

Share this post


Link to post
Share on other sites

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 :>

Share this post


Link to post
Share on other sites

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 :D


Edit:
Anacondaqq i totally agreed with you.

Edited by Azeroth

Share this post


Link to post
Share on other sites

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 :D

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.

Share this post


Link to post
Share on other sites

 

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 :D

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! /no1

Share this post


Link to post
Share on other sites

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?

  • Upvote 2

Share this post


Link to post
Share on other sites

 

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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++?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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 by sketchyphoenix

Share this post


Link to post
Share on other sites

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 by Darknessfmy

Share this post


Link to post
Share on other sites

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.

  • Upvote 2

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...