<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-23404633</id><updated>2024-03-13T02:33:21.891+02:00</updated><title type='text'>Opioid Game Dev</title><subtitle type='html'>Random musings from hobbyist game developers.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default?alt=atom'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default?alt=atom&amp;start-index=26&amp;max-results=25'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-23404633.post-2335457794892845067</id><published>2008-07-14T12:24:00.002+03:00</published><updated>2008-07-14T12:26:50.863+03:00</updated><title type='text'>Opioid2D Pages Down</title><content type='html'>The Opioid2D web page is currently unreachable for some reason. I&#39;m waiting to hear back from my server provider, but meanwhile, the pages are temporarily mirrored &lt;a href=&quot;http://aurinko.mui.fi/~shang/opioid2d/&quot;&gt;here&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/2335457794892845067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/2335457794892845067' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/2335457794892845067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/2335457794892845067'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2008/07/opioid2d-pages-down.html' title='Opioid2D Pages Down'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-1937614491578562738</id><published>2008-06-08T15:33:00.002+03:00</published><updated>2008-06-08T15:40:41.045+03:00</updated><title type='text'>June Status Update</title><content type='html'>Apologies for the long hiatus. I&#39;ve just recently finished a really hectic project at work, and I&#39;m now slowly getting back to Opioid2D. The first order of business is to finish the Box2D integration which I already got decently far. While I was &quot;away&quot;, Box2D released the official 2.0.0 and 2.0.1 versions, so it was actually pretty convenient to delay the integration this far. There&#39;s also lots of very promising stuff coming, based on Box2D&#39;s HEAD revision (like automatic polygon decomposition), which will be very useful in O2D.&lt;br /&gt;&lt;br /&gt;My summer vacation begins in the middle of July, and that&#39;s when I&#39;ll try to complete some bigger new features. On August, I&#39;m moving about 150km closer to my job, so that&#39;ll cut down my commuting times significantly (translating into more free time to use on personal projects).</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/1937614491578562738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/1937614491578562738' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/1937614491578562738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/1937614491578562738'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2008/06/june-status-update.html' title='June Status Update'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-5959805418505892774</id><published>2008-04-17T19:44:00.003+03:00</published><updated>2008-04-17T20:10:48.584+03:00</updated><title type='text'>Future Musings</title><content type='html'>I&#39;ve apparently lived in a cave for the last few months (or in actuality, at the work place) and was almost completely oblivious to the existence of &lt;a href=&quot;http://www.pyglet.org/&quot;&gt;pyglet&lt;/a&gt;, before it was pointed out to me in IRC today. Sure, I had heard about pyglet before and had a vague idea about what it was, but I had no idea it was already this advanced and sophisticated. Alex Holkner and the other pyglet contributors have really done a terrific job.&lt;br /&gt;&lt;br /&gt;Opioid2D development has been really slow lately. It&#39;s mostly because of my work projects, but also partly because it has started to become difficult to add new functionality to the Opioid2D core. As I&#39;ve developed the framework, it has unintentionally been emphasizing very specific kind of sprite based games (which were what I was mainly using pygext for when I started porting it to C++) to the point where the code base has become rather monolithic against certain kind of fundamental changes. I ran into this when implementing the box2d integration and while I would&#39;ve gotten around the problems for that particular feature, there are same kind of problems when implementing support for isometric games or even plain 2D tile maps.&lt;br /&gt;&lt;br /&gt;The main issue is that there is too much stuff that&#39;s coded in C++, that could just as well be pure Python and the C++ components have too much hard-coded dependencies to each other. It pains me to admit this, but pygext (my previous framework) was actually a lot more flexible and malleable, all while providing a nearly identical main API. On the other hand, the performance is way better, still over 10x for a large number of sprites, even with the latest improvements to psyco and the CPython interpreter.&lt;br /&gt;&lt;br /&gt;At this point, I see it as a very attractive option to abandon most of the C++ core of Opioid2D, and migrate the API to use pyglet. Pyglet does lot of the low level stuff like windowing, timers, events etc. a lot better and cleaner than the Opioid2D code. I would also break up the Opioid2D framework into smaller, reusable components that could be cherry-picked into pyglet projects, instead of conforming your whole program to the &quot;Opioid2D way&quot; of doing things. The sprite engine would be cleaned up and written as a C extension (with box2d doing collision detection and physics) that would be an independent component that could be used by any pyglet project. Lastly, there would be a backwards compatibility layer called &quot;Opioid2D&quot; that would use these new, small components and transparently provide the same API as the current incarnation.&lt;br /&gt;&lt;br /&gt;I haven&#39;t decided anything yet, but the above idea is one thoughtworthy possibility for the future of Opioid2D.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/5959805418505892774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/5959805418505892774' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/5959805418505892774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/5959805418505892774'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2008/04/future-musings.html' title='Future Musings'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-3896131038101444534</id><published>2008-04-05T13:24:00.002+03:00</published><updated>2008-04-05T13:27:15.923+03:00</updated><title type='text'>Bitograph 0.8 Release</title><content type='html'>I finished all the essential functionality, so I&#39;m releasing the Bitograph library for others to try out. You can download the library from &lt;a href=&quot;http://opioid-interactive.com/~shang/projects/bitograph/download/&quot;&gt;here&lt;/a&gt; and read the user guide online &lt;a href=&quot;http://opioid-interactive.com/~shang/projects/bitograph/manual/&quot;&gt;here&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/3896131038101444534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/3896131038101444534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/3896131038101444534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/3896131038101444534'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2008/04/bitograph-08-release.html' title='Bitograph 0.8 Release'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-3184349757224830129</id><published>2008-03-31T02:20:00.002+03:00</published><updated>2008-03-31T02:34:30.885+03:00</updated><title type='text'>Bitograph</title><content type='html'>I had to put the box2d integration on hold for a while, because of more urgent projects. However, this weekend I had a sudden inspiration to improve and expand the bitmap font support a bit. The current bitmap-font feature in Opioid2D (and pygext) is pretty primitive and doesn&#39;t let you fine tune things like kerning or have smart support for accented characters. The new one is the Ultimate Bitmap Font Engine(tm), with every possible fine tuning parameter you can think of, in order to have professional looking typography.&lt;br /&gt;&lt;br /&gt;Creating a new bitmap font begins with a template file. This is automatically generated by Bitograph (the new library) according to the template parameters defined in the &lt;a href=&quot;http://opioid-interactive.com/~shang/misc/example2-def.txt&quot;&gt;font project file&lt;/a&gt;. The generated template with the linked project file looks like this:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://opioid-interactive.com/~shang/misc/example2-template.png&quot;&gt;&lt;img src=&quot;http://opioid-interactive.com/~shang/misc/example2-template_thumb.png&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can then load up the template file to your favorite graphics software and decorate the font as you see fit. The library also contains some stock effects (like Outline and DropShadow in the above example) that can be used by us non-artist programmers.&lt;br /&gt;&lt;br /&gt;The linked project file might seem a bit daunting with the sheer amount of metadata, but choosing proper values is done very iteratively. You begin with nothing but the basic values (like line_height etc.) and then just add small adjustments according to how the font looks. This is made easier by the included Font Viewer:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://opioid-interactive.com/~shang/misc/bitograph.png&quot;&gt;&lt;img src=&quot;http://opioid-interactive.com/~shang/misc/bitograph_thumb.png&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can tweak the kerning etc. values in the property file, and instantly see the changes in the Font Viewer (no restart needed).&lt;br /&gt;&lt;br /&gt;The rendering code supports automatic text wrapping and will eventually support various text alignment and justification options. You can also compile long strings into bytecode-objects for the rendering engine, which makes line-wrapping and rendering a lot faster.&lt;br /&gt;&lt;br /&gt;Expect to see the first release version of Bitograph soon.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/3184349757224830129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/3184349757224830129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/3184349757224830129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/3184349757224830129'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2008/03/bitograph.html' title='Bitograph'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-3254206086726310540</id><published>2008-02-20T22:16:00.002+02:00</published><updated>2008-02-20T22:27:24.325+02:00</updated><title type='text'>This is Why I Like Bazaar</title><content type='html'>&lt;a href=&quot;http://opioid-interactive.com/opioid2d/img/opi2dbazaar.png&quot;&gt;&lt;img src=&quot;http://opioid-interactive.com/opioid2d/img/opi2dbazaar_thumb.png&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bazaar has been a great productivity booster for me lately. It enables me to work on several concurrent major refactoring tasks, and painlessly merge between them. You can imagine what it would be like to do several merges daily with SVN or (*shudder*) CVS.&lt;br /&gt;&lt;br /&gt;The biggest new thing I&#39;m currently working on is the &lt;a href=&quot;http://www.box2d.org&quot;&gt;Box2D&lt;/a&gt; integration. I&#39;d estimate I&#39;m about 40% done now, and the biggest obstacle has been (once again) having enough time to code, but I hope to have the main functionality + a simple demo working next weekend or next week.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/3254206086726310540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/3254206086726310540' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/3254206086726310540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/3254206086726310540'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2008/02/this-is-why-i-like-bazaar.html' title='This is Why I Like Bazaar'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-8383447612396985035</id><published>2008-02-16T13:37:00.002+02:00</published><updated>2008-02-16T14:00:23.056+02:00</updated><title type='text'>The Bazaar Is Open</title><content type='html'>I tested &lt;a href=&quot;http://bazaar-vcs.org/&quot;&gt;Bazaar&lt;/a&gt; for real development for a while, and it is really great. So, from now on all Opioid2D development will use Bazaar and the old Subversion repository is no longer maintained. The are two main branches in the public Bazaar repository&lt;br /&gt;&lt;br /&gt;&lt;code&gt;http://opioid-interactive.com/opioid2d/bzr/trunk&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and&lt;br /&gt;&lt;br /&gt;&lt;code&gt;http://opioid-interactive.com/opioid2d/bzr/experimental&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The trunk will mainly get bug fixes for now, and all new features are developed and published in the  experimental branch. Once the features mature and undergo enough testing, they are merged into the trunk and a new alpha is released. I&#39;m not going to rush the new releases until the new features are properly finished and the API stabilized, so I encourage you to get the experimental branch every once in a while if you need the latest and greatest features. Now that Opioid2D fully supports mingw, it should be pretty easy for anyone to compile their own extension. However, I can provide binary snapshots of the experimental branch if needed, so let me know if that is the case.&lt;br /&gt;&lt;br /&gt;In order to download the trunk, for example, all you need to do is&lt;br /&gt;&lt;br /&gt;&lt;code&gt;bzr get http://opioid-interactive.com/opioid2d/bzr/trunk opioid2d&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;However, if you are going to use several different branches, I recommend you do the following:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;bzr init-repo opioid2d&lt;br /&gt;cd opioid2d&lt;br /&gt;bzr get http://opioid-interactive.com/opioid2d/bzr/trunk&lt;br /&gt;bzr get http://opioid-interactive.com/opioid2d/bzr/experimental&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Creating your own local repository lets Bazaar share metadata between the different branches, so it&#39;s a bit more efficient.&lt;br /&gt;&lt;br /&gt;Now if you want to make your own changes or fixes to the Opioid2D source, you should create your own branch. E.g.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;cd opioid2d&lt;br /&gt;bzr branch trunk my-bug-fix&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The &lt;code&gt;my-bug-fix&lt;/code&gt; is the name of the branch, which should be as informative as possible. I usually name bug fix branches beginning with fix-, so e.g. &lt;code&gt;fix-sprite-edge-bug&lt;/code&gt;. At this point, you have your own complete copy of the source tree in the &lt;code&gt;my-bug-fix&lt;/code&gt; folder, and you can freely make any changes you need. After you are done (and periodically while you are working), you run &lt;code&gt;bzr commit&lt;/code&gt; to record your change history into your local branch. Finally, you run&lt;br /&gt;&lt;br /&gt;&lt;code&gt;bzr send -o my-bug-fix.patch&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Which creates a patch file you can send to me to be included in the main trunk. Alternatively, you can publish your branch e.g. via HTTP and just send me the URL.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/8383447612396985035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/8383447612396985035' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/8383447612396985035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/8383447612396985035'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2008/02/bazaar-is-open.html' title='The Bazaar Is Open'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-5382392156374721252</id><published>2008-02-06T12:36:00.000+02:00</published><updated>2008-02-06T12:39:53.050+02:00</updated><title type='text'>Opioid2D Version Control</title><content type='html'>I&#39;ve been reading a lot about distributed version control systems lately, and have come to the conclusion that the development of Opioid2D would benefit from lot of the features available in them. I code on several PCs and e.g. my laptop is often cut off from the net when I travel. Distributed version control like &lt;a href=&quot;http://bazaar-vcs.org/&quot;&gt;Bazaar&lt;/a&gt; would make it easy to retain version history while offline and then merge the revisions to the online repository when regaining net connectivity. I&#39;m also going to be doing some major refactoring of the C++ internals, and I think the distributed model of &quot;branch per feature/bugfix&quot; would make things a lot easier.&lt;br /&gt;&lt;br /&gt;The one thing that worries me is that Subversion is something that is familiar to almost all developers, so it is easy for anyone interested in O2D to grab the SVN trunk. Distributed version control systems, however, don&#39;t seem to be as widely used or even known. I looked at several different solutions, and Bazaar is currently my top choice because it seemed to have the lowest barrier to entry with decent documentation and support for Linux, Windows and MacOSX. Mercurial was a close contender, especially since TortoiseHg seems more mature than TortoiseBzr at this point, but after giving them both a try, I slightly prefer using Bazaar (and its quick-start guide was a lot more comprehensive).&lt;br /&gt;&lt;br /&gt;Another good thing about Bazaar compared to SVN is that I could publish the repository via a standard web hosting service and thus put it on the same server that contains the Opioid2D web pages. I&#39;m currently renting a virtual server to run svnd in, and it hasn&#39;t been very reliable (nor cheap enough to justify the mediocre up-times).</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/5382392156374721252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/5382392156374721252' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/5382392156374721252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/5382392156374721252'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2008/02/opioid2d-version-control.html' title='Opioid2D Version Control'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-6365819085048767452</id><published>2008-01-23T20:15:00.000+02:00</published><updated>2008-01-23T20:33:28.373+02:00</updated><title type='text'>January Update</title><content type='html'>&lt;p&gt;Unfortunately I don&#39;t have much to tell regarding Opioid2D, even though it&#39;s been several months again. There have been small patches and adjustments since the last release, but most of my coding time has been spent on the game project I&#39;m doing at work. The game is nearing its release deadline and the crunch is on, so I really haven&#39;t had that much energy for personal projects.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;There are a couple of Opioi2D related things I&#39;ve been thinking about, but haven&#39;t yet started implementing. The biggest is the rethinking of the node hierarchy system and sprite drawing order. The current design just isn&#39;t flexible enough in all use cases, and also isn&#39;t as efficient as it could be. Another important thing is the drawing system (lines, triangles, rects etc.) and how to tie that neatly into the action system and rest of Opioid2D. I also happened to come upon a really promising looking 2D physics library called &lt;a href=&quot;http://www.box2d.org/&quot;&gt;Box2D&lt;/a&gt;, which would be a perfect fit for Opioi2D. I&#39;ve browsed through the API, and I don&#39;t think it would be all that difficult to integrate it, giving Opioid2D true physics support.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;When thinking about how to integrate drawing primitive shapes with the action system, I&#39;ve built a prototype for a more generalized action API. This is something that will be released both as a part of Opioid2D and as a standalone action library that can be used with any Python program (pygame games etc.). The API currently looks like this:&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;@action&lt;br /&gt;def example():&lt;br /&gt;   size = interval(10, 15, time=0.5, mode=pingpong)&lt;br /&gt;   for x,y in interval(start=(50,0), end=(70,100), time=2):&lt;br /&gt;       draw.color = (255,0,0)&lt;br /&gt;       draw.circle(x, y, size.value)&lt;br /&gt;       yield&lt;br /&gt;   for alpha in interval(255, 0, time=0.5):&lt;br /&gt;       draw.color = (255,0,0,alpha)&lt;br /&gt;       draw.circle(70, 100, size.value)&lt;br /&gt;       yield&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;How does that look? My goal was to design the API so that it would be somewhat clear what the code does, even for someone not familiar with the API beforehand. &lt;code&gt;interval&lt;/code&gt; objects give a value based on the current time and their initial parameters, so for example &lt;code&gt;interval(0, 10, time=10)&lt;/code&gt; will increase its value by 1 per second until it reaches 10. &lt;code&gt;yield&lt;/code&gt; is used to suspend the action until the next frame update.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/6365819085048767452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/6365819085048767452' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/6365819085048767452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/6365819085048767452'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2008/01/january-update.html' title='January Update'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-6659967503745553372</id><published>2007-10-14T13:51:00.000+03:00</published><updated>2007-10-14T15:16:20.125+03:00</updated><title type='text'>October Update</title><content type='html'>My laptop (which was my primary development PC) had a hardware failure last month, so it has taken some time to order parts for a new machine and setting up the development environment for Opioid2D. Since setting up the free MS tools for Python extension compiling is somewhat of a hassle, I decided to try open source tools this time around.&lt;br /&gt;&lt;br /&gt;The &lt;a href=&quot;http://www.opioid-interactive.com/opioid2d/?page=DownloadPage&quot;&gt;Opioid2D alpha 6 patch 3&lt;/a&gt; released today has been modified so that it compiles correctly for Python 2.5 using MinGW32. Also, since the official release of Python 2.5 is now over a year old, I&#39;ve decided to use that as my main platform from now on. If you need Python 2.4 support in Opioid2D, please let me know, as all future testing and releases will otherwise be for 2.5 only.&lt;br /&gt;&lt;br /&gt;Other than that, I haven&#39;t had much time to develop new features and such, as I&#39;m currently commuting about three hours a day to my new job. However, this is only a temporary phase and later on I will telecommute most days from home and that should free up some more time to work on my personal projects.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/6659967503745553372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/6659967503745553372' title='33 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/6659967503745553372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/6659967503745553372'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/10/october-update.html' title='October Update'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>33</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-8595032009027749781</id><published>2007-08-26T13:38:00.000+03:00</published><updated>2007-08-26T13:44:02.017+03:00</updated><title type='text'>A short status report</title><content type='html'>Just in case you are wondering where all the Opi2D updates are, I&#39;m currently in the middle of changing jobs, which has occupied my attention a bit. Expect more updates after I&#39;ve settled down in the new place.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/8595032009027749781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/8595032009027749781' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/8595032009027749781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/8595032009027749781'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/08/short-status-report.html' title='A short status report'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-2726597174562736513</id><published>2007-08-11T22:10:00.000+03:00</published><updated>2007-08-11T22:13:12.875+03:00</updated><title type='text'>Opioid2D alpha 6 patch 2</title><content type='html'>Since alpha 7 still needs a lot of work, I&#39;m releasing another crash-bug-fix for alpha 6. Get it from the &lt;a href=&quot;http://opioid-interactive.com/opioid2d/?page=DownloadPage&quot;&gt;usual place&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/2726597174562736513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/2726597174562736513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/2726597174562736513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/2726597174562736513'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/08/opioid2d-alpha-6-patch-2.html' title='Opioid2D alpha 6 patch 2'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-7416117891145561270</id><published>2007-07-25T14:42:00.000+03:00</published><updated>2007-07-25T15:00:16.127+03:00</updated><title type='text'>About the Name</title><content type='html'>I&#39;ve had a couple of inquiries about the &quot;opioid&quot; in the framework name, so I just wanted to make it clear that it is not meant to be a pro-drugs statement or anything like that. It&#39;s a bit of an unfortunate choice from a marketing perspective, but the link to gaming in this case is that &lt;a href=&quot;http://en.wikipedia.org/wiki/Endorphin&quot;&gt;endorphin&lt;/a&gt; is a natural opioid (and Endorphin2D would&#39;ve been a clumsy name for a framework).&lt;br /&gt;&lt;br /&gt;(EDIT: actually, the wikipedia link doesn&#39;t currently explain the connection all that well, since it doesn&#39;t mention the supposed connection between endorphins and feelings of pleasure and euphoria.)</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/7416117891145561270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/7416117891145561270' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/7416117891145561270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/7416117891145561270'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/07/about-name.html' title='About the Name'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-3949462958111115995</id><published>2007-07-23T03:00:00.000+03:00</published><updated>2007-07-23T03:02:25.029+03:00</updated><title type='text'>Opioid2D alpha 6 patch 1</title><content type='html'>There were a couple of bugs in the alpha 6 release (thanks to everyone who reported them!), so I&#39;ve released a new patched version. You can get it from the usual &lt;a href=&quot;http://opioid-interactive.com/opioid2d/?page=DownloadPage&quot;&gt;download page&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/3949462958111115995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/3949462958111115995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/3949462958111115995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/3949462958111115995'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/07/opioid2d-alpha-6-patch-1.html' title='Opioid2D alpha 6 patch 1'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-6825413063939587808</id><published>2007-07-16T14:41:00.000+03:00</published><updated>2007-07-16T14:46:05.187+03:00</updated><title type='text'>Opioid2D alpha 6 release</title><content type='html'>I&#39;ve released the 6th alpha of Opioid2D. It&#39;s available from the Opioid2D &lt;a href=&quot;http://opioid-interactive.com/opioid2d/?page=DownloadPage&quot;&gt;download page&lt;/a&gt; and the list of changes can be viewed &lt;a href=&quot;http://opioid-interactive.com/opioid2d/?page=ChangeLog&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Unfortunately I didn&#39;t have enough time for the snippets library yet, so that has to wait for alpha 7.&lt;br /&gt;&lt;br /&gt;I&#39;m rather happy with Opioid2D feature-wise so far, so the next couple of weeks will be spent on cleaning up and optimizing the internals before another feature push.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/6825413063939587808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/6825413063939587808' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/6825413063939587808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/6825413063939587808'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/07/opioid2d-alpha-6-release.html' title='Opioid2D alpha 6 release'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-2201870077233207824</id><published>2007-07-04T22:20:00.001+03:00</published><updated>2007-07-04T22:24:07.885+03:00</updated><title type='text'>SVN and TRAC back online</title><content type='html'>The server move is finally finished and everything seems to work fine so far, so the TRAC can once again be found at http://trac.opioid-interactive.com/opi2d and SVN checkouts are available from svn://svn.opioid-interative.com/shang/opi2d/trunk&lt;br /&gt;&lt;br /&gt;I&#39;ve finished committing all code changes made during the downtime to SVN, and I&#39;ll go through the wiki and update it accordingly in the following few days. After I get everything cleaned up, O2D alpha 6 will be right around the corner.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/2201870077233207824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/2201870077233207824' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/2201870077233207824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/2201870077233207824'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/07/svn-and-trac-back-online.html' title='SVN and TRAC back online'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-2560957449071682122</id><published>2007-07-01T19:58:00.001+03:00</published><updated>2007-07-01T20:03:47.044+03:00</updated><title type='text'>Opioid2D Code Snippets Library</title><content type='html'>Another thing I&#39;m starting from alpha 6 onwards, is to compile a collection of useful example snippets, that show the idiomatic way to do certain things in Opioid2D. They will be smaller than actual example games, but a bit larger and better written than the short test scripts in the distribution so far: things like HealthMeter, ParallaxScrolling, ObjectPicking etc. The idea is that you can study those snippets and paste them into your own code when learning O2D. They should give a better starting point until I can finalize all documentation.&lt;br /&gt;&lt;br /&gt;So, if you have any suggestions for useful snippets you&#39;d like to see, please list them in comments for this entry.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/2560957449071682122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/2560957449071682122' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/2560957449071682122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/2560957449071682122'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/07/opioid2d-code-snippets-library.html' title='Opioid2D Code Snippets Library'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-8239687623340899318</id><published>2007-07-01T19:46:00.000+03:00</published><updated>2007-07-01T19:53:52.521+03:00</updated><title type='text'>Upcoming API Changes</title><content type='html'>I&#39;ve started cleaning up the APIs a bit, revising stuff that doesn&#39;t feel quite right in actual use. The biggest change is in method naming conventions. For some reason, it originally felt like a good idea to capitalize class methods and methods on singleton objects differently (using CapWords), but this hasn&#39;t really felt Pythonic when using the framework, so I&#39;m going to change everything to lowercase_words now that I still can. The old naming convention will still work in alpha 6, but it prints out a deprecation warning as a reminder.&lt;br /&gt;&lt;br /&gt;Other changes that I&#39;m currently evaluating include moving sprite rect attributes to the sprite object itself, so that you use e.g. sprite.left instead of sprite.rect.left and so on. The particle emitter API is another part that feels somehow off, so expect at least small changes there.&lt;br /&gt;&lt;br /&gt;I&#39;m trying to get all backward incompatible changes out of the way by alpha 7, so that APIs in alpha 8 and onwards should stay stable and compatible.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/8239687623340899318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/8239687623340899318' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/8239687623340899318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/8239687623340899318'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/07/upcoming-api-changes.html' title='Upcoming API Changes'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-4857073819873466153</id><published>2007-06-20T23:27:00.001+03:00</published><updated>2007-06-20T23:30:21.317+03:00</updated><title type='text'>Subversion Maintenance</title><content type='html'>The server that hosts all my subversion repositories and TRAC pages is currently down for maintenance. The physical server that hosts my virtual server broke down (which is probably the cause for my TRAC troubles earlier), and my server is currently being moved to another physical machine.&lt;br /&gt;&lt;br /&gt;Hopefully everything will be back up in a couple of days.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/4857073819873466153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/4857073819873466153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/4857073819873466153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/4857073819873466153'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/06/subversion-maintenance.html' title='Subversion Maintenance'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-2532382024197377597</id><published>2007-06-20T23:03:00.000+03:00</published><updated>2007-06-20T23:18:20.979+03:00</updated><title type='text'>Opioid2D Runtime Environment</title><content type='html'>Games made in Python are somewhat cumbersome to distribute. In order to facilitate distributing new versions of games to testers and friends, I&#39;ve designed an utility similar to JRE, that allows one to run O2D games on Windows platforms without having Python installed. It&#39;s still a work in progress, but I&#39;ve compiled a prototype you can download to see how the whole thing might work.&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href=&quot;http://opioid-interactive.com/opioid2d/opioidre-alpha-6.exe&quot;&gt;O2D RE prototype&lt;/a&gt; (4,345 KB)&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href=&quot;http://opioid-interactive.com/opioid2d/invaders.o2d&quot;&gt;Example game&lt;/a&gt;(62.5KB)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;After you install the Runtime Environment, you can launch the example game by simply double clicking the &lt;code&gt;invaders.o2d&lt;/code&gt; file. As you can see, the game itself is a relatively small file, which is much more convenient than always having to distribute several megabytes worth of dependencies.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/2532382024197377597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/2532382024197377597' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/2532382024197377597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/2532382024197377597'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/06/opioid2d-runtime-environment.html' title='Opioid2D Runtime Environment'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-9205924552861310802</id><published>2007-05-17T13:05:00.000+03:00</published><updated>2007-05-17T13:08:26.739+03:00</updated><title type='text'>New Opioid2D Pages</title><content type='html'>I&#39;ve recovered what I could from the TRAC database, and put temporary pages for the project at &lt;a href=&quot;http://opioid-interactive.com/opioid2d/&quot;&gt;http://opioid-interactive.com/opioid2d/&lt;/a&gt;. There isn&#39;t much besides the basic documentation so far, but I&#39;ll work on it more as soon as I have some free time again.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/9205924552861310802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/9205924552861310802' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/9205924552861310802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/9205924552861310802'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/05/new-opioid2d-pages.html' title='New Opioid2D Pages'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-6414921603109952951</id><published>2007-04-14T15:31:00.000+03:00</published><updated>2007-04-14T15:39:46.905+03:00</updated><title type='text'>All Project TRACs Down</title><content type='html'>I started having trouble with my TRAC installation a couple of days ago, as the TRAC server seemed to hang and eventually get killed by the operating system. I tried to remedy this by upgrading my TRAC and Subversion packages, as they were rather old, but that ended up breaking everything and now the whole TRAC just segfaults for all page requests. After several hours of frustrating trial and error, I&#39;ve narrowed the problem down to libsqlite3. I&#39;ve tried different versions. I&#39;ve tried compiling from source and  using stable .debs from apt-get. Nothing helps.&lt;br /&gt;&lt;br /&gt;I&#39;ve pretty much exhausted all my Linux knowledge at this point, so the TRAC probably won&#39;t return any time soon. I&#39;ll need to figure out a good alternative way to provide the library documentation in the future.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/6414921603109952951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/6414921603109952951' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/6414921603109952951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/6414921603109952951'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/04/all-project-tracs-down.html' title='All Project TRACs Down'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-5834122131872985283</id><published>2007-03-13T23:42:00.000+02:00</published><updated>2007-03-13T23:54:14.954+02:00</updated><title type='text'>Opioid2D alpha 5 released</title><content type='html'>I&#39;ve made a couple of bigger API changes and added some very useful new features lately, so I&#39;m making a new release now even though alpha 4 just came out. The list of changes in this version can be found in the &lt;a href=&quot;http://trac.opioid-interactive.com/opi2d/wiki/ChangeLog#Alpha5&quot;&gt;ChangeLog&lt;/a&gt;. Downloads below:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://opioid-interactive.com/%7Eshang/projects/opioid2d/Opioid2D-alpha5.win32-py2.4.exe&quot;&gt;&lt;span class=&quot;icon&quot;&gt;&lt;/span&gt;Windows installer for Python 2.4&lt;/a&gt; (232KB)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://opioid-interactive.com/%7Eshang/projects/opioid2d/Opioid2D-alpha5.win32-py2.5.exe&quot;&gt;&lt;span class=&quot;icon&quot;&gt;&lt;/span&gt;Windows installer for Python 2.5&lt;/a&gt; (232KB)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://opioid-interactive.com/%7Eshang/projects/opioid2d/Opioid2D-alpha5.tar.gz&quot;&gt;&lt;span class=&quot;icon&quot;&gt;&lt;/span&gt;Source Tarball&lt;/a&gt; (852KB)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The &lt;a href=&quot;http://trac.opioid-interactive.com/opi2d/wiki/DocIndex&quot;&gt;documentation&lt;/a&gt; is still a bit spotty and partly out of date, but I&#39;m working on it next. I&#39;ve also added a new example game to the source distribution which should demonstrate pretty well how to do all the basic stuff.</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/5834122131872985283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/5834122131872985283' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/5834122131872985283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/5834122131872985283'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/03/opioid2d-alpha-5-released.html' title='Opioid2D alpha 5 released'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-6004119262920657486</id><published>2007-03-07T17:50:00.000+02:00</published><updated>2007-03-07T17:54:50.268+02:00</updated><title type='text'>Opioid2D alpha 4</title><content type='html'>The alpha 3 release was plagued by a couple of nasty bugs, so I&#39;m releasing alpha 4 even though it doesn&#39;t have any major new features. There are a few backwards incompatible API changes, some performance boosts (especially for particles) and a lot of bug fixes. You can read the full list of changes in the &lt;a href=&quot;http://trac.opioid-interactive.com/opi2d/wiki/ChangeLog#Alpha4&quot;&gt;ChangeLog&lt;/a&gt; and download the source and binary packages from below.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://opioid-interactive.com/%7Eshang/projects/opioid2d/Opioid2D-alpha4.win32-py2.4.exe&quot;&gt;&lt;span class=&quot;icon&quot;&gt;&lt;/span&gt;Windows installer for Python 2.4&lt;/a&gt; (203KB)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://opioid-interactive.com/%7Eshang/projects/opioid2d/Opioid2D-alpha4.win32-py2.5.exe&quot;&gt;&lt;span class=&quot;icon&quot;&gt;&lt;/span&gt;Windows installer for Python 2.5&lt;/a&gt; (203KB)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://opioid-interactive.com/%7Eshang/projects/opioid2d/Opioid2D-alpha4.tar.gz&quot;&gt;&lt;span class=&quot;icon&quot;&gt;&lt;/span&gt;Source Tarball&lt;/a&gt; (553KB)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/6004119262920657486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/6004119262920657486' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/6004119262920657486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/6004119262920657486'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/03/opioid2d-alpha-4.html' title='Opioid2D alpha 4'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23404633.post-844921483015672506</id><published>2007-02-18T14:06:00.000+02:00</published><updated>2007-02-18T14:14:02.266+02:00</updated><title type='text'>Opioid2D alpha 3</title><content type='html'>I&#39;ve just uploaded the alpha 3 release of the &lt;a href=&quot;http://trac.opioid-interactive.com/opi2d/&quot;&gt;Opioid2D framework&lt;/a&gt;. You can see the list of changes &lt;a href=&quot;http://trac.opioid-interactive.com/opi2d/wiki/ChangeLog#Alpha3&quot;&gt;here&lt;/a&gt;. And download the release from the below links:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://opioid-interactive.com/%7Eshang/projects/opioid2d/Opioid2D-alpha3.win32-py2.4.exe&quot;&gt;&lt;span class=&quot;icon&quot;&gt;&lt;/span&gt;Windows installer for Python 2.4&lt;/a&gt; (187KB)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://opioid-interactive.com/%7Eshang/projects/opioid2d/Opioid2D-alpha3.win32-py2.5.exe&quot;&gt;&lt;span class=&quot;icon&quot;&gt;&lt;/span&gt;Windows installer for Python 2.5&lt;/a&gt; (187KB)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://opioid-interactive.com/%7Eshang/projects/opioid2d/Opioid2D-alpha3.tar.gz&quot;&gt;&lt;span class=&quot;icon&quot;&gt;&lt;/span&gt;Source Tarball&lt;/a&gt; (545KB)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;The usual disclaimer about the framework&#39;s alpha status still applies. There are some big internal changes underway. I would especially appreciate feedback from Linux and MacOSX users, as I haven&#39;t been able to test the latest release under those platforms yet.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://opioid-games.blogspot.com/feeds/844921483015672506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/23404633/844921483015672506' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/844921483015672506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23404633/posts/default/844921483015672506'/><link rel='alternate' type='text/html' href='http://opioid-games.blogspot.com/2007/02/opioid2d-alpha-3.html' title='Opioid2D alpha 3'/><author><name>shang</name><uri>http://www.blogger.com/profile/10301305007776555493</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://photos1.blogger.com/blogger/4316/2398/1600/bloguser.jpg'/></author><thr:total>15</thr:total></entry></feed>