The Legend of Jorda - 2D Java MMO

KEEP UPDATED ON REDDIT: /r/LegendOfJorda

Now I know what you’re thinking, [quote]Oh my god another person trying to create an MMO all by themselves…annoying
[/quote]
But I’ve been working on this project for two-three months during school and at home. The reason I’m confident I can make it playable is because I’m worrying about functionality rather than “omg player owned housing”.

I have combat (somewhat) functional, I’ve been working on tweaking the combat algorithm the last couple of weeks to find something that works. Along with that I’m working on how enemies react to being attacked, dropping loot, ect. Pretty much done with that as well, which means the game is almost functional-ish. Thought it would be a good time to start introducing people to my project, seeing what they think and trying to get people involved.

The game will be heavily built by the community, as the world will be made up of submissions from the players (textures, map areas, monsters, weapons, ect.). The game will have a heavy base on grinding hard to get level cap and to get the best gear you can, so if you like grinding this is the game for you.

TLoJ has been an idea I’ve had for years, and I’ve never had the skills or time to make it until this school year. For a few months now I’ve been working on the game, the server and the map editor alongside each other, slowly taking my time and making sure things work properly. The game takes a heavy inspiration from Runescape, as it’s been one of my favorite MMO’s since I was a kid. However, TLoJ is twisted into my own unique game.

Latest devlog:

yi49IOd42Aw

Here’s what I plan on being a part of the game:

  • Rogue-like combat with a unique combat algorithm
  • Raids/boss rooms heavy in difficulty and heavy in rewards
  • Tight-knit community
  • Map areas, bosses, items, textures, ect. created and submitted by the community as well as created by me (this means full access to tools such as the map creator)
  • Player owned housing!
  • Free to play (buyable cosmetics, no pay to win)
  • Lots of different skills to train
  • PvE based
  • And more…

There’s a lot more I’m probably going to want to add into the game, but I’m trying to keep my focus on the task I’m currently working on so I don’t get off track.

I think the most important thing you should draw from this, is that its MY game. I want myself and the people that play it to enjoy it as much as possible which means I’m always open to suggestions and I’m always dedicated to making the play experience the best it can be.

Important reddit posts:

Screenshots so far:

I like the user interface. However, none of these screenshots show the actual game. You should upload a trailer video or something. We don’t know what the heck you are working on besides what your goals are for the game. This is the WIP games, tell us about it!!

Hey Hyrdoque! Thanks for the feedback.

Whilst in the midst of creating the subreddit and all yesterday I was a bit excited and forgot to include that info! Added to the original post! :slight_smile:

I’ll also be making some devlogs soon and uploading them to Youtube. I’ll keep you guys updated ;D

Replace the grass tile with the one I made. It’s somewhere. Maybe you can find it on my profile. Maybe not. I think my grass is better than yours :stuck_out_tongue:

I’ll go dig for that now :stuck_out_tongue: many thanks.

The one I’m using now I think I got from a free game art website. Not a final texture. That, the cobble, knight, tree and portal textures are all temporary and not mine.

I love MMOs! They’re highly addictive, and yours looks pretty promising. I’m assuming that you’re using Swing for this (those buttons don’t tell lies) but that doesn’t matter, Swing is pretty OK. But I think JavaFX is way better, especially since it has CSS styling while for Swing, you have to create your own Look & Feel, which is cumbersome.

Also, the name sounds a little cliché. “The Legend of …” is common in the RPG game list. Try something new, something different. Maybe something like Periculum, which means “danger” in Latin, or maybe “Munus Ludentem”, which means “role-playing” in Latin. Something along those lines.

Other than that, the game looks awesome. Keep it up!

Thanks for the feedback ;D

I would have loved to have used LWJGL/LibGDX to create the game, but I started the project in my Computer Science class. Our school issued us all Chromebooks for the class, and we connect to a Virtual Machine to write our code. Of course, the VM doesn’t have much more than integrated graphics and couldn’t run an instance of OpenGL. Of course, I could just write code and not test at school, but the initial reason for the project was to create something we could all play together in class.

No worries though! Eventually I’ll work on converting the client over in a huge update, once the game is released and stable.

By the way I was kidding about the grass, but it does look better imo. :slight_smile:

This retro feel and layout reminded me of chipped dagger MMO from ages ago…

That game is no longer active after Don quit (after some drama with the players, then realising it’s not going to make enough profit for a living). Nevertheless I’ve always enjoyed playing retro games like that, so I’d be interested to see where this one goes.

Good luck!

