ByteLegend Walkthrough Part I

During the past whole year, I was learning CS courses at OSU. However, I have never touched Java before. Therefore, I decide to learn Java and I am using https://bytelegend.com/ to do so.

ByteLegend is an open source software project on GitHub: github link. It is a free HTML5 MMORPG game where players can learn real world programming knowledges and skills in Java. I found it half a year ago, saved the website link as a bookmark, and was hoping to play it someday to self learn Java.

While learning a new programming language through it, I am also trying to contribute to this OSS project as a game data contributor so that I could improve my skills in using Git.

Also, for some starters like myself, I decide to generalize a RPG game walkthrough in this blog.

There are 255 stars to be earned to get all the achievements. I will try my best to finish all of them by Christmas.

Walkthrough of ByteLedend

Java Island (Newbie Village and Foo Bar)

  1. Sign up with Github account
  2. Turn on/off music and choose your preferred language on the right up corner
  3. On the left up corner, you can see your mouse coordinator
  4. Click the book to see tutorials
  5. (1 star) First star: Star the project: https://github.com/ByteLegend/ByteLegend
  6. Enter the Foo Bar by clicking on the door
  7. (2 stars) Second star: install JDK on your laptop, then put “java -version” in your terminal shell, copy paste the output into the input box.
  8. Talk to the old man at the village gate and hand him the java/coffee.
  9. (5 stars) Click on the Request board to learn about GitHub Pull Request. Your action would be recorded in https://github.com/ByteLegendQuest/remember-brave-people. By completion of this task, you will earn 3 stars. Now you should have 5 stars.
  10. (6 stars) Install an IDE, I personally recommend IntelliJ IDEA Community Edition: https://www.jetbrains.com/idea/download/. Then copy the “about” content into the input box. This will award you one star and one key to open the chest for 100 coins
  11. If you go up, the soldier will ask you to wear a Git Amulet to pass. Therefore, you have to go to the star face NPC, pay 50 coins to go to Git Island.

Git Island

  1. (7 stars) Welcome to Git Island! Click on the chest and install Git. Type “git -v” to find your git version and copy paste that output into the input box to earn your seventh star and a chest key.
  2. Use the chest key to open the chest. Now you have got the Git Amulet.
  3. You shall not pass for now. So go back to Java Island. Yes, you have to pay the star face 50 coins again.

