On Apr 28, 2008, at 9:47 PM, 帆 张 wrote:
>
>
> Noah Kantrowitz写道:
> The problem with chipmunk, and by extension box2d, is what exactly? I
> would rather see the existing bindings improved than someone try
> writing a new engine. Perhaps make a library that provides a mixin to
> easily enable binding pygame Sprite objects to physics objects.
>
> --Noah
>
> Thank you for your good advice.
>
> Fist I'd like to tell the diffiences between our physics engine and
> Chipmunk: my engine will be integrated with Pygame directly which
> means it offers more user-friendly interfaces. for example, a user
> who use pygame as a 2D graphics engine and pymunk as 2D physics
> engine, he or she must write codes for managing both rendering state
> sand physics states of game objects, just like you said before
> "binding between physics object and sprite", by contrast, our engine
> in Pygame will manage them all automaticly
So you aren't writing a library for people to use, you are writing a
game engine. This is fine, but you should understand the distinction
and know that homebrew game engines are rarely useful to anyone but
the author. Designing a good engine and API is among the hardest tasks
in game development. I have tried several times and am not embarrassed
to say that all were fairly lousy. I still learned a great deal from
each attempt, so I wouldn't say its wrong to try. Just be aware of the
task in front of you. Some small tips I can give:
* Control scope. _Do not_ try to make a generic engine. I would say
stick to something like "top-down car-based games" or "side-view
platform games" or similar.
* Design the API in full, then try to write a mock game in it.
* Test everything as frequently as possible. Testing game code is
still tricky, but use unit tests to see that the right code paths are
being hit.
> , and I want to offer some more useful special interfaces for game
> development like rigid-doll system and explosion system in future.
> This engine is just a part of pygame which means it is integrated
> with pygame inside.
>
> Indeed, Writing a new engine maybe sound like a little ambitious and
> useless. I have ever thought about just to wrap a mature physics
> library in Python like Box2D engine and improve it by writing a
> layer for binding and so on, but I'm a fan of physics development, I
> decide to make it on my own. I know It's hard for me to make a
> mature one in just three months,
You are wrong about this. It isn't hard. It is impossible. You will
undoubtedly learn much doing this, however the net benefit to the
community will be zero.
> but I want to give Pygame users more choices in physics module with
> pygame and I will improve it with other people in the community for
> making it better, I hope it won't end after google SOC. And I'm
> dedicating myself into this project.
>
Many people say that, the numbers say otherwise. Its nothing personal
but I think the GSoC project does more harm than good to the FOSS
community, as there are now several years of unmaintained and
generally shoddy code in various corners that no one knows what to do
with. The publicity and $ are nice, but I think the community loses in
the end.
--Noah