Makin' Mah Mmo


Eniko

Raving Python fangirl
Joined
Sep 29, 2008
Messages
641
Age
40
Location
Netherlands
Website
purplepirates.darksiren.net
So today I finally sat down and actually started developing. Of course, no Pandora means I don't have a clue if any of my code so far runs on the Pandora. There's only about 250 lines so far though so that should be fine. Working in Python and Pygame and remembering how much I love the language.

Couple screenshots I made as I progressed today: early days, late days

Not really sure how far I'll take this. Depends on both my motivation and if anyone is even remotely interested in a rather basic hack and slash type MMO for the Pandora. Either way I highly doubt this will turn into something highly complex; I want to actually create a playable product for once and striving for perfection has never helped me complete anything in my life.

Also don't be fooled by how quickly I've gotten the above set up. I've gone back to an extremely old client that had a lot of assets and such ready for me so I could plug all that in with relatively minor effort. Besides, all it does now is let you scroll across the map tile by tile. Not exactly rocket science.

I'm also rather wondering whether it's foolish to even try to create an MMO for the Pandora (in Python no less) but oh well, nothing ventured nothing gained, right?

I also wonder if my language of choice, C#, will be sufficient for the server end of things. I could do it in C++, but I really need me some garbage collection, so I'd really rather not. Of course projects like RunUO make me relatively confident it can be done, even done well. Then the question just remains whether or not I can do it well, I guess.
 
I was about to storm in an go "jesus christ theres already a fleshed out one in the works by a seemingly competent developer, stop your damn pipe dreams", and then I see you actually have proof :rolleyes:
a simple, mind numbing but fun online RPG would be great.
and yeah, python is fun- i can get more work done in C++ but I don't enjoy it.
 
Eniko said:
I also wonder if my language of choice, C#, will be sufficient for the server end of things. I could do it in C++, but I really need me some garbage collection, so I'd really rather not. Of course projects like RunUO make me relatively confident it can be done, even done well. Then the question just remains whether or not I can do it well, I guess.
Just so you are aware, there's a easy-to-use garbage collector for C/C++: http://www.hpl.hp.com/personal/Hans_Boehm/gc/
 
Last edited by a moderator:
I'll have to check that out, thanks for the tip. :)

PoisonedV said:
I was about to storm in an go "jesus christ theres already a fleshed out one in the works by a seemingly competent developer, stop your damn pipe dreams", and then I see you actually have proof :rolleyes:

Sorry for that. Pulling a half decent looking MMO client out of thin air is a special trick I've been working on for well over a decade now. :D

PoisonedV said:
a simple, mind numbing but fun online RPG would be great.
and yeah, python is fun- i can get more work done in C++ but I don't enjoy it.

Well to be fair there are less fun things about Python; I never did like having to rely on Numpy for multi dimensional array operations, and I do sometimes miss the regular old for loops. But since Python definitely speeds things up for me personally, that's what I'm sticking with.

I'll need to figure out how to plug in some C code sooner rather than later anyway, so I can always move parts out of Python and into C once I've figured out how to accomplish that particular feat.

I've been sitting here thinking of a good control scheme for an MMO on the Pandora. The gameplay style will probably be something akin to Nexus: The Kingdom of the Winds, Dark Ages, Ragnarok Online or some mix of the forementioned. They either rely on holding down space to attack or holding down a mouse button to attack, and then a lot of hotkey presses and mouseclicks.

That's definitely not acceptable for operating on the Pandora. One way to do it might be to be able to set your current target using the touchscreen. That way you could simply toggle your auto attack and spells/skills on the current target with a single tap of a stylus.

Of course, once you have to use things on several targets this completely fails.

Another idea I had which I won't know is feasible until I've held the Pandora myself is to map skills to a wheel, and use one of the sticks to select them. That'd leave one hand to operate which skills you use, and another to tap the targets. But somehow I doubt that'll be very comfortable.

Suppose I'll definitely need to keep the gameplay fairly slow, to give users enough time to respond appropriately. Hrm... any suggestions for a good control scheme would be much appreciated.
 
Last edited by a moderator:
QUOTE
Of course, once you have to use things on several targets this completely fails.


Why? you could either draw a circle around the targets you wish to attack, or do like in rts's when you select multiple units.

And maybe you could use mousegestures (well touchscreen gestures i guess) to select different skills.
 
I'm starting to sound like a broken record, but having done some performance-intensive software in python, I would recommend you stay as close to python as possible.
"Premature optimisations are the root of all evil" is mostly true: profile and rewrite in C only the parts that are too slow, after trying to optimise them in python.