Java Island (Java Basic Structure)

  1. Click on the gate to learn how to clone and run a Java program.
  2. Open your shell. Create a new folder, name it whatever you want. I named it ByteLegend. In your shell cd to this folder.
  3. Type “git clone https://github.com/ByteLegendQuest/java-clone-switch-branch” to clone the project in the new folder.
  4. Open the pom.xml with your IDE, choose “Open as Project”, and then choose “trust the project”.
  5. Find the Main.java file under src/main/java/com/bytelegend.
  6. (8 stars) Click the run button next to line 7. You will see Base64 Encoding String in your window. Copy and paste that string into the input box to earn your eighth star and a door key for the gate.
  7. Click on the second gate to learn how to switch branch and run with a different JDK.
  8. In your IDEA, click the “main” at the right bottom corner and then choose origin/jdk17, and then click on “Checkout”. Wait for the project to sync and now you are in brank jdk17.
  9. (9 stars) Click the run button next to line 7. You will see another Base64 Encoding String in your window. Copy and paste that string into the input box to earn your ninth star and a door key for the second gate.
  10. (10 stars) Click on the bug to start this challenge. Open the “this simple Java program”, change the sign and then click on “Submit Answer” and then wait for a while to earn your tenth star and a knife to kill the bug. For beginners, I highly recommend you to follow the suggestions to practice this on your local IDE but it is not required. 
  11. (13 stars) For the following three challenges, you can do them in either sequence you want. This is for “Create a New Class”: In the online editor, open the Cat.java file and create a public class called Cat. Notice: if there is a style issue, like no new line at the end, you will only get 2 stars. Cheat: https://github.com/ByteLegendQuest/java-create-a-new-class/pull/767/commits/e38ea2849388b40a63e91c1c71bc83d6945698d2
  12. (16 stars) This is for “Import Class” Challenge 1: In the online editor, open the Home.java and add the import statements. Tip: be careful of typos. Cheat: https://github.com/ByteLegendQuest/java-import-class/commit/89130d7a169b0b7e0ac6c15581bc36e9803eec59
  13. (19 stars) This is for “Import Class” Challenge 2: Modify the code in Home.java. Cheat: https://github.com/ByteLegendQuest/java-import-class-with-same-name/commit/675584fee9e696763b28cd9abfdfa704c6d28f97
  14. (22 stars) This is for “Import Class from 3rd Party Package”. This is a hard challenge, it is OK you do not understand it for now, please check here for the answer: https://github.com/ByteLegendQuest/java-import-3rd-party-class/commit/9683c56df10bb992289fff9d29b20c65770d234f
  15. Now you should have three Gold Swords, use them to destroy the three towers to eliminate the alien.
  16. (Side Quest) Enter Dungeon: Comment & Javadoc.
  17. (25 stars) Comment. Change the comment from single line comments into multi-lines comments and multi-lines comments into single line comments. Open the chest for 100 coins.
  18. (28 stars) JavaDoc Challenge 1. Learn JavaDoc style, open the ChallengeEn.java doc, and edit the author part. This is an easy but IMPORTANT challenge to accomplish. 
  19. (31 stars) JavaDoc Challenge 2. Correct this JavaDoc. There is an obvious error. However, this is not a good challenge, for the other errors which are meant to be tricky. Please check the answer: https://github.com/ByteLegendQuest/java-fix-broken-javadoc/commit/f81b8d9df1ad1e75385c329b8c643d2648afe38a
  20. With the chest key, get another 100 coins.
  21. (34 stars) Java Methods Challenge 1. Learn what is a public static void method.
  22. (37 stars) Java Methods Challenge 2. Learn about data types.
  23. Destroy the defense tower with the gold sword.
  24. (38 stars) Method Overload. This is a challenging and rewarding challenge. Tip: do not make your method private like it should be. Cheat: https://github.com/ByteLegendQuest/java-write-overloading-methods/commit/bcc017593330abc779560ed90655f8986c19c0c8
  25. (40 stars) My personal beautiful solution above will only give you one star. To get three stars, pay attention to the coding style, you need this solution: https://github.com/ByteLegendQuest/java-write-overloading-methods/commit/64c1ef9a29bc21c783525706a21be66748c6cee2

To be continued…

Part II: https://blogs.oregonstate.edu/ligan/2022/11/23/walkthrough-of-bytelegend-part-ii/

Amazon Web Services

In 2022 summer, I did my intern backend prototype project to create personalized functionality for a huge customers database.

The project requires me to parse million to billion level of data and I learned a lot about Amazon Web Services. Therefore, I am planning to introduce you my experience with AWS tools.

From my perspectives, AWS is one of the best cloud platforms offering all kinds of featured cloud services. This cloud service offers features in analytics, application integration, database, developing tools, networking, security, storage, etc. In general, It offers everything.

Even though I believe AWS is the best cloud service, it is not easy to learn and use it. However, the high learning cost is a common issue for all cloud services. Amazon showed some level of effort in the reference doc. But we still need to google our questions and find most of it on stackoverflow.com.

On the other hand, AWS do offer a free tier account. You can create an account at https://aws.amazon.com/free/ with an email and a credit card (without charge). Most of the services are offered either 12 months free or always free. Some new and fancy services are offered a free trial.

I built a prototype workflow using AWS Step Function, Athena(MySQL), Lambda, and Simple Storage Service(S3 Buckets). I was impressed by AWS Athena because it handles 10 million lines of data in 4 seconds.

Some famous applications or services built with AWS are Netflix, Twitch, LinkedIn, Facebook, etc. Also, we should all remember in the final week of Spring 2022, Canvas was down for couple hours, that was because there were some issues with the AWS data center in east America. Generally, with AWS, we could build all kinds of services that is related to the Internet and it is free and easy to create an AWS account to start learning cloud services.