<?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-6152873000124107032</id><updated>2012-01-29T00:20:03.108-08:00</updated><title type='text'>Kaduria</title><subtitle type='html'>roguelike programming blog</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default?start-index=101&amp;max-results=100'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>131</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-7757621538982399568</id><published>2012-01-29T00:20:00.000-08:00</published><updated>2012-01-29T00:20:03.112-08:00</updated><title type='text'>Day off</title><content type='html'>The other day I was trying to do something, but instead spent the whole day on internet trolling forums. If you want to get anything done it's not going to work like that, so I have decided to stay away from internet every other day. In my day off from internet I actually had to think how to spend my time, because it wasn't wasted on trolling. Fixed eight bugs in Kaduria which is phenomenal. But it's not just programming, you have more time to practice guitar playing or do some other real life stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-7757621538982399568?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/7757621538982399568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2012/01/day-off.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7757621538982399568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7757621538982399568'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2012/01/day-off.html' title='Day off'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-7811759918419582829</id><published>2012-01-12T09:52:00.000-08:00</published><updated>2012-01-12T09:52:47.340-08:00</updated><title type='text'>Java button</title><content type='html'>Sidetracked for two days with a small programming project (I call them "java button" projects) and somehow lost interest to programming. It will pass and I have already been checking out what to do next in Kaduria. It doesn't look very promising. Most things to do are between hard and difficult. I'm getting back to the issues that need serious thinking and game design instead of simple programming to make stuff work. One strategy I have been thinking is work the way from player's point of view to downward in the structure. In other words make the player's actions top priority and monkey them down to other actors of the game.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-7811759918419582829?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/7811759918419582829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2012/01/java-button.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7811759918419582829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7811759918419582829'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2012/01/java-button.html' title='Java button'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-8191651366464630556</id><published>2012-01-06T07:17:00.000-08:00</published><updated>2012-01-06T07:17:32.161-08:00</updated><title type='text'>It's a trap</title><content type='html'>Item class has only 12 functions left to complete. Some items can be trapped and for a long time traps gave me constant headache in the way I was trying to implement them. The confusion was caused by the type of traps. Some of them are actual objects hidden on ground, while others are a part of another object. Also, I had difficulties to understand how to implement the effects of traps. If I can handle traps then the entire object system is much closer to be complete, because traps are one of the unfinished parts that affect several object types.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-8191651366464630556?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/8191651366464630556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2012/01/its-trap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8191651366464630556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8191651366464630556'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2012/01/its-trap.html' title='It&apos;s a trap'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-9158520759293373189</id><published>2012-01-02T01:46:00.000-08:00</published><updated>2012-01-02T01:46:27.632-08:00</updated><title type='text'>Testing</title><content type='html'>Testing the game while creating it may be a good idea in most of cases. However I now think that there is a place and time for testing, too. Kaduria has seen a lot of refactoring and testing that was done then was a huge waste of time after all. The funny thing is that I never questioned my style of programming until now. I also have a habit to compile maybe too often. It's another way to waste time, since in most of cases compile happens without errors. It would be obvious even after longer sessions of writing code.&lt;br /&gt;&lt;br /&gt;These two, testing and compiling, are things that I try to cut down to stop wasting time for no reason. Testing in this state of development should be done actually when the gameplay is more or less ready.&lt;br /&gt;&lt;br /&gt;Here is the new gameview I was talking about earlier:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-qNd_mITCJYI/TwF7NVjF_UI/AAAAAAAAAT4/AoOoNxfCzgI/s1600/screen0112_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/-qNd_mITCJYI/TwF7NVjF_UI/AAAAAAAAAT4/AoOoNxfCzgI/s320/screen0112_1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Two sections of right side area still missing. I'm thinking of leaving the "mini"-map (it's a debug version routine), but without object list (or show only monsters).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-9158520759293373189?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/9158520759293373189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2012/01/testing.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/9158520759293373189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/9158520759293373189'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2012/01/testing.html' title='Testing'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-qNd_mITCJYI/TwF7NVjF_UI/AAAAAAAAAT4/AoOoNxfCzgI/s72-c/screen0112_1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3249392937414677794</id><published>2011-12-31T07:16:00.000-08:00</published><updated>2011-12-31T07:17:25.628-08:00</updated><title type='text'>Year 2011</title><content type='html'>I was looking at my dev diary from summer to this point and there is surely an interesting trend for increasing amount of development. It's also showing in the new LOC chart (starting from summer):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-PJ80Gpd9GUA/Tv8lboIuPtI/AAAAAAAAATs/PK6ejDvz7CI/s1600/locchart3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="163" src="http://3.bp.blogspot.com/-PJ80Gpd9GUA/Tv8lboIuPtI/AAAAAAAAATs/PK6ejDvz7CI/s320/locchart3.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;LOC has increased "only" 2000 lines, but it's quality code! Most of the source code is already in place and only involves some adjusting. Not to mention removed code, there has been some of it also.&lt;br /&gt;&lt;br /&gt;This December was actually the best month in development point of view. I was able to complete or almost complete several major classes and the work is now more and more focused on narrow set of classes which have the most difficult problems to solve (AI, item routines, advanced level generation, etc.).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3249392937414677794?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3249392937414677794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/12/year-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3249392937414677794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3249392937414677794'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/12/year-2011.html' title='Year 2011'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-PJ80Gpd9GUA/Tv8lboIuPtI/AAAAAAAAATs/PK6ejDvz7CI/s72-c/locchart3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-8131070083761699031</id><published>2011-12-26T05:54:00.000-08:00</published><updated>2011-12-26T05:54:38.376-08:00</updated><title type='text'>Rebuilding gameview</title><content type='html'>Areas of the gameview are starting to update properly again. While refactoring I ran into something quite unexpected. The main stats were updated inside the stat class and signaled to GUI, but of course it was done for all creatures, not just the player. So, had to backtrack and create wrapper routines in creature class to adjust stats and check if the creature is the player, and only then signal GUI. It was easier than I thought so I made it in one run.&lt;br /&gt;&lt;br /&gt;It looks like other parts are fine, although I have to add parts that weren't there in the first place: two explanation text slots and quick item slots that can be used with keys 1-7. Then I have to clean up some manual updates, especially check out calls to Redraw in the dungeon class.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-8131070083761699031?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/8131070083761699031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/12/rebuilding-gameview.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8131070083761699031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8131070083761699031'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/12/rebuilding-gameview.html' title='Rebuilding gameview'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-677983838468480998</id><published>2011-12-25T07:48:00.000-08:00</published><updated>2011-12-25T07:48:22.788-08:00</updated><title type='text'>GUI class ready</title><content type='html'>Another part of the source code is now as ready as it can be. I think the GUI class is looking pretty good now. I don't even hope for good looking graphics at this point, I'm happy that basic drawing functions are done. The gameview still can't update itself so it looks a mess and even messages aren't shown and need to check out n+1 things related to drawing functions, but I'm still happy that something was done and finished finally. It may not sound very exciting, but for me it surely is, having spent so much time on this project.&lt;br /&gt;&lt;br /&gt;Next I'm going to concentrate on that gameview drawing. The gameview now has clearly set areas so it should be easy to check out them one by one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-677983838468480998?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/677983838468480998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/12/gui-class-ready.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/677983838468480998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/677983838468480998'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/12/gui-class-ready.html' title='GUI class ready'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-6044468345872990826</id><published>2011-12-20T03:54:00.000-08:00</published><updated>2011-12-20T03:54:55.425-08:00</updated><title type='text'>GUI development</title><content type='html'>I was right about text updates, most of them work without update inside the Text class. GUI class is actually almost ready and it's doing the job properly for most of parts. The biggest problem is how to draw and update parts from different sources. They also probably need notification instead of direct update which would lead to multiple drawing operations per turn. The good thing is that a roguelike doesn't have that much GUI stuff.&lt;br /&gt;&lt;br /&gt;Back about three or four weeks I injured my elbow. The doctor said, judging from x-ray images, that it's some kind of calcification resulted from a long period of inflammation. I guess it's probably right, because I've had tennis elbow for a long time now. The injure came in weight training of course and I think it was a disaster waiting to happen. So, it looks like my training days are over, at least until this is healed completely. I don't want to reach the point where I can't move my fingers anymore. That would suck.&lt;br /&gt;&lt;br /&gt;The bright side is that I have more energy to spend on something else like roguelike development. It's going to be a positive thing for this project and I already feel I'm getting more results in shorter time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-6044468345872990826?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/6044468345872990826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/12/gui-development.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6044468345872990826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6044468345872990826'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/12/gui-development.html' title='GUI development'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-8373325727559565966</id><published>2011-12-17T09:17:00.000-08:00</published><updated>2011-12-17T09:17:27.858-08:00</updated><title type='text'>Update on update</title><content type='html'>Rewriting GUI for update rectangles is going to be worse than I thought. There are manual updates in some wrong places, namely in text output routines and keyboard routines. It was quick and dirty way to implement some linked updates, but they were in wrong place. Things like that should be there, but they belong to GUI. Text update is silly, because text is usually printed on some self-updating surface like window or gui background graphics. That's why there are double updates in most text routines.&lt;br /&gt;&lt;br /&gt;It's more complete rewrite than I thought, but essential for that consistent flow of drawing and updating.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-8373325727559565966?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/8373325727559565966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/12/update-on-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8373325727559565966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8373325727559565966'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/12/update-on-update.html' title='Update on update'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-4389895217767576238</id><published>2011-12-17T06:18:00.000-08:00</published><updated>2011-12-17T06:18:23.968-08:00</updated><title type='text'>Update rectangles</title><content type='html'>Gameview is also being re-designed for consistent behavior in drawing and updating. The gameview is divided into rectangles which are updated only once during a turn when a flag is set for that area. It removes multiple updates and makes things both faster and also aware of what should be updated. Update rectangles are needed, because Kaduria is using only software output without any hardware acceleration. It's easier and more portable in the end, and I feel that a roguelike has no need for hardware routines.&lt;br /&gt;&lt;br /&gt;I have also finished the structure of the gameview. It's going to have quick item icons for using items with keys 1-7, and status icons. Both of them will have explanation text when hovering over with mouse cursor. One thing I'm not sure about is the debug radar which is a small level map. I guess it could be visible in non-debug mode also, but it should be re-written to display only what the player has discovered.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-4389895217767576238?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/4389895217767576238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/12/update-rectangles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4389895217767576238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4389895217767576238'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/12/update-rectangles.html' title='Update rectangles'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3935557104498281008</id><published>2011-12-16T11:24:00.000-08:00</published><updated>2011-12-16T11:24:26.791-08:00</updated><title type='text'>Load and save game</title><content type='html'>Most of the classes know how to save and load, but the main routines are still under development. It's looking quite good actually and only some things need to be tweaked to make sure that there are empty versions of instances for loading saved data. Load/save can be difficult to program, but I'm now much more prepared for that task than I was before.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3935557104498281008?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3935557104498281008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/12/load-and-save-game.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3935557104498281008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3935557104498281008'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/12/load-and-save-game.html' title='Load and save game'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-8104990356988387676</id><published>2011-12-10T02:34:00.001-08:00</published><updated>2011-12-10T02:38:00.404-08:00</updated><title type='text'>Debug routines... ready?</title><content type='html'>Yes. It appears so. I've finished debug routine module, it's as ready as it can be. Of course there could be some new routines needed, but it's only when I can figure out what they are.&lt;br /&gt;&lt;br /&gt;It took only 15 years. And this is not a joke, it's a real number.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-8104990356988387676?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/8104990356988387676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/12/debug-routines-ready.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8104990356988387676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8104990356988387676'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/12/debug-routines-ready.html' title='Debug routines... ready?'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3763662080230325036</id><published>2011-12-09T06:23:00.001-08:00</published><updated>2011-12-09T06:47:55.049-08:00</updated><title type='text'>Hero coder</title><content type='html'>People keep calling me a hero coder (literal translation from finnish language). I guess it's some kind of joke, because sometimes I write comments about social media games like Minecraft and Angry Birds. Even writers of popular Pelit-magazine (biggest gaming magazine in Finland) make regular references to me. It's cute and flattering, but I don't care about that kind of thing a lot. You know, being a celebrity.&lt;br /&gt;&lt;br /&gt;I think there has been misunderstandigs about my comments on social media games. I don't hate them or lucky developers who get zillions by taking advantage of the social media. They are game developers just like myself. Except that they own ridiculous amount of money and some of them wear a hat which attracts women.&lt;br /&gt;&lt;br /&gt;The biggest misconception is that people think in their own terms like being jealous about money and girls. I don't get that. Game development is my hobby and I'm pretty devoted to it. It means I'm interested in game development itself, not money or girls. Being a roguelike developer means you are in the forefront of game developers. We don't just make games as products but in the next generation roguelike genre we make something new. It's a way no one has explored earlier. And that exactly is the reason I'm making games.&lt;br /&gt;&lt;br /&gt;Some people measure success in money (or amout of girls) which means Minecraft is a great game. But if you were a game developer and look at Minecraft from developer's point of view, then it would not be that interesting. Still, as I stated before, I'm happy about the unexpected success of social media games or more like products. They just don't have a lot to do with hardcore game development which is a small sector of game genres living and surviving under the pressure of this commercial world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3763662080230325036?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3763662080230325036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/12/hero-coder.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3763662080230325036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3763662080230325036'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/12/hero-coder.html' title='Hero coder'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-965649736265092232</id><published>2011-12-06T12:31:00.001-08:00</published><updated>2011-12-06T12:37:53.474-08:00</updated><title type='text'>Basics</title><content type='html'>Sometimes I feel really dumb, because I realize I'm programming some basics that should have been there way back. I'm still working on container code which is moving items from objects like barrel to inventory or somewhere else. It's a kind of feature you would suppose to be implemented in early stage, but somehow isn't.&lt;br /&gt;&lt;br /&gt;I guess this is the case with some other features as well. Maybe there is no proper order to complete features. Then again I have spent a lot of time creating this simple turn-based RPG with random content and I'm still wondering how hard this could be? What is the problem with roguelikes anyway?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-965649736265092232?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/965649736265092232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/12/basics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/965649736265092232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/965649736265092232'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/12/basics.html' title='Basics'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-2076982964884867697</id><published>2011-11-21T02:21:00.001-08:00</published><updated>2011-11-21T02:27:18.834-08:00</updated><title type='text'>Secret idea</title><content type='html'>I got my ass kicked by the first temple's boss in Zelda Skyward Sword. And I had one revitalizing potion (restores four hearts). So they finally decided to make Zelda harder. Well, one of the strange things is that I don't know how to use the shield. Would it help in that battle anyway? Maybe I'm going to cry for two days and then look for Youtube videos about how to beat that son of a bitch.&lt;br /&gt;&lt;br /&gt;While playing Zelda I got an idea. It must remain a secret however, because it's going to change one of the main areas of a roguelike. And what is a better project to use that idea than next gen roguelike.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-2076982964884867697?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/2076982964884867697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/11/secret-idea.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2076982964884867697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2076982964884867697'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/11/secret-idea.html' title='Secret idea'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-7311801270199177705</id><published>2011-11-13T02:42:00.001-08:00</published><updated>2011-11-13T02:55:08.961-08:00</updated><title type='text'>Bug hunting</title><content type='html'>Today I fixed a special bug that made the program crash in Long Corridor level theme. It was a special one because there are no other known bugs that crash the program. The bug was relatively easy to find. In fact I was using VC debugger to find it. Usually I don't even need a debugger to find the bug, but in this case it was needed.&lt;br /&gt;&lt;br /&gt;The number of open bugs is 12 which isn't that bad. I try to limit it under 10 to keep the game playable and as solid as possible. Some bugs are caused by parts of the code that are going to be refactored and usually the bug will be fixed at the same time. The current speed of development is quite fast and I believe it will produce an increasing number of bugs, but it's obvious that the release version will have zero known bugs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-7311801270199177705?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/7311801270199177705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/11/bug-hunting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7311801270199177705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7311801270199177705'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/11/bug-hunting.html' title='Bug hunting'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3893475573983243195</id><published>2011-11-11T00:05:00.001-08:00</published><updated>2011-11-11T00:16:48.843-08:00</updated><title type='text'>Theme randomness</title><content type='html'>I'm having trouble trying to determine the stuff that will be generated in level themes. With lots of stuff it becomes more difficult to figure out how to select that stuff. There is a list of stuff to create for each level theme, but I know it's too restricted and predictable. Creating a list is easy, because you don't have to program a logic that "thinks" what could belong to that particular level theme. And that is exactly what I have to do next.&lt;br /&gt;&lt;br /&gt;It's not an easy task. There must be a new type of classification of objects just for level creation. Then the level theme could ask an object from different kind of classes to generate in specific terrain area or climate condition or whatever the reason will be.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3893475573983243195?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3893475573983243195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/11/theme-randomness.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3893475573983243195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3893475573983243195'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/11/theme-randomness.html' title='Theme randomness'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-2822017198728580667</id><published>2011-11-02T08:09:00.000-07:00</published><updated>2011-11-02T08:09:01.446-07:00</updated><title type='text'>Level class</title><content type='html'>Returned to Level class. I have switched between big classes and browsed through them, fixing everything in sight. Level class is possibly the worst of them, because the dungeon generator still has some problems. It can't generate all level themes yet, but I'm working on it.&lt;br /&gt;&lt;br /&gt;In some parts I have made a decision to settle for less great stuff to speed up development. Maybe I'm really looking forward to create a playable version, no matter what features it could be missing. Still, I'm pretty sure that the first playable version is not going to be a release version.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-2822017198728580667?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/2822017198728580667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/11/level-class.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2822017198728580667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2822017198728580667'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/11/level-class.html' title='Level class'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-5737600022621950552</id><published>2011-10-22T13:58:00.000-07:00</published><updated>2011-10-22T13:58:30.024-07:00</updated><title type='text'>Item class part two</title><content type='html'>My tennis elbow got better really fast, it was just some kind of episode. It's still there, but not painful. Item class is almost ready for the parts that are already there. Something tells me there is going to be more code for items, but it looks surprisingly good now. I have lost my obsession to create "perfect" code (or engine) and just try to get stuff work. Well it isn't a surprise that things start to happen. However I'm as puzzled as ever when I think when or how this project is going to become a real game.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-5737600022621950552?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/5737600022621950552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/10/item-class-part-two.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5737600022621950552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5737600022621950552'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/10/item-class-part-two.html' title='Item class part two'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-1052372978533940729</id><published>2011-10-12T02:34:00.000-07:00</published><updated>2011-10-12T02:34:19.419-07:00</updated><title type='text'>Item review</title><content type='html'>Giving Item class the same kind of check than Level and some others it was quickly obvious that it needs serious fixing. Many problems come from the unfinished role-playing system. It's really slowing down everything, because you can't write a routine if you don't know what it requires. But like with previous classes I have learned to look at the source code more closely and make better decisions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-1052372978533940729?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/1052372978533940729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/10/item-review.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1052372978533940729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1052372978533940729'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/10/item-review.html' title='Item review'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3004276717252319212</id><published>2011-09-28T06:54:00.000-07:00</published><updated>2011-09-28T06:54:22.269-07:00</updated><title type='text'>Level class refactoring</title><content type='html'>Last three days have been quite productive. I have searched through Level class which is 3500+ lines of code. Many routines need either fixing or test how they actually work in the gameplay. I think the worst example was a routine searching for free places (when game objects are spawned). It doesn't work like it should, but when I change it data-driven it should fix most of the problems. I've also learned that everything should be check only once, because you will have extra rules and if that another routine doesn't check them it fails. There must be something like that because sometimes there are plants created on walls. It's bit of a mess, but it's going to get better soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3004276717252319212?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3004276717252319212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/09/level-class-refactoring.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3004276717252319212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3004276717252319212'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/09/level-class-refactoring.html' title='Level class refactoring'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3985679359650101480</id><published>2011-09-24T04:17:00.000-07:00</published><updated>2011-09-24T04:17:48.998-07:00</updated><title type='text'>Solutions</title><content type='html'>Going through Level class and closing functions when they look like they're ready. I think this is pretty good way to proceed especially when you get lost in the jungle of source code. The basic idea is find problems and try to find a solution for them even faster. When you program longer you start to understand what are the things that slow down development. I think there are only two things: 1) you did not find a solution for a problem and left the function/class unfinished and 2) bugs.&lt;br /&gt;&lt;br /&gt;If it only were easy to fix all problems when you see them. But usually they are related to something else that needs to be done before you can continue. This is the difficulty in roguelike programming. With regular games you pretty much know what you need to add to make the game work like it should. With roguelikes you run into huge problems like artificial intelligence and the myriad of ways to interact with the game world. I hope my new style of programming brings some quick solutions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3985679359650101480?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3985679359650101480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/09/solutions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3985679359650101480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3985679359650101480'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/09/solutions.html' title='Solutions'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-212480576955756983</id><published>2011-09-06T06:08:00.000-07:00</published><updated>2011-09-06T06:08:47.707-07:00</updated><title type='text'>Fighting style</title><content type='html'>There are some things missing in the process of constructing/creating a monster. Artificial intelligence type or AI type was quite easy to add. It was determined from the monster family and/or type of the monster. It's later used to make decisions about how the creature will act in certain situations.&lt;br /&gt;&lt;br /&gt;Skills and default items are still missing. Some skills can be determined from the profession, but default item set is a problem. You could determine them from the profession and type of the monster, but instead of that I was thinking to add a new AI module fighting style. That way let's say a human fighter could have several styles with weapons and armour selected for that particular style. Not only items, but you can then determine combat strategy and also some additional starting skills from the style. Besides you need less fighting styles than there are professions and monster types.&lt;br /&gt;&lt;br /&gt;Fighting styles need random variation in weapons and armour to prevent static item sets. It's going to be a complex system which is only telling how even one small area of roguelike is incredibly difficult to program. There is no easy way to do this, you need to create a number of styles with proper items, but still maintain random variation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-212480576955756983?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/212480576955756983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/09/fighting-style.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/212480576955756983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/212480576955756983'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/09/fighting-style.html' title='Fighting style'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-7885454392840051490</id><published>2011-09-01T06:29:00.000-07:00</published><updated>2011-09-01T06:29:56.103-07:00</updated><title type='text'>Monster review part two</title><content type='html'>After some research I found out that only 40 of 134 functions in Monster class are ok (possibly don't need refactoring). The rest is in less good condition. I have hidden ok functions with VC's gui so it's easier to get work done in unfinished functions. I can only guess that it's a difficult task, but this situation with unfinished code and gameplay content has been going on for too long. Something has to be done and I got a good start by fixing some functions. The following days will tell more about how fast or slow I'm able to fix things.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-7885454392840051490?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/7885454392840051490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/09/monster-review-part-two.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7885454392840051490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7885454392840051490'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/09/monster-review-part-two.html' title='Monster review part two'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-7867268924167704541</id><published>2011-08-31T09:54:00.000-07:00</published><updated>2011-08-31T09:56:30.452-07:00</updated><title type='text'>Review of  monsters</title><content type='html'>Today I was looking at the Monster class. It's 2971 lines of code which in Kaduria is one of the biggest source files. Most of it is ok, but it's missing AI code and role-playing system parts. It has been difficult to create the rpg system itself, because I suck at it. However I feel that if I can nail this one it's going to be much easier to complete the game. This is the important part, how to make monsters tick so to speak.&lt;br /&gt;&lt;br /&gt;Another difficult thing is the relationship between Monster and Player classes. I now realize that there should be a clear derived-type construct which should not be broken (which I have done). It's another issue which is going to take some time to fix. But even with all these difficulties I'm optimistic. I have learned my lessons.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-7867268924167704541?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/7867268924167704541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/08/review-of-monsters.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7867268924167704541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7867268924167704541'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/08/review-of-monsters.html' title='Review of  monsters'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-9200928866971936730</id><published>2011-08-27T02:05:00.000-07:00</published><updated>2011-08-27T02:05:44.497-07:00</updated><title type='text'>Snow fox</title><content type='html'>I may have been too careful not to add too much content (like new creatures, items, etc.) during the process of programming the engine, but I guess it's time to forget the engine for a while and just add anything that is needed.&lt;br /&gt;&lt;br /&gt;Level themes are quite strongly themed with specific monsters and other stuff, but I try to avoid making them too predictable by trying to break the rules randomly. I have thought that it could be possible to entirely replace a part of dungeon area with another theme, but that's something to consider later.&lt;br /&gt;&lt;br /&gt;The problem with adding stuff is that it can be later tiresome to edit all that data if/when something changes, but then again I haven't spent all this time for nothing: the engine is flexible enough to introduce new stuff without too much extra programming.&lt;br /&gt;&lt;br /&gt;So, again I'm at the snow top, wondering what kind of creatures live here...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-9200928866971936730?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/9200928866971936730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/08/snow-fox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/9200928866971936730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/9200928866971936730'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/08/snow-fox.html' title='Snow fox'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-1312645446331660508</id><published>2011-08-26T07:01:00.000-07:00</published><updated>2011-08-26T07:01:48.334-07:00</updated><title type='text'>New member</title><content type='html'>I was bored so I decided to refactor some code. Key_Handler was changed to modular class with minor changes and it went into classes directory which contains all modular classes of the project. They are classes that need least amount of maintaining. Whenever I get something in classes directory it's like those lines of code are removed from the usual maintaining horror this kind of project has.&lt;br /&gt;&lt;br /&gt;Even two or three weeks off the project seems to make it possible to look at the code from a distance and possibly create better decisions in how to proceed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-1312645446331660508?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/1312645446331660508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/08/new-member.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1312645446331660508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1312645446331660508'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/08/new-member.html' title='New member'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-1378050065566366797</id><published>2011-07-30T12:02:00.000-07:00</published><updated>2011-07-30T12:02:14.879-07:00</updated><title type='text'>Shops</title><content type='html'>After returning to Kaduria I was fixing some stuff and noticed there was no support for shops in rooms so I started to refactor that. The source code was there already, I just had to add a sub type in Room class for shops. Everything seemed to went well, because the shop creation code was also ready. But then... to my surprise it didn't work at all. Everything went wrong: there was only one table in the shop, the shopkeeper was in wrong place and all shop items were null items (this happens when the item creation fails and it's a safe way to detect problems, because null items actually work, they are just not real items).&lt;br /&gt;&lt;br /&gt;I guess it should be easy to fix those problems, because the code to create shop and items is really just about 20-30 lines of code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-1378050065566366797?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/1378050065566366797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/07/shops.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1378050065566366797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1378050065566366797'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/07/shops.html' title='Shops'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-7908083117132843391</id><published>2011-07-21T01:40:00.000-07:00</published><updated>2011-07-21T01:40:38.843-07:00</updated><title type='text'>Environment actions</title><content type='html'>I think the objects need to have a memory of where they were before. I think it's the only way to do stuff like pushing things into water. If the object doesn't remember where it was you would get multiple messages of the object falling in water when it's pushed to the next water tile. The funny thing is that I previously had that kind of data, but for some reason I removed it. I need to look at action data again, because creatures do have current task they are doing, like swimming. But I think that can't be used with other type of objects, because things like barrels don't go swimming, they just fall into water and float in there.&lt;br /&gt;&lt;br /&gt;I'm thinking of breaking the big poop into micro actions. Like "fall into water", "float in water", "get out of water" etc. Well maybe I don't need the previous action to determine things, just current action.&lt;br /&gt;&lt;br /&gt;I've also tried to clean up some of the mess in Message class. It's scary, that's all I can say about that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-7908083117132843391?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/7908083117132843391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/07/environment-actions.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7908083117132843391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7908083117132843391'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/07/environment-actions.html' title='Environment actions'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-2977404890514599717</id><published>2011-07-18T23:31:00.000-07:00</published><updated>2011-07-18T23:31:38.620-07:00</updated><title type='text'>An idea about stairs</title><content type='html'>Playing JADE gave me an idea about stairs. I noticed it's super annoying trying to find stairs to the next level in those quite large levels (especially maze types). So, why not make it easier and place the stairs somewhere near the entry stairs? It would make navigating much nicer when you have explored that level and just want to pass through it. Someone would argue that it makes too easy to advance, but that's not correct. The level difficulty should be determining that. In other words you can't just rush into places without getting killed by powerful monsters.&lt;br /&gt;&lt;br /&gt;JADE is a nice game, because it shows how &lt;i&gt;not&lt;/i&gt; to do things. It's constantly reminding what is bad game design.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-2977404890514599717?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/2977404890514599717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/07/idea-about-stairs.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2977404890514599717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2977404890514599717'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/07/idea-about-stairs.html' title='An idea about stairs'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-5971519254235520637</id><published>2011-07-06T03:41:00.000-07:00</published><updated>2011-07-06T03:42:12.541-07:00</updated><title type='text'>Digging - object specials</title><content type='html'>It was premature to say that digging objects was going to be easy. Sure, most cases can be handled with Damage that simply causes blunt force damage to the object, but there are plenty of special cases that need plain old source code in each object type's Dig virtual function. Let's take an example: when digging a pit there can be a tree in that tile. You can't dig a pit there and you can't cut the tree. I've made a special case that tells the roots of the tree prevents digging. Other option would be cause damage to tree until it falls, possibly damaging the player if he gets hit by it.&lt;br /&gt;&lt;br /&gt;There are surprisingly big number of special cases related to digging, so it's somewhat slow progress when programming that stuff in virtual functions. Nice thing is that I have those special cases in the old switch-case function for digging, so I can extract messages and such from them. But in many cases I have to re-write stuff, because game objects work different way than old terrain based object tiles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-5971519254235520637?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/5971519254235520637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/07/digging-object-specials.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5971519254235520637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5971519254235520637'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/07/digging-object-specials.html' title='Digging - object specials'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-7938761967908038024</id><published>2011-06-26T03:54:00.000-07:00</published><updated>2011-06-26T03:56:04.981-07:00</updated><title type='text'>Digging into digging</title><content type='html'>Digging routine is probably the most complicated of actions. There are actions for variety of floor and wall types, but also for all game objects. However it's now quite easy to handle game objects, because Damage can be used to generate simple "pick-axe" damage to objects, much like kicking does. Floors and walls (terrain) can produce different results, because there isn't just one floor type (like in Nethack for example). You can do all sorts of special stuff like digging on ice and fall through in icy water.&lt;br /&gt;&lt;br /&gt;With terrain tiles I had to create a test function that generates all terrain tiles and then just went on checking what happens when you dig each tile. That way I could clear the confusion caused by rather complicated data-driven approach... but I guess that's the best way to do things anyway: test everything you possibly can figure out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-7938761967908038024?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/7938761967908038024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/06/digging-into-digging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7938761967908038024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7938761967908038024'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/06/digging-into-digging.html' title='Digging into digging'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-7809392505061978548</id><published>2011-06-24T03:14:00.000-07:00</published><updated>2011-06-24T03:14:42.696-07:00</updated><title type='text'>LOC chart 2</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-MdtBhPafjG4/TgRiIaMP3HI/AAAAAAAAASk/HYBWJiMoZnI/s1600/locchart2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="164" src="http://2.bp.blogspot.com/-MdtBhPafjG4/TgRiIaMP3HI/AAAAAAAAASk/HYBWJiMoZnI/s320/locchart2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;When you start to add content it shows in LOC. Although the chart can look deceiving since there is only about 500 lines of code added. It could be more, because I'm in the process of moving old kicking and digging functionality into new data-driven code and then removing old commented out code. Both kicking and especially digging are full of content, because a lot of things can happen in those actions. The functionality shift from old code to new isn't easy, but I've managed to create a good flow with the current engine. The new code is already much better, because it's data-driven and if something is missing it's quite easy to fix later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-7809392505061978548?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/7809392505061978548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/06/loc-chart-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7809392505061978548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7809392505061978548'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/06/loc-chart-2.html' title='LOC chart 2'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-MdtBhPafjG4/TgRiIaMP3HI/AAAAAAAAASk/HYBWJiMoZnI/s72-c/locchart2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-1173186843688740088</id><published>2011-06-22T02:59:00.000-07:00</published><updated>2011-06-22T02:59:10.097-07:00</updated><title type='text'>Damage challenge</title><content type='html'>It looks pretty good with Damage and Kick, which is using Damage. The only exception will be combat, because it has to be handled with higher detail. Kicking objects makes them break! Although there is some minor adjusting left in the amount of damage, because you can break anything with one kick. The amount of damage is too much, which in return brings a question about the HP or condition value of a object. What should I do with that? Maybe linking that value to the size of the object is a good choice, because it's obvious that bigger objects can take more damage before breaking. But how about monsters?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-1173186843688740088?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/1173186843688740088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/06/damage-challenge.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1173186843688740088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1173186843688740088'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/06/damage-challenge.html' title='Damage challenge'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-7738133119284670749</id><published>2011-06-20T03:30:00.000-07:00</published><updated>2011-06-20T03:30:01.948-07:00</updated><title type='text'>Kicking ass</title><content type='html'>Sometimes virtual functions can reveal their bad side which is repeating code. After all virtual functions are a lot like switch-case in traditional C. I noticed that when re-factoring kicking for objects. Each object type has virtual Kick function, but it's starting to look like the data-driven style is kicking back with generic code that looks like it could be placed in one function. Good thing is that such function already exists, I just never thought it could be more generic. It's of course Damage, a routine that has caused a lot of pain to program.&lt;br /&gt;&lt;br /&gt;Sometimes I wonder why it took so long to "return" to this stage, where stuff begins to work like it should (for example kicking objects). Did I really spend six years refactoring the game engine?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-7738133119284670749?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/7738133119284670749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/06/kicking-ass.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7738133119284670749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7738133119284670749'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/06/kicking-ass.html' title='Kicking ass'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3712608135983895296</id><published>2011-06-17T02:32:00.000-07:00</published><updated>2011-06-17T02:32:57.297-07:00</updated><title type='text'>Constructing constructs</title><content type='html'>Constructs are one of the object type that are man-made. They too are still in early stage. However I was able to write light routines for lamps pretty fast. I even made a video in Youtube where I'm testing a lamp:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=g8Rdyw4Yp04"&gt;http://www.youtube.com/watch?v=g8Rdyw4Yp04&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Meanwhile Visual Studio and Opera started to act strange. There seems to be some trouble with menus which are aligned to left in the main level of menus:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-WV38MPSoCEM/TfseikC-FkI/AAAAAAAAASg/HlPM3qNjqag/s1600/visualbug.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="296" src="http://1.bp.blogspot.com/-WV38MPSoCEM/TfseikC-FkI/AAAAAAAAASg/HlPM3qNjqag/s320/visualbug.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I don't know what's the problem, but I think it came with Windows 7 SP1, I guess. Or maybe some setting has been changed somewhere. It's not a big deal, but these modern operating systems, you know.. They are so complicated that can't even keep setting like this.&lt;br /&gt;&lt;br /&gt;I try to continue with constructs. Some graphic tiles need to be made and start to look at different actions like what happens if you kick 'em.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3712608135983895296?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3712608135983895296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/06/constructing-constructs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3712608135983895296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3712608135983895296'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/06/constructing-constructs.html' title='Constructing constructs'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-WV38MPSoCEM/TfseikC-FkI/AAAAAAAAASg/HlPM3qNjqag/s72-c/visualbug.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3999281710064130138</id><published>2011-06-05T12:36:00.000-07:00</published><updated>2011-06-05T12:36:08.889-07:00</updated><title type='text'>Messages</title><content type='html'>Some good progress today. I managed to tweak a routine for messages that places messages in a list and displays them later. It might look like an obvious solution, but it wasn't that back then. However I was pretty glad that it didn't take too much refactoring, in fact both styles work at the same time. I guess it's going to take some testing to check out everything, but that's what the players are for;)&lt;br /&gt;&lt;br /&gt;I've been adding missing features and today I was able to program the container creation for item containers (bag, backpack, etc.) and also container routines for them, but that was pretty easy, because I copied the code from movable container. It has virtual functions and in places like this virtuals are cool. No need to re-factor anything, just add virtual routines for the class and that's it.&lt;br /&gt;&lt;br /&gt;Now that I have a youtube account (Kricex) I'm planning to create a video demo of Kaduria as soon as the gameplay looks like there is something playable there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3999281710064130138?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3999281710064130138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/06/messages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3999281710064130138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3999281710064130138'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/06/messages.html' title='Messages'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-6601248895350512030</id><published>2011-05-03T10:28:00.000-07:00</published><updated>2011-05-03T10:28:18.411-07:00</updated><title type='text'>LOC chart</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-uaqsjZ9K5TU/TcA6CRgb2bI/AAAAAAAAASc/pLIomLl8JCg/s1600/locchart.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="http://4.bp.blogspot.com/-uaqsjZ9K5TU/TcA6CRgb2bI/AAAAAAAAASc/pLIomLl8JCg/s320/locchart.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;What can happen in ten days of coding? Well, not much. But this chart clearly shows a refactoring event. The number of lines start to decrease, but once the refactoring is over you can see that last two days increase LOC. This means that there is need for new code and the project is not yet ready. How things will continue from here? How much the LOC will increase when the exciting data from next ten days is recorded? Stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-6601248895350512030?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/6601248895350512030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/05/loc-chart.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6601248895350512030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6601248895350512030'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/05/loc-chart.html' title='LOC chart'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-uaqsjZ9K5TU/TcA6CRgb2bI/AAAAAAAAASc/pLIomLl8JCg/s72-c/locchart.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-6234197716632930303</id><published>2011-05-02T10:27:00.000-07:00</published><updated>2011-05-02T10:27:35.759-07:00</updated><title type='text'>Doorplace search</title><content type='html'>This one is really giving me a constant headache. How to make sure that rooms are connected?&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-DJoVwDf-tnE/Tb7nqIGWIqI/AAAAAAAAASY/jXtloMRlMEA/s1600/cavegen2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-DJoVwDf-tnE/Tb7nqIGWIqI/AAAAAAAAASY/jXtloMRlMEA/s320/cavegen2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Rectangular rooms are quite ok, but round rooms are the worst. There is a small section, often one tile per facing, where the door can be made. If the corridor and doorplace don't cross it fails. Now, this is where I might try a routine that extends the corridors to find and clear the last couple of tiles. There might be couple of ways to do that, but I think starting from the first tile next to doorplace and then searching with a pathfinder. You can't possibly go wrong with that. Well, unless the room is completely surrounded by other rooms. That's when you need to crash through the room walls to another room.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-6234197716632930303?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/6234197716632930303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/05/doorplace-search.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6234197716632930303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6234197716632930303'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/05/doorplace-search.html' title='Doorplace search'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-DJoVwDf-tnE/Tb7nqIGWIqI/AAAAAAAAASY/jXtloMRlMEA/s72-c/cavegen2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-4974068950377271881</id><published>2011-04-30T05:27:00.000-07:00</published><updated>2011-04-30T05:27:42.241-07:00</updated><title type='text'>Bridge generation</title><content type='html'>Finished automap tile data refactoring for all objects that had automap tiles. Some new tiles are required for new objects.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-xJsG9ORgUb0/Tbv_RQRDA5I/AAAAAAAAASU/umMUkRQlOuM/s1600/bridgelogic.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-xJsG9ORgUb0/Tbv_RQRDA5I/AAAAAAAAASU/umMUkRQlOuM/s320/bridgelogic.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Now when I can see ground objects from the automap I noticed that bridges need more logic in the creation. In that screenshot most bridges lead to "nowhere" in small area of the level and some are generated right next to each other. This one should be quite easy to fix, just check out the sides of the bridge and also what's in the direction of the bridge. Those green spots by the way are the old bush tiles. I found out that there already was 50 automap tiles for ground objects. I did remember them, but they were in a separate tileset that was not loaded until now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-4974068950377271881?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/4974068950377271881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/04/bridge-generation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4974068950377271881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4974068950377271881'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/04/bridge-generation.html' title='Bridge generation'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-xJsG9ORgUb0/Tbv_RQRDA5I/AAAAAAAAASU/umMUkRQlOuM/s72-c/bridgelogic.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-6536323576521109479</id><published>2011-04-29T10:27:00.000-07:00</published><updated>2011-04-29T10:28:27.668-07:00</updated><title type='text'>Cave generation</title><content type='html'>With the current version of cave generation I'm letting rooms connect to walls of another room. I'm hoping that by allowing this it's possible to create almost town-like dungeons just by creating lots of rooms in a small space.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-5fD6DDjvAwA/TbrztILKJcI/AAAAAAAAASQ/aaKLiyepv7E/s1600/cavegen.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="319" src="http://3.bp.blogspot.com/-5fD6DDjvAwA/TbrztILKJcI/AAAAAAAAASQ/aaKLiyepv7E/s320/cavegen.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This is a section of a cave theme level view in automap. Those green spots are bushes... it's a start of more generic plant generation, no other than bushes are generated at the moment, but it will be a jungle when there are more plants. It's all getting back slowly. Rooms, corridors, stuff like that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-6536323576521109479?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/6536323576521109479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/04/cave-generation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6536323576521109479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6536323576521109479'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/04/cave-generation.html' title='Cave generation'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-5fD6DDjvAwA/TbrztILKJcI/AAAAAAAAASQ/aaKLiyepv7E/s72-c/cavegen.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-2550812685724075869</id><published>2011-04-29T03:56:00.000-07:00</published><updated>2011-04-29T03:59:20.054-07:00</updated><title type='text'>Room creation returns</title><content type='html'>I had the room creation switched off for a while, because I was re-inventing the wheel in how the rooms should be placed.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-GjjzbWIhQsI/TbqYKSumd7I/AAAAAAAAASM/kXgUOZ2bXvU/s1600/island.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-GjjzbWIhQsI/TbqYKSumd7I/AAAAAAAAASM/kXgUOZ2bXvU/s1600/island.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The first thing I noticed was this. It's what we professionals call "island creation". Two systems are created separately and don't connect to each other. In this case caverns and dwarf-made rooms. Well, I guess this could be quite easy to fix, maybe check out if connection was made and if not, use a connecting corridor from one of the rooms or corridor tiles. I think a corridor will usually cross a cavern area, but things like this will happen sometimes.&lt;br /&gt;&lt;br /&gt;By the way, I still have to figure out how to prevent corridors meeting a room at sharp corners, creating impossible situation for entrance/door creation. Yes, I know, this is something that I have worked on for a while...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-2550812685724075869?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/2550812685724075869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/04/room-creation-returns.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2550812685724075869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2550812685724075869'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/04/room-creation-returns.html' title='Room creation returns'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-GjjzbWIhQsI/TbqYKSumd7I/AAAAAAAAASM/kXgUOZ2bXvU/s72-c/island.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-7694785149594678146</id><published>2011-04-20T07:52:00.000-07:00</published><updated>2011-04-20T07:55:51.284-07:00</updated><title type='text'>History of Kaduria</title><content type='html'>During the creation process I have started to form a history for Kaduria. It's loose and I don't know the exact details myself, but I'd like to tell something about it.&lt;br /&gt;&lt;br /&gt;As everyone knows Kaduria was constructed by dwarves, like Moria too. But that's only half true. In fact there was an older dungeon built by ancients. (You got to have ancients, because they are cool.) From this process there are still places and items left that are clearly something different than what dwarves made later. Then, who were the ancients? Were they elves or maybe dwarves that were more advanced in metal handling? Or could they have been humans? I like to keep that an open question.&lt;br /&gt;&lt;br /&gt;There were also two other ancients. First of them is well known and there are still people left from the tribe that once inhabitated a part of Kaduria. Then there were also a third kind of ancients, who possibly were the oldest of them all. They were the ones who built &lt;i&gt;the twilight gate&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;So there is lots of ancient crap to be discovered. Powerful weapons and treasures. Dwarves were not interested in searching the dungeon when they took over. For them Kaduria was a place of mining operations. They couldn't care less about the ancients or the junk that was hidden somewhere. But dwarves were concerned about the twilight gate and it was hidden by them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-7694785149594678146?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/7694785149594678146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/04/history-of-kaduria.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7694785149594678146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7694785149594678146'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/04/history-of-kaduria.html' title='History of Kaduria'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3248855387764112442</id><published>2011-04-19T05:39:00.000-07:00</published><updated>2011-04-19T05:39:20.953-07:00</updated><title type='text'>Lines</title><content type='html'>I think it could be interesting to start tracking the LOC count from each day I'm programming Kaduria. The current LOC is 40 609 which includes everything like comment lines. When I get ten days of data I'm going to make a graphical summary and post it as a blog entry. It will blow minds.&lt;br /&gt;&lt;br /&gt;In the latest ADOM blog entry Thomas Biskup wrote that ADOM has 150 000 lines of code. That's crazy! It's over three times bigger than Kaduria. And not just that, I seriously doubt that Kaduria will ever be much over 50 000 LOC. But then again, Kaduria will be a simple farming simulator and not a real roguelike game anyway.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3248855387764112442?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3248855387764112442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/04/lines.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3248855387764112442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3248855387764112442'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/04/lines.html' title='Lines'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-4442770257816476937</id><published>2011-03-27T09:14:00.000-07:00</published><updated>2011-03-27T09:15:30.381-07:00</updated><title type='text'>Brick Atelier development</title><content type='html'>Well, now it's time to continue Brick Atelier (former Stile), a sprite editor made for Kaduria. The thing is that I'm using it to draw all tiles and it's missing a key feature: import. I need that for some tiles. I haven't touched BA since last year so time is really flying fast. I had a new idea how to refactor the user interface. It's a needed feature for the release of new version. I don't mind about GUI elements getting in weird places but it's better to fix that for actual release. BA has 10490 lines of code so it's actually quite large project. The main reason for the large size is the custom GUI I made myself. Only the Windows file dialog is not a part of the custom GUI.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-4442770257816476937?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/4442770257816476937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/03/brick-atelier-development.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4442770257816476937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4442770257816476937'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/03/brick-atelier-development.html' title='Brick Atelier development'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-4718334799566554391</id><published>2011-03-26T02:30:00.000-07:00</published><updated>2011-03-26T02:31:20.720-07:00</updated><title type='text'>Feature days</title><content type='html'>I try to fix one feature or bug per day. It's a lot for the recent development speed. Oh, Duke Nukem Forever is delayed which is "good" news since I "promised" one level demo (or something) released at the same time when Duke gets out. But I somehow know it's not going to happen. I mean the release of Kaduria's demo.&lt;br /&gt;&lt;br /&gt;Things look better now though. It feels like everything I do now is solid, something that doesn't need refactoring later. It feels almost sad to say that after 453 years of development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-4718334799566554391?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/4718334799566554391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/03/feature-days.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4718334799566554391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4718334799566554391'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/03/feature-days.html' title='Feature days'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-7424808318898392007</id><published>2011-03-14T03:10:00.000-07:00</published><updated>2011-03-14T03:12:08.188-07:00</updated><title type='text'>The pit problem</title><content type='html'>A pit in two-dimensional game can produce unwanted logic problems. It's lower than ground level so there should be support for third dimension. But sometimes there isn't and that's the problem in Kaduria. Let's say you push a boulder in the pit. That's easy. What happens if there is something in the pit already, like another boulder or a monster? They don't fit in the same pit, but there is no way to put the boulder on top of anything, because there isn't support for third dimension.&lt;br /&gt;&lt;br /&gt;I guess it's time to add that support. I really tried to go with only two dimensions, but it's impossible with the level of complexity Kaduria has.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-7424808318898392007?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/7424808318898392007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/03/pit-problem.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7424808318898392007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7424808318898392007'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/03/pit-problem.html' title='The pit problem'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3212579255891171896</id><published>2011-02-23T03:05:00.000-08:00</published><updated>2011-02-23T03:09:24.693-08:00</updated><title type='text'>Notes</title><content type='html'>Been fixing some difficult parts in the source code marked with note: comment. The overall development is also getting faster all the time. It looks like I have passed the obstacle of not knowing what to do. I have concentrated on dungeon generation to get it ready. The main idea of the generation is first create simple structure and then decorate it with automatic stuff like plant growth and decay. I'm quite happy with the current speed of development, it really feels like something is happening and I just have to fit some pieces in the right places to get this game ready for first 0.0.1 alpha.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3212579255891171896?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3212579255891171896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/02/notes.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3212579255891171896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3212579255891171896'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/02/notes.html' title='Notes'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-1314113653217113833</id><published>2011-02-09T02:23:00.000-08:00</published><updated>2011-02-09T02:23:23.806-08:00</updated><title type='text'>Journey onward</title><content type='html'>About a week ago I got a second flu. This one was easier and I'm getting better, but I have been sick for month and a half! Today I tried to continue Kaduria, but it seems to get more difficult all the time. The source is full of problems that need to be fixed, but many of them are scattered and need fixes in many places and I'm always confused about how to fix problems that are like that. Then there are "impossible" features like sleeping. For some reason I wanted to show a graphical camping scene when sleeping, but it's just impossible, because monsters are moving and when they move the gameview is updated... maybe if there was a possibility to check the sleeping in one place before updating anything then it would be possible. But I think I'm going to settle for easier solution and show only the gameview when the player is sleeping.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-1314113653217113833?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/1314113653217113833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/02/journey-onward.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1314113653217113833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1314113653217113833'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/02/journey-onward.html' title='Journey onward'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-5848548597925066960</id><published>2011-01-23T02:44:00.000-08:00</published><updated>2011-01-23T02:44:19.120-08:00</updated><title type='text'>Terrain refactor</title><content type='html'>It's funny how I have to fix the old school design yet to this day. I guess it was worse than I thought. I'm speaking of the terrain/object distinction. In the old model some terrain tiles were object-like and there were a lot of terrain tiles like that. In the new model objects and terrains are separated, leaving some basic terrain types. This doesn't sound too bad until you find out that every action routine must be rewritten, things like digging and kicking. I have found it hard to create a solid way to interact with the environment and limit the use of special case code.&lt;br /&gt;&lt;br /&gt;This is where data-driven approach will help, but it doesn't happen by itself. Also, it can be possible that you start to refactor the data-driven implementation to achieve more detailed system. I think my plan with plants was too detailed and I need to stick to basic stuff to get something done in reasonable amount of time.&lt;br /&gt;&lt;br /&gt;For a while I wasn't really sure what the hell I'm supposed to do next, but at least now I have this data-driven terrain system to create.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-5848548597925066960?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/5848548597925066960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2011/01/terrain-refactor.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5848548597925066960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5848548597925066960'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2011/01/terrain-refactor.html' title='Terrain refactor'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-655744470210592455</id><published>2010-12-25T06:09:00.000-08:00</published><updated>2010-12-25T06:09:58.596-08:00</updated><title type='text'>Searching</title><content type='html'>In order to search you need to have something hidden. Traps and doors are obvious... wait, doors aren't obvious. I have problems trying to figure out how to hide the door. Will it look like a wall? How is this wall tile handled, is it a normal terrain map wall? What happens if X happens to that wall (which isn't a door). Stuff like that.&lt;br /&gt;&lt;br /&gt;Then there is an issue with hidden items. At first they were in a special list in the level, but I realized that handling hidden items will be more logical when they are inside the object which is hiding them. So, in order to get hidden items feature I have to write (possibly) a virtual mechanism for them, adding another type of container for hidden items. It could be easy now when container ability is ready, but you never know.&lt;br /&gt;&lt;br /&gt;I'm also planning a data type for the search routine. It will continue the style I've been using in data-driven types. I have developed a certain kind of routine in programming for them so the data type will be quite easy to do, but it's always a matter of how it will be used in the rest of the source code. Programming data types for stuff like that may sound strange, but I'm always trying to reduce switch-case programming, because modular data types are so much easier to extend when you need to add something new, and they are also modular, meaning that when you get that module ready you can pretty much forget it and focus on other parts of the source code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-655744470210592455?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/655744470210592455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/12/searching.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/655744470210592455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/655744470210592455'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/12/searching.html' title='Searching'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3545863347767051071</id><published>2010-12-20T15:02:00.000-08:00</published><updated>2010-12-20T15:02:33.311-08:00</updated><title type='text'>Shamino kills the unexpected bug</title><content type='html'>I'm glad the bug was not in the debug message routine. It was a mismatched data type in printf-based routine. The printf mismatch is one of the bug types that even VC's debugger doesn't catch that well, because it's inside the printf implementation and will corrupt memory, but the debugger was close enough.&lt;br /&gt;&lt;br /&gt;Some time ago I was writing about "note:" comments. I've been slowly fixing them and the count is now 31. Those parts are actually quite important, because every unfinished feature or unfixed bug is delaying the project, especially when you don't know exactly how to handle them. It's not clever to leave them to be fixed later. I realize now that you need to attack the hard parts first and try to create some kind of solution, no matter how poor it may be at first.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3545863347767051071?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3545863347767051071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/12/shamino-kills-unexpected-bug.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3545863347767051071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3545863347767051071'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/12/shamino-kills-unexpected-bug.html' title='Shamino kills the unexpected bug'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-8010576698428595998</id><published>2010-12-19T13:19:00.000-08:00</published><updated>2010-12-19T13:19:51.036-08:00</updated><title type='text'>The unexpected bug attacks Shamino</title><content type='html'>I was refactoring combat, but it's hard because the debug message routine has a bug:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ilDjn0PWliA/TQ52Fz21hII/AAAAAAAAAPA/IlL8DUYYOYg/s1600/attack.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="236" src="http://1.bp.blogspot.com/_ilDjn0PWliA/TQ52Fz21hII/AAAAAAAAAPA/IlL8DUYYOYg/s320/attack.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This really sucks... Let's hope it's something simple. Now when I'm looking at my old combat routines they have all sorts of funny mistakes and I guess it's going to be better soon. Getting the basic combat ready is going to make testing more interesting anyway.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-8010576698428595998?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/8010576698428595998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/12/unexpected-bug-attacks-shamino.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8010576698428595998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8010576698428595998'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/12/unexpected-bug-attacks-shamino.html' title='The unexpected bug attacks Shamino'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ilDjn0PWliA/TQ52Fz21hII/AAAAAAAAAPA/IlL8DUYYOYg/s72-c/attack.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-1805740662780009723</id><published>2010-12-13T10:25:00.000-08:00</published><updated>2010-12-13T10:25:02.292-08:00</updated><title type='text'>I have to do something</title><content type='html'>It looks like I have to... plan. Yes, I'm afraid things are that bad. The target of planning is the AI flow: how creatures make decisions. I want the AI to be fairly complex, but not too scientific which I don't know how to implement anyway. I believe it's quite easy to fake AI that makes creatures look like as if they were thinking what to do next. The key is random (or different) choices in strategic points to remove deterministic AI that makes everything predictable.&lt;br /&gt;&lt;br /&gt;I have been programming tools to follow what kind of decisions creatures make, but the actual determining code could be planned with flow chart. I don't do flow charts that much, but I think it's time to try. I think the difficulty becomes from many different kind of AI units for each main type of monster. I don't want all monsters just chase the player, I want monsters with different kind of plans and even enemies other than the player.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-1805740662780009723?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/1805740662780009723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/12/i-have-to-do-something.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1805740662780009723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1805740662780009723'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/12/i-have-to-do-something.html' title='I have to do something'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-4961161377945861879</id><published>2010-12-03T07:24:00.000-08:00</published><updated>2010-12-03T07:24:25.725-08:00</updated><title type='text'>Rooms again</title><content type='html'>I left plants for a while and returned to room problems. Back in January 2009 I was writing about connecting the interior and room structure in the same class. Well, it was something like a mistake. Now I realized that it could be easier to start with basic &lt;i&gt;shape&lt;/i&gt; of the room, then add wall and floor data (room data in general) and then create the interior when everything else is done. Without that there would have been room types for all shapes and interior types for no particular reason, creating a long list of data for all possible combinations.&lt;br /&gt;&lt;br /&gt;I also have had problems to create and connect the rooms, but I think I have a plan for that finally. I will let rooms be created in any place possible other than overlapping the room floors with another room. Then work out connections either by creating holes on walls or using corridors. I have already planned how corridors would always work perfectly without ruining the room structure, but at the moment it's only a theory.&lt;br /&gt;&lt;br /&gt;I have found room placement so hard to do that I actually made the dungeon levels work entirely without rooms, using natural caves as the base of dungeon generation. Rooms are actually something extra carved to natural caves and it even feels realistic.&lt;br /&gt;&lt;br /&gt;Let's hope everything will work this time. I don't want to look back in 2012 and say I was wrong (still refactoring the room and corridor generation).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-4961161377945861879?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/4961161377945861879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/12/rooms-again.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4961161377945861879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4961161377945861879'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/12/rooms-again.html' title='Rooms again'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-8184753917312163943</id><published>2010-11-29T04:28:00.000-08:00</published><updated>2010-11-29T04:30:10.091-08:00</updated><title type='text'>Fertility factor</title><content type='html'>I made a simple routine to simulate ground plant growth. It's calculating the fertility factor for surrounding tiles and then growing a plant or if some type of growth exists it's growing it to the next stage. The result from such simple simulation is actually quite nice. Here is the situation after one iteration:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ilDjn0PWliA/TPOa8xGo_tI/AAAAAAAAAO4/dNn2Hd_gv0c/s1600/fertility1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://3.bp.blogspot.com/_ilDjn0PWliA/TPOa8xGo_tI/AAAAAAAAAO4/dNn2Hd_gv0c/s320/fertility1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And this is the same place after ten iterations:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_ilDjn0PWliA/TPObIF68pxI/AAAAAAAAAO8/ZaogAf81RIA/s1600/fertility2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://2.bp.blogspot.com/_ilDjn0PWliA/TPObIF68pxI/AAAAAAAAAO8/ZaogAf81RIA/s320/fertility2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As you can see water gives better fertility factor in pretty much natural way. Now after this is done I can start to implement the plant&lt;i&gt; object&lt;/i&gt; generation (these are just simple terrain tiles) on top of that. The great thing about this is that the routine can be run again and again. With large values everything will change to thick swamp, and with plant generation I'm already dreaming of forests that will be properly tuned for temperature conditions, creating jungle or cold/dry climate forest. All that without any kind of static or pre-determined routines. Just some rules for growth and iterations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-8184753917312163943?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/8184753917312163943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/11/fertility-factor.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8184753917312163943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8184753917312163943'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/11/fertility-factor.html' title='Fertility factor'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ilDjn0PWliA/TPOa8xGo_tI/AAAAAAAAAO4/dNn2Hd_gv0c/s72-c/fertility1.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3539204990940799878</id><published>2010-11-26T03:14:00.000-08:00</published><updated>2010-11-26T03:14:40.085-08:00</updated><title type='text'>Bugs of Kaduria</title><content type='html'>The current version 0.4.9 has three known open bugs:&lt;br /&gt;&lt;br /&gt;16. When throwing item against a wall, it hits the player (z-location problem in collision detection)&lt;br /&gt;13. Top area flickering when message shown&lt;br /&gt;3. When in fullscreen SDL aligns all open windows to right side of screen (remove fullscreen option?)&lt;br /&gt;&lt;br /&gt;Each of them are kind of hard to fix. Z-location problem is related to how the game sees the z-direction (depth) and it's an issue that needs either manual fixing or a big rewrite of engine to actually support third dimension (even the gameview will stay 2-dimensional). Bug #13 is annoying, but could be easy to fix. Bug #3 is SDL related and can't be fixed by me. I noticed that when I exit fullscreen every open window is moved to right side of the screen. I hope there will be new SDL version to fix that one.&lt;br /&gt;&lt;br /&gt;The total bug count is 28 for 0.4.9. I try to fix bugs when I find them and keep the bug count low. The release version will hopefully contain zero known bugs, just as in Teemu. I think it's doable and the current situation looks quite good. The engine seems to be stable and there haven't been crashes for a long time actually.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3539204990940799878?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3539204990940799878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/11/bugs-of-kaduria.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3539204990940799878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3539204990940799878'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/11/bugs-of-kaduria.html' title='Bugs of Kaduria'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-8153100621491702280</id><published>2010-11-05T00:14:00.000-07:00</published><updated>2010-11-05T00:16:38.522-07:00</updated><title type='text'>Level connections</title><content type='html'>The level connection routine is now ready. There was a confusion with connecting proper ids since stairs (or more like nodes) have their own special id unrelated to object id of stairs.&lt;br /&gt;&lt;br /&gt;Each stairs have a sign that shows where you are now, but I think it could be useful to show where the stairs lead. Maybe even both in the same sign. There could be some variations like unclear signs or no sign at all with special stairs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-8153100621491702280?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/8153100621491702280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/11/level-connections.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8153100621491702280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8153100621491702280'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/11/level-connections.html' title='Level connections'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-4779997963416233974</id><published>2010-10-30T02:05:00.000-07:00</published><updated>2010-10-30T02:05:18.307-07:00</updated><title type='text'>Guess what?</title><content type='html'>Yes, I'm writing a spawner for Kaduria, too. This time I'll start from plant spawner, because it's really closely related to terrain types and possibly adding level temperature/humidity as filtering factors. Kaduria also has static lists for object creation and it's horrible, although I noticed the problem way back and never actually wrote a complete generator code for game objects. The spawner will make much easier to add things like plants and then see how the generator automatically picks them up in the level generation. The amount of work to achieve that is however much greater than in Teemu. This is going to be a hard weekend...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-4779997963416233974?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/4779997963416233974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/10/guess-what.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4779997963416233974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4779997963416233974'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/10/guess-what.html' title='Guess what?'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-8463441937172542046</id><published>2010-10-16T08:33:00.000-07:00</published><updated>2010-10-16T08:33:11.176-07:00</updated><title type='text'>Weekend warrior</title><content type='html'>Looks like I'm aiming at weekends with Kaduria's development. I was supposed to do that terrain refactoring last weekend already. Anyway, I programmed from around 9:00 to 18:00 with some breaks. It was just as I planned, the environment action class was removed and data from that moved to terrain main type which now has more data also from the actual terrain type class. Since terrains have simple types their data could be concentrated on main type class. For instance one of the main types is Wall and it's the only terrain type that both blocks visibility and moving, so it's easier to move that data in main type containing only basic types of terrains. This is the style I'm using with monsters and items also. Otherwise you would need to write more data for individual monster or item type. If you can generalize data to basic types it's better and makes editing of data much easier.&lt;br /&gt;&lt;br /&gt;With simple basic structures it's harder to get them wrong. Basic type data is like a solid foundation on which you can build more complex data and actions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-8463441937172542046?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/8463441937172542046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/10/weekend-warrior.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8463441937172542046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8463441937172542046'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/10/weekend-warrior.html' title='Weekend warrior'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3689963890575519473</id><published>2010-10-09T10:47:00.000-07:00</published><updated>2010-10-09T10:47:41.872-07:00</updated><title type='text'>Environmental thinking</title><content type='html'>Terrain data needs to be refactored, because there are duplicated stuff for it. I probably need only main type for terrains and data associated to different things related to terrain actions. Terrain part has been difficult in Kaduria, because terrains used to be a lot more complex. Now they are just piece of dirt or water etc. But you can't underestimate the complexity of terrain actions since they play such a big role in the gameplay.&lt;br /&gt;&lt;br /&gt;If I ever make another roguelike of this magnitude I will certainly make terrain tiles objects that are derived from base class just like all other object types. That would have made things much easier from the beginning. The distinction between objects and terrains cause a lot of extra work.&lt;br /&gt;&lt;br /&gt;I need to clear the confusion in terrain part of the source code once and for all. I think it's good to start from the main type data and see what can be included in that, then move to terrain type class. I think this is the task for this weekend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3689963890575519473?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3689963890575519473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/10/environmental-thinking.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3689963890575519473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3689963890575519473'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/10/environmental-thinking.html' title='Environmental thinking'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-6687238307735893077</id><published>2010-10-03T02:16:00.000-07:00</published><updated>2010-10-03T02:16:48.565-07:00</updated><title type='text'>The cheese hits Shamino</title><content type='html'>That's the message I got when I threw a cheese while standing next to wall. So it's not yet there, but almost! I'm happy that I can now navigate through the dungeon, although the level saving doesn't work yet so the game is creating a new level every time. And rooms are taken off momentarily so it's only caverns and corridors.&lt;br /&gt;&lt;br /&gt;May sound funny, but I'm excited when I get simple things done like entering a new level or throwing an item. Well, "done" in a way that you can see something happen. The final routines are always much more complex but I'm not thinking about that now. I want to get simple working versions. When I get most of basic functions like throwing, kicking and basic combat I want to make a Youtube video from Kaduria's gameplay. I think that will give people some idea and prepare them for not being too disappointed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-6687238307735893077?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/6687238307735893077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/10/cheese-hits-shamino.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6687238307735893077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6687238307735893077'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/10/cheese-hits-shamino.html' title='The cheese hits Shamino'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-6550855881876433055</id><published>2010-09-25T10:34:00.000-07:00</published><updated>2010-09-25T10:41:07.042-07:00</updated><title type='text'>Level node connections</title><content type='html'>I now have a registered VS 2010 Express and it's cool. I really like the real time error check which shows errors in red underline. You don't have to compile the file to see obvious errors.&lt;br /&gt;&lt;br /&gt;I used same kind of level connection routine that I made for Teemu, but instead of connecting themes I used level nodes which I actually programmed earlier. I wasn't just sure how to do the connecting until now. It may sound odd, but this thing was bothering me for a long time and I was unable to navigate through the dungeon, but now it's quite close. I still have to write a complete save and load routines for Level class, because there is going to be only one level in memory. I made that kind of decision, because then I don't have to worry about the size of the dungeon which is going to be gigantic. Of course modern computers could in theory keep all levels in memory, but why stress the computer with that, when the game is going to use one level at a time anyway.&lt;br /&gt;&lt;br /&gt;I'm really happy with the current situation. The source code is becoming cleaner and I know what to do. Just wait and see, it's going to be an end of damerelling me about this game.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-6550855881876433055?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/6550855881876433055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/09/level-node-connections.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6550855881876433055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6550855881876433055'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/09/level-node-connections.html' title='Level node connections'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-4998686027839918029</id><published>2010-09-19T01:44:00.000-07:00</published><updated>2010-09-19T01:44:45.022-07:00</updated><title type='text'>Project recovered</title><content type='html'>I think I found all files of Kaduria. There were of course more than just tiles, like fonts and misc. graphics. I remember that there was external data only for the precalculated light maps. The latest source files were recovered from a single source, that was exciting. The previous sources were stored month earlier. I don't know what I was doing, but now I'm going to make backups to everywhere I can. I think the latest source was really the latest and I don't have to do anything again, like I have to do with Stile where I was able to recover only the release version (0.82) sources while I had continued it later.&lt;br /&gt;&lt;br /&gt;Now I have to wait what happens with VC++ registering which failed, because M$ registering message doesn't get through. They should fucking mail it as a real paper letter. I just need the registering code. Meanwhile I installed Code::Blocks but it's a temporary solution. It's a beta/alpha project and even years older DevC++ seems to be more stable. One of the great mysteries is why they didn't continue the development of DevC++? Just couple of tweaks (better search options like 'find by reference' and internal book keeping of source files) and it would be a great IDE. What the hell&amp;nbsp; have the developers been doing all these years?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-4998686027839918029?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/4998686027839918029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/09/project-recovered.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4998686027839918029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4998686027839918029'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/09/project-recovered.html' title='Project recovered'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-1987492109674391911</id><published>2010-09-12T22:33:00.000-07:00</published><updated>2010-09-12T22:33:20.857-07:00</updated><title type='text'>Tiles recovered</title><content type='html'>I always make backups from the source code, but in case of Kaduria I didn't make frequent backups from tiles unless I changed them. Luckily I had just recently copied all tiles on my workplace's computer for some minor adjustments so the latest tile set was recoved from there. Also, I didn't make backups from static data, but that also remained unchanged and can be found from somewhere, I think...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-1987492109674391911?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/1987492109674391911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/09/tiles-recovered.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1987492109674391911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1987492109674391911'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/09/tiles-recovered.html' title='Tiles recovered'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-5085412193355439947</id><published>2010-09-08T23:28:00.000-07:00</published><updated>2010-09-08T23:28:36.120-07:00</updated><title type='text'>A promise</title><content type='html'>Some time ago I promised to wear a hat (possibly funny one) for a period of month if Duke Nukem Forever is released before the first playable demo of Kaduria. There is still time since DNF is planned to be released in 2011, but I can't imagine that a &lt;i&gt;good&lt;/i&gt; playable demo of Kaduria could be possible. I would hate to release some tech demo just showing some stuff, but then again I don't have anything else ready! It wouldn't matter. Nothing matters.&lt;br /&gt;&lt;br /&gt;Actually I think this "race" is good for development, because I'm now concentrating on actual features rather than tweaking some part of the engine.&lt;br /&gt;&lt;br /&gt;Maybe there could be a special rule: if DNF sucks then I don't have to wear a hat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-5085412193355439947?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/5085412193355439947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/09/promise.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5085412193355439947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5085412193355439947'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/09/promise.html' title='A promise'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-558250156208607142</id><published>2010-09-06T03:57:00.000-07:00</published><updated>2010-09-06T03:57:10.078-07:00</updated><title type='text'>Refactoring dungeon generator</title><content type='html'>I have a new idea how to create good navigation options in the dungeon layout. Navigation logic is important when you create something more sophisticated than just random rooms. I'm also starting to have an idea how to combine all types of dungeon features seamlessly together. Not all features are needed in all level thems so it must be possible to remove a feature without confusing the level generator.&lt;br /&gt;&lt;br /&gt;When I get that working it's time to add plants which are the next logical step in the dungeon generation. I already created a system for plants that are used both in creation and real time plant reproduction. The idea is let plants grow and take their place, possibly struggling with other plants. Light conditions and the type of soil would affect the plant growth. I'm interested to see if it actually works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-558250156208607142?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/558250156208607142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/09/refactoring-dungeon-generator.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/558250156208607142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/558250156208607142'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/09/refactoring-dungeon-generator.html' title='Refactoring dungeon generator'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-818877131955841161</id><published>2010-08-21T01:10:00.000-07:00</published><updated>2010-08-21T01:12:01.632-07:00</updated><title type='text'>Load and save</title><content type='html'>Now when Actor class is refactored out I can continue writing save and load routines. Most of object types already can save and load, but some of them still missing. I'm using my world famous Tar_Ball system (developed for Teemu) in save/load. It's not beautiful, but it gets the job done.&lt;br /&gt;&lt;br /&gt;The big question remains whether to save per level or keep all levels in memory. Kaduria is going to be a graphical roguelike for modern computers which can handle the memory requirements, but then again it could be cool to keep memory use low. Levels are active one at a time so there would be no need to store all levels at once anyway. Saving a level for first time is revealing, it can be estimated there how much memory one level spends.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-818877131955841161?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/818877131955841161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/08/load-and-save.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/818877131955841161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/818877131955841161'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/08/load-and-save.html' title='Load and save'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-7921019581184433716</id><published>2010-08-07T03:41:00.000-07:00</published><updated>2010-08-07T03:43:15.261-07:00</updated><title type='text'>Game object rewrite</title><content type='html'>Placing a wrapper class Actor between the base and derived classes was not that clever after all. I wanted to give Opener and Container ability to some object types through Actor, but as usual when something may seem like a good solution it turns out to have unexpected problems.&lt;br /&gt;&lt;br /&gt;The problem with Actor was that it didn't know about derived classes. In actions like opening something there is more involved than just the component data of Opener class. Different openers act different ways. So the rewrite is about removing Actor and moving Opener and Container classes as components of derived objects. With that approach you can't avoid copying code of virtual functions. Good thing is that the code is short, because of functionality of component classes. And more importantly you get to write individual opening code for each object type, checking out things that belong to the derived class.&lt;br /&gt;&lt;br /&gt;Like for instance there are doors and sewers, both openers. But sewer is really a different thing, because the lid can be missing! So, using virtual Open() for both door and sewer have same type of code for Opener section, but there are special things that only certain object types have. Also, when you have virtual Open() it's going to be easier to handle, because you can use the base class handle for opening action.&lt;br /&gt;&lt;br /&gt;I think the cost of using virtual functions is not that bad when compared to difficulties that follow with extra class in middle of the class hierarchy. I believe the rewrite can be done during this weekend, so it's not going be that hard, even though it is kind of a big change to the game object system.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-7921019581184433716?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/7921019581184433716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/08/game-object-rewrite.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7921019581184433716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7921019581184433716'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/08/game-object-rewrite.html' title='Game object rewrite'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-5056317062102822942</id><published>2010-07-24T01:53:00.000-07:00</published><updated>2010-07-24T01:54:30.214-07:00</updated><title type='text'>Abstract base class</title><content type='html'>So, I finally made the base class of game objects abstract by making Get_Weight() and Get_Material() abstract. There was no problem in instance issues, because the class was already used like an abstract one. But I was surprised how many member functions of Get_Weight and Get_Material were missing from derived classes. Usually it's ok, because you just return some generic value for weight and material, but in this case the values were not good. You need the proper values from each object type. It was really good change, because at the same time I wrote missing data for some object types and now weight and material have correct (mostly) values for each object type.&lt;br /&gt;&lt;br /&gt;The third essential value is size, but I have still problems to create a generic enough size table for objects. I decided to go with abstract sizes like small, huge, etc. instead of metric sizes. This was simply because it's incredibly time consuming and difficult to get (or imagine) proper metric sizes for objects. I can also use the size as least important factor in physics calculations, because I guess that's what it is in real life also.&lt;br /&gt;&lt;br /&gt;I really need to compose myself and get the fundamental object data ready for action.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-5056317062102822942?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/5056317062102822942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/07/abstract-base-class.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5056317062102822942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5056317062102822942'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/07/abstract-base-class.html' title='Abstract base class'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-1659862124308686001</id><published>2010-06-13T10:37:00.000-07:00</published><updated>2010-06-13T10:40:08.639-07:00</updated><title type='text'>Convergence</title><content type='html'>Sometimes I think about the creation of roguelikes and why it is so difficult to make major roguelikes. There are at least two different ways of development. The first one is most commonly used where you start to add gameplay content and features while just making them work. The development is fast, but later there can be a lot of problems when the game becomes larger. The second is more theoretic approach where a generic engine is thought to process data and produce the game. The problem is that not only you have to struggle with the engine you also need to &lt;i&gt;create&lt;/i&gt; the gameplay content, no matter how sophisticated the engine is in handling of the content.&lt;br /&gt;&lt;br /&gt;In my long journey of development I have finally come to a conclusion that combining these both is the proper way to do things. If you go too deep in theoretic engine programming, you'll never get any real gameplay done. It's possible to create a major roguelike with the first way, but it usually leads to a source code which is hard to manage and extend. Major roguelikes are the living proof of that, most notably Nethack which has not been updated in several years. If you look at the source code you can see why.&lt;br /&gt;&lt;br /&gt;So in programming it's also good that you don't go in extremes. The goal where things meet should be the game itself always.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-1659862124308686001?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/1659862124308686001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/06/convergence.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1659862124308686001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1659862124308686001'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/06/convergence.html' title='Convergence'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-4425217776528549361</id><published>2010-06-05T04:17:00.000-07:00</published><updated>2010-06-05T04:18:39.705-07:00</updated><title type='text'>Level node connections</title><content type='html'>I had planned the structure of the game world on paper (that was a while ago) and finally wrote the data for level node connections. It took about one hour. It's not that the game world of Kaduria is big, it's actually not, but there were some number of level themes to connect so it didn't happen fast. It's not over though for the connections. I still have to write the actual entrance creation code based on that data. It's not easy, because there are special entrance types that need to be there in the level theme. I'm not talking about the stairs itself, but the places stairs or other entrance types are sometimes hidden.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-4425217776528549361?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/4425217776528549361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/06/level-node-connections.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4425217776528549361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4425217776528549361'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/06/level-node-connections.html' title='Level node connections'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-7708202481480124999</id><published>2010-05-30T04:53:00.000-07:00</published><updated>2010-05-30T04:57:25.075-07:00</updated><title type='text'>Save and load</title><content type='html'>Implementing save and load routines for the level. I want to be able to move around in the dungeon and can't do that until the level can be saved and loaded, because there&amp;nbsp; is only one level in memory at a time. Reason for that is probably just my old fashioned thinking, but then again one level of Kaduria takes surprisingly lot of memory. I want to keep the memory footprint small just in case.&lt;br /&gt;&lt;br /&gt;Programming save and load for Kaduria is more difficult than in Teemu, but I'm actually using Tar_Ball technology I made for Teemu. It might be ugly, but it's working and I have it ready for action. Someone might argue that I should use "real" serialization, but I want to keep some kind of control in save/load so I know exactly what goes in and out, and when.&lt;br /&gt;&lt;br /&gt;To keep things simple I really need that initialization in U_Actor's constructor I was talking about earlier. It's really easier to properly initialize the object so you can then load the values, rather than go too shallow end in the class hierarchy. U_Actor is going to keep me busy for couple of days, then there are derived classes like monster, item and the player's class.&lt;br /&gt;&lt;br /&gt;Other than object data should be a lot easier to save and load. I'm really happy if I can make this all in let's say three days or something like that. Then I can navigate through the dungeon and see how it looks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-7708202481480124999?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/7708202481480124999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/05/save-and-load.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7708202481480124999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7708202481480124999'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/05/save-and-load.html' title='Save and load'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-4205430191944191921</id><published>2010-05-22T09:37:00.000-07:00</published><updated>2010-05-22T09:37:27.580-07:00</updated><title type='text'>Creator</title><content type='html'>Started to detach terrain generation from the Level class itself. It was about time, because Level was getting kind of large class and the creation can be detached from it, since it's no longer needed when it's done. The creation of objects however stays inside Level, it's easier that way. New class Creator only takes terrain map and level theme as pointers to know what and where to create.&lt;br /&gt;&lt;br /&gt;The development of Kaduria in general is proceeding well I think. The problems are in the usual places: dungeon generation and game objects. You can keep tweaking them like forever.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-4205430191944191921?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/4205430191944191921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/05/creator.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4205430191944191921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4205430191944191921'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/05/creator.html' title='Creator'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-479843390204947753</id><published>2010-05-15T01:37:00.000-07:00</published><updated>2010-05-15T01:37:06.749-07:00</updated><title type='text'>Stuff</title><content type='html'>After taking some distance to Kaduria and now returning to it I can see all kind of problems with the class hierarchy. There is stuff in wrong places. In general there is a lot of stuff in Kaduria and it has to be arranged.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-479843390204947753?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/479843390204947753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/05/stuff.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/479843390204947753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/479843390204947753'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/05/stuff.html' title='Stuff'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-413245492265751644</id><published>2010-04-09T08:14:00.000-07:00</published><updated>2010-04-09T08:14:42.275-07:00</updated><title type='text'>Small rooms</title><content type='html'>The problem with passages was that it had another bug that made the passage routine exit before it had reached the destination. Now it should work. Added more round rooms and small rooms. Now we're getting somewhere:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ilDjn0PWliA/S79DdBBxE6I/AAAAAAAAAOQ/o4s3Z1IZN1I/s1600/snowtopmap3.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_ilDjn0PWliA/S79DdBBxE6I/AAAAAAAAAOQ/o4s3Z1IZN1I/s320/snowtopmap3.gif" /&gt;&lt;/a&gt;&lt;/div&gt;I think it's something I wanted, but it's going to have some stuff added before it's ready. The important thing now is fix the corridor routine between actual rooms. I have no clue how it works at the moment. It's supposed to connect closest rooms, but look at that long corridor made across the level. Not what was planned. Looks like the connecting logic is broken. Also looks like one of the room is left without connection.&lt;br /&gt;&lt;br /&gt;The connection logic is more complicated than it appears, because you can't just connect all rooms from one to another. It will create a messy web of corridors. It's better try to connect closest rooms and then create additional connections which connect every room together in some way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-413245492265751644?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/413245492265751644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/04/small-rooms.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/413245492265751644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/413245492265751644'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/04/small-rooms.html' title='Small rooms'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ilDjn0PWliA/S79DdBBxE6I/AAAAAAAAAOQ/o4s3Z1IZN1I/s72-c/snowtopmap3.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-5895665770314238108</id><published>2010-04-08T11:16:00.000-07:00</published><updated>2010-04-08T11:16:06.281-07:00</updated><title type='text'>Passages</title><content type='html'>The slowness of cavern creation was actually a bug in passage routine (a simple corridor). Also fixed small room bug that gave wrong locations for rooms, now they are created again. There is just one problem with passages:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_ilDjn0PWliA/S74ciK6-DJI/AAAAAAAAAOI/N35gM4_gDyo/s1600/snowtopmap2.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_ilDjn0PWliA/S74ciK6-DJI/AAAAAAAAAOI/N35gM4_gDyo/s320/snowtopmap2.gif" /&gt;&lt;/a&gt;&lt;/div&gt;A rogue passage not connected to main dungeon. You would think this kind of routine is easy to do, but it looks like you can fail in that. I mean how hard it is to draw corridors between caverns?&lt;br /&gt;&lt;br /&gt;Then there is that issue with round rooms and corridors that can't find a proper wall. Guess I need that pathfinding for corridors after all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-5895665770314238108?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/5895665770314238108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/04/passages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5895665770314238108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5895665770314238108'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/04/passages.html' title='Passages'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ilDjn0PWliA/S74ciK6-DJI/AAAAAAAAAOI/N35gM4_gDyo/s72-c/snowtopmap2.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-4337775051959505761</id><published>2010-04-06T10:15:00.000-07:00</published><updated>2010-04-06T10:15:36.899-07:00</updated><title type='text'>Caverns revisited</title><content type='html'>I'm refactoring cavern class to create more natural looking caverns. I tried to use Teemu's source code for that, but caverns in Kaduria are much bigger and needed other type of strategy. Then I noticed that I could use Area class to create caverns itself. It almost worked right away. The neat idea in flood filling was that I'm sometimes using 2x2 seeds to make the shape more irregular. Damn it's slow, but look at this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ilDjn0PWliA/S7trcRaR-fI/AAAAAAAAAOA/ilGQ7fQZWAE/s1600/snowtopmap.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_ilDjn0PWliA/S7trcRaR-fI/AAAAAAAAAOA/ilGQ7fQZWAE/s320/snowtopmap.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The round things are actual rooms added after caverns. They don't have corridors yet. The passage routine between caverns is actually buggy, but I guess it could look ok after small rooms (to be added later), because small rooms attach themselves in free areas just like those loose corridor ends. I like the result, although those long straight corridors don't look that good. Maybe this theme needs more caverns after all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-4337775051959505761?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/4337775051959505761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/04/caverns-revisited.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4337775051959505761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4337775051959505761'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/04/caverns-revisited.html' title='Caverns revisited'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ilDjn0PWliA/S7trcRaR-fI/AAAAAAAAAOA/ilGQ7fQZWAE/s72-c/snowtopmap.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-339373256886146925</id><published>2010-04-02T02:33:00.000-07:00</published><updated>2010-04-02T02:33:29.449-07:00</updated><title type='text'>Messages</title><content type='html'>The dungeon generator of Kaduria is such an entity that it's hard to keep it in condition. When something is changed the generator can go bananas. This is what I got today:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_ilDjn0PWliA/S7W4Se6I12I/AAAAAAAAAN4/l88N_iyUWAc/s1600/generator.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_ilDjn0PWliA/S7W4Se6I12I/AAAAAAAAAN4/l88N_iyUWAc/s320/generator.gif" /&gt;&lt;/a&gt;&lt;/div&gt;It's trying to create a room in bad location, but it can recover from that and doesn't crash. I've made the map routines check out of bounds internal so it can't fail that way, but there can be areas that are disconnected. There is still some serious stuff to do with corridors and how they are connected. Corridors are always the problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-339373256886146925?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/339373256886146925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/04/messages.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/339373256886146925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/339373256886146925'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/04/messages.html' title='Messages'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ilDjn0PWliA/S7W4Se6I12I/AAAAAAAAAN4/l88N_iyUWAc/s72-c/generator.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-5299534378829780795</id><published>2010-03-22T02:38:00.000-07:00</published><updated>2010-03-22T02:38:47.337-07:00</updated><title type='text'>Actors</title><content type='html'>Solved the init problem with Actor class by using late initialization in derived classes. Actor is in a middle of class chain and has no information of derived objects until they are initialized. I don't know how bad that is, but I can't see any other solution for this. You have to know more than Actor knows to determine which object type is a container or opener. One other solution could be pass that information as constructor's parameter, but it's pretty much the same.&lt;br /&gt;&lt;br /&gt;It's almost done now, the only thing missing is determine which monster types can carry items. It's already in monster data and for that I have to add one check to cover it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-5299534378829780795?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/5299534378829780795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/03/actors.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5299534378829780795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5299534378829780795'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/03/actors.html' title='Actors'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-7900154145484956309</id><published>2010-03-17T10:07:00.000-07:00</published><updated>2010-03-17T10:07:30.106-07:00</updated><title type='text'>Creatures</title><content type='html'>Lately been fixing artificial intelligence using data-driven building blocks. This is one of the areas that needs most work, because I had only basic moving for creatures in early versions. In fact I have disabled AI and creatures just sit there, waiting for the programmer to do something about them. I'm glad if I can fill all the missing information in about two weeks and then begin to write the executive AI routines that handle the vast archives of creature data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-7900154145484956309?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/7900154145484956309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/03/creatures.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7900154145484956309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/7900154145484956309'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/03/creatures.html' title='Creatures'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-1471434465255690588</id><published>2010-03-09T07:35:00.000-08:00</published><updated>2010-03-09T07:36:11.651-08:00</updated><title type='text'>Notes</title><content type='html'>I may have talked about this earlier, but I have special comments in the source code starting with word "note:". Those parts of source contain a problem I have left to solve later. There are now 74 notes. Most of them are hard to fix and today I pretty much fixed one of them, which involved adding stuff to Score class (which I was talking about in 2008 blog entry). Fixing "note:" problems is as important as anything else in the source code, but they have been difficult to handle, because of generic difficulty or that something is still missing, like serialization which I now can handle, thanks to important experience from Teemu's serialization.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-1471434465255690588?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/1471434465255690588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/03/notes.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1471434465255690588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/1471434465255690588'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/03/notes.html' title='Notes'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-2453124343932460414</id><published>2010-03-07T06:47:00.000-08:00</published><updated>2010-03-07T06:47:44.729-08:00</updated><title type='text'>Containers</title><content type='html'>It's almost month from last entry. I really feel I have now control over containers and there is not much to do with them anymore. Writing container code is hard, because of ownership issue which can be quite complicated in a large scale program. Well, actually it doesn't have to be complicated. I made the usual mistake with container class and tried to give it to too much responsibility. It's easy to think that giving class more functionality will make things easier, but it's not always the fact. It will work only if the class will&amp;nbsp; handle things that belong to it. Then it doesn't matter how simple or complex the class is.&lt;br /&gt;&lt;br /&gt;The annual 7DRL madness is going on, but I have my own battle with Kaduria. They can lose the battle and retreat, but I have to push onward to victory.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-2453124343932460414?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/2453124343932460414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/03/containers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2453124343932460414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2453124343932460414'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/03/containers.html' title='Containers'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-2247335055435076572</id><published>2010-02-16T01:52:00.000-08:00</published><updated>2010-02-16T01:54:37.214-08:00</updated><title type='text'>All your base</title><content type='html'>What I have found problematic is the relationship with base and derived classes. Deriving in general is something you need to learn to use properly. I think in many cases deriving is not needed at all, but with game object system of Kaduria I keep telling myself it's good. Well, if not for anything else then the complexity and size of source code, but &lt;i&gt;some&lt;/i&gt; of that comes from deriving itself. You need to manage more source code to cover all derived types.&lt;br /&gt;&lt;br /&gt;In Teemu I'm using one class for game objects with a type for monster and item. It's working surprisingly well, but then again the object system of Teemu is very simple. The way I'm using derived classes in Kaduria doesn't remove the need to check out what type the object is. It's happening anyway, but in some cases it's possible to avoid that.&lt;br /&gt;&lt;br /&gt;The real difficulty with base - derived is to determine the amount of features shared for all object types. Trying to cover everything in base class is usually doomed, because items and monsters have more complex ways to interact with the game world, so you have to keep it simple in base class.&lt;br /&gt;&lt;br /&gt;Anyway, the game object system of Kaduria has been one of the hardest parts of the project. I'm constantly refactoring it and trying to make some kind of order out of that chaos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-2247335055435076572?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/2247335055435076572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/02/all-your-base.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2247335055435076572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2247335055435076572'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/02/all-your-base.html' title='All your base'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-6761757418627439176</id><published>2010-02-13T12:21:00.000-08:00</published><updated>2010-02-13T12:24:03.787-08:00</updated><title type='text'>Looking better</title><content type='html'>So it did took almost one day to fix looking routines. Nothing is simple in Kaduria, but it could be from now on. What I did was just hacked looking routines ready without thinking too much how good the source code will look. Well, to be honest it's not exactly ready, but I did solve the difficulty with three coordinate systems and visibility of things with four different kind of looking routines. Still need to fix the messages from objects, because some objects aren't detected at all by the looking routine and monsters return "object".&lt;br /&gt;&lt;br /&gt;I decided to switch back to Kaduria for couple of days, because I managed to sort out things in Teemu and it's practically just adding the content, so I kind of got tired and wanted to fix something in Kaduria. I think I have to stop trying to write too perfect code for Kaduria and try to make some stuff ready, but maintain high standard coding when possible, to prevent possible re-factoring.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-6761757418627439176?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/6761757418627439176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/02/looking-better.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6761757418627439176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6761757418627439176'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/02/looking-better.html' title='Looking better'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-9020835596379245537</id><published>2010-01-17T13:21:00.000-08:00</published><updated>2010-01-17T13:22:39.261-08:00</updated><title type='text'>Expectations</title><content type='html'>Now when Kaduria's development has skyrocketed to the next level I think it's good to talk about expectations related to this game. I guess there are people who think that the amount of time spent in development equals the complexity and awesomeness of the game. Well, it's not exactly like that. Some games that were developed a long time didn't turn out to be good, there are many examples of that.&lt;br /&gt;&lt;br /&gt;I hope people don't expect too much from Kaduria. After all, it's going to be just a roguelike. I'm of course the only person who knows what to expect, but the problem is that even I don't know what to expect. There are many mysteries I don't know the answer yet, because what I'm doing has never been done before. There is no game like Kaduria.&lt;br /&gt;&lt;br /&gt;The big question is what I'm going to do when I get the first playable version ready? I could release it, because it is the usual style with roguelike games. But then I could fine tune it until it's really good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-9020835596379245537?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/9020835596379245537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/01/expectations.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/9020835596379245537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/9020835596379245537'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/01/expectations.html' title='Expectations'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-8298902468544543576</id><published>2010-01-06T11:26:00.000-08:00</published><updated>2010-01-06T11:28:25.405-08:00</updated><title type='text'>Restoring the gameplay</title><content type='html'>I had a creativity boost when my internet connection was down couple of days. The development is shifting away from engine programming to gameplay programming. I'm restoring and re-inventing the basic gameplay functions like digging tunnels, eating food, harvesting crops and things like that. The engine is in good enough condition so I'm not that afraid to add functions that could be written in more generic way. I'm really tired of trying to create a perfect engine.&lt;br /&gt;&lt;br /&gt;I guess it's fun to see that you can finally do things in the game and see what happens, and fix possible problems. There is still a lot of things to do in that area, but it feels like whatever I'm doing now really can be detected in the game as real playable content. In a way the development of Kaduria has just started. I would add a smiley here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-8298902468544543576?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/8298902468544543576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2010/01/restoring-gameplay.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8298902468544543576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8298902468544543576'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2010/01/restoring-gameplay.html' title='Restoring the gameplay'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-6203390285484473434</id><published>2009-12-14T02:35:00.000-08:00</published><updated>2009-12-14T03:12:49.003-08:00</updated><title type='text'>Class as type</title><content type='html'>Class as type was something I discovered only recently. It's a simple but effective thingy which is based on heavy use of public interface. The data is hidden under the public interface and the other good thing is that the code related to that type is made modular and data-driven. I guess this is not news for people, but then again C-style procedural programming is popular in roguelike scene. When I was programming in C I had no idea you could do things this way. It requires more source code and sometimes the public interface can grow to a jungle of&lt;span style="font-style: italic;"&gt; getters&lt;/span&gt;, but in this case I don't think it's a problem. In type style class getters are something that belongs to the deal, because it's a decoration for acquiring data in simple form. There could be functions that take more complex objects and operate them using the data of the type, but I like to avoid that since it creates links to other source files and classes. When there is no links the type can be used anywhere, especially without the host class where it is used as a component.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_ilDjn0PWliA/SyYTfBAbCaI/AAAAAAAAAKM/TnF7kaUv1Vk/s1600-h/itemtype.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_ilDjn0PWliA/SyYTfBAbCaI/AAAAAAAAAKM/TnF7kaUv1Vk/s320/itemtype.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&amp;nbsp;This example is one that has quite lot of getters, but it's manageable. I'm guessing this could be what real programmers call a pattern, but I don't know which one of them it is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-6203390285484473434?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/6203390285484473434/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2009/12/class-as-type.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6203390285484473434'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6203390285484473434'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2009/12/class-as-type.html' title='Class as type'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_ilDjn0PWliA/SyYTfBAbCaI/AAAAAAAAAKM/TnF7kaUv1Vk/s72-c/itemtype.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-8271945538133033329</id><published>2009-12-12T04:15:00.000-08:00</published><updated>2009-12-12T04:27:30.325-08:00</updated><title type='text'>Gui troubles</title><content type='html'>One of the problems in Gui is how to prevent updates on certain part of the screen more than once during movement. This thing has given me more work than expected. Some games solve this by updating always everything, but I think in somewhat heavy graphical roguelike it's not a good option. I got great speed up results in gameview code when updating only those tiles that were changed.&lt;br /&gt;&lt;br /&gt;When creating a class for stats I decided to move some Gui routines and data there. I'm getting a double update from one of the stats (food counter). The reason is in the logic of update. If a stat is changed it's updated, but since it can change in fractions (all stats are float values) every change is counted and redrawn. I have an idea how to fix that, but I really wish I could so something else than work with Gui. You would expect it to be ready by now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-8271945538133033329?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/8271945538133033329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2009/12/gui-troubles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8271945538133033329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/8271945538133033329'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2009/12/gui-troubles.html' title='Gui troubles'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-2553521144530219972</id><published>2009-12-09T06:51:00.000-08:00</published><updated>2009-12-09T07:06:55.777-08:00</updated><title type='text'>Liquid model</title><content type='html'>Since alchemy is going to be an important thing in Kaduria's gameplay I decided to model liquids instead of having a list of potions. It's more sophisticated, because liquids can exist in various places like bigger containers (cauldron) and possible mixing could be handled easier when X amount of liquid exists in place/object Y.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-2553521144530219972?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/2553521144530219972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2009/12/liquid-model.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2553521144530219972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2553521144530219972'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2009/12/liquid-model.html' title='Liquid model'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-6484562139936564541</id><published>2009-12-05T09:35:00.000-08:00</published><updated>2009-12-05T09:49:31.407-08:00</updated><title type='text'>Body parts</title><content type='html'>Today I started to design the body part system. Until now I had only body part enums, but no other code or plan for them. I'm using same kind of modular class/type for body parts as for many other game object sub-systems. The problem with body parts is the fact that not all creature types have same kind of parts, but I believe with careful planning it's possible to create a flexible system which doesn't need a lot of special-case code spread everywhere.&lt;br /&gt;&lt;br /&gt;I plan to restrict the use of body parts mainly in situations where a certain type of damage is subjected to a body part. I think usually body part system is too detailed, but in this case it somehow seems to match the armour system where each body part can be worn. Later it could be possible to direct the attacks of creatures by the size or other special ability of the creature.&lt;br /&gt;&lt;br /&gt;I really like to work with restricted type-style classes. It's possible to do game design in that level also and you don't have to worry so much about interactions with other types of data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-6484562139936564541?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/6484562139936564541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2009/12/body-parts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6484562139936564541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/6484562139936564541'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2009/12/body-parts.html' title='Body parts'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3649531531593914669</id><published>2009-11-22T08:40:00.000-08:00</published><updated>2009-11-22T08:49:53.358-08:00</updated><title type='text'>Task structure</title><content type='html'>Figuring out how to do npc and player tasks can be difficult, at least without very good plan. Data-driven approach is good in this case too, but guess who didn't organize that earlier. It's important trying to do low level functions for tasks that both player and non-players can use without extensive use of special case coding (usually checking out if the creature is player).&lt;br /&gt;&lt;br /&gt;The important layer of data that I still am missing is the task structure: the list of commands and which ones can be executed by non-players. It's not good if you go straight from keyboard Get() into a command subroutine. You can't do that in large scale game. There must be series of stages to go through before that.&lt;br /&gt;&lt;br /&gt;I need some planning before looking at the source code. Need to list all commands and try to figure out what those commands have in common, then create the data structure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3649531531593914669?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3649531531593914669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2009/11/task-structure.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3649531531593914669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3649531531593914669'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2009/11/task-structure.html' title='Task structure'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-2385288369098912424</id><published>2009-11-03T11:52:00.000-08:00</published><updated>2009-11-03T12:00:37.965-08:00</updated><title type='text'>Easy</title><content type='html'>The re-write of map code must have been the fastest one I've done. It's basically ready, only thing left is terrain map changes (only terrain map will have creation routines). The object map was really easy, I copied the source code from Teemu's object map and had to make only minor changes at the point of map drawing (get object's frame instead of static id). It's really cool to run the game and see objects that were missing when all maps didn't yet work. I think the main reason for easy re-write was OOP style source code. It's making changes so much easier to do. I have even noticed that I can make gradual changes and nothing really breaks. It's great.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-2385288369098912424?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/2385288369098912424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2009/11/easy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2385288369098912424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2385288369098912424'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2009/11/easy.html' title='Easy'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3520805557308188992</id><published>2009-10-31T09:11:00.000-07:00</published><updated>2009-10-31T09:28:43.558-07:00</updated><title type='text'>Map issue</title><content type='html'>While the development is shifting from technical problems to content creation there is still plenty of things to do. One of them is maps, where in once again I notice I have been wrong. The current problem is that I have a map for objects that don't move (aka terrain objects). The map id is shared with all types of objects and it's basically duplicated data that has to be synchronized with current object lists. It's a problem, because I want to make it possible to add objects easily.&lt;br /&gt;&lt;br /&gt;The current implementation has one base class for all maps, including routines that are needed in dungeon generation. Those routines are however not needed for objects like monsters or items, because they don't come in formations in general. What I now plan is &lt;span style="font-style: italic;"&gt;three&lt;/span&gt; base classes for maps. The first one should remain a simple int-based map. It doesn't need any special routines for dungeon generation etc. The second one will be a map that has object pointers stored, so you could take the information directly from object type, such as retrieving the correct graphics frame, or even drawing it directly. The third map will be solely for terrain and dungeon generation, including all those complex generation routines.&lt;br /&gt;&lt;br /&gt;I guess it's time for yet another refactoring moment. I'm not that worried, although it's going to be a big change for objects at least. It's also a big change in the way I used to think about maps. I wanted them to be just ints, but the experience with Teemu proved that object maps can be safe, if you don't try to do everything with them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3520805557308188992?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3520805557308188992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2009/10/map-issue.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3520805557308188992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3520805557308188992'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2009/10/map-issue.html' title='Map issue'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-2383665322599470004</id><published>2009-10-22T10:24:00.001-07:00</published><updated>2009-10-22T10:32:43.529-07:00</updated><title type='text'>The journey of item data extraction</title><content type='html'>The item data is now extracted from the external data file to a text file that has matching enums for data, kind of automatic binary to source conversion. The reason I chose to use external data was not that bright, but I was much younger then. In the end I finally came to a conclusion that external binary data was causing too much problems in form of synchronization. It's not like impossible task to maintain two sets of data and keep them synchronized (I'm talking about the source codes of editor and Kaduria), but I think it's better this way.&lt;br /&gt;&lt;br /&gt;I also try to minimize the manual data and see if it's possible to calculate the rest of data from basic blocks. Like estimating the weight of item by size and material. It's probably going to work good enough, but I don't know yet.&lt;br /&gt;&lt;br /&gt;I'm now starting to think that even scripting is better idea than binary data, while I'm still convinced that it's possible to write a role-playing game without scripting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-2383665322599470004?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/2383665322599470004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2009/10/journey-of-item-data-extraction.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2383665322599470004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/2383665322599470004'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2009/10/journey-of-item-data-extraction.html' title='The journey of item data extraction'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-587255772173186799</id><published>2009-10-20T12:22:00.001-07:00</published><updated>2009-10-20T12:48:09.141-07:00</updated><title type='text'>Progress report</title><content type='html'>After creating some extra datatypes the amount of source files is increased. The count is now 205 source files including headers. I'm estimating the release version is going to have about 250 files, probably not more than that.&lt;br /&gt;&lt;br /&gt;I have programmed Kaduria 42 times in this month. I think it's some kind of record. Refactoring has been much easier now, because the way new component classes work. Replacing old code has been easier than I thought and it has improved the data-driven style of the source code.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-587255772173186799?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/587255772173186799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2009/10/progress-report.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/587255772173186799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/587255772173186799'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2009/10/progress-report.html' title='Progress report'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-21521054752299005</id><published>2009-10-11T03:51:00.000-07:00</published><updated>2009-10-11T04:30:08.945-07:00</updated><title type='text'>Rendezvous at the Snow Top</title><content type='html'>Iolo walked through a long narrow corridor. It felt like he was climbing stairs, because the corridor was leading him up, but where? First he realized the air was much colder in here and then he began to see faint light ahead. It was daylight.&lt;br /&gt;&lt;br /&gt;At the end of corridor he saw incredibly large stairs. They were like giant's stairs that had fallen into the narrow corridor. They seemed to be out of place. Looking up he saw clear blue sky and at the distance there was a dense forest. The snow-covered stairs indicated that he was high at the mountain's top. Maybe this place could be reached only from this way.&lt;br /&gt;&lt;br /&gt;Iolo began to feel cold. He had no proper clothes for this weather and he realized that better when he stepped on snow. His entire leg sunk into the snow and he almost fell flat on his face. This was not good. He returned on the large stairs, watching for any signs of life.&lt;br /&gt;&lt;br /&gt;He didn't have to wait long. Suddenly there was movement in the forest and short after that Iolo heard roaring noise. He saw from the distance that these creatures were large, grey and pretty much irritated by his presence. They were much like trolls, only bigger. They were still quite far away, but one of them stopped and threw something. It was a snowball that flew nowhere near him.&lt;br /&gt;&lt;br /&gt;Iolo was so surprised that he almost smiled. But this began to look like dangerous game, so he turned around and ran back inside. The long corridor seemed to be extra long this time, but he didn't hear anyone following him. Maybe those creatures were too large to fit in the corridor. At the other end of corridor he climbed steep narrow stairs and closed the hatch that had been hidden. Maybe it was hidden for a good reason.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-21521054752299005?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/21521054752299005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2009/10/rendezvous-at-snow-top.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/21521054752299005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/21521054752299005'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2009/10/rendezvous-at-snow-top.html' title='Rendezvous at the Snow Top'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-5459538653393202357</id><published>2009-10-10T12:50:00.000-07:00</published><updated>2009-10-10T13:00:38.445-07:00</updated><title type='text'>Witches &amp; Amazons</title><content type='html'>The project can be compiled again after a short refactoring to some data structures. There were lots of changes, but the game didn't crash or anything like that. It's a promising sign... It's mainly the properties of creatures that were refactored. For instance it's now easier to add attributes, professions and anything like that.&lt;br /&gt;&lt;br /&gt;You can't select the gender in current version, because all professions are male only. I don't believe in female knights or any of that crap. It's ridiculous. Females are weaker in Kaduria, just like they are in real life. I'm still planning to add female only professions and I have two in mind: witch and amazon. They fit perfectly in the mood of the gameplay and are less powerful than basically any of male character classes.&lt;br /&gt;&lt;br /&gt;While I'm adding stuff (finally) I want to continue refactoring some parts. I want to do the same kind of refactoring to item class, because it's huge and will be easier to control with modular component type classes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-5459538653393202357?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/5459538653393202357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2009/10/witches-amazons.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5459538653393202357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/5459538653393202357'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2009/10/witches-amazons.html' title='Witches &amp; Amazons'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-4568847421870480974</id><published>2009-10-04T02:18:00.000-07:00</published><updated>2009-10-04T02:31:31.830-07:00</updated><title type='text'>First snow</title><content type='html'>Something cool about snow and winter. Pretty good snow storm for a first snow. There is always right feeling about snow.&lt;br /&gt;&lt;br /&gt;I have almost finished the refactoring for monster class components which now are user defined types with lots of hidden data stored outside the class, but only processed by that class. The classes itself are very simple, having only few variables. The nice thing is that I have finally added some content. Yes. I'm actually developing the game content at the same time with this refactoring and it feels great after all these years of technical rewriting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-4568847421870480974?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/4568847421870480974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2009/10/first-snow.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4568847421870480974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/4568847421870480974'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2009/10/first-snow.html' title='First snow'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6152873000124107032.post-3674838997652032544</id><published>2009-09-19T09:45:00.000-07:00</published><updated>2009-09-19T09:56:15.300-07:00</updated><title type='text'>Data models</title><content type='html'>I'm back in refactoring. This time it's the way data is arranged. Back in while I thought it would be great to create a centralized database for object data, but I think it was not a bright idea, because it's kind of polluting global namespace, and besides when you need some data in some other place there is extra stuff included, which is not good for compile time.&lt;br /&gt;&lt;br /&gt;So I'm in a process of making data more modular. An example would be profession, now a class of its own and including all data that is needed to know, like graphics frames for profession of certain type of race, or modifiers that professions have. Anything related to profession is stuffed to one module, and then that data is retrieved from creature class.&lt;br /&gt;&lt;br /&gt;The role of centralized database could still remain, but different, like a base class for data.&lt;br /&gt;&lt;br /&gt;The way I'm rewriting classes for data is quite flexible I think. It's easier to add stuff and reduce the amount of problems when something new is introduced. I think in general I'm also programming things in the proper order, starting from "abstract" data that has small number of connections that could break.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6152873000124107032-3674838997652032544?l=kaduria.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kaduria.blogspot.com/feeds/3674838997652032544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://kaduria.blogspot.com/2009/09/data-models.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3674838997652032544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6152873000124107032/posts/default/3674838997652032544'/><link rel='alternate' type='text/html' href='http://kaduria.blogspot.com/2009/09/data-models.html' title='Data models'/><author><name>Krice</name><uri>http://www.blogger.com/profile/07789939511437441094</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
