Lost in a sea of information

Hi Guys,

I’ve been researching game development for a few days and I’ve decided to ask a few questions and see if anyone can point me in the right direction. First off, a bit about me and what I’m aiming to (eventually) do.

My Background:
I’m a Web Developer by profession and I seem to have the knack of picking up new languages pretty quickly, I began using PHP and have recently moved over to Ruby to broaden my knowledge. I have good knowledge of OOP practices, use linux and vim to develop (web) and will be using eclipse/netbeans to develop my java applications.

The Vision
Ideally, I’d like to start small making little games (so I can build up my knowledge of java and game development) and host them on a website for others to enjoy. EVENTUALLY I would like to develop my own 2.5d MMORPG (think runescape classic if anyone can remember back that far - point and click fun), I realise how much learning / time / dedication a task like that would take but i’m up to the challenge and is why I’d like to start small first.

The games id initially like to make are clones of tetris / lemmings and other high score games

Why Java?
I looked into other languages such as C++, but I like the idea of running my games in the browser (aka java applet) rather than compiling my c++ games into flash ( :-X - i believe, from research, that this is the only way to run a c++ game in the browser). As mentioned previously I plaued runescape as a school kid and have always wanted to give this a go.

Questions
My questions are:

  • Is the linux environment + eclipse/netbeans (which is preferred by most?) suitable for developing java games or is windows( :-X) better/just as good
  • I’d like to choose a set of tools and stick to it, are there any game engines people would recommend for making 3d/2.5d arcade games and EVENTUALLY moving onto an mmorpg (remember thinking along the lines of these
    http://www.forgottenelements.com/images/screenshots/pic1.jpg

http://img196.imageshack.us/img196/4731/pktrip5.jpg


)

  • Graphics is not my strong point so the last ones more preferably ;D - I believe good game play makes a game not graphics

Theres nothing wrong with a little bit of ambition, I hope you’ll all agree - I just want to let you know that this isnt another guy asking how to make a MMORPG. I’m a developer with knowledge and skill that I want to put into a new direction.

If you’d like to know more, fire away. If you think a certain game engine is what I’m after (If im after one at all) please point me in that direction - I’m not looking for it to be done for me, just a little help in understanding the basic tools I should be looking into.

All comments (positive or negative) are welcomed and very much appreciated. Looking forward to responses and hopefully sticking around and getting to know a few people!

Cheers,
Sam

Just to warn you, applets are quickly becoming a thing of the past. If you want to make a browser game I have some suggestions:

[]Unity3D will make your life 100000 billion times easier if you are aiming for a 3D or 2.5D networked browser game. You can program the game in JavaScript or C#.
[
]Flash and ActionScript is still widely supported and will remain strong for several years. You can alternatively use C/C++ with FlashCC.
[]HTML5/JavaScript is another viable option these days. Check out BrowserQuest and its source.
[
]If you are really keen to stick with Java, you can use LibGDX or GWT which will target HTML5. However, if you eventually want to make anything remotely close to a browser-based MMO, you should stick with JavaScript/Flash/Unity3D rather than using a JavaScript translator like LibGDX/GWT.

MMOs are unrealistic unless you have thousands of dollars to piss away, a massive team of dedicated programmers/artists/etc, and a few years free to spend working 50+ hours per week. Once you start making games, you will begin to realize just how much work even the simple ones entail.

Many thanks for the reply, can you tell me, in your opinion, why java applets are becoming a thing of the past? This is in no way a challenge, i’m just curious. Surely what can be achieved with java is greater than html5 and javascript?

My main thoughts here are -

  • wont the source be visible if I build games in javascript? I don’t want this to be the case.
  • I’ve looked into unity3D, however I cant develop it in linux (my preferred OS).
  • I don’t feel i can get the graphics im wanting from a javascript / html5 solution, would i be correct in thinking this?
  • As I mentioned, I know MMOs take time and money and developers etc and it needs to be noted that this would be my end goal after making a few different gams. Im not looking to build the next world of warcraft. It’s just something ive always wanted to build and have a go at. If it gets done, it gets done… if it doesnt, it doesnt. At least ive tried and had fun in the process.

I thought Java was the solution I wanted for building games, am I wrong?

Cheers,
Sam

The constant parade of security issues with applets have prompted some folks to give up on the damn things altogether. Even when they aren’t busy being malware vectors, every combination of OS and browser is its own unique and special crapflake.

As for the visible source: if you ship code to the client, you’ve also more or less given them the source.

If you’re looking to make 2D games, go straight to LibGDX. For 3d, you can still use GDX as a fairly raw OpenGL API and take advantage of its utilities, or you can go whole-hog and use a heavyweight engine like jMonkeyEngine

Finally: we like to call MMOs that aren’t massive “RPGs” :wink:

Answering your questions:

  1. Yes, JS source will be visible. You can obfuscate it. Keen hackers will always be able to decompile/deobfuscate JavaScript, Flash or Java games. So really this is a non-issue, and instead you should focus on server-side security.

  2. For a 3D game, Unity completely blows other free engines out of the water (JME, LibGDX, OGRE, etc), to the point that it might be worth shelling out some extra cash for a PC/Windows dev platform. If you are spending thousands of dollars on a MMO, you could probably afford to include a cheap PC in your budget. :wink:

  3. You can easily get Runescape graphics (which is mostly just 2D sprites) with HTML5/Flash. For more complex 3D, you’d need to use WebGL. See some examples of WebGL here:
    http://mrdoob.github.com/three.js/

For examples of 3D Flash:
http://www.flare3d.com/showcase/
http://alternativaplatform.com/en/showcase/
http://away3d.com/

The different web players these days:
[]Applets are becoming dead tech as more and more users are scared away completely. They were never very good to begin with.
[
]HTML5 Canvas is excellent but lacks things like shaders and hardware-accelerated 3D.
[]WebGL fixes that, but it’s still not widely supported.
[
]Flash is extremely well supported. Unfortunately, the Flash Player is slowly being replaced by HTML5, and probably won’t be supported for very long on Linux.
[]Unity3D web player is already pretty well supported and will only continue to become more popular.
[
]Google NaCl may be another good candidate, although it’s taking a while to pick up momentum

If it needs to be browser-based, then HTML5 Canvas, Flash, or Unity3D are your best and most reliable choices – not Java. But why are you set on the browser?! Just restrict your game to desktop (PC/Mac/Linux) and use a cross-platform solution like LibGDX, JME, or Unity.

At this point I wouldn’t worry about it so much, since you shouldn’t be developing your MMO yet. Instead, make several games with whatever platform you are comfortable with, and maybe after a few years of programming, you can revisit your MMO idea. :wink:

Runescape kinda advanced a bit maybe since you last saw it! It’s all full 3D. But anyway :slight_smile:

@cambridge - please forget everything you know about PHP and Ruby, which are awful, awful languages which are even shunned or derided by their own creators. Java applets are dead as dodos and you really don’t want to use them. Unity and Flash are still the way to go for deployment in web browsers despite the buzz around HTML5/CSS3/JS/WebGL (the volatile combination of four new technologies implemented by about six major browsers across three major operating systems over three major graphics vendors, none of whom quite get anything right, means that the chances of something working reliably are very poor indeed). I’d advise simply not bothering with browsers at all and go for a standalone desktop experience like we do, as it will vastly cut down on the complexity for you. And then Java becomes a pretty good choice, and libgdx becomes a good choice of API to use on top of Java though I prefer plain LWJGL.

Cas :slight_smile: