Sign in to follow this  
ExtraNoise

Python Capabilities

Recommended Posts

I've just started using Python and am interested in creating a side-scrolling MMO. I'm still pretty new to programming, with only experience in web development, but I'm going through a number of tutorials and feel I'm doing well so far. I know an MMO is a fairly large-scale project. Is this something Python can handle? I'm happy to see that Python works well with MySQL and, since I have some experience with it, would probably be using that for databasing. I still have yet to learn how they interact exactly, but I'm sure that's down the road. What advice would you give me for doing a project like this? I'm anticipating a couple of years worth of development just to even get something up and running. I'm an employed graphic designer who freelances doing 3d models for game studios around the world. I would be happy to create professional graphics or models for folks helping me with coding. :)

Share this post


Link to post
Share on other sites
Quote:
Original post by ExtraNoise
I know an MMO is a fairly large-scale project. Is this something Python can handle?

Yes.

Share this post


Link to post
Share on other sites
Quote:
Original post by SiCrane
Quote:
Original post by ExtraNoise
I know an MMO is a fairly large-scale project. Is this something Python can handle?

Yes.


lol, awesome. That really makes me feel better, at least with its robustness as a language. :)

Edit: Would using a 3rd-party program to write a simple side-scrolling game that I can then modify be a good idea? And if so, does anyone have any suggestions?

[Edited by - ExtraNoise on March 6, 2008 2:52:33 PM]

Share this post


Link to post
Share on other sites
I've been thinking about the characters and I'm debating, since I'm planning for a 2D side-scroller, whether to use (old school) pixel sprites animated together or to use 3D characters overlayed on top of a pre-rendered 2D map.

Any thoughts? Each has its positives and negatives. Sprites offer simplicity it not worrying about any 3D engine but require everything to be pre-rendered and (in the case of clothing) each item to compatible with every animation. 3D models allow for maps to be applied to the mesh and nothing prerendered, but then comes in all of the animation aspect and the game being able to handle 3D.

A compromise might be to render in 3D and create sprites with them. Is this a viable option? I've seen it in use in some games on the market, but... I have reservations to doing it and have no idea why.

Any suggestions would be much appreciated, seeing as I'm a beginner and really have no comprehension of the long-term application of each.

Share this post


Link to post
Share on other sites
Quote:
Original post by SiCrane
Quote:
Original post by ExtraNoise
I know an MMO is a fairly large-scale project. Is this something Python can handle?

Yes.

Another Yes.

Quote:
Original post by ExtraNoise
A compromise might be to render in 3D and create sprites with them. Is this a viable option? I've seen it in use in some games on the market, but... I have reservations to doing it and have no idea why.

Lots of games have done this. I pointed out in another thread today that this is how all the Diablo II art was made ;)

Share this post


Link to post
Share on other sites
i dont wanna intrude on the topic but since your on sprites.... when can i learn how to create sprites with art i create in photoshop. Im looking to create a diablo-esque rpg but i dont know how to model in 3d so i wanna create 2d sprites that look as 3d as possible

Share this post


Link to post
Share on other sites
Hodgman: Thanks for more examples; it's really great to see Python being used in these large-scale MMO settings. It gives me more confidence to know that I might be able to do a much smaller project on my own.

I think I'll give rendering some example characters out with clothing options. I'm now fishing through my mind in an attempt to figure out how I'd plan to do something like short sleeves, where I'm guessing I'll need some sort of overlay so that one character can have a red shirt and another a blue shirt, for example. Is this the recommended way to go (layers, I guess)? Or do I need to render out a sprite for light-skinned/red-shirt, dark-skinned/red-shirt, light-skinned-blue-shirt, dark-skinned/blue-shirt. You can see already that even with a few options for accessories a player's character is becoming a huge thing to consider. Still, though, this might be the best option.


biggjoee: If I can offer advice, I'd check out drawing tutorials on deviantArt (www.deviantart.com) - there are lots from standard technique to use in creating pixel (isometric) graphics and game characters specifically. I wish I had known about that website when I was going through college.

Edit: Can you use .GIF files to achieve animation without using multiple files?

Share this post


Link to post
Share on other sites
Quote:
Original post by ExtraNoise
Hodgman: Thanks for more examples; it's really great to see Python being used in these large-scale MMO settings. It gives me more confidence to know that I might be able to do a much smaller project on my own.

I think I'll give rendering some example characters out with clothing options. I'm now fishing through my mind in an attempt to figure out how I'd plan to do something like short sleeves, where I'm guessing I'll need some sort of overlay so that one character can have a red shirt and another a blue shirt, for example. Is this the recommended way to go (layers, I guess)? Or do I need to render out a sprite for light-skinned/red-shirt, dark-skinned/red-shirt, light-skinned-blue-shirt, dark-skinned/blue-shirt. You can see already that even with a few options for accessories a player's character is becoming a huge thing to consider. Still, though, this might be the best option.


The usual approach is a lot simpler. Generally you don't model clothing explicitly; instead, some part of the character model is recognized as being covered by the shirt, and those polygons map to a "cloth" texture (or a section of a larger unified texture map representing cloth), and the exposed areas are mapped on to a "skin" texture (might just be a solid colour, or solid colour region of the larger map; but maybe you want to sketch in freckles or hair or something). You don't make multiple versions of the textures, and you certainly don't make each possible combination, because it would take huge amounts of space and effort. Instead, have some kind of algorithm to modify the colour of the texture's bitmap, before you generate a texture from it. (You can get away with this being fairly slow, because changes are made quite rarely and under controlled circumstances). Probably the easiest way is to set the "base" colours very light (the lightest skin tone you want in the game, and white or near-white fabric), and multiply them with the desired colour (red, blue etc. for the shirt; various tones for the skin, or maybe you can work out some kind of yellow-pigment + red-pigment system, or something).

But that's for 3D rendering; you said you want a "side-scrolling" MMO. I can't figure out what the gameplay would be like for that :) but assuming 2D graphics, you want to look into "paperdolling".

Quote:
Edit: Can you use .GIF files to achieve animation without using multiple files?


For things that you want to be 2D, sure. If your code/engine can support them. :) (GIF has patent issues, though, which can be a problem if you want to go commercial.)

Share this post


Link to post
Share on other sites
GIF files are patented for non-commercial use? I had no idea, that's really incredible.

There is an animated version of the PNG format (its name escapes me at the moment, it's not widely used - ANG or something?). It does allow for an alpha channel, though, which would be great for anti-aliasing. Any thoughts?

And could you explain paperdolling? I have no qualms with 3D (as that's what I do) other than having to build a 3D engine. Using sprites, however, frees me of that code (but makes each character that much more difficult). I'm not real familiar with the process yet at all, but I'm guessing paperdolling would be exactly what I'd have to do if I went with a 2D route purely.

Is there a layman's way to explain how the code processes each layer?

Share this post


Link to post
Share on other sites
Quote:
Original post by ExtraNoise
GIF files are patented for non-commercial use? I had no idea, that's really incredible.
It's also not true, at least any more. The last GIF patent expired a couple of years ago.

Quote:
There is an animated version of the PNG format (its name escapes me at the moment, it's not widely used - ANG or something?). It does allow for an alpha channel, though, which would be great for anti-aliasing. Any thoughts?
MNG. PNG and MNG aren't widely used in video games, to my knowledge (with the notable exception of J2ME). MNG isn't widely used period (very low tools support), and PNG can be rather onerous to parse and doesn't include support for common texture compression formats. It's fine as a pipeline format, but tends to be boiled down into a proprietary format during the binary build.

Share this post


Link to post
Share on other sites
Quote:
Original post by SiCrane
Quote:
Original post by ExtraNoise
I know an MMO is a fairly large-scale project. Is this something Python can handle?

Yes.


EVE was done with Python 8D

Im an eve player and seeing how that plays makes me even more determined to get on with it. (Learning Python that is)

Brian.

Share this post


Link to post
Share on other sites
Quote:
Original post by Zahlman
(GIF has patent issues, though, which can be a problem if you want to go commercial.)

Didn't the GIF patent expire like over a year ago?

Share this post


Link to post
Share on other sites
Quote:
Original post by ExtraNoise
And could you explain paperdolling?


Wikipedia stub.

Quote:
Is there a layman's way to explain how the code processes each layer?


You draw the most underneath layer of skin/clothing/whatever first, and then build your way up to the front. Each successive drawing appears "on top of" the other layers as a result. Aka the painter's algorithm (much longer Wikipedia article), but applied to 2D, where there aren't any complicating factors (except alpha, if you use it).

As for patents, it should be noted that I have a habit of being behind the times when it comes to that kind of stuff. IANAL after all :)

Share this post


Link to post
Share on other sites
Quote:
Original post by ExtraNoise
I'm still pretty new to programming, with only experience in web development

For now you should really just stop thinking about sprites, models, animation, clothing, blue/red shirts, file formats and building 3D engines.

STOP. Learn how to program first.

Your first games won't have anything to do with the stuff you have discussed so far in this thread. It does not matter if Python is capable of creating your MMO or not (although it's nice to hear it is), because at some point in the in the future where you have gained enough knowledge to write an MMO, you will probably have already learned several other languages besides Python anyway.

Share this post


Link to post
Share on other sites
Quote:
Original post by DevFred
Quote:
Original post by ExtraNoise
I'm still pretty new to programming, with only experience in web development

For now you should really just stop thinking about sprites, models, animation, clothing, blue/red shirts, file formats and building 3D engines.

STOP. Learn how to program first.

Your first games won't have anything to do with the stuff you have discussed so far in this thread. It does not matter if Python is capable of creating your MMO or not (although it's nice to hear it is), because at some point in the in the future where you have gained enough knowledge to write an MMO, you will probably have already learned several other languages besides Python anyway.


Well, I should say that I am learning how to program in Python and doing pretty well so far - so it's not a complete wash. :) Having a long-term goal really helps for me.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this