I'd also recommend sticking to python for the server side as well, using either the twisted lib or stackless python. Much easier to make very efficient than C# or C++.
 
Eniko said:
Not really sure how far I'll take this. Depends on both my motivation and if anyone is even remotely interested in a rather basic hack and slash type MMO for the Pandora. Either way I highly doubt this will turn into something highly complex; I want to actually create a playable product for once and striving for perfection has never helped me complete anything in my life.

I enjoy basic hacking once in a while. Plus, once you have a decent base to work from, you can add in things as they strike your fancy. Basic terrain-based or weapon-based puzzles like Zelda could be worked in, or simple quests like, "Kill 10 worgs."

Better to start with an attainable goal and reach it.
 
Last edited by a moderator:
dentrado said:
QUOTE
Of course, once you have to use things on several targets this completely fails.
Why? you could either draw a circle around the targets you wish to attack, or do like in rts's when you select multiple units.

And maybe you could use mousegestures (well touchscreen gestures i guess) to select different skills.

Well, I meant when you're switching targets for various skills, such as healing one person then buffing another then debuffing a monster.

Mouse gestures sound like a pretty spiffy idea, although I never really got to grips with them myself. It's also not an area of game development I'm familiar with, but I am intrigued by the suggestion. That's definitely one for the list of "things that would be interesting if I have the time". Anyone have some useful links for learning the theory behind this?

sindbad said:
I'm starting to sound like a broken record, but having done some performance-intensive software in python, I would recommend you stay as close to python as possible.
"Premature optimisations are the root of all evil" is mostly true: profile and rewrite in C only the parts that are too slow, after trying to optimise them in python.

I'd also recommend sticking to python for the server side as well, using either the twisted lib or stackless python. Much easier to make very efficient than C# or C++.
Oh don't get me wrong, I completely agree! I'm trying to stay away from as much early optimization as humanly possible this time. It'll make my code harder to work with, less maintainable, and cost a lot of time and effort that I could be using to make a finished product.

I can't agree on using python for the server side though. Having tried it before and having done some profiling it seemed way too slow for an actual live server with a decent population, and that was before adding in more complex things like AI. Maybe I did it wrong though, it's certainly possible, but C# I know is fast enough, as proved by RunUO.

Now I know Eve Online boasts of using Python, but they hardly use stackless for everything, and keep in mind that the Eve people have - as far as I know - clusters of servers. I could never get away with a set up like that, so speed efficiency becomes IMHO much more important.

Yamara said:
I enjoy basic hacking once in a while. Plus, once you have a decent base to work from, you can add in things as they strike your fancy. Basic terrain-based or weapon-based puzzles like Zelda could be worked in, or simple quests like, "Kill 10 worgs."

Better to start with an attainable goal and reach it.
This is true, once the base is in place it should be relatively easy to expand on the concept. And definitely, I want to have something playable, not something that can compete with A titles out there. :)
 
Last edited by a moderator:
How are the graphics done? They look like they are definitely pixel art, but I know someone else interested in making an mmo said it would be best to use vector. Need any helps w/ graphics? I would be happy to make some pixel or vector art.

@PoisonedV
why are you suddenly so nice?
Why didn't you noticed that his "proof" could just be photoshopped?
 
enigmacipher said:
How are the graphics done? They look like they are definitely pixel art, but I know someone else interested in making an mmo said it would be best to use vector. Need any helps w/ graphics? I would be happy to make some pixel or vector art.

@PoisonedV
why are you suddenly so nice?
Why didn't you noticed that his "proof" could just be photoshopped?


It's pixel art, largely done by myself. You might notice that I disagreed with the particular point of view that pixel art is somehow obsolete. Plus I'm a good pixel artist, so I'm gonna stick to my strengths. I can always implement a decent scaling algorithm for PC for those running at ridiculous resolutions.

I'm a girl, by the way. :D

On another note, currently working on putting an abstraction layer between my client and Pygame/Pyglet so I can ideally allow the user to use whichever. Considering I've heard from some others that they're unsure which to use I'm wondering if there's any interest in me eventually releasing the abstraction modules?

I can't promise it'll be very good code, or even very useful to anyone but me, after all I'm an amateur, not some highly educated software designer. But hey, if there's interest, I'll see what I can do to keep it tidy enough for an eventual public release.
 
Last edited by a moderator:
In principle, I'm willing to help. I'm especially interested in taking your challenge of making a server in python (or something else if that fails).
 