I’ve never used swing/awt’s sub-windows. Is that what they are? What’s the nature of them? Drag and reorder?

I took a look at that game sometime during my development. It looked fairly similar to my game. Thanks for the support!

Released my first devlog today! Let me know what you guys think!

yi49IOd42Aw

1: Don’t breath into the microphone. Your P’s can be heard D:
2: Looks cool
3: Your code looks like mess D:
4: Rethink your methods of data, characters like that are very simple and don’t require the complexity of xml however it is nice I guess

I appreciate the feedback yet I’m going to disagree with some of your points. The only portion you saw of my code was a terrain loading feature on the server that I was debugging. The server side code is extremely lengthy for obvious reasons and is fairly well documented to the point that I (the only developer of the game) can understand it.

I also don’t see a reason to not use an XML document. XML is a markup/formatting language and is used for a reason and it’s certainly better than hard-coding in every single NPC that has 10-20 variables within it.

And for the quality of the video, I’m fairly new to recording so it’s going to take me time to perfect it.

Thanks for the feedback!

I still don’t see the point of using XML. Unless you have a hundred variables, having a few variables for a NPC in an arbitrary way is good.

Examples
[spoiler]Frank #name
14 #level
3 #att
3 #str
3 #def
3 #crit chance[/spoiler]
[spoiler]Bill #name
14 #level
3 #att
3 #str
3 #def
3 #crit chance[/spoiler]

It is much better than creating tags for stuff, plus you can even have a small, small module you can use :point:
I lot of people like them fancy editors, from what I see, you do too.

And I don’t agree with heavily commented code but that is just me and not being stupid with my own code :point:

I think I saw some in-module try catch things and no throws. You probably have a thousand try-catches D:
That and I don’t think I saw a final when you were creating that… buffered reader?

Nitpick your own video. There is definitely a learning curve! :slight_smile:

It’s a matter of preference really. Although personally when it comes to the likes of a big RPG game, having external files (be it xml or something else) for game objects is generally preferred. I think doing things that way does a good job from separating internal game logic and game content. For example, I used XML for NPC handling a while back in a (now vaporware) game project of mine. It does have some merits to it. The tags and attribute names does a good job of making the whole content understandable. Although by using this kind of system, there’s a lot of workload on implementing a script interpreter of your own.

This is an example guard NPC file for a game I used to work on.

<npc hostile="false" faction="HUMAN" resource="res/textures/sprites/static/mon00.png" sprite="8,0" width="1" height="1"
     name="Guard" identifier="guard_0" facing="RIGHT" nameColor="WHITE">

    <location>
        <map>dev_quarters_lobby</map>
        <pos>11,16</pos>
    </location>

    <ai type="NONE" />

    <stats>
    </stats>

    <script type="interact">
        <IF check="$SCRIPT_DATA" scriptDataParam="guard_left_0.spoken" operation="==" compare="1">
            <say interval="0" duration="1000">*yawn*</say>
        </IF>
        <IF check="$SCRIPT_DATA" scriptDataParam="guard_left_0.spoken" operation="==" compare="0">
            <say interval="0" duration="2000">This job sucks...</say>
            <wait for="2000" />
            <say actor="$NPC_REF" actorRef="dev_quarters_lobby.guards.guard_right_0" interval="0" duration="1000">Aye</say>
            <wait for="1250" />
            <say interval="0" duration="1000">Oh sorry...</say>
            <IF check="$PLAYER_POSITION" operation="==" value="10,16">
                <move actor="$PLAYER" x="11" y="17" />
                <wait for="1000" />
                <facing actor="$PLAYER" direction="UP" />
            </IF>
            <wait for="1000" />


            <move direction="LEFT" steps="1" />
            <wait for="1000" />
            <facing direction="RIGHT" />
            <wait for="250" />
            <say interval="0" duration="1000">Welcome!</say>

            <scriptData key="guard_left_0.spoken" value="1" />
        </IF>

    </script>
</npc>

Ewwww gross

There’s nothing wrong with using XML. At all. Doesn’t mean I’d recommend it, because I’m one of those people who rolls their own formats for everything, but if it’s fit for your purpose then go ahead.

[quote]XML Stuff
[/quote]
The first third of the XML stuff looks really nice and organized :point: but that script part kinda bloats it up.

The first third of the XML stuff looks really nice and organized :point: but that script part kinda bloats it up.
[/quote]
Right now I’m using a string reference to a Java class, which is where I can write custom NPC logic. It’s a little odd, I thought maybe about adding support for Lua that will allow me to quickly write clean code for the logic.