<?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: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-2366640542525663784</id><updated>2012-02-16T17:39:36.266+02:00</updated><category term='linux'/><category term='java'/><category term='python'/><category term='news'/><category term='movies'/><category term='programming'/><category term='random'/><category term='fallout'/><category term='games'/><category term='music'/><category term='xna'/><category term='qt'/><category term='open source'/><title type='text'>Random Ramblings in Programming, Life &amp; Whatnot..</title><subtitle type='html'>The blog which was supposed to be random ramblings in different topics, but ended up as a (game) development blog. Oh well.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-6701262128220796020</id><published>2009-07-21T19:11:00.000+03:00</published><updated>2009-07-21T19:11:56.136+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>Blog and website combined: www.mhgames.org</title><content type='html'>&lt;div style="text-align: justify;"&gt;Hi, to all my readers (yeah all the two of you! &lt;span style="font-weight: bold;"&gt;;)&lt;/span&gt; ):&lt;br /&gt;I have created a new website, that is a combination of my old game site and this blog. No need to worry, the blogging will continue as usual, just head over to the brand new site at &lt;span style="font-size:130%;"&gt;&lt;a style="font-weight: bold;" href="http://www.mhgames.org"&gt;http://www.mhgames.org&lt;/a&gt;&lt;/span&gt; and browse away!&lt;br /&gt;&lt;br /&gt;With this post I'm freezing this blog, no more updates here. I will let it stay online for archival purposes, although all this content &lt;span style="font-weight: bold;"&gt;IS&lt;/span&gt; already imported to my new blog so nothing is lost. &lt;span style="font-weight: bold;"&gt;:)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Thank you for your interest, hoping to see you at &lt;span style="font-weight: bold;"&gt;mhgames.org&lt;/span&gt;!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;-- Mika&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-6701262128220796020?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/6701262128220796020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=6701262128220796020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/6701262128220796020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/6701262128220796020'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2009/07/blog-and-website-combined-wwwmhgamesorg.html' title='Blog and website combined: www.mhgames.org'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-6484747985648041385</id><published>2009-07-05T11:59:00.000+03:00</published><updated>2009-07-05T12:06:55.318+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Geez, it's been a while...</title><content type='html'>&lt;div style="text-align: justify;"&gt;Time for an update, I reckon.&lt;br /&gt;&lt;br /&gt;Although &lt;span style="font-weight: bold;"&gt;PolyAnim&lt;/span&gt; is generally on hold due to the game project, I made a few optimizations (reducing garbage generation mostly, still quite high though) to it. As for the game, I'm still working on the engine side -- BUT -- I've written down some things on the game plot and other design! I have a vision of the game beginning, but the actual plot still needs to be thought up. Sooo yes, I don't have much at all, but it's a start. &lt;span style="font-weight: bold;"&gt;:D &lt;/span&gt;Luckily I don't have too much pressures on the story side, as even if it ends up sucking donkey balls (excuse my language), it's still infinitely better than the "stories" of my previous games combined! &lt;span style="font-weight: bold;"&gt;;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Meanwhile, in the programming land...&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;It's been so long since my last update, I've worked on so many things I don't even remember them all. Instead of trying to remember the details, I'll just list the things I do remember:&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;First of all, I started using &lt;span style="font-style: italic;"&gt;revision control&lt;/span&gt; for the source code (+ related resources). Instead of using the familiar &lt;span style="font-weight: bold;"&gt;Subversion&lt;/span&gt;, I decided to try something new and thus chose &lt;span style="font-weight: bold;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Git_%28software%29"&gt;Git&lt;/a&gt;.&lt;/span&gt; All in all, this helps me keeping track of the things I do and also serves as a backup in case my computer decides to blow up. Git is nice since you can use it locally, on any directory without a server.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;VBO (&lt;/span&gt;&lt;a style="font-style: italic;" href="http://en.wikipedia.org/wiki/Vertex_Buffer_Object"&gt;Vertex Buffer Object&lt;/a&gt;&lt;span style="font-style: italic;"&gt;) support&lt;/span&gt;. This means storing geometry to the GPU and rendering it in one batch. Basically it means better performance. Using VBOs I could optimize the text rendering by buffering the rendered glyphs into a batch, up until the buffer fills up (or the texture changes). The buffered glyphs are rendered in one go, and the process starts again.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Particle systems!&lt;/span&gt; I started doing a "particle engine" a while back, got it done except for the different emitters. I still need to finish this up: complete the basic point emitter, add more emitters and add the ability to load particle systems from resources (perhaps a &lt;a href="http://en.wikipedia.org/wiki/Yaml"&gt;YAML&lt;/a&gt; or XML file). VBOs are used to render the systems, when supported by the GPU.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Lighting system improvements&lt;/span&gt;. Lights can now have different effects on them, like flickering, fading and pulsating. The effects are defined in a YAML file of properties.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Player character designs&lt;/span&gt;. I'm not sure if this guy ends up being the final character, but might be. I did a quick idle animation for him (need to adjust that a bit, though), I should add a walk cycle next as it's quite boring to watch now. (The previous animation, test from PolyAnim, did walk!)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;And now for something completely different: &lt;span style="font-style: italic;"&gt;Water effects.&lt;/span&gt;  Yes. This is mostly eye candy (as Box2D doesn't support buoyancy yet, I think the water is only going to be used for restricting player movements as in the player can't swim..) so it made no sense to do it at this phase of development. But I did it anyway, I'm childish like that.. &lt;span style="font-weight: bold;"&gt;:P&lt;/span&gt; The water reflects the scenery above (provided the GPU supports Render-to-texture) and I even wrote a fragment shader to make it all wavy and twirling..&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;I have noticed a problem during the development of this game, which was not apparent on my previous game projects (since they were much shorter): I have this annoying tendency to start working on different (sub)projects even when the previous stuff is still not finished. That means I have heaps of unfinished subsystems in this engine, like the particles, scripting, triggers, etc. And I'm already thinking of doing the sprite system and other things as well! I mean, what the hell, it should be bloody obvious I should concentrate on the unfinished things and finish them.. &lt;span style="font-weight: bold;"&gt;:P&lt;/span&gt;  Argh, hopefully I can sort this mess out. Speaking of which, I guess I should start coding the particle system to an usable state.&lt;br /&gt;&lt;br /&gt;And of course, to all aspiring game developers: design the game first, damnit! Figure out the plot, setting, characters and whatnot &lt;span style="font-weight: bold;"&gt;BEFORE&lt;/span&gt; getting sucked in the bottomless fathoms of &lt;span style="font-weight: bold;"&gt;Teh Engine(tm)&lt;/span&gt;! Yes, I really should take my own advice some day! &lt;span style="font-weight: bold;"&gt;:P&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-6484747985648041385?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/6484747985648041385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=6484747985648041385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/6484747985648041385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/6484747985648041385'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2009/07/geez-its-been-while.html' title='Geez, it&apos;s been a while...'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-2834818343350574154</id><published>2009-04-27T19:52:00.000+03:00</published><updated>2009-04-27T19:52:05.480+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>More progress: Quad trees</title><content type='html'>&lt;div style="text-align: justify;"&gt;Today's subject: &lt;span style="font-weight: bold;"&gt;quad trees&lt;/span&gt;. Here is a &lt;a href="http://www.kyleschouviller.com/wsuxna/quadtree-source-included/"&gt;nice little tutorial&lt;/a&gt; on the subject.&lt;br /&gt;&lt;br /&gt;Until now I was using a naive method of rendering the level shapes (polygons and circles): I looped through them all, did a bounding box check&lt;span style="font-weight: bold;"&gt;*&lt;/span&gt; to see if they're visible in camera, and rendered if they were. This works fine for small levels (and indeed for the current test level, although I keep adding more and more stuff to it -- nevertheless it's still quite modest in size), but for larger levels it can become a problem, especially on slower machines.&lt;br /&gt;&lt;br /&gt;So I decided to add quad trees to speed up the level rendering process. The level shapes are stored in three different quad trees (one for collidables, one for background and one for foreground shapes). The trees are queried for visible objects, which then get rendered. Works nice and smooth, and the performance goes through the roof, right? Well... not quite.&lt;br /&gt;&lt;br /&gt;Since the level shapes can have various opacities, it is important to render them exactly in the order that is specified during level creation (in the &lt;span style="font-style: italic;"&gt;Inkscape SVG&lt;/span&gt; file). In the triangulation &amp;amp; convex decomposition process the original shapes get split up. It was not a problem during the naive approach -- the shape parts were in a list and the original order was preserved. Quad tree on the other hand doesn't necessarily preserve that order, to my great disappointment. It makes sense of course,  I just hadn't thought about it until I saw the effect: a few of the level shapes were rendered out of order.&lt;br /&gt;&lt;br /&gt;At first I tried to come up with a way to partition the quad tree so that the order would stay correct, but that didn't work too well. In the end I ended up just sorting the queried objects before rendering. That works perfectly, but introduces a new speed hit; the sort. So in all, the supposedly great speed increases of the mighty quad tree turned out to be only a modest gain, since I now need to sort the visible pieces.. Still, I'm confident that the quad trees were worth it, as the levels keep getting bigger and more complex it will surely show more greater effect. &lt;span style="font-weight: bold;"&gt;:)&lt;/span&gt; And at least I found that enormous bug in the bounding box culling! ;)&lt;br /&gt;&lt;br /&gt;Check out a few debug screens below, quad trees are the white lines.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;*)&lt;/span&gt; I actually found one of the most stupid bugs I've ever done in the bounding box check code. It was actually checking bounds from the world origin (0,0) to the object lower right corner, instead of from the object upper left to lower right! That means that the bounding boxes got very big and only the objects to right and down from the camera view were culled properly.. Ouch.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_idHQSV4cE3E/SfXhyL1KoXI/AAAAAAAAAFI/COfWeAXxOF4/s1600-h/quadtree3.png"&gt;&lt;img style="text-align: center; cursor: pointer; width: 200px; height: 158px;" src="http://2.bp.blogspot.com/_idHQSV4cE3E/SfXhyL1KoXI/AAAAAAAAAFI/COfWeAXxOF4/s200/quadtree3.png" alt="" id="BLOGGER_PHOTO_ID_5329413986348343666" border="0" /&gt;&lt;/a&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_idHQSV4cE3E/SfXhx6GMpKI/AAAAAAAAAFA/0yYVmjslcEs/s1600-h/quadtree2.png"&gt;&lt;img style="text-align: center; cursor: pointer; width: 200px; height: 158px;" src="http://3.bp.blogspot.com/_idHQSV4cE3E/SfXhx6GMpKI/AAAAAAAAAFA/0yYVmjslcEs/s200/quadtree2.png" alt="" id="BLOGGER_PHOTO_ID_5329413981587940514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-2834818343350574154?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/2834818343350574154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=2834818343350574154' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/2834818343350574154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/2834818343350574154'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2009/04/more-progress-quad-trees.html' title='More progress: Quad trees'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_idHQSV4cE3E/SfXhyL1KoXI/AAAAAAAAAFI/COfWeAXxOF4/s72-c/quadtree3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-5341267697085364930</id><published>2009-03-29T16:29:00.003+03:00</published><updated>2009-03-30T23:05:50.252+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Engine progressing slowly but not-so-steadily..</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_idHQSV4cE3E/Sc93SVlhLtI/AAAAAAAAAE4/ZwFV1QfA4w8/s1600-h/Kuvakaappaus-2.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 158px;" src="http://4.bp.blogspot.com/_idHQSV4cE3E/Sc93SVlhLtI/AAAAAAAAAE4/ZwFV1QfA4w8/s200/Kuvakaappaus-2.png" alt="" id="BLOGGER_PHOTO_ID_5318600841863704274" border="0" /&gt;&lt;/a&gt;Once again, I've been improving the platformer engine. I have done a lot of internal restructuring which isn't directly visible on the screen. Remember, this project started as a quick hack testing &lt;span style="font-weight: bold;"&gt;JBox2D&lt;/span&gt;, so the oldest parts of the code were a total mess. Cleaning it up, I implemented modules, that the engine keeps processing. These modules (e.g. &lt;span style="font-family:courier new;"&gt;GameModule, MenuModule, OptionsMenuModule&lt;/span&gt;) are basically separate states and can be ran separately of each other. They also support transitions, so a title screen could fade into the main menu, which could then roll off the screen presenting the actual game. Currently I have an initial loading screen that fades into the game. Yes, all this doesn't sound very exciting (and in reality it isn't), but it makes the code much more cleaner and modular. Hopefully, one my biggest pet peeves -- which is writing the menus after the game is complete -- will be a more pleasant experience with these module supports in place. &lt;span style="font-weight: bold;"&gt;:)&lt;/span&gt; I still have some old physics related code there which needs some refactoring love, so there's still work to be done..&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_idHQSV4cE3E/Sc93SQ_aN1I/AAAAAAAAAEw/-3Y6fGyCMYE/s1600-h/Kuvakaappaus-1.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 158px;" src="http://1.bp.blogspot.com/_idHQSV4cE3E/Sc93SQ_aN1I/AAAAAAAAAEw/-3Y6fGyCMYE/s200/Kuvakaappaus-1.png" alt="" id="BLOGGER_PHOTO_ID_5318600840630122322" border="0" /&gt;&lt;/a&gt;I also did the different &lt;span style="font-style: italic;"&gt;rendering path&lt;/span&gt; thing I was talking about earlier. The best rendering path allows for some neat shader effects, I did initial tests with a distortion shader -- it was nice but  didn't work with the bloom effect, something I hadn't realised before. I guess I will need to implement somekind of a post processing subsystem, that does the bloom among other effects. Oh well. &lt;span style="font-weight: bold;"&gt;:)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_idHQSV4cE3E/Sc93R9c1LtI/AAAAAAAAAEo/h9jBdb6IkBM/s1600-h/Kuvakaappaus.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 158px;" src="http://2.bp.blogspot.com/_idHQSV4cE3E/Sc93R9c1LtI/AAAAAAAAAEo/h9jBdb6IkBM/s200/Kuvakaappaus.png" alt="" id="BLOGGER_PHOTO_ID_5318600835384815314" border="0" /&gt;&lt;/a&gt;Another thing I added is an ingame profiler. While extremely simple, it still presents some very useful data so I can see what part of the game takes most time at runtime. So far the slowest thing is the text rendering. Luckily that won't be a problem, since I don't plan having much text on screen in the game (apart from dialogue, but that can be prerendered into a texture). In the current demo I draw the yellow text with a nice shadowy border around it -- that is a very brute force approach which just draws the same string a bunch of times. That's very slow. Also the text rendering could probably be optimized more, should the need arise.&lt;br /&gt;&lt;br /&gt;I've been also improving the controller support (yes, the game will support game pads! That's the first time in my [released] games -- better late than never, right! &lt;span style="font-weight: bold;"&gt;;)&lt;/span&gt; ). The basic support was actually added months ago, I just forgot to mention about it earlier. It's still pretty much unusable, since the buttons cannot be assigned: it just uses the first two buttons on the game pad. And that varies per model, a lot. On mine they're positioned logigally, but on another pad they were almost unusable.. So the game needs a controller configuration screen, where the player can assign the actions to the preferred controller buttons. But that's thinking way too much ahead, I need the game first! &lt;span style="font-weight: bold;"&gt;:P&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One more thing: I made a simple&lt;span style="font-style: italic;"&gt; test release of the engine&lt;/span&gt;, so that I could collect some data on how it works on different machines. (I mainly test it on two computers, which isn't that much.) Head over to the &lt;a href="http://www.javagaming.org/index.php/topic,20159.0.html"&gt;JavaGaming.org&lt;/a&gt; forums and take it for a spin! Hopefully somebody confirms it works on &lt;span style="font-weight: bold;"&gt;Mac OS X&lt;/span&gt; as well.. :)&lt;span style="font-size:85%;"&gt; [&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; Yes it does!]&lt;/span&gt; By the way, I will probably take the thing down in some time, since it's still in very early stages and doesn't have any gameplay in it anyways..&lt;br /&gt;&lt;br /&gt;That is all this time, stay tuned for more! &lt;span style="font-weight: bold;"&gt;EDIT:&lt;/span&gt; I just realised I had used this very same line to end the previous posting.. Am I really this unoriginal!? Apparently, yes. Yes I am.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-5341267697085364930?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/5341267697085364930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=5341267697085364930' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/5341267697085364930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/5341267697085364930'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2009/03/engine-progressing-slowly-but-not-so.html' title='Engine progressing slowly but not-so-steadily..'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_idHQSV4cE3E/Sc93SVlhLtI/AAAAAAAAAE4/ZwFV1QfA4w8/s72-c/Kuvakaappaus-2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-8107472347806213802</id><published>2009-02-10T07:48:00.001+02:00</published><updated>2009-03-29T16:30:00.926+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Platformer progress</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_idHQSV4cE3E/SZETswi7urI/AAAAAAAAAEI/rNRBis5zO_4/s1600-h/level1.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 150px;" src="http://2.bp.blogspot.com/_idHQSV4cE3E/SZETswi7urI/AAAAAAAAAEI/rNRBis5zO_4/s200/level1.png" alt="" id="BLOGGER_PHOTO_ID_5301039896058378930" border="0" /&gt;&lt;/a&gt;After a long break I've started working on the platformer engine again. I've added a material system, where every level shape (i.e. polygon) has a material assigned to them, which defines the texture and physical properties (friction, restitution and density) for the shape. Later on this could be used to trigger different sounds or other effects based on where the player walks, for example.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;I improved the lighting system to support rotating lights and finally enabled them to be placed to the level in &lt;span style="font-weight: bold;"&gt;Inkscape&lt;/span&gt; (the lights were previously completely randomly generated). To test these new features, I abandoned the ugly mess of a test map I had been using from the start, and built my first "real" level. It's not too detailed yet (and yes, ugly in some points too!) but at least it's better than some random polygons. I do plan to expand it to test new features as they get implemented. Check out these screenshots to see the brand new level in action. &lt;span style="font-weight: bold;"&gt;:)&lt;/span&gt; Disclaimer: All the textures etc. and even the whole style are temporary and not representative of the final game (if I manage to complete it some day), purely because I have not decided on the final style yet! I may opt for more stylished visuals, as in not using "realistic" (photograph based) textures, contrary to what you see in these images. But as I said, I'm not sure yet.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_idHQSV4cE3E/SZETtPUbi-I/AAAAAAAAAEQ/7VWcZW-XA1k/s1600-h/level2.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 150px;" src="http://3.bp.blogspot.com/_idHQSV4cE3E/SZETtPUbi-I/AAAAAAAAAEQ/7VWcZW-XA1k/s200/level2.png" alt="" id="BLOGGER_PHOTO_ID_5301039904319048674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Speaking of new features, I added support for "floor shapes" - shapes that act as a floor but not as a ceiling. That means you can stand on them but jump through them only from below. You can also drop down when needed. These things are so common in platformers, so I had to have them in. Unfortunately I had to restrict them to be straight horizontal lines - "floor lines" like I call them in the code - due to technical difficulties with the &lt;span style="font-weight: bold;"&gt;Box2D &lt;/span&gt;physics. At first I tried doing this with Box2D sensors/contact listener but it seemed like a bad hack and would probably have not worked correctly in some cases, so I deemed it too much trouble and went for a simpler approach. My biggest gripe with Box2D &lt;span style="font-style: italic;"&gt;is&lt;/span&gt; actually the contact listener, it's somewhat hard to use it nicely..&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_idHQSV4cE3E/SZETtHd9EbI/AAAAAAAAAEY/BRMGlpE8mgo/s1600-h/level3.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_idHQSV4cE3E/SZETtHd9EbI/AAAAAAAAAEY/BRMGlpE8mgo/s200/level3.png" alt="" id="BLOGGER_PHOTO_ID_5301039902211510706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;One of the things I'll start coding next is sprites, which will be used in several places: as normal level decoration, level decals, in the background and so forth. Currently everything you see is crafted from polygons, which is wasteful on the resources. In the current test level, at least the mailbox, arrow sign and mushrooms should be sprites.&lt;br /&gt;&lt;br /&gt;That is all this time (got to run to the school soon.. &lt;span style="font-weight: bold;"&gt;:/&lt;/span&gt;), stay tuned for more! &lt;span style="font-weight: bold;"&gt;;)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-8107472347806213802?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/8107472347806213802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=8107472347806213802' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/8107472347806213802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/8107472347806213802'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2009/02/platformer-progress.html' title='Platformer progress'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_idHQSV4cE3E/SZETswi7urI/AAAAAAAAAEI/rNRBis5zO_4/s72-c/level1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-2381165796343746297</id><published>2009-01-26T17:41:00.001+02:00</published><updated>2009-01-26T17:44:28.343+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='fallout'/><title type='text'>On Fallout..</title><content type='html'>&lt;div style="text-align: justify;"&gt;Last week I finished &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Fallout 3&lt;/span&gt;. I somewhat rushed it through, as the urge to start playing &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Fallout 2&lt;/span&gt; had grown too strong! &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;:P&lt;/span&gt; I probably continue playing FO3 from an earlier save later, since I had heaps of places I didn't get to visit and a good deal of unfinished quests as well.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;So what do I think of the game? Well.. It's a great game - much better than &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Oblivion&lt;/span&gt;, for example - looks great and sounds great. I enjoyed my time on the wastes a great deal. But... how could I put this... It's not Fallout! &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;:/&lt;/span&gt; While there are plenty of things done right (the &lt;span class="Apple-style-span" style="font-style: italic;"&gt;VATS&lt;/span&gt; system works quite nicely!), it's still missing much of the good old &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Fallouty spirit&lt;/span&gt;.. The biggest problem is the dialogue: it's just not that good, especially when compared to FO/FO2. NPCs feel like answering or quest machines. Where's the humour? Not much of it left. The ending was not very good either, although not as bad as some people claim it to be.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Nevertheless, as I said, I enjoyed the game a lot, and will be playing it again.&lt;span class="Apple-style-span" style="font-weight: bold;"&gt; :)&lt;/span&gt; Perhaps they should've called it &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Fallout: Something something something&lt;/span&gt;, though. I had a few problems with the game: three freezes (two of them while approaching &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Evergreen Mills&lt;/span&gt;) where I must restart PS3, one crash and several little (graphical / physics) bugs. Not too bad, I guess. Lots of PS3 players have complained about worse problems.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;And after completing FO3, I've been playing FO2 again, after many years. As I mentioned in my last post, I never actually finished the game and have held FO1 as the better game. Let's see if the order changes after I finish the part two. It's very hard though (at least in the beginning), much harder than I remembered. I think I've hit a bug though (I'm using &lt;a href="http://www.killap.net/"&gt;Killaps&lt;/a&gt; unofficial patch 1.02.25 - highly recommended, I've yet to try the &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Restoration Project&lt;/span&gt;), skip the following paragraph to avoid FO2 spoilers.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;*SPOILERS*&lt;/span&gt; I cannot seem to be able to give Bishops holotape and the Raider account book to Lynette in Vault City. I wiped out Bishops in New Reno, found the holotape in the safe. On my way to Vault City, I cleaned out the Raiders cave. At Vault City, I can tell several people I've neutralized the raider threat, and they say I should tell the First Citizen, but I cannot give the account book to Lynette. Nor the holotape. I tried before doing the Gecko power plant quests and after - doesn't work. Oh well, I guess I cannot complete those quests then. &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;*END SPOILERS*&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Now I just need to plug &lt;a href="http://www.gog.com/"&gt;GOG.com&lt;/a&gt;, the &lt;span class="Apple-style-span" style="font-style: italic;"&gt;Good Old Games&lt;/span&gt;! The service is excellent, so far I've bought FO1, FO2 and Gothic. The games come prepatched and DRM free, it's great. &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;:)&lt;/span&gt; Good stuff, highly recommended.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-2381165796343746297?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/2381165796343746297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=2381165796343746297' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/2381165796343746297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/2381165796343746297'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2009/01/on-fallout.html' title='On Fallout..'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-3333611575664493437</id><published>2009-01-02T11:16:00.005+02:00</published><updated>2009-01-26T17:43:31.303+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='fallout'/><title type='text'>Holidays and gaming</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_idHQSV4cE3E/SV3arESxNaI/AAAAAAAAAD8/Itzr3ONPjWw/s1600-h/fa-ps3.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 280px; height: 280px;" src="http://1.bp.blogspot.com/_idHQSV4cE3E/SV3arESxNaI/AAAAAAAAAD8/Itzr3ONPjWw/s400/fa-ps3.jpg" alt="" id="BLOGGER_PHOTO_ID_5286621971024524706" border="0" /&gt;&lt;/a&gt;First post of 2009, yay. I've been taking a break from, well, almost everything: school, work, programming (yes, even that!) and instead spent time with family, playing games and being lazy in general. Isn't that just what holidays are about? &lt;span style="font-weight: bold;"&gt;:)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;I have played lot of games lately on the PS3, mostly &lt;span style="font-weight: bold;"&gt;Little Big Planet&lt;/span&gt; and in these last few days &lt;span style="font-weight: bold;"&gt;Fallout 3&lt;/span&gt;. Little Big Planet is really fun, especially when played together with others (in my case that means my &lt;span lang="en"&gt;fiancée&lt;/span&gt; Annemari &lt;3). style="font-style: italic;"&gt;Little Dead Space&lt;/span&gt; level was brilliant.&lt;br /&gt;&lt;br /&gt;As for Fallout 3 (got it for Christmas), I'm very enthusiastic about it so far. &lt;span style="font-weight: bold;"&gt;*&lt;/span&gt; Feels a lot like &lt;span style="font-weight: bold;"&gt;Oblivion&lt;/span&gt; in places, but that doesn't bother me since I like Oblivion. My current Oblivion save has almost 60 hours put into it, and the game isn't nearly finished (I'm currently on the &lt;span style="font-style: italic;"&gt;Shivering Isles&lt;/span&gt; expansion). The main quest is a bit dull, I don't like cleaning the Oblivion gates (hence Shivering Isles).. Fallout 3 on the other hand seems much better and more interesting. Maybe that's because there are hundreds of games in the generic fantasy world but only a handful (I'm only aware of &lt;span style="font-weight: bold;"&gt;Wasteland&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Fallout 1 &amp;amp; 2&lt;/span&gt;) in a post-nuclear environment. This time Bethesda even hired more than three voice actors, wow! The game looks and sounds great, obviously. I guess I'll comment it more after I've finished the game.&lt;br /&gt;&lt;br /&gt;After I'm done with Fallout 3 (not too soon, I reckon), there's a lot of unfinished stuff to play: &lt;span style="font-weight: bold;"&gt;GTA IV&lt;/span&gt;, Oblivion, &lt;span style="font-weight: bold;"&gt;Lego Batman&lt;/span&gt;.. &lt;span style="font-weight: bold;"&gt;:)&lt;/span&gt;  In fact, I might even start Fallout 2 again, as I have never actually finished it(!). The original Fallout I've finished with at least three or four characters. Good times.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;*)&lt;/span&gt; Yes, I'm aware the PS3 version is the worst of the bunch. However, it has trophies now and I haven't had any problems so far, apart from some minor bugs like a severed molerat head that just couldn't stop rolling around. The lack of anti-aliasing is a bit distracting, but nevertheless I can recommend the PS3 version... unless you got other options. I didn't (my PC is a bit too old).&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-3333611575664493437?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/3333611575664493437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=3333611575664493437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/3333611575664493437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/3333611575664493437'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2009/01/holidays-and-gaming.html' title='Holidays and gaming'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_idHQSV4cE3E/SV3arESxNaI/AAAAAAAAAD8/Itzr3ONPjWw/s72-c/fa-ps3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-7418445677103440977</id><published>2008-11-18T18:00:00.001+02:00</published><updated>2008-11-18T18:02:59.387+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Random things..</title><content type='html'>&lt;div style="text-align: justify;"&gt;Before getting carried away with the platformer rambling, again, here's something about &lt;a href="http://polyanim.googlecode.com"&gt;PolyAnim&lt;/a&gt;. Yesterday I added &lt;span style="font-style: italic;"&gt;automatic polygon triangulation&lt;/span&gt; for concave polygons into &lt;a href="http://polyanim.googlecode.com/"&gt;&lt;/a&gt;PolyAnims LWJGL-renderer. This is mainly for convenience, since the triangulation is quite expensive - it remains to be seen if this is fast enough for more general use. At least with simpler scenes it might work alright. Convex polygons should still be preferred for speed reasons, but I admit it: they're major pain in the ass when animating. It's cumbersome to build and animate non-convex shapes from several convex pieces.. Hopefully somebody will contribute faster triangulation code at some point! &lt;span style="font-weight: bold;"&gt;;)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;What else.. I've been working a lot on the platformer engine. &lt;a href="http://www.box2d.org/"&gt;JBox2D&lt;/a&gt; got an update, so I ditched the old polygonal approach (which had a lot of problems, as Box2D is very picky about the shape of the collision polygons) and implemented the collision geometry using the new feature: edge chains. They work nicely and are just perfect for this kind of usage. I use triangulation with convex decomposition now only for the renderer, which luckily doesn't mind very thin triangles. I've added more eye candy as well, generation of level outlines and support for background/foreground polygons (which are not collidable, of course). I still need to implement other decoration elements, such as a stripe of grass blades running along top edge of things, for example. Parallax scrolling is something I want to have in too, I mean, if you're making a side scroller, why shouldn't there be parallax scrolling!? &lt;span style="font-weight: bold;"&gt;=)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_idHQSV4cE3E/SSLmUoUoazI/AAAAAAAAAD0/wYIYy35spzE/s1600-h/pbuffers_fail.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 251px;" src="http://3.bp.blogspot.com/_idHQSV4cE3E/SSLmUoUoazI/AAAAAAAAAD0/wYIYy35spzE/s320/pbuffers_fail.png" alt="" id="BLOGGER_PHOTO_ID_5270027756072626994" border="0" /&gt;&lt;/a&gt;And finally I did bite the bullet and implemented those damn PBuffers (enjoy the picture there, that's them buffers giving me hard time!). They work okay when FBO is not available, but they're yucky to code. Luckily LWJGL makes it a bit less painful than it truly is. Looking back, in &lt;a href="http://funguloids.sourceforge.net/"&gt;Funguloids&lt;/a&gt; things were almost too easy, as I had &lt;a href="http://www.ogre3d.org/"&gt;Ogre&lt;/a&gt; at my disposal! Along with PBuffers the thing now supports plain old frame buffer copying as well, though I couldn't be bothered to make bloom work with it (lighting does, though, which is more important anyway).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;While fighting with PBuffers, I noticed I could make the bloom much faster and more importantly allow for more shader effects if I used RTT (&lt;span style="font-style: italic;"&gt;render-to-texture&lt;/span&gt;) same size as the screen dimensions. I could then render the scene only once to the RTT (currently I have to render twice!), have bloom shaders use that and actually do the final additive composition in the fragment shader too. Having a screen sized RTT would allow some neat shader effects like screen distortions and shock waves. There's one problem, many cards don't support rectangular (non power-of-two) RTTs.. The solution: separate rendering paths. I would implement several render paths with varying amount of shader and RTT usage, then determine what the host system supports and have things running nice and solid. Sounds like bit of work to me, but I guess the end results would be worth the trouble. We shall see. &lt;span style="font-weight: bold;"&gt;:)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Oh, and I've finished my bachelor's thesis, like a month ago. Forgot to mention that earlier. &lt;span style="font-weight: bold;"&gt;:P&lt;/span&gt; Now I'd need to decide if I continue to write master's thesis on the same subject, or choose something completely different. If only I could think of a subject having to do with game programming, that would certainly help with the motivation..&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-7418445677103440977?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/7418445677103440977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=7418445677103440977' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/7418445677103440977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/7418445677103440977'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/11/random-things.html' title='Random things..'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_idHQSV4cE3E/SSLmUoUoazI/AAAAAAAAAD0/wYIYy35spzE/s72-c/pbuffers_fail.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-6219050895541746392</id><published>2008-10-20T18:13:00.000+03:00</published><updated>2008-10-20T18:13:00.712+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Shader goodness: Bloom!</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_idHQSV4cE3E/SPyaCLemDiI/AAAAAAAAADE/2fAI1ptAh8k/s1600-h/bloomsample.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_idHQSV4cE3E/SPyaCLemDiI/AAAAAAAAADE/2fAI1ptAh8k/s320/bloomsample.jpg" alt="" id="BLOGGER_PHOTO_ID_5259247827093425698" border="0" /&gt;&lt;/a&gt;In the last post I talked about &lt;span style="font-style: italic;"&gt;lighting&lt;/span&gt;, this time it's &lt;span style="font-style: italic;"&gt;shaders &lt;/span&gt;and more specifically &lt;span style="font-style: italic;"&gt;bloom&lt;/span&gt;. I must say I like the effect when it's used subtly as a mood enhancement and dislike it in it's quite common &lt;span style="font-style: italic;"&gt;burn-your-eyes-out&lt;/span&gt; -form..&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_idHQSV4cE3E/SPyaCa-cCwI/AAAAAAAAADM/cYm6SQyiPeQ/s1600-h/bloomcomparison.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_idHQSV4cE3E/SPyaCa-cCwI/AAAAAAAAADM/cYm6SQyiPeQ/s320/bloomcomparison.jpg" alt="" id="BLOGGER_PHOTO_ID_5259247831253519106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;For the platformer game I'm planning to use the effect for a nice and quiet dreamlike feel, although I'm still not sure what kind of game it will be (except that it's a 4-way scrolling platformer!).. And as I often do, I find myself getting carried away doing all sorts of graphical effects (lighting, shaders) when I don't even have the basic game mechanics in place! Can't help it though, I must have some eye candy going on to keep myself motivated in a project. &lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;*shrugs*&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So I coded a quick &amp;amp; dirty shader support to the engine, and today I've been trying to get the bloom working. And now it does.&lt;span style="font-weight: bold;"&gt; :)&lt;/span&gt; I'm still not done with it, needs some tweaking - and that's somewhat impossible right now since I have no final assets for the game yet! Everything you see in those screens is temporary and/or random. For anyone interested, here's some technical details on the subject.&lt;br /&gt;&lt;br /&gt;I based the implementation on the &lt;span style="font-weight: bold;"&gt;GLSL&lt;/span&gt; bloom shaders from &lt;a href="http://funguloids.sourceforge.net"&gt;Funguloids&lt;/a&gt;, which in turn are modified from &lt;a href="http://www.ogre3d.org"&gt;Ogre&lt;/a&gt; sample shaders. I'm still a beginner with the shader programming as I may have mentioned, so having anything to work from was invaluable. I tweaked the shaders to get the subtle look I was aiming for.&lt;br /&gt;&lt;br /&gt;I'm using two small render textures (which are FBOs, no support for Pbuffers yet - and I think I'll have to do those at some point, as my laptop doesn't support FBOs), 128x128 in dimension and one bigger 512x512 RT. I render the scene normally to the bigger RT. The blurring is then done in two passes: first the scene RT gets rendered to 128x128 RT #1 using a horizontal blur shader (it also does some luminance stuff to have the bright parts more bright and dim parts more dim). Then RT #1 gets rendered to RT #2, this time with a vertical blur shader. Finally the RT #2 contents are blended additively over a normal 1:1 render of the scene. It needs quite a lot of tweaking, but I think it looks quite nice now.&lt;br /&gt;&lt;br /&gt;In another news, my thesis is now almost complete! &lt;span style="font-weight: bold;"&gt;^^&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-6219050895541746392?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/6219050895541746392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=6219050895541746392' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/6219050895541746392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/6219050895541746392'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/10/shader-goodness-bloom.html' title='Shader goodness: Bloom!'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_idHQSV4cE3E/SPyaCLemDiI/AAAAAAAAADE/2fAI1ptAh8k/s72-c/bloomsample.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-951900814262812628</id><published>2008-10-16T15:26:00.000+03:00</published><updated>2008-10-16T15:26:51.532+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Let there be LIGHT!</title><content type='html'>&lt;div style="text-align: justify;"&gt;Wouldn't you know, after I complained about lack of coding motivation in my last post, I started hacking at my &lt;span style="font-style: italic;"&gt;Java platformer engine&lt;/span&gt; the very same evening! I finished the &lt;span style="font-weight: bold;"&gt;Inkscape&lt;/span&gt; SVG importer, now I can create the levels in Inkscape using polygons, rectangles and circles.&lt;br /&gt;&lt;br /&gt;Last couple of days I've been implementing &lt;span style="font-style: italic;"&gt;a lighting system&lt;/span&gt; to the engine (and preliminary scripting support before that). The lighting system is based on very simple ideas and was quite easy to implement. No troubles whatsoever, I was actually surprised. First I was contemplating on doing it using pixel shaders, but that would've required much more work (still learning the shader stuff) and I'm not sure if I could have pulled it off anyway. I still need to incorporate some shader support to the engine if I want to have a bloom effect later on.. Pixel shader lighting would have allowed to have normal maps for the textures though, now that would have looked very nice if done properly! Oh well.&lt;br /&gt;&lt;br /&gt;Instead I went for texture based approach using a single FBO (&lt;span style="font-style: italic;"&gt;Frame-Buffer-Object&lt;/span&gt;) where the lights get rendered to (additive blending naturally). Then with help of some stencil buffer magic, the light map is rendered over the scene using multiply blending. Stencil buffer is needed because it makes no sense to render the lights/shadows over the background (i.e. sky in my platformer). That would be very unrealistic (you can't really cast shadows on the sky, now can you?) not to mention ugly. For top-down games no stencil buffer would be needed, unless the area that gets lit must be restricted somehow.&lt;br /&gt;&lt;br /&gt;This technique allows completely dynamic lights of any shape (like flashlight cones) using one render-to-texture (FBO in my case). The light map doesn't even need to be large, since (at least with soft lights) it's hard to see the difference between 256x256 or 512x512. I'm using 256x256 currently, but even 128x128 looks fine. The system works nicely and I've yet to optimize anything about it: for starters I'm currently rendering each light, no matter if they're actually visible or not!&lt;br /&gt;&lt;br /&gt;Overall it suits my purposes perfectly - carefully arranged lighting can make a tremendous difference in the feeling and apprearance of the game. &lt;span style="font-weight: bold;"&gt;:)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here's a few sample screenshots. Please ignore all the graphics etc., as the level is just random polygons and lights are &lt;span style="font-style: italic;"&gt;literally&lt;/span&gt; randomly generated. And the background is lifted off Jewels. &lt;span style="font-weight: bold;"&gt;:P&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_idHQSV4cE3E/SPcxZGBxT-I/AAAAAAAAACM/ygr2aAYIuHk/s1600-h/lights1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_idHQSV4cE3E/SPcxZGBxT-I/AAAAAAAAACM/ygr2aAYIuHk/s320/lights1.jpg" alt="" id="BLOGGER_PHOTO_ID_5257725397162872802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_idHQSV4cE3E/SPcxZDsFQqI/AAAAAAAAACU/g93x_9FMkIY/s1600-h/lights2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_idHQSV4cE3E/SPcxZDsFQqI/AAAAAAAAACU/g93x_9FMkIY/s320/lights2.jpg" alt="" id="BLOGGER_PHOTO_ID_5257725396535034530" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-951900814262812628?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/951900814262812628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=951900814262812628' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/951900814262812628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/951900814262812628'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/10/let-there-be-light.html' title='Let there be LIGHT!'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_idHQSV4cE3E/SPcxZGBxT-I/AAAAAAAAACM/ygr2aAYIuHk/s72-c/lights1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-986138197806161138</id><published>2008-10-08T13:30:00.000+03:00</published><updated>2008-10-08T13:31:02.554+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='movies'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Long Time No See</title><content type='html'>&lt;div style="text-align: justify;"&gt;So what's going on for me in these days? Well, that depends.&lt;br /&gt;&lt;br /&gt;Not much coding, unfortunately (or is it unfortunate, don't know really.. &lt;span style="font-weight: bold;"&gt;:P&lt;/span&gt;). The fact is, while the &lt;span style="font-weight: bold;"&gt;Qt Jambi&lt;/span&gt; patch is now out and indeed fixed the problem I was having, I haven't found out the motivation to work on the editor. That doesn't mean I've abandoned the project, not at all. I have these periods when I just don't feel like doing much hobby coding, if any. But no worries, some day I find myself hacking at it like no tomorrow! &lt;span style="font-weight: bold;"&gt;;)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Guess what has been draining my free time recently? &lt;span style="font-weight: bold;"&gt;PS3&lt;/span&gt;. No kidding. &lt;span style="font-weight: bold;"&gt;PS3,&lt;/span&gt; that black monolith, a product of pure genious (not unlike the monolith in &lt;a href="http://us.imdb.com/title/tt0062622/"&gt;&lt;span style="font-weight: bold;"&gt;2001: A Space Odyssey&lt;/span&gt;&lt;/a&gt;!). That's mostly what's going on here! &lt;span style="font-weight: bold;"&gt;Oblivion&lt;/span&gt; (GOTY edition), &lt;span style="font-weight: bold;"&gt;GTA IV,&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Uncharted&lt;/span&gt;.. Oh, and the wondrous &lt;span style="color: rgb(51, 102, 255);"&gt;Blu-ray&lt;/span&gt; capabilities!&lt;br /&gt;&lt;br /&gt;Speaking of movies (well, technically at least), I finally updated &lt;a href="http://users.jyu.fi/%7Emitahalt/leffalista/leffat.php"&gt;the movie list&lt;/a&gt; with latest additions. Unfortunately I had forgotten most of their purchase dates and prices, so I couldn't add those.. &lt;span style="font-size:85%;"&gt;Note to self: enter new movies to the "database" in much shorter time span from the purchase than this.&lt;/span&gt; I'm also celebrating my first &lt;span style="color: rgb(51, 102, 255);"&gt;Blu-ray&lt;/span&gt; movie, &lt;a href="http://us.imdb.com/title/tt0480249/"&gt;&lt;span style="font-weight: bold;"&gt;I Am Legend&lt;/span&gt;&lt;/a&gt;. It was a nice flick and the picture looked awesome even on my 32" HD-ready TV. Looking forward to having more &lt;span style="color: rgb(51, 102, 255);"&gt;BRs&lt;/span&gt;. &lt;span style="font-weight: bold;"&gt;^^ &lt;/span&gt;&lt;span style="font-size:78%;"&gt;(damn they're expensive, though!)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In other news, I'm still working on my Bacherlor's thesis.. Hopefully I'll get it finished in few weeks tops. That is all for now.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-986138197806161138?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/986138197806161138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=986138197806161138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/986138197806161138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/986138197806161138'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/10/long-time-no-see.html' title='Long Time No See'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-387446543932040467</id><published>2008-08-23T11:07:00.001+03:00</published><updated>2008-08-23T11:09:32.844+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='movies'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><title type='text'>A quick update..</title><content type='html'>&lt;div style="text-align: justify;"&gt;I haven't been coding much, but instead writing my Bachelor's thesis. There's still plenty of work to do before it's finished. Well, serves me right for not starting it earlier in the Summer like I intended to.. &lt;span style="font-weight: bold;"&gt;;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;School starts in September again, yawn. The &lt;span style="font-weight: bold;"&gt;Qt Jambi&lt;/span&gt; update I'm waiting for might also happen in Sept.&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;Oh, I went to see &lt;span style="font-weight: bold;"&gt;The Dark Knight&lt;/span&gt; again - it was even better this time, like I thought it would. 5/5 it is.. &lt;span style="font-weight: bold;"&gt;:)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-387446543932040467?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/387446543932040467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=387446543932040467' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/387446543932040467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/387446543932040467'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/08/quick-update.html' title='A quick update..'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-5408574618121441293</id><published>2008-07-25T21:36:00.001+03:00</published><updated>2008-07-25T21:36:45.078+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='movies'/><title type='text'>Why so serious?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.criticsrant.com/Images/criticsrant_com/News%20Rants/Dark%20Knight/the_dark_knight_outro_poster.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px;" src="http://www.criticsrant.com/Images/criticsrant_com/News%20Rants/Dark%20Knight/the_dark_knight_outro_poster.jpg" alt="" border="0" /&gt;&lt;/a&gt;Saw &lt;a href="http://us.imdb.com/title/tt0468569/"&gt;&lt;span style="font-weight: bold;"&gt;The Dark Knight&lt;/span&gt;&lt;/a&gt; today. Awesome movie! I'm still digesting it, but it feels like a solid &lt;span style="font-weight: bold;"&gt;*****&lt;/span&gt;/&lt;span style="font-weight: bold;"&gt;*****&lt;/span&gt; for me. Now, just waiting for the dvd release.. &lt;span style="font-weight: bold;"&gt;:)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-5408574618121441293?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/5408574618121441293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=5408574618121441293' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/5408574618121441293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/5408574618121441293'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/07/why-so-serious.html' title='Why so serious?'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-7297193511786814756</id><published>2008-07-20T22:55:00.001+03:00</published><updated>2008-07-20T22:56:05.888+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='music'/><title type='text'>Somewhere Back In Time 2008</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_idHQSV4cE3E/SIOXNWR7bpI/AAAAAAAAACE/5A5kweVd-B8/s1600-h/ironmaiden.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_idHQSV4cE3E/SIOXNWR7bpI/AAAAAAAAACE/5A5kweVd-B8/s400/ironmaiden.JPG" alt="" id="BLOGGER_PHOTO_ID_5225186248254779026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Just a short post, for a change: Went to see &lt;span style="font-weight: bold;"&gt;Iron Maiden&lt;/span&gt; yesterday, it was great! \m/ Above is a photo I took - one of the few that actually turned out alright..&lt;br /&gt;&lt;br /&gt;In addition, I managed to wash my cell phone in 40 degrees Celcius two days ago. It doesn't work any more. &lt;span style="font-weight: bold;"&gt;:(&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Oh, and PolyAnim now has some &lt;span style="font-weight: bold;"&gt;Java Web Start&lt;/span&gt; demos up at &lt;a href="http://code.google.com/p/polyanim/wiki/WebStartDemos"&gt;http://code.google.com/p/polyanim/wiki/WebStartDemos&lt;/a&gt;..&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-7297193511786814756?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/7297193511786814756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=7297193511786814756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/7297193511786814756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/7297193511786814756'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/07/somewhere-back-in-time-2008.html' title='Somewhere Back In Time 2008'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_idHQSV4cE3E/SIOXNWR7bpI/AAAAAAAAACE/5A5kweVd-B8/s72-c/ironmaiden.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-2037111622106844278</id><published>2008-07-13T16:15:00.000+03:00</published><updated>2008-07-13T16:15:00.828+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Inkscape to the rescue!</title><content type='html'>&lt;div style="text-align: justify;"&gt;You know what, after starting to write a simple editor to be used before the proper animation editor gets finished (not anytime soon..), I started to think - what am I doing? Why to make a crappy editor, while I could use something else to do the job, and way better (yet I hope and believe that the custom made editor will be the most comfortable way of creating the animations).&lt;br /&gt;&lt;br /&gt;Once again, &lt;a href="http://www.inkscape.org/"&gt;&lt;span style="font-weight: bold;"&gt;Inkscape&lt;/span&gt;&lt;/a&gt; proved its worth. &lt;span style="font-weight: bold;"&gt;SVG&lt;/span&gt; was relatively easy to parse (except the damn &lt;span style="font-style: italic;"&gt;transformation matrix&lt;/span&gt; - I wasted hours searching for clues how to decompose the original scaling and rotation from the matrix, finally got it working though..), and the Inkscape layers turned nicely into animation key frames. It requires quite a lot of patience, and my conversion tool is dodgy to say the least, but it will enable the creation of animations for PolyAnim!&lt;br /&gt;&lt;br /&gt;So I wasted more hours, and created the very first proper PolyAnim animation, in Inkscape. After seeing the animated dude moving on the screen, I felt very pleased about how it all turned out. &lt;span style="font-weight: bold;"&gt;:) &lt;/span&gt;Rare moments, those. Hell, I even made &lt;a href="http://www.youtube.com/watch?v=hLUVvhZZir8"&gt;a video&lt;/a&gt; to celebrate the event! &lt;span style="font-weight: bold;"&gt;;)&lt;/span&gt; In case anyone would want to try the Inkscape route, I also wrote &lt;a href="http://code.google.com/p/polyanim/wiki/InkscapeAnimationTutorial"&gt;a tutorial&lt;/a&gt; about it.&lt;br /&gt;&lt;br /&gt;Check out this screen shot from the demo, and compare it to the earlier shot a post or two back.. The biggest dude is the original, the others are rendered using the various &lt;span style="font-style: italic;"&gt;render modifiers&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_idHQSV4cE3E/SHn_fclAg9I/AAAAAAAAAB8/blJDBlivsS0/s1600-h/polyanimdude.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_idHQSV4cE3E/SHn_fclAg9I/AAAAAAAAAB8/blJDBlivsS0/s320/polyanimdude.png" alt="" id="BLOGGER_PHOTO_ID_5222486158625244114" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-2037111622106844278?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/2037111622106844278/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=2037111622106844278' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/2037111622106844278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/2037111622106844278'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/07/inkscape-to-rescue.html' title='Inkscape to the rescue!'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_idHQSV4cE3E/SHn_fclAg9I/AAAAAAAAAB8/blJDBlivsS0/s72-c/polyanimdude.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-1725283178919049045</id><published>2008-07-11T15:44:00.000+03:00</published><updated>2008-07-11T15:44:07.571+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>PolyAnim progress..</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_idHQSV4cE3E/SHdQaua_9gI/AAAAAAAAAB0/yA9Vcs2gAts/s1600-h/polyanim.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer;" src="http://bp2.blogger.com/_idHQSV4cE3E/SHdQaua_9gI/AAAAAAAAAB0/yA9Vcs2gAts/s400/polyanim.png" alt="" id="BLOGGER_PHOTO_ID_5221730713027474946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Well, I've made a logo. See? &lt;span style="font-weight: bold;"&gt;;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Okay, there's a bit more. The core library itself is in (somewhat arbitary) versi0n 0.5. Most of the important functionality is in there already. Anchors and different blending modes are still missing. Read more about the current state of features &lt;a href="http://code.google.com/p/polyanim/wiki/PolyAnimFeatures"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There's still a big mystery in this project, for I have no idea if the code is fast enough for the intended usage (which is game sprites)! The tests I have made are composed only of a few polygons, which is not very demanding.. Therefore I've started the work on the animation editor, using &lt;span style="font-weight: bold;"&gt;Qt Jambi&lt;/span&gt;. But alas, I have bumped into a severe &lt;a href="http://trolltech.com/developer/task-tracker/index_html?method=entry&amp;amp;id=215908"&gt;bug&lt;/a&gt;, which unfortunately crashes the Java VM. While waiting for that to be solved (the bug fix is scheduled for the next Qt Jambi patch release), I'm wondering what I'm going to do in the mean time.&lt;br /&gt;&lt;br /&gt;Should I hack a quick and dirty editor in Swing? Or work on the other (unimportant) parts of the real editor? Implement more features to the library? I don't know, I'd rather not add more stuff to the lib, because in that case the editor's going to have a lot of catching up to do.. &lt;span style="font-weight: bold;"&gt;:P&lt;/span&gt; Perhaps I could throw together a stress test using lots of random shapes.. Hmm..&lt;br /&gt;&lt;br /&gt;Or I could succumb to the goodness that is &lt;a href="http://www.box2d.org"&gt;(J)Box2D&lt;/a&gt;, like I momentarily did about a week ago. I made some platformer physics tests with it. Good stuff. &lt;span style="font-weight: bold;"&gt;:)&lt;/span&gt; All this is obviously for a grand purpose: finally making a (platformer) game that's perhaps a bit more than just nice and simple 10-30 minutes fun. That's my intention anyway, we'll see what happens.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-1725283178919049045?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/1725283178919049045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=1725283178919049045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/1725283178919049045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/1725283178919049045'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/07/polyanim-progress.html' title='PolyAnim progress..'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_idHQSV4cE3E/SHdQaua_9gI/AAAAAAAAAB0/yA9Vcs2gAts/s72-c/polyanim.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-159385873821682195</id><published>2008-07-04T22:29:00.000+03:00</published><updated>2008-07-04T22:30:09.178+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Introducing PolyAnim!</title><content type='html'>&lt;div style="text-align: justify;"&gt;I decided to unveil the project I've been working on lately. It's a polygonal (i.e. vector) animation library called &lt;span style="font-weight: bold;"&gt;PolyAnim&lt;/span&gt;, now up at &lt;a href="http://polyanim.googlecode.com/"&gt;Google Code&lt;/a&gt;. First things first: I'm not trying to compete with Flash, this thing is mainly meant as a game sprite replacement. &lt;span style="font-weight: bold;"&gt;:)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Too bad there's still not anything nice to show yet.. &lt;span style="font-weight: bold;"&gt;:P&lt;/span&gt; The stuff I have so far is a few hard coded animations consisting of couple of triangles and squares, it's not very sexy to look at, mmkay? But all that will change once I get the editor going and can finally make something cool with this thing. So, be patient. &lt;span style="font-weight: bold;"&gt;^^&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Just to prove I've achieved &lt;span style="font-weight: bold;"&gt;*something*&lt;/span&gt;, here's an ugly screenshot of the test program. I'd say it looks better when it's animating... I mean, really. Hey, it really does.. *sigh*&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_idHQSV4cE3E/SG55wyj-JLI/AAAAAAAAABs/T9gPPN4QSD0/s1600-h/polys.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_idHQSV4cE3E/SG55wyj-JLI/AAAAAAAAABs/T9gPPN4QSD0/s320/polys.png" alt="" id="BLOGGER_PHOTO_ID_5219242897282311346" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-159385873821682195?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/159385873821682195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=159385873821682195' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/159385873821682195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/159385873821682195'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/07/introducing-polyanim.html' title='Introducing PolyAnim!'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_idHQSV4cE3E/SG55wyj-JLI/AAAAAAAAABs/T9gPPN4QSD0/s72-c/polys.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-4975581274900231816</id><published>2008-06-24T07:48:00.001+03:00</published><updated>2008-06-24T07:52:23.465+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Getting tired of C++?</title><content type='html'>&lt;div style="text-align: justify;"&gt;I'm starting to notice, that I've been probably spoiled beyond all redemption by the wonders of &lt;span style="font-weight: bold;"&gt;Java&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;Python&lt;/span&gt;. And by that, I mean the general relaxed feeling when developing, such as not having to deal with memory management&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;*&lt;/span&gt;&lt;/span&gt; and so on. As I've been working with Java and Python all this spring (plus we use Java at work), now writing C++ for the &lt;span style="font-weight: bold;"&gt;sekrit projekt&lt;/span&gt;&lt;small&gt;(tm)&lt;/small&gt; feels cumbersome.. Dealing with const references, virtual destructors, templates and whatnot just doesn't have the same effect for me it once did.. What's happening to me? Am I really getting tired of C++? &lt;span style="font-weight: bold;"&gt;:/&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;But wait! There's more.. *bows head in shame*&lt;br /&gt;&lt;br /&gt;I've been further tempted to the &lt;span style="font-style: italic;"&gt;Dark Side&lt;/span&gt; by my very recent interest in &lt;span style="font-weight: bold;"&gt;&lt;a href="http://trolltech.com/products/qt/features/language-support/java"&gt;Qt Jambi&lt;/a&gt;&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;&lt;a href="http://lwjgl.org/"&gt;LWJGL&lt;/a&gt;&lt;/span&gt;.. :P I mean, what the hell, is there really anything stopping me of doing the &lt;span style="font-weight: bold;"&gt;sekrit projekt&lt;/span&gt;&lt;small&gt;(tm)&lt;/small&gt; in Java, using LWJGL and Qt Jambi for the editor (ooops, slipped that out!)? I think not!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;So.. Perhaps we hear more about these shocking developments later on. Perhaps.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;*&lt;/span&gt;&lt;span style="font-size:85%;"&gt;)&lt;span style="font-size:78%;"&gt; Incidentally, I'm doing my bachelor's thesis on &lt;span style="font-style: italic;"&gt;"Automatic Garbage Collection In Programming Languages"&lt;/span&gt;.. ;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-4975581274900231816?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/4975581274900231816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=4975581274900231816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/4975581274900231816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/4975581274900231816'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/06/getting-tired-of-c.html' title='Getting tired of C++?'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-7023572326275471309</id><published>2008-06-14T00:18:00.006+03:00</published><updated>2008-06-14T12:26:47.364+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Intellisense in Visual C++ Express, and getting it working with Qt 4.4</title><content type='html'>&lt;p style="text-align: justify;"&gt;&lt;a href="http://www.microsoft.com/express/product/default.aspx"&gt;Visual Studio Express editions&lt;/a&gt; are nice and free, but Visual C++ 2005/2008 Express seem to be lacking in the code completion (or Intellisense as it's officially known) department. If I recall correctly, in MSVC++ 2003 (version 7.1, that is) Intellisense worked perfectly. When writing new code, Intellisense picked it right away, even without saving the source file. I never had any problems with it.&lt;/p&gt;&lt;br /&gt;&lt;p style="text-align: justify;"&gt;In MSVC++ 2005 and 2008 (Express editions, I haven't tried the full featured versions - although I doubt they'd work any better..), the code completion has definitely taken a step backward. It just doesn't work as nicely as it did in MSVC++ 2003. It seems to parse the source files quite lazily, and sometimes just doesn't work at all. When given a moment, it works again. I've found out that switching between Release and Debug from the toolbar dropdown causes &lt;em&gt;"Updating Intellisense..."&lt;/em&gt; to appear in the status bar. That helps, but it's still not very convenient.&lt;/p&gt;&lt;br /&gt;&lt;p style="text-align: justify;"&gt;As I recently installed and compiled &lt;strong&gt;&lt;a href="http://trolltech.com/products/qt"&gt;Qt 4.4&lt;/a&gt;&lt;/strong&gt;, I noticed that Qt classes would not be in the code completion list at all. I included Qt's &lt;span style="font-family: courier new;"&gt;include&lt;/span&gt;-directory to the &lt;em&gt;"VC++ Directories"&lt;/em&gt; in &lt;em&gt;Options&lt;/em&gt;. That wasn't enough. Finally I got it working by including &lt;span style="font-family: courier new;"&gt;"$(QTDIR)\src"&lt;/span&gt; to the &lt;em&gt;"Source files"&lt;/em&gt;, and listing all the Qt &lt;span style="font-family: courier new;"&gt;include&lt;/span&gt; subdirectories separately in &lt;em&gt;"Include files"&lt;/em&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_idHQSV4cE3E/SFOMea2Jm0I/AAAAAAAAABk/FtZ6mdbqNtI/s1600-h/vcdirs.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_idHQSV4cE3E/SFOMea2Jm0I/AAAAAAAAABk/FtZ6mdbqNtI/s320/vcdirs.png" alt="" id="BLOGGER_PHOTO_ID_5211663648028203842" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-7023572326275471309?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/7023572326275471309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=7023572326275471309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/7023572326275471309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/7023572326275471309'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/06/intellisense-in-visual-c-express-and.html' title='Intellisense in Visual C++ Express, and getting it working with Qt 4.4'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_idHQSV4cE3E/SFOMea2Jm0I/AAAAAAAAABk/FtZ6mdbqNtI/s72-c/vcdirs.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-6170536401422299488</id><published>2008-06-09T16:13:00.000+03:00</published><updated>2008-06-09T16:13:21.848+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Status update</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div style="text-align: justify;"&gt;Just a quick status update: school is now over (apart from one exam), the application project course that lasted for four months is also finished. I'm glad that it's done. :) I've started going to work as well.&lt;br /&gt;&lt;br /&gt;My &lt;span style="font-weight: bold;"&gt;sekrit projekt&lt;/span&gt;&lt;span style="font-size:78%;"&gt;(tm)&lt;/span&gt; is proceeding, albeit quite slowly. Today I have coded it a lot, though. It's still too early to be shown - not that there is anything interesting to show in any case.. Not yet. But fear not: I'll write about it once it is developed a bit more. &lt;span style="font-weight: bold;"&gt;^^&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;So yes. I'm still alive.&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-6170536401422299488?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/6170536401422299488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=6170536401422299488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/6170536401422299488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/6170536401422299488'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/06/status-update.html' title='Status update'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-31883364373253513</id><published>2008-05-26T09:09:00.002+03:00</published><updated>2008-05-26T09:15:17.311+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Plans for summer - Revisited</title><content type='html'>&lt;div style="text-align: justify;"&gt;Change of plans: I don't think I'll do the &lt;span style="font-weight: bold;"&gt;CSSTint&lt;/span&gt;-rewrite this time.. I've got a much more interesting idea. While it's still too early to talk about this, it involves &lt;span style="font-weight: bold;"&gt;Qt 4.4&lt;/span&gt; (yay!) and &lt;span style="font-weight: bold;"&gt;OpenGL&lt;/span&gt;. I will write more about it when (or if) I have something to show. =)&lt;br /&gt;&lt;br /&gt;Right now I'm wondering whether to go with &lt;a href="http://sourceforge.net/"&gt;SourceForge&lt;/a&gt; like I always have, or to use &lt;a href="http://code.google.com/"&gt;Google Code&lt;/a&gt;. Google Code seems nice and simple, as I'll only need SVN and some pages (or a wiki). And yes, it'll be open source. ;)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-31883364373253513?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/31883364373253513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=31883364373253513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/31883364373253513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/31883364373253513'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/05/plans-for-summer-revisited.html' title='Plans for summer - Revisited'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-6853904983035445359</id><published>2008-05-18T17:02:00.000+03:00</published><updated>2008-05-18T17:02:03.945+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='xna'/><title type='text'>"Jewels" version 1.0 is out</title><content type='html'>&lt;div style="text-align: justify;"&gt;Just wanted to mention that version 1.0 of &lt;span style="font-weight: bold;"&gt;Jewels&lt;/span&gt; is finally released. I'm glad it's out of my hands now, phew! :) Download it from &lt;a href="http://www.codeplex.com/jewels"&gt;http://www.codeplex.com/jewels&lt;/a&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;"Jewels - Now with a Game Settings -menu!"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_idHQSV4cE3E/SDA2JNbii9I/AAAAAAAAABc/tF53mlM9Dhs/s1600-h/screenshot10.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_idHQSV4cE3E/SDA2JNbii9I/AAAAAAAAABc/tF53mlM9Dhs/s320/screenshot10.png" alt="" id="BLOGGER_PHOTO_ID_5201717101464816594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-6853904983035445359?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/6853904983035445359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=6853904983035445359' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/6853904983035445359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/6853904983035445359'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/05/jewels-version-10-is-out.html' title='&quot;Jewels&quot; version 1.0 is out'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_idHQSV4cE3E/SDA2JNbii9I/AAAAAAAAABc/tF53mlM9Dhs/s72-c/screenshot10.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-8123312894950590583</id><published>2008-05-08T08:11:00.000+03:00</published><updated>2008-05-08T08:12:07.128+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Qt 4.4 released + plans for summer</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a href="http://trolltech.com/company/newsroom/announcements/press.2008-05-02.5256347247/"&gt;Qt 4.4&lt;/a&gt; framework was recently released. Hopefully &lt;a href="http://www.riverbankcomputing.co.uk/software/pyqt/download"&gt;PyQT 4.4&lt;/a&gt; soon follows. Qt just rocks. =) Having been working with Java Swing &lt;span style="font-size:85%;"&gt;(&lt;span style="font-weight: bold;"&gt;*cough*&lt;/span&gt;h o r r i b l e&lt;span style="font-weight: bold;"&gt;*cough*&lt;/span&gt;)&lt;/span&gt; these last four months, Qt 4.4 brings some light to the end of the tunnel..&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Now that that's out of the table, I can talk a little about a project I'm &lt;span style="font-style: italic;"&gt;perhaps&lt;/span&gt; going to do next summer. It's about remaking &lt;a href="http://csstint.sourceforge.net"&gt;CSSTint&lt;/a&gt;. While I think the current Windows version of CSSTint is quite nice, it's still... well, Windows-only. While I am using wxWidgets, it's still doesn't work in Linux properly - I have tried. I'm doing some nasty, ugly hacks in the code, so no wonder. All this &lt;span style="font-style: italic;"&gt;could&lt;/span&gt; probably be fixed, but for the sake of learning and for an interesting experience, I've been thinking of rewriting the whole shebang.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;I'm sure I will use Qt for the job, but I'm still undecided between C++ and Python. Learning Python has been interesting for me, as I've blogged before. Python version would also work on Windows as is, which won't hurt even if the original is also for Windows. On the other hand I could reuse some of my non-GUI CSSTint code if I went with C++.. Decisions, decisions...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Anyway, that's my current plan - things might still change. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-8123312894950590583?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/8123312894950590583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=8123312894950590583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/8123312894950590583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/8123312894950590583'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/05/qt-44-released-plans-for-summer.html' title='Qt 4.4 released + plans for summer'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-1041241224412993220</id><published>2008-05-04T12:48:00.002+03:00</published><updated>2008-05-04T13:12:42.510+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Why my stuff is Open Source?</title><content type='html'>&lt;div style="text-align: justify;"&gt;I have several reasons why most of my games and programs are Open Source. Here are some of them.&lt;br /&gt;&lt;br /&gt;Let's consider an example. Why is &lt;a href="http://koti.mbnet.fi/lsoft/index.php?page=formido"&gt;Formido&lt;/a&gt; available for Windows, Linux, MacOS X, BeOS, Xbox, AmigaOS and even OS/2..? The answer is obvious. Should I have kept it closed source, it'd be for Windows only, and maybe Linux.&lt;br /&gt;&lt;br /&gt;Here's another example. Recently I was contacted regarding a bug in &lt;a href="http://funguloids.sourceforge.net/"&gt;Funguloids&lt;/a&gt; that prevented it from working with &lt;a href="http://www.ogre3d.org/"&gt;Ogre&lt;/a&gt; versions 1.4.6 and newer. I had no idea of this bug, as I haven't personally touched the game since its last release, which uses Ogre 1.4.1. Things have been happening on the community front however, as Funguloids has found its way into &lt;span style="font-weight: bold;"&gt;Ubuntu Hardy&lt;/span&gt; (for which I'm very grateful! :)) After exchanging a few e-mails, the person who reported the bug presented me a patch (an one-liner, even) that fixes the problem. I didn't even get started examining the issue myself! Very nice.&lt;br /&gt;&lt;br /&gt;Also, as I have learned &lt;span style="font-weight: bold;"&gt;a lot&lt;/span&gt; by reading source code, I feel kind of obliged to do the same.. I'm not worried about people stealing my code - the code's not that good to begin with. ;)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-1041241224412993220?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/1041241224412993220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=1041241224412993220' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/1041241224412993220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/1041241224412993220'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/05/why-my-stuff-is-open-source.html' title='Why my stuff is Open Source?'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-1874516801997738662</id><published>2008-04-28T10:21:00.000+03:00</published><updated>2008-04-28T10:21:41.708+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='xna'/><title type='text'>Why I use Linux more than Windows on these days..</title><content type='html'>&lt;div style="text-align: justify;"&gt;Yesterday I dug up my &lt;a href="http://www.codeplex.com/jewels"&gt;Jewels&lt;/a&gt;-project from under the thick layer of frost it had gathered during the winter days. As it is a XNA-game, I have to boot into Windows to develop it. I installed &lt;span style="font-weight: bold;"&gt;XNA 2.0&lt;/span&gt; and started porting the game. After a few head scratchers I finally got the game working properly in XNA 2.0. Great!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;I'll try to finally finish that game, so I have been making some improvements and fixes. I need to add the timed play mode, and the do the game settings menus.. &lt;span style="font-weight: bold;font-size:85%;" &gt;*sigh*&lt;/span&gt; Damn, why games must have settings menus..!?&lt;br /&gt;&lt;br /&gt;Anyway, I noticed that I needed a key typing sound for the highscore screen where the player enters their name. You know, the old typewriter sound. So, I browsed my earlier game sounds, found a sound, double clicked it. Winamp starts. At this point it occured to me: oh crap! I have Winamp set to playlist looping, which is what I like when I listen to music. However, double clicking a file replaces the current playlist and plays the single file looped. In case of a short sound clip, the sound repeats quite often. It sounds a bit annoying, but that's not the worst effect here.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;You see, on this machine, Winamp somehow cannot handle a short sound clip played on repeat (I only remembered that &lt;span style="font-weight: bold;"&gt;*after* &lt;/span&gt;I had activated the file!) - it crashes. And hard. So Windows presents me a message the Winamp had to close. When I click on &lt;span style="font-style: italic;"&gt;Close&lt;/span&gt;, the computer reboots cold. Same as when I press the reset switch. And that annoys me. This has happened several times, and it's annoying. A cold reboot doesn't exactly do wonders on your HD.. :(&lt;br /&gt;&lt;br /&gt;When Windows finally comes up (that's another thing, it takes ages to start up - although I do have years worth of crap installed, so no wonder..), it presents me a familiar little dialog:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_idHQSV4cE3E/SBV5rHWh4GI/AAAAAAAAABE/BDK3yOlqafk/s1600-h/error.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_idHQSV4cE3E/SBV5rHWh4GI/AAAAAAAAABE/BDK3yOlqafk/s400/error.png" alt="" id="BLOGGER_PHOTO_ID_5194191526856613986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Feels like coming home.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-1874516801997738662?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/1874516801997738662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=1874516801997738662' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/1874516801997738662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/1874516801997738662'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/04/why-i-use-linux-more-than-windows-on.html' title='Why I use Linux more than Windows on these days..'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_idHQSV4cE3E/SBV5rHWh4GI/AAAAAAAAABE/BDK3yOlqafk/s72-c/error.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-8553485676770722704</id><published>2008-04-26T15:26:00.002+03:00</published><updated>2008-04-26T16:08:56.689+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>My adventures with Python / PyQT</title><content type='html'>First of all, let me just say that &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; + &lt;a href="http://www.riverbankcomputing.co.uk/software/pyqt/intro"&gt;PyQt&lt;/a&gt; just rocks.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;I've been recently learning &lt;span style="font-weight: bold;"&gt;Python&lt;/span&gt;. Just for fun, basically. Additional benefit is that now I have a better understanding on how to cope with Zope/Plone at my work. Anyway, apart from the Zope/Plone stuff the first thing I did in Python was a command-line script that allows creation and handling of .mpk files that I've used in a couple of my games. MPK or MPak is a simple WAD-like format that stores all the game files in a single package file. I had a C++ CLI application that did the job, but it was really a piece of crap..&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;So I deciced to write a replacement for that app, in Python. The finished script (mpak.py) is much nicer to use and works better. I wrote it in Linux and it worked as is in Windows too - neat.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_idHQSV4cE3E/SBMeqnWh4FI/AAAAAAAAAA8/D5uqGj5HAKQ/s1600-h/pydvdcollection.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_idHQSV4cE3E/SBMeqnWh4FI/AAAAAAAAAA8/D5uqGj5HAKQ/s200/pydvdcollection.png" alt="" id="BLOGGER_PHOTO_ID_5193528512755130450" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Then, I wanted to try GUI stuff and went with &lt;span style="font-weight: bold;"&gt;PyQt&lt;/span&gt;. I had a simple DVD collection management software called &lt;span style="font-weight: bold;"&gt;MyDVDCollection&lt;/span&gt; that I had written in .NET using C#. It worked, but was not too good either. So I began hacking away with PyQt and now I have &lt;span style="font-weight: bold;"&gt;PyDVD&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Co&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;llection&lt;/span&gt; (pretty clever names, huh? ;)) that I use for maintaining &lt;a href="http://users.jyu.fi/%7Emitahalt/leffalista/leffat.php"&gt;my collection&lt;/a&gt;. It has less code and more features than its .NET counterpart. It works in Linux, naturally, and also beautifully in Vista.&lt;br /&gt;&lt;br /&gt;As you can probably tell, I'm very impressed with PyQt and the Python language, and I'll be using them in the future as well. =)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-8553485676770722704?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/8553485676770722704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=8553485676770722704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/8553485676770722704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/8553485676770722704'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/04/my-adventures-with-python-pyqt.html' title='My adventures with Python / PyQT'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_idHQSV4cE3E/SBMeqnWh4FI/AAAAAAAAAA8/D5uqGj5HAKQ/s72-c/pydvdcollection.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-2840833796776904230</id><published>2008-04-25T13:21:00.003+03:00</published><updated>2008-04-26T14:49:43.031+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>I Have No Delete Key</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt; 8.04 LTS aka &lt;span style="font-weight: bold;"&gt;Hardy Heron&lt;/span&gt; was &lt;a href="http://http//www.ubuntu.com/getubuntu/releasenotes/804"&gt;released yesterday&lt;/a&gt;. I had previously installed 7.10 aka &lt;span style="font-weight: bold;"&gt;Gutsy Gibbon&lt;/span&gt; on my new laptop, and upgraded to Hardy last night. The update process went quite nicely, except for one strange thing: my &lt;span style="font-style: italic;"&gt;delete key&lt;/span&gt; no longer works! O.o&lt;br /&gt;&lt;br /&gt;When I press &lt;span style="font-style: italic;"&gt;delete&lt;/span&gt;, the laptops WLAN led goes on - nothing else happens. When I press it again, the led goes off. [Homer impression:]&lt;homer impression=""&gt;&lt;span style="font-style: italic;"&gt;"Led goes on, led goes off, led goes on, led goes off..."&lt;/span&gt;. (sorry about that - just when they're going to release the season 11 on dvd!?)&lt;/homer&gt;&lt;br /&gt;&lt;homer impression=""&gt;&lt;/homer&gt;&lt;/div&gt;&lt;homer impression=""&gt;&lt;br /&gt;&lt;/homer&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_idHQSV4cE3E/SBGwO3Wh4DI/AAAAAAAAAAs/gxeUjpfqhak/s1600-h/Kuvakaappaus.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_idHQSV4cE3E/SBGwO3Wh4DI/AAAAAAAAAAs/gxeUjpfqhak/s320/Kuvakaappaus.jpg" alt="" id="BLOGGER_PHOTO_ID_5193125614757994546" border="0" /&gt;&lt;/a&gt;&lt;homer impression=""&gt;On this laptop (&lt;a href="https://wiki.ubuntu.com/LaptopTestingTeam/AcerExtensa5220"&gt;Acer Extensa 5220&lt;/a&gt;) the WLAN led is always inverted in Ubuntu; when t&lt;/homer&gt;&lt;homer impression=""&gt;h&lt;/homer&gt;&lt;homer impression=""&gt;e &lt;/homer&gt;&lt;homer impression=""&gt;WLAN is in use, the led is off. That doesn't bother me at all. However, I would like to get my &lt;span style="font-style: italic;"&gt;delete key&lt;/span&gt; to work again. I use that one quite a lot in typing/programming, an&lt;/homer&gt;&lt;homer impression=""&gt;d well, in deleting things...&lt;/homer&gt;&lt;br /&gt;&lt;homer impression=""&gt;&lt;/homer&gt;&lt;br /&gt;&lt;homer impression=""&gt;I made a &lt;a href="http://ubuntuforums.org/showthread.php?t=766204"&gt;thread&lt;/a&gt; about this on the Ubuntu forums, but so far the problem remains a mystery. Other than this little annoyance, &lt;span style="font-weight: bold;"&gt;Hardy&lt;/span&gt; seems very nice. And it works quite well in this laptop.&lt;/homer&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; Turned out it was a &lt;a href="https://bugs.launchpad.net/ubuntu/+bug/181057"&gt;known bug&lt;/a&gt;. It works now. :)&lt;br /&gt;&lt;homer impression=""&gt;&lt;/homer&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-2840833796776904230?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/2840833796776904230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=2840833796776904230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/2840833796776904230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/2840833796776904230'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/04/i-have-no-delete-key.html' title='I Have No Delete Key'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_idHQSV4cE3E/SBGwO3Wh4DI/AAAAAAAAAAs/gxeUjpfqhak/s72-c/Kuvakaappaus.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2366640542525663784.post-3511161538680102753</id><published>2008-04-25T12:25:00.002+03:00</published><updated>2008-04-25T12:38:51.417+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='random'/><title type='text'>So it's finally come to this..</title><content type='html'>Yes, I've started a blog. I'll try to write here at least somewhat regularly, but knowing me, it's probably not going to work.. ;) I'm quite busy in school (&lt;span style="font-style: italic;"&gt;a software project course&lt;/span&gt; going on right now, it's big!) at the moment, but I should be able to do more this summer. On the other hand, I do have work then and I'm hoping to write my bachelor's thesis too.. So we'll see. I have some other plans too, but I'll talk about them in another post.&lt;br /&gt;&lt;br /&gt;And that's that. I guess this shall do as The First Post&lt;span style="font-size:78%;"&gt;(tm)&lt;span style="font-size:100%;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2366640542525663784-3511161538680102753?l=ramblings-of-mine.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ramblings-of-mine.blogspot.com/feeds/3511161538680102753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2366640542525663784&amp;postID=3511161538680102753' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/3511161538680102753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2366640542525663784/posts/default/3511161538680102753'/><link rel='alternate' type='text/html' href='http://ramblings-of-mine.blogspot.com/2008/04/so-its-finally-come-to-this.html' title='So it&apos;s finally come to this..'/><author><name>Mika</name><uri>http://www.blogger.com/profile/05467041347717889443</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_idHQSV4cE3E/SBGqNXWh4BI/AAAAAAAAAAg/YIfIceRXuTc/S220/siili.png'/></author><thr:total>0</thr:total></entry></feed>
