Virtual Tabletop and Character Creator Programming Languages


Technology


What are the primary programming languages required to create something like a virtual tabletop and charater creator?


.

Java

Python

C++

Perl

Lisp

Haskell

C#

... it really doesn't matter.

Have you heard about the new language to program Satellites ??

> SPELL. The acronym stands for "Satellite Procedure Execution Language & Library." <

.

.


It's largely a matter of taste.

If you want the least esoteric and easiest-to-research language, I'd say look at doing it with Javascript.

MapTool is written in Java (NOT javascript), roll20 is done in HTML5 (which has javascript as part of its standard).

Other high-level languages like Ruby or Python are pretty user-friendly. These applications are not very graphics intensive and so you shouldn't have a need for lower-level languages like C that are harder to learn.

Start at w3schools. It gives you all the various tools you need for a web application from interface to database to scripting. It's a lot to digest at once, but it's probably the best way to start.

Even a basic VTT is a huge undertaking, though, so be patient!


1 person marked this as a favorite.

Wondering at programming languages "required" gives me the impression that you're kind of new to the whole programming thing - which is fine, mind you - and that in turn leads me to advise you to put the idea of programming a VTT on hold for a little while.

You need to learn to code, first. This might surprise you, but choice of programming language doesn't matter nearly as much as most people think. It's not the difference between French and Mandarin; if you're very comfortable with Java, for instance, picking up Python is fairly painless. The core logic of programming is pretty much the same for virtually ever widely-used language.

A VTT is a huge undertaking in terms of coding, especially if you want to provide it with the features that are expected of a modern VTT; there are some very powerful VTT programs currently out there - enough that I would argue that the market, as it were, is fairly saturated. You should develop a game plan for how you are going to learn to code, if programming a VTT is your goal. A university degree in Computer Science or the like is a reliable path that will provide you with a ton of support for reaching that goal, but that's not feasible for everyone. There are a lot of online resources for learning to code, but that is far less structured and will require a tremendous amount of personal motivation to make progress in.


Most of what Scott says is dead-on, but...

Scott Betts wrote:
A university degree in Computer Science or the like is a reliable path that will provide you with a ton of support for reaching that goal, but...

... a university degree shouldn't even be on your agenda if you're just thinking about picking up code and making a project. A VTT is an ambitious goal, but not one you should consider a degree as pre-requisite. A degree is a pre-requisite to a job as a coder. I would seriously question whether it is a "reliable path" to anything. I know many great coders with no degree, and only a few of the degree-holders I know can actually code well.

Embrace your interest, research the free information on the web, and see where it goes.


Evil Lincoln wrote:

Most of what Scott says is dead-on, but...

Scott Betts wrote:
A university degree in Computer Science or the like is a reliable path that will provide you with a ton of support for reaching that goal, but...
... a university degree shouldn't even be on your agenda if you're just thinking about picking up code and making a project. A VTT is an ambitious goal, but not one you should consider a degree as pre-requisite. A degree is a pre-requisite to a job as a coder. I would seriously question whether it is a "reliable path" to anything. I know many great coders with no degree, and only a few of the degree-holders I know can actually code well.

I have had much the same experience, but I can't dismiss the incredible support structure you have as a student. Learning to program effectively is not a small undertaking. Perhaps I should clarify that the degree itself is fairly unimportant, but the ability to learn how to code while surrounded both by professionals who are paid to help you as well as other students learning at roughly the same pace you are is tremendous. Not everyone utilizes that support structure as well as they ought to, but it's there if you're a student.

Also, there's good money in programming. A Computer Science degree is a pretty solid investment, even if building a VTT is at the forefront of your mind.


Scott Betts wrote:

Wondering at programming languages "required" gives me the impression that you're kind of new to the whole programming thing - which is fine, mind you - and that in turn leads me to advise you to put the idea of programming a VTT on hold for a little while.

You need to learn to code, first. This might surprise you, but choice of programming language doesn't matter nearly as much as most people think. It's not the difference between French and Mandarin; if you're very comfortable with Java, for instance, picking up Python is fairly painless. The core logic of programming is pretty much the same for virtually ever widely-used language.

A VTT is a huge undertaking in terms of coding, especially if you want to provide it with the features that are expected of a modern VTT; there are some very powerful VTT programs currently out there - enough that I would argue that the market, as it were, is fairly saturated. You should develop a game plan for how you are going to learn to code, if programming a VTT is your goal. A university degree in Computer Science or the like is a reliable path that will provide you with a ton of support for reaching that goal, but that's not feasible for everyone. There are a lot of online resources for learning to code, but that is far less structured and will require a tremendous amount of personal motivation to make progress in.

I have been programming Java for a year, which all my experience comes from university. On the side I've been teaching myself c programming so that I can learn about c++. My school unfortunately does not teach this class. By the way my major is Management Information Systems. I can only know so much with what they teach. But you made me curious about Python :)


Tensor wrote:

.

Java

Python

C++

Perl

Lisp

Haskell

C#

... it really doesn't matter.

Have you heard about the new language to program Satellites ??

> SPELL. The acronym stands for "Satellite Procedure Execution Language & Library." <

.

.

Thank you for the information and link!

Lone Wolf Development

Scott Betts wrote:
You need to learn to code, first. This might surprise you, but choice of programming language doesn't matter nearly as much as most people think. It's not the difference between French and Mandarin; if you're very comfortable with Java, for instance, picking up Python is fairly painless. The core logic of programming is pretty much the same for virtually ever widely-used language.

So true. Truly mastering the nuances of a particular language takes some time, but a good developer can be reasonably proficient in a new language in a matter of a couple weeks. The first step is to get a good handle on developing sound software in the first place, which takes time, discipline, and determination. The best way to do that is work in increments, so don't try tackling a huge project all at once - do it in pieces.

To pervert an old quote, when it comes to different programming languages: "the names have been changed to confuse the ignorant". :)


lonewolf-rob wrote:
To pervert an old quote, when it comes to different programming languages: "the names have been changed to confuse the ignorant". :)

.

Great quote. I'll add one more thing, take a year or two and learn what the
difference is between "Imperative" programming and "Functional" programming.
If you can get your mind around this you're on your way to the stars.
The stars, I say.

:)


Andru Watkins wrote:
I have been programming Java for a year, which all my experience comes from university. On the side I've been teaching myself c programming so that I can learn about c++. My school unfortunately does not teach this class. By the way my major is Management Information Systems. I can only know so much with what they teach. But you made me curious about Python :)

In that case, I highly recommend downloading the source code for MapTool and poking around. It's open source!

It's in a language you're familiar with, so just reading the code and documentation will speed you along quite quickly.


Scott Betts wrote:
A VTT is a huge undertaking in terms of coding, especially if you want to provide it with the features that are expected of a modern VTT; there are some very powerful VTT programs currently out there - enough that I would argue that the market, as it were, is fairly saturated.

I agree that VTTs are a huge undertaking (as I'm developing a type of one myself... Live Gaming). I don't agree that the market is saturated—the market is saturated with the apps that allow you to play RPGs online... but there really aren't many apps that actually make it easier for you to play RPGs, for example.

Take a good look at Fantasy Grounds (RPG-specific programming) and Roll20(RPG-agnostic) and RPGWithMe(play-by-post), for starters. If the features you want aren't in any of those, then think about creating a VTT, and realize that you will have to contend with a lot of RPGers who will say it's already been done before simply because there are a lot of VTTs.

As for tech, web programming isn't a bad way to go. There are a lot of advantages for a web-based app for your users—for instance, saving the character on a website means they can access it on any computer or device—and also for you: people have created tons of libraries. That mean you don't have to program from the ground up, because people have done a lot of the basic programming for you. People have already programmed how to interact with the database (SQL, and others like MongoDB), how to make the server do what you want (PHP, or Python, or Ruby, or Node.js, etc), how to create a visual template from Data (PHP, Django, Backbone.js), and how to display that data (HTML, CSS, JavaScript w/ JQuery).

As I said before, the advantage of using these systems is that people have created libraries (like Node.js, Backbone.js, and Jquery for JavaScript) that will already do a lot of what you want, so you don't have to program from scratch. The down side is wrapping your head around 4-5+ layers of code (database, server, templates, html, styles).


Appify wrote:
I agree that VTTs are a huge undertaking (as I'm developing a type of one myself... Live Gaming). I don't agree that the market is saturated—the market is saturated with the apps that allow you to play RPGs online... but there really aren't many apps that actually make it easier for you to play RPGs, for example.

Can you provide an example of a feature set that is not implemented well in any of the widely-used VTT programs?

President, SmiteWorks

Fantasy Grounds is written in C++ for the core engine and the front ends we, and fans, create for it are written in XML and LUA scripting. We expose a development API if you are interested in creating your own ruleset, extension or enhancements. LUA is used for a lot of popular game systems, such as World of Warcraft extensions. XML is pretty standard as well and a lot of users have written apps in a number of different languages to automatically build the XML, parse objects and data from the web, databases, PDF extracts, etc., for use by Fantasy Grounds.

Community / Forums / Gamer Life / Entertainment / Technology / Virtual Tabletop and Character Creator Programming Languages All Messageboards

Want to post a reply? Sign in.
Recent threads in Technology