you should make the ground alot more yellow, rather than orange. It gives me eye-cancer right now :p,
besides that its some pretty cool pixel art for now.
(but mmo in this style is just not my thing)
 
enigmacipher said:
How are the graphics done? They look like they are definitely pixel art, but I know someone else interested in making an mmo said it would be best to use vector. Need any helps w/ graphics? I would be happy to make some pixel or vector art.

@PoisonedV
why are you suddenly so nice?
Why didn't you noticed that his "proof" could just be photoshopped?


I am not suddenly 'so nice'... I'm blunt and an asshole and switch sides from overly logical to completely illogical and people hate me for it (and it feels so good, too) but why would I be here?
I didn't think it was photoshopped, because who would the effort? i didn't really recognize any of the graphics from previous games.
anyway, pixel art is awesome... i guess Im just a nostalgic bastard, but I will always appreciate the low res crispness of it.
 
Last edited by a moderator:
Eniko said:
So today I finally sat down and actually started developing. Of course, no Pandora means I don't have a clue if any of my code so far runs on the Pandora. There's only about 250 lines so far though so that should be fine. Working in Python and Pygame and remembering how much I love the language.

Couple screenshots I made as I progressed today: early days, late days

Not really sure how far I'll take this. Depends on both my motivation and if anyone is even remotely interested in a rather basic hack and slash type MMO for the Pandora. Either way I highly doubt this will turn into something highly complex; I want to actually create a playable product for once and striving for perfection has never helped me complete anything in my life.

Also don't be fooled by how quickly I've gotten the above set up. I've gone back to an extremely old client that had a lot of assets and such ready for me so I could plug all that in with relatively minor effort. Besides, all it does now is let you scroll across the map tile by tile. Not exactly rocket science.

I'm also rather wondering whether it's foolish to even try to create an MMO for the Pandora (in Python no less) but oh well, nothing ventured nothing gained, right?

I also wonder if my language of choice, C#, will be sufficient for the server end of things. I could do it in C++, but I really need me some garbage collection, so I'd really rather not. Of course projects like RunUO make me relatively confident it can be done, even done well. Then the question just remains whether or not I can do it well, I guess.



Sounds great. I'd love to have an MMO for the Pandora, and it looks nice as well. ;)

Eniko said:
I've been sitting here thinking of a good control scheme for an MMO on the Pandora. The gameplay style will probably be something akin to Nexus: The Kingdom of the Winds, Dark Ages, Ragnarok Online or some mix of the forementioned. They either rely on holding down space to attack or holding down a mouse button to attack, and then a lot of hotkey presses and mouseclicks.

That's definitely not acceptable for operating on the Pandora. One way to do it might be to be able to set your current target using the touchscreen. That way you could simply toggle your auto attack and spells/skills on the current target with a single tap of a stylus.

Of course, once you have to use things on several targets this completely fails.

Another idea I had which I won't know is feasible until I've held the Pandora myself is to map skills to a wheel, and use one of the sticks to select them. That'd leave one hand to operate which skills you use, and another to tap the targets. But somehow I doubt that'll be very comfortable.

Suppose I'll definitely need to keep the gameplay fairly slow, to give users enough time to respond appropriately. Hrm... any suggestions for a good control scheme would be much appreciated.
For targeting, you could use a system similar to Z-targeting, or the targeting used in Robotech Battlecry. You would have a special button (like L or R) specificially for targeting which you would then press again and again to switch targets. For targeting multiple enemies, you would hold the attack button and use the Targeting button to determine where each of the extra targets go.

I've got other ideas for controls, but don't really have the time to type them up atm, so if you like this idea, just reply here or send me a pm, and I'll see if I can find some time to type up the other ideas.

-God Ginrai
 
Last edited by a moderator:
Isometric AND online?

That sounds pretty good.

I, myself, have always dreamed of a Megaman Battle Network MMO, or something alike.

Perhaps i can persuade you to fulfill said dream >:D
 
enigmacipher said:
@PoisonedV
why are you suddenly so nice?
Why didn't you noticed that his "proof" could just be photoshopped?


I hope you are joking. First PoisonedV gets slapped around for not being nice, and now he gets attacked when he is? When does it end?
 
Last edited by a moderator:
I'm not sure, but I can't recall seeing him slag off developers. Probably because pointing a finger at a potential developer for the Pandora and screeching "FAKE!" might put them off of developing.

I'll have to respond to the other stuff posted here later, I got hit by the flu in between reading articles about Python decorators and solving the server's visibility checking problem in my head, so I'm none too lucid. x_x
 
Back
Top