Game Developement

So i got a few questions.

What is the language to go if i want to create a MMORPG like Eternal-Lands? Ofcourse i will have this project for years, i want this to be my teacher project.

Self goals on this project would be learning about programming language(s) and server management.

Other urls found in this thread:

bitbucket.org/ryzom/ryzomcore/overview
planeshift.it/Source code
youtube.com/watch?v=A2dxjOjWHxQ
twitter.com/SFWRedditGifs

>1st project
>MMORPG
Start at the shallow end and just try to make a text chatroom. That should cause you enough pain to be going on with.

Ambitious goals, but setting the bar that high will make you frustrated and you'll probably give up after your fifteenth migraine.

>learning about programming language(s)
Java/C#/Python are good general languages. C/C++ if you want to blow your leg off with a shotgun. Start small and understand the basics first.

>and server management.
This is a separate topic by itself.

I want to do it and i know i will dedicate a good few years of free time in to it learning everything needed along the way.

Just want to know what would be the optimal way to go.

Languages i know are Java, Lua, Javascript and Python.

Eternal Lands is written in C, so go with that.

So you don't know a single high performance language and want to make an MMO? oh boy

>i will dedicate a good few years of free time in to it
More like decades. Were you going to build this on top of someone elses engine or were you going write your own DirectX / OpenGL / Vulcan renderer yourself?

Even basic 3D graphics is huge whack of work. Making each of these components and bringing them together into one program will take a ton of time and that's before you can't start work on the gameplay.

A make a text chatroom in Java or Python see how that goes for you.

Okay, i'll take on the chatroom first then. If i finish it, i'll post on this board again.

Got any tips to share?

If you haven't already, get familiar with networking concepts. Chatrooms are pretty simple, so go the extra mile and implement some more nifty stuff like rate-limiting and group chats to get a better feel for network programming.

You won't do anything I say but here it goes. I don't know why I bother with this.

Making an MMO is most likely one of the hardest things in game development, and it's up there in software development in general. It's impossible for one person to even understand the whole system once it's done, research has shown that on big projects, there isn't even one person who understands absolutely everything.
Of course there are exceptions to this rule, surely Torvalds knows everything about Linux and Stroustrup about C++, etc. But those people are outliers.

A high level overview of everything in it is

>game engine
rendering, shading, D3D/OpenGL integration, animation, VFXs, multi platform packaging, networking, security, physics, etc
>game logic
coding the game on top of the engine
>networking
coding the server
>anticheat
because it's an mmo
>3d main assets
models, animations, textures, skeletons, design, etc
>3d secondary assets
props, buildings, terrain, vegetation and see above what they all need
>music
audio, songs, voices

As you can see this is way too much for someone who doesn't even know C/C++

So what do I suggest?
If you're still adamant on doing it, first of all get these books
>Rapid development by Steve McConnell
>Code Clean by Cecil Martin
>Software Engineering by Ian Sommerville
If you are not disciplined enough to read them, give up. Except the third one which shouldn't be read from cover to cover, it's a reference book where you read the chapter you need. These books will teach you how to organize your project.


Now onto the project, there is a design model called Design-To-Tools. Basically, it means you use an existing tool for all of the project and code as little as possible. This means that you use ready-made solutions for about 80% of your project, and this is the only way you could ever hope to finish your project. Yes, even a SaaS as your server. You want to use as many "as a service" things as possible.

Like i stated before, this will be my teacher project, what i mean is i will learn things on the go. I dont plan on going for a full release in a limited timeframe. I want this project to be my free-time sink.

I know a MMORPG will be a extremely difficult task, but i'm motivated to learn the things needed step by step.

Writing a primitive game engine is not really that big of a task. Plus i've never stated that i would have any advanced graphics. And as far as the assets go, I have no time limit. The game engine might take me a few years to get it to a decent stage.

Also I really appreciate the time you put in to your post.

>teacher project
>MMORPG

do this and then make an rpg first.

> a good few years

A team of 20 people who have programmed tons of games and server applications take a good few years.

Eternal lands is also 3d, so i hope you know linear algebra very well. And I don't mean just that you know the difference between an eigenvector and an eigenvalue. I mean REALLY knowing the math because you will need it.

