Though none of you know me, I have been a follower of jME for quite a while now. I have already done some fiddling with jME 1.0 and now after the recent "release" (if one can call it that…) of jME 2.0, I actually decided to give it a try in making a game concept coming to life. Though by no means I consider myself as a "programming guru", but I have a fair level of experience that comes from Assembly language, through C/C++/C# … some Java and… well some more misc. scripting languages…
… on with it, I have found the idea behind jME quite interesting. I know for a fact that what I would like to create will take me, perhaps years, to even be decent. But any project starts… from nothing but good ideas, right? So let me get to the point:
The application I would like to create is a networked (online?) game using mainly jME for the game client. I have been reading articles about basic MMO game architecture and I think I have enough to get me started with something simple. So far I am still setting up my "workspace"… I will use Eclipse for coding. Blender for 3D modeling and GIMP for any 2D/Texturing. As for sound I haven't decided yet but, I don't think I will need that for now…
Does anyone have any advice about the way I'm starting this? Any pointers on helping this not to become just another fluke vaporware…?
People have a way of diving in to game development 3/4 of the way through even when they know better. So I think one good piece of advice is just to do things right as you would with any other coding work - design properly, understand what you're doing, break things down etc.
Lots of people will advise you to abandon the idea of an MMO before you ever start, as being unrealistic. I often suspect they subconciously believe that creating a good 3D game of any description is unrealistic. Fortunately there aren't many like that on these forums. If we don't aim to write the games we'd like to play, what are we all doing?
So I say, keep your long term aims ambitious, but your short term aims simple. Always work on something clearly defined, and doable. Many people bite off a complex problem, and don't break it down. Then fall into a pattern of thinking where they need some feature or silver bullet in order to progress - that should only even approach being the case when you have something really advanced already, and tbh never with an opensource engine.
Don't couple your own code too closely with JME. Sure you will need to use basic things like Vectors all over the place, but be sensible. Get a really good idea of how your game will be structured and be forward thinking whenever you write code that will see a lot of use.
Don't sit down and start writing your final game. It's going to have thousands of pieces. Write them in stand alone, easily testable bits of code. Do write them with a view to use in the final game though - keep everything versatile and reuseable.
On the other hand, do write a game. It's hugely beneficial to take something through the whole cycle. There will be tons of little details you just don't think about. Things you take for granted, but they still need doing. I recommend thinking of a very simple game which shares a lot of concepts with your final game. Write that - you will learn a lot, have the motivation of something to show for your efforts, and also get some reuseable code (or at least, ideas of how to do things better next time).
Try to find ways to reduce your workload. For example, get your 3D models and sounds in from elsewhere. Unless you are a very talented artist they will be much higher quality, and save you a lot of work. If you are a very talented artist and you make your own - remember that you're now doing 3 times the work of someone who is 'just' programming a MMO single handed.
Those are some of my thoughts but in the end everyone has their own approach. The main thing is motivation, so you have to work in a way that keeps you motivated and focused.
Yes… motivation and focus are the key.
A strong vision of the game is the best weapon against feature creep. And feature creep is in my opinion one of the greatest diseases in game design, even in commercial projects.
Every (good) idea you drop, because it doesn
Sorry for not checking back sooner, thanks for everyone's feedback. Most of what you both just said only confirms everything I have been reading. And I have to say that the sheer ammount of people that simple will try to disuade you from even starting such a project, versus, the very few and scarce that actually say "go for it" would probably made me waver…
… but no. This isn't just something that I hapened to think about in the toilet. It is a concept I have been juggling around for quite some time now. I seriously believe I know what my goals for this are. I also know that there is a very high chance my project will never be popular. I have also accepted already that it will take me a huge ammount of time to even get a playable alpha, and even so I know it will be very crude material.
I am starting by the network architecture. For the moment it does nothing but pump strings back and forth. I believe that untill I have a clear structure done, I cannot even think about anything else. So this is, for the moment, my only concearn for now. I wish I had some helping hands now, and I also wished I had more experience in Java. But I'll learn… and I bet that once I have something working I can actually show people, that looks like a game I will be able to start gathering my team.
Edit: Some may probably say I could use JGN for networking. But I have seen JGN already and … I would like to avoid using it, there is something in it that doesnt appeal me. "Darkstar" (?), as good as it may be… it is definitely not what I had in mind. It may be hot-stuff, but I also don't like it. On top of that, add some bad experiences with it's community and away we go…