"Best" Language for RPG's--Online and Offline--Single and Multiplayer?

Started by
7 comments, last by RipIt 11 years, 6 months ago
I am curious as to what i could use to create these games in without having the bottleneck be the language / library / API--not sure if those are the right terms, still new a bit to it all.

What would be the "best" language to create the following, if its this simple, im still a bit lost
Text based RPG offline but in a web browser:
Text-based RPG online in a web browser:
Text-based MMORPG in a webbrowser:
2D top down RPG not in a web browser:
2D top down MMORPG:
2D topdown MMORPG in a web browser ( if possible ) :
Or:
Any other variation i may have missed which i was aiming for.


My short term goal would be to make a text based RPG either playable through web browser / download, while my long term would be 2D/3D RPG through how Runescape is, Browser based MMORPG.


Sorry i am just trying so hard to narrow down my topic / needs so i am not looking into the wrong language / direction for what i want. I am new to it and want to learn with long term goals in mind.
Advertisement
Language doesn't really matter here. Not one bit. Pick one you are comfortable with, and learn it well. The same answer applies no matter what type of game you want to make.

Multiplayer stuff is very difficult to program. Especially for someone with so little experience, that they have to ask this type of question.

First off, you regardless of language, you need resources.

[indent=2]For anything playable in a web browser, you need a server to host it on, and you need bandwidth.

[indent=2]For anything graphical, you need assets. Do you have the skills to create them yourself? If you do, they will take a huge chunk out of your available programming time. If not, you'll have to buy some off the web or pay an artist.

---------

Text based multiplayer RPGs are called MUDs. These are among the first types of computer games, and there are near infinite learning resources, tutorials, and code bases for you to play with. This is the path of least resistance. You can take an existing code base and run it on a server, continually modifying it into your own game, and learning a lot during the process! Just google 'mud programming' and start reading.

You might want to get started with a single player RPG. There is also another path of least resistance called the Rogue-like genre. These are top down single player RPGs that use text mode graphics. These are very fun, can be very complex, and there is also near infinite learning resources and code bases out there. Try the site RogueBasin to learn more.

http://roguebasin.roguelikedevelopment.org

http://roguebasin.roguelikedevelopment.org/index.php/Browser <-- list of browser based roguelikes!

-----------

There is an open sourced multiplayer browser RPG based on an old BBS door game I used to love called Legend of the Green Dragon. Check it out. You might get this up and running, and then modify it to suit your needs!

http://lotgd.net/home.php?

-----------

Graphical RPGs are more complex. Don't even bother with coding up your own engine. It's too big of a job even for a fully experienced expert, and you will never finish. Use a product like RPG Maker, RealmCrafter, or Unity3D MMO, or whatever else might suit your needs. So your main problem here becomes mass producing multi-media content, and debugging/maintaining our scripts.
All of the above could easily have the client done in HTML or flash and the multiplayer portions using a language like python or C# on the server. There is no "best" language as they are tools... it would be like calling my screwdriver better than my hammer. (which is obviously not true because hammers rock)
Ok, thank you, i am trying to get a grasp as i am learning the basics to C++ and will soon use some type of graphics library with it to practice drawing maps / tile based screens through an array? i think thats how its done, from what i have read so far. still not sure about all that lol.

I appreciate all the input you have both provided, i am just unsure of the FULL capabilities of these languages i suppose and it scares me to think i could use so much time doing something where it wouldnt be applicable to what i want in the long term thus having to learn another language and be lost again.

The text based RPG (MUD) would be very do-able in C++??

I don't want an old school MUD where players enter commands to do things such as "attack goblin" or "eat apple"

this would be controlled by say, clicking a link to go to a dungeon and within that dungeon they have a list of opponents to attack, say :

goblin
troll
barbarian

and they will click one to attack that character and can do so over and over until energy runs out or something of the sort.

As with the "eat apple" they wouldnt type it, they would click the inventory link and be directed there and then it would have apple in the inventory and they click it to eat it or other options like sell or give away

