JUCE as the foundation for a 2D MMORPG engine?


#1

Hey everyone,

Despite the headache-causing problem of MidiOutput not working properly (which I believe will be sorted out sooner or later…), I’m really getting used to JUCE, enough to make me ditch VB6, and Windows with it! I’m going to start developing cross-platform applications on Linux using C++ like a REAL geek!

JUCE provides practically everything needed to make just about any program, however before I start jumping into it I want to know:

Would it be a good idea to use JUCE to develop a 2D MMORPG engine? This might actually be a very silly question, but how would it compare in terms of performance to one made in VB6 using native GDI/DirectX functions of Windows? Taking into consideration the fact that an engine I started making but never finished in VB6 was able to get 100+ FPS.

Again that’s probably a silly question because VB6 doesn’t have all this lovely multi-threading and stuff, but I just want to confirm my theory before I break out the drawing board and start getting into it.

If I decide to do this, is there anyone out there who likes retro gaming as much as I do who would be interested in helping?

I already have plans in my head, and now it’s the summer holidays I’ll possibly have some time to actually get them down “on paper”!

I have a name for it, I know how I will design it, just need a little support with getting this off the ground :slight_smile:


#2

[quote=“shane91c”]Hey everyone,

Despite the headache-causing problem of MidiOutput not working properly (which I believe will be sorted out sooner or later…), I’m really getting used to JUCE, enough to make me ditch VB6, and Windows with it! I’m going to start developing cross-platform applications on Linux using C++ like a REAL geek![/quote]

I wouldn’t go quite that far. I crpss platform develop covering Win32, OSX, and Linux. During the last few years I’ve switched almost entirely to Mac and OSX after nearly two decades of using Windows in some form or another. Even so, I develop almost exclusively in Visual Studio. The debugging, code completion, and editing tools in even the Express edition of VSC++ are IMHO far beyond anything for OSX or Linux. You might want to do a comparison before forming too firm an opinion.

FWIW, JUCE really does make cross platform code unbelievably easy to develop. I’m fairly comfortable that a working Win32 build can be compiled for OSX and Linux without any significant extra testing, which since my app is an on-going project, saves me hours a week. The only to really pay attention too, is the very different set up for mouse buttons and modifier keys on OSX. If you are going to use modifier based keyboard shortcuts, give some serious thought to the subject before you even start writing code.

JUCE is very well suited to 2D game engines. I’m not sure the networking layer has been designed for server grade applications though. It’ll be fine for the clients of course, but whether it is suitable for a heavily concurrent server, I really couldn’t say.


#3

I’m just always confused how almost every other game design i see on web forums is for an ‘mmorpg’. Why is this nowadays the first thing people choose to try?? Surely the MM suggests a little too much ambition for a first game project…

[not to deter you or anything… it just seems strange to begin by trying to make a game that [1] has complex networking requirements, and [2] is required to be hugely popular to even work]

[* also, networked multiplayer is basically one of the most annoying things to have to deal with in game code :wink: really, you should just try to make almost any other kind of 2d game first!]


#4

Ah perhaps I should have made it clear I have actually run an online RPG before, which is why I want to do it again. That was successful for a while, until money started coming in and the co-owner disagreed what to do with it (I wanted to use it to maintain the server, he wanted it for condoms (as if he’d have any use for them…)!) and things got a bit out of hand.

So I’m well aware of the networking requirements. I already know how the protocol for this engine is going to work, taking some hints from the IFF format for files :slight_smile: I’ve even got plans for encrypted user authentication, which will also be possible with JUCE’s RSA classes, woo!

And whether the code would be suitable for server applications or not, it shouldn’t matter too much if the engine is designed well enough - It could possibly expand to multiple servers if necessary.

The ORPG I ran before was actually based on an open-source engine called Eclipse, which is how I got into VB. The protocol used by that was terrible (text-based apart from a delimiter character, every bit of information about maps etc. was sent as ASCII text, even HTTP could have done better! A map would be something like “mapdata.1.0.0.10.15.4.1…”) and I actually re-designed that myself for my own game :slight_smile:

So basically anyone interested in this will be working alongside someone with experience, I’m not just thinking of this as a “first-game” project, I did that years ago :slight_smile:


#5

That’s good to hear :slight_smile: all it takes is a quick browse of gamedev.net to see why i replied the way i did!

best of luck :slight_smile: I’m developing my own 2D game engine too, but as I’m a professional game coder by day, I tend to use my spare time more to develop my art-related projects than write more code.

As it goes, though, I’ve chosen to use a combination of Juce and SFML; for the game side of things, I’m only using Juce for its core functionality, and SFML for the graphical side of things. I’m not really a big fan of the trials that go with using an OpenGLComponent in a Juce application, and the normal paint/repaint UI approach just isn’t really responsive enough for real-time game graphics. SFML is very fast, very friendly, and very object-oriented (much like Juce).

Of course, having my core structures made using Juce guts means they can slot easily into any Juce based editor apps I need to make. I can’t imagine anyone making a game nowadays without having to create some kind of assets editor (however basic), and Juce is absolutely perfect for this.


#6

OK so this does seem like a good idea :slight_smile:

Now is anyone interested in working on such a project? If so I will add a board to my own forum to discuss it.


#7

I’m extremely interested to find more information on using SFML with JUCE. Any advice, sites (apart from the obvious SFML site), forum posts?