Surprisingly quality post for the place it was posted on.

why don't you make a text rpg instead and move on from there? a functional mmo in the traditional sense is literally impossible by yourself unless you are extremely talented, which i doubt.

what if I wanted to make an adventure game like the old King's Quest, Space Quest, Police Quest, Leisure Suit Larry games

how many millions of dollars a year will I earn and what colors of girlfriends are the best?

Quake III was written in C but in case you only hear that nugget of knowledge and have not actually looked at the source code, the game looks like it was a bitch to throw together. I'd imagine that making an MMO would be significantly more of a bitch.

You could go with java and jmonkey engine.
No memory management, the engine has all the features you need, java has ton of libraries, java ecosystem has good tooling.
You won't have any idea what you are doing but I think that would be your best bet.

The hardest part is the massive part, why don't just make an online RPG?
It's not like you'll get a massive amount of players to play it.

This might trigger a few Sup Forumsirls here but I recommend you don't start with such low level languages.

If you want to learn to code games you will really just be learning how to code before you ever learn to make a game and you will get bored of it and quit.

Just look at everyone suggesting you make a chatroom. BORING.

Go pick up a free trial of Gamemaker Studio before it is phased out for GMS:2.

It's own language GML is amazingly intuitive and powerful for a beginner and you can literally pick it up and create your own first halfway decent game in less than a week.

From there you can either continue on with the GMS route and be happy working your way to a big fish in a small pond type deal (the program has been behind quite a few very successful indie games including everyone's favorite Undertale) or apply the basic coding principle you learned to other languages.

It will be much easier to go to something like C with prior knowedlge. The same way that it takes babies with no prior linguistical knowledge ~10 years to begin to master a language (and another 10 or so to truly be up to snuff) whereas with dedication you could study a foreign language and learn it in the same scale in 4-8 years.

high level languages are fine for 2d you're not triggering anyone
hell they are probably fine for such outdated graphics as eternal lands anyway
and i mean, hearthstone was done on C# so....

Video game programming is one of the activities where you probably want to learn to optimize every part of the code, learning high level language will just force you to relearn most of the things and using tools like Game Maker designed like an all purpose tool will affect performance for a massive game.

Reasonable opinion on Sup Forums about coding languages? What is this madness?

Oh I definitely agree. But I know for myself and many others langauges like C are just so intimidating and boring to get into that it kills any motivation. Being able to see the results of your work so quickly in my experience retains the learner much better.

Plus lets be frank. Games dont need to be so optimized anymore. None of us are ever going to have the budget to make such a demanding amazing game anyway. And the money is in cheap and simple free to play mobile games.

Dedicate some time to looking at the code of private servers for a few mmos. Don't take their work at face value though, because it'll likely have tons of poor practices. It'll also show you a bit about reverse engineering, and how the developers of the actual game communicated to/from the client.

These people are right in saying that making a 3d mmo is too intense and that starting with a chatroom is probably better. I suggest you start with the basics and move up from there. Treat the chatroom not as a separate project but the bones of your knowledge. "start from the basics" meaning focus your efforts on one aspect at a time.

And also: expect to rewrite your code several times over as you learn and see the mess that you once thought was acceptable is absolutely horrendous.

t. Someone who has done something similar but has lost the passion to get my game in a presentable state

>project
Just don't. Even a normal game, when using a third party game engine, still takes years to make. Unless you're making some shitty Mario clone.

If you want to make a game, make one, but don't go for a fucking MMORPG.

>language to go if i want to create a MMORPG
C++ obviously.
Most you probably want some scripting language like lua as well for the gameplay scripting.

Here are some open source MMORPGs
bitbucket.org/ryzom/ryzomcore/overview
planeshift.it/Source code

It's completely doable by one person if the game is 2d based, the audio/graphical assets are 3rd party, and the game system is simple.

If you're actually interested in learning then I suggest watching handmade_hero. He's a former graphics programmer making his own game with its own software renderer and has documented everything he has done right from the beginning. I believe he also gives out his code as well to supporters. Don't be surprised that it's 1000's of hours of video.

youtube.com/watch?v=A2dxjOjWHxQ