I guess it would be browser based, what would be the best way to tackle something like that?
RipIt, this game (in the links I provided) is open source, you could take a look at how it works. http://roguebasin.roguelikedevelopment.org/index.php/Wayward

Also, the LOTGD link I gave you is a working example of a non-typing text RPG! Log in and play a bit. It's free. If you like it, download it, and run your own server, altering it as you see fit.

However, that is beyond you for now. Asking about the full capabilities of a language means you don't have a basic grasp of programming just yet, and you should do a bit more learning for now. That's like asking if the full capabilities of English is enough to write the novel you have in mind. :P

Whether or not you type 'eat apple' or press a gamepad button, or click on something on the screen really makes no difference. It's a different user interface over the same actions, and produces the same result.

These games typically run in a simple loop that waits for a player action to take place, then displays the result.

BEGIN LOOP
--Prompt for input
---Act on input
----Loop over all active objects, and update them
-----Loop over all active creatures, and update them too
-------Display end result to user
END LOOP

This display can be ASCII text graphics, text alone, a tile based grid, a windows form with full gui controls, a 3d rendering, or anything. It makes zero difference. You can even implement interchangeable display methods and go from text, to ASCII graphics, to full 3D without changing a single thing about how the game actually works.
I would but due to the nature of where i am (afghanistan) i cannot open pages such as games and certain other things due to being blocked by filter through the ACL. I will give it a try and look into all this when i return (jan-feb) but for now i am just trying to grasp basic knowledge of the things i can and cannot due in certain languages and which languages are easier / more apt for certain things such as text based RPG through browser and what not. i appreciate all the help you have provided me and i will continue to use these forums for a long time to come, asking for help and providing where i can haha.
I partially agree with Daaark that language doesn't matter. Depending on what your targeting for development (in this case, you mention you'd like to develop a MUD that runs in the browser), you should use a language that's more suited for what you're targeting.

This is not to say that you can't do what you want to do with C++; you certainly can create a browser-based MUD. However, you'll find that you'll have a much easier time with a language such as JavaScript for what you want to do.

It's been mentioned that you could use Python or C#. Both are great. However, for this particular project I would definitely recommend checking out a combination of HTML5 and JavaScript for a number of reasons.

  • HTML5 will provide you with utilities to tack on 2D graphics, with relative ease, to your text-based RPG later on when you feel ready.
  • You can write the client-side code that runs on the browser in JavaScript and use the same exact language to develop the server-side code should you choose to use a technology such as Node.js to power the server-side part of the game.
  • Socket programming (for multiplayer) is almost enjoyable with Socket.IO (JavaScript) when I compare it to working with sockets in C/C++. Of course, that's my own opinion but I'm sure there are others out there who feel the same.

JavaScript has a few quirks, to be sure. One thing to make note of is if you want to work with classes and work in an object-oriented fashion, then you should take a look at CoffeeScript which will make the quality of your life much better. Classes become a breeze to write and CoffeeScript will do all the hard work for you in compiling it to the proper JavaScript for you to use.

You can definitely write a MUD in C++. But just because you can do something doesn't mean you should. I don't believe it's the appropriate language for such a project. If you were writing a single-player text-based RPG that ran in the terminal on your own machine, and not in a browser with multiplayer support, then I feel that would be a different matter and C++ would be a great choice. My main concern, though, is mainly ease-of-use for socket creation and of the client-side code you'll have to write which will be defining what the browser displays; this is a simple thing with JavaScript but can get pretty ugly with the likes of C++.

Python, as I previously mentioned, would be good to work with as you could use something like the Python Webkit to manipulate the DOM for your client-side code, and use regular old Python for the server-side. Having a single development language across both client and server code is something that I particularly enjoy having the luxury of. I think it keeps things really simple and keeps a project flowing smoothly.

Good luck on your project. Text-based RPGs are always fun to work on :)
Can you read this?

http://www.kathekonta.com/rlguide/index.html
Thank you very much,caldier that was very helpful and yes Daaark i can read the site. I haven't yet but i am going to look at it now!

This topic is closed to new replies.

Advertisement