Jump to content
  • Advertisement

skorche

Member
  • Content Count

    19
  • Joined

  • Last visited

Community Reputation

136 Neutral

About skorche

  • Rank
    Member
  1. This is just a minor bug fixing update. This will be the last version of Chipmunk 5.x as 6.0.0 is basically done except for typing up the release notes, packaging it up and posting it. \o/ Check out the new Chipmunk Home Page while you are at it. Get the source while it's hot! (Mac/Win/Linux/iPhone/etc) Chipmunk is a high performance, MIT licensed 2D physics library with all the fixings. Written in C99, bindings and ports exist to over a dozen languages. Including an official binding to Objective-C that makes it fit right in on the iPhone. Chipmunk has been used on many platforms including the PC (Mac/Win/Linux), iPhone, Android, Symbian, DS, PSP, and even the Wii. It has been used for many chart topping iPhone games including Cars 2, Feed Me Oil, Zombie Smash, I Dig It, Crush the Castle, Finger Physics, Doodle Army and more! Google Code Project Page Cheesy promo video: Youtube Documentation: C API docs/Objective-C API Docs See some games made with Chipmunk. (at least a few of the ones I know of) Demo app binaries: (Mac, Win, iPhone) CHANGES SINCE 5.3.4: FIX: Fixed spelling of cpArbiterGetDepth(). Was cpArbiteGetDepth() before. Apparently nobody ever used this function.FIX: Added defines for M_PI and M_E. Apparently these values were never part of the C standard math library. Who knew!?FIX: Added a guard to cpBodyActivate() so that it's a noop for rouge bodies.FIX: Shape queries now work with (and against) sensor shapes.FIX: Fixed an issue where removing a collision handler while a separate() callback was waiting to fire the next step would cause crashes.FIX: Fixed an issue where the default callback would not be called for sensor shapes.FIX: Resetting or applying forces or impulses on a body causes it to wake up now.MISC: Added a check that a space was not locked when adding or removing a callback.MISC: Removed cpmalloc from the API and replaced all occurences with cpcallocMISC: Added a benchmarking mode to the demo app. -trial runs it in time trial mode and -bench makes it run some benchmarking demos.
  2. Things got delayed longer than I had hoped, but it's finally out. Get the source while it's hot! (Mac/Win/Linux/iPhone/etc) Chipmunk is a high performance, MIT licensed 2D physics library with all the fixings. Written in C99, bindings and ports exist to over a dozen languages. Including an official binding to Objective-C that makes it fit right in on the iPhone. Chipmunk has been used on many platforms including the PC (Mac/Win/Linux), iPhone, Android, Symbian, DS, PSP, and even the Wii. It has been used for many chart topping iPhone games including Zombie Smash, I Dig It, Crush the Castle, Finger Physics, Doodle Army and more! Google Code Project Page Cheesy promo video: Youtube Documentation: C API docs/Objective-C API Docs See some games made with Chipmunk. (at least a few of the ones I know of) Demo app binaries: (Mac, Win, iPhone) This update fixes a couple small bugs and adds a number of new features that have been requested. Other than further bug fixes, this will probably be the last minor release while work begins on major new features for Chipmunk 6.0. CHANGES SINCE 5.3.2: API: Added cpArbiteGetCount() to return the number of contact points. API: Added helper functions for calculating areas of Chipmunk shapes as well as calculating polygon centroids and centering polygons on their centroid. API: Shape queries. Query a shape to test for collisions if it were to be inserted into a space. API: cpBodyInitStatic() and cpBodyNewStatic() for creating additional static (rogue) bodies. API: cpBodySleepWithGroup() to allow you to create groups of sleeping objects that are woken up together. API: Added overloaded *, +, - and == operators for C++ users. API: Added cpSpaceActivateShapesTouchingShape() to query for and activate any shapes touching a given shape. Useful if you ever need to move a static body. FIX: Fixed an extremely rare memory bug in the collision cache. FIX: Fixed a memory leak in Objective-Chipmunk that could cause ChipmunkSpace objects to be leaked. MISC: C struct fields and function that are considered private have been explicitly marked as such. Defining CP_ALLOW_PRIVATE_ACCESS to 0 in Chipmunk.h will let you test which parts of the private API that you are using and give me feedback about how to build proper APIs in Chipmunk 6 for what you are trying to do. MISC: Allow CGPoints to be used as cpVect on Mac OS X as well as iOS.
  3. skorche

    Chipmunk physics orbiting

    Dunno if you are the same one that posted on the official Chipmunk forums, but one of the demos included with Chipmunk shows how to do planetary gravity.
  4. Get the source while it's hot! (Mac/Win/Linux/iPhone/etc) Mostly a bug fixing update, but a big one. There are also a number of minor API additions and documentation fixes. Google Code Project Page Cheesy promo video: Youtube Documentation: C API docs/Objective-C API Docs See some games made with Chipmunk on the wiki. Demo app binaries: (Mac, Win, iPhone) CHANGES SINCE 5.3.1: FIX: Collision begin callbacks were being called continuously for sensors or collisions rejected from the pre-solve callback. FIX: Plugged a nasty memory leak when adding post-step callbacks. FIX: Shapes were being added to the spatial hash using an uninitialized bounding box in some cases. FIX: Perfectly aligned circle shapes now push each other apart. FIX: cpBody setter functions now call cpBodyActivate(). FIX: Collision handler targets are released in Objective-Chipmunk when they are no longer needed instead of waiting for the space to be deallocated. API: cpSpaceSegmentQuery() no longer returns a boolean. Use cpSpaceSegmentQueryFirst() instead as it's more efficient. NEW: cpSpaceRehashShape() Rehash an individual shape, active or static. NEW: cpBodySleep() Force a body to fall asleep immediately. NEW: cpConstraintGetImpulse() Return the most recent impulse applied by a constraint. NEW: Added setter functions for the groove joint endpoints. MISC: A number of other minor optimizations and fixes.
  5. skorche

    Chipmunk 5.3.0 released!

    Thanks! I started playing around with writing physics engines when I was in college. The first one was called Squirrel physics and used jakobsen/vertlet style physics. Chipmunk originally started out as my senior thesis project back in 2006 and I've been working on it ever since. I figured I might as well stick with the rodent names. ;)
  6. skorche

    Chipmunk 5.3.0 released!

    We made a fun/cheesy promotional video for chipmunk that shows off a bunch of games that various people have made using the engine: YouTube link
  7. So it's been a loooong time since I've posted here. I figured I should share some of the Chipmunk release love with the nice folks here at gamedev.net as well. Chipmunk 5.3.0 is out! The biggest new feature is that I've added the ability for inactive objects to fall asleep, reducing the CPU and battery usage. There are a number of other smaller performance improvements and fixes as well. Source Code (all platforms) OSX Demo Binary Windows Demo Binary iPhone Demo App CHANGES SINCE 5.2.0: FIX: Fixed the source so it can compile as C, C++, Objective-C, and Objective-C++. FIX: Fixed cp_contact_persistence. It was broken so that it would forget collision solutions after 1 frame instead of respecting the value set. OPTIMIZATION: Several minor optimizations have been added. Though performance should only differ by a few percent. OPTIMIZATION: Chipmunk now supports putting bodies to sleep when they become inactive. API: Elastic iterations are now deprecated as they should no longer be necessary. API: Added API elements to support body sleeping. API: Added a statically allocated static body to each space for attaching static shapes to. API: Static shapes attached to the space's static body can simply be added to the space using cpSpaceAddShape(). NEW: New MSVC projects. NEW: Added boolean and time stamp types for clarity. We've also included the Objective-C wrapper as well as some sample code from shipping iPhone Apps. The primary advantages of a native Objective-C API include integrating with the Cocoa memory management model and the Chipmunk Object protocol. The Chipmunk Object protocol unifies the basic Chipmunk types as well as making it easy to create custom composite collections of the basic types. Additionally, the wrapper adds many convenience methods for doing common setup tasks as well as helper methods that integrate it with the rest of the Cocoa Touch API. The wrapper tries to do things the Objective-C way, adding useful method variations where it makes sense to do so. Objective-Chipmunk is cheap to license and it will definitely save you time and money developing Chipmunk based iPhone apps.
  8. I think I figured out the issue. Your CheckCollision() function has two returns in it that should be continue statements. One skipped triangle will cause the rest of the triangles in the list to be ignored. I sent an email to you about it.
  9. There has been a few threads about Chipmunk around these parts, but I've never started a thread for it. This is mostly due to to lack of any real support for building it off of OS X. I've since then gotten help in creating build files for Linux and a MSVC project that will build my C99 code. Chipmunk Home Page Download Link (for the impatient) Documentation Chipmunk Forums Enjoy.
  10. skorche

    2D Physics

    It can all be modeled using a linear equations solver. (That takes care of the this box pushes that one, pushes that one bit) Erin Catto has some good info. I built my engine around his impulse solver. Look for articles on Box2D. There is an older post with slides and a paper. GPhysics Also, if you want to take a peek at my engine: Chipmunk I prefer spatial hashing over trees as it can be more efficient. It does suffer from resolution issues though. Putting a large object in a fine grained hash is really wasteful for instance.
  11. skorche

    PhysX for Java

    Just no free version? The Unity game engine is Mac based and uses PhysX. UNITY: Features
  12. I don't see anything wrong with that bit of code. I'd have to see more I think. Also, I've set up a forum for Chipmunk: slembcke.net forums
  13. skorche

    2D Physics Engine

    So I did get that forum set up last week. http://www.slembcke.net/forums/viewforum.php?f=1 For any of you who have had experience with compiling Chipmunk under Windows, could you respond to this thread: http://www.slembcke.net/forums/viewtopic.php?f=1&t=6 Lastly, I created a subforum for any community created games/enhancements/etc. For now, that will be the official channel to help gather any unofficial Chipmunk content. edit: Am I blind or something? How does one create links on this forum? [Edited by - skorche on August 22, 2007 9:08:40 PM]
  14. skorche

    2D Physics Engine

    Python? PYTHON! Nah, I was thinking about trying to make a Python extension just for the experience, but not being much of a Python programmer myself, I didn't think I'd be able to make one that Python people would like. Well, that and I never really had the time. I should definitely throw some links to some of these projects up on my wiki or add a forum. I think there has been at least 4 separate people that I know of that have either done the work to get a Windows version through either MinGW or MSVC. No use in having people continue to reinvent the wheel. I'll have to look into that when I get back from vacation.
  15. Sorry, I'm a bit late to the game it looks like. I'll have to look at this more in depth tomorrow afternoon. A few things I caught: Aressera: There is no reason that you are limited to a finite space with spatial hashing. (precision limited of course) That's one of the reasons that I picked spatial hashing. Spatial hashing is O(n) compared to O(log n) for trees, but has a rather high constant factor. This means that making large and small queries on the same hash is quite inefficient compared to a tree. I optimized that somewhat in Chipmunk by creating a separate hash for larger static objects that only need to be rehashed on rare occasions. Though to get around the size problem I'm considering adding some sort of spatial tree to Chipmunk (who knows when I'll get time though...) pTymN: Sorry I haven't been around to get you the help that you need. I still think trying applying all collisions at the beginning of the frame instead of trying to find the specific collision time to be an OK approximation. Objects would always collide too early, but for it would only really be noticeable for fast moving objects. I might try my hand at that soonish if I get the time. I've still got a couple of quirks to sort out to get it to compile under g++ though. I know the feeling about just wanting to make games though. I've been trying to make a stable 2D physics engine for a few years now, and only recently succeeded with Chipmunk. Since then I've been fretting over making a scenegraph library to use it with. (Yay for reinventing the wheel!) I still haven't made a game with it!
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!