Hopefully some solution

I believe I found a good overall solution for the final tasker/ressource loader system. I'm going to make the tasks a bit heavier than I planned before, but they can also be stripped on demand if everything works out well. I've also decided to define a more clean interface for the typical mutex/condition variable things and so on due to SDL's a) either bad function name choices and b) because I don't like the many available functions I don't see useful for my case. I'm trying to bring it closer towards event-based interaction which I prefer much more. I didn't expect to be that difficult to figure out in total, but I'm beginning to find a base I can use to systematically build my systems like Lego models. It's all about about using the right subset of parts suitable to your level of realization. And given the fact that I definitely can't use SDL on an NXT, I'm go better defining my own subset of wrapping macros/functions (macros preferred). Also, I won't have to remember all those stupid SDL function names. I mean I prefer my own interface rules for sure, nobody can say it's not a good idea then...


Nowadays' Nintendo games

I'm having trouble with all the current Nintendo games for some reason. The last Metroid got smashed by kicking everything that felt good and great before, Zelda Skyward Sword became new useless elements and well as a world that doesn't feel like a Zelda game and that whole motion control and touchscreen stuff simply turns me off. Well, I'm a button pusher, not a oh-this-totally-needs-casual-fun-stuff-in-it guy. I'm had more fun playing Skyrim than playing Twighlight Princess for a number of reasons. Guess I'm too classic in taste, too much a kid the late 90s and the first years after 2000. Did I say how great I find Cave Story Plus in comparison to the original Cave Story? That's mostly cause it now looks like a SNES game and not like a NES game with more colors. So, I'm no thaaat classic in taste. However, I find very games I'd actually buy a Nintendo console for. I'm buy a 3DS for Super Mario 3D Land but not for the perverted Ocarina of Time port. I have Kirby's Return to Dreamland on wishlist but not Skyward Sword because Kirby is more to it's formidable roots. And with no greate reference title I won't buy any future Nintendo consoles. I'd love to have to times of 3D platformers back - I'm still playing Donkey Kong 64 and Sphinx and the Cursed Mummy because they are great platformers and rather classic in gameplay. I don't say that those revamped Nintendo games don't have quality, they just don't serve my taste as well as before. But since I'm still a fan of observing other people playing Nintendo games for some reason, I'm often watching speedruns and playthroughs of those games I don't have fun with by myself. So I'm equally often happy by just listen to the game's musics and get their soundtracks from somewhere. This way I can atleast not say that I don't know what I'm missing.

A programmer's limitations

Out of a rather random talk with one of my lecturer which only lasted a few seconds, I realized that I might be a good programmer in general (yes, I'm arrogant enough to say this) but I lack the ability to quickly enhance my own world of programming methodology without days-long reflection. It's like comparing a linked list (most of my fellow students) to an array (me). They are reasonably quick with applying existing stuff if it's giving by them (dynamic list size) but aren't as quick with solving problems within a fixed set of available technics and ressources (static arrays size). I know, using this comparation is more than nerdy, but I can't help seeing those comparisons everywhere. The moment I saw them somewhere I see them everywhere if it's related to human thinkage and stuff that's to do in sequential order. Beeing more knowledgeable about programming also improved my ability to apply them to reallife situations and it not rarely happens that I can solve a problem with a similar techniques as I already solved it within a computer program. I was even able to understand my own inner ramblings since they had strong resemblance of certain methods of programming. Strange that nobody is seeing such things in the world but me. Well, maybe I'm just afraid asking because most aren't as obsessed with such stuff as I am. The big wheel of generalization pulls all strings equally, it's rather hard to see for most people in this world.


Last finish of a Lego gun

Yep, I finally pushed myself enough to finish the last bits of my Lego gun model of which I didn't make pictures before due to the slightly missing or rather ill-chosen stock design. This time I simply shortened what I already had of a planned, more lengthy stock and short it enough to provide more stability and less needed parts (which will come in handy for the next model). It looks like a thumbhole stock with the stock but only a cut-off pistol grip and a thumbhole. Feels good in hand and using the firing pin chargers as some sort of cheek pad also works nicely. Too bad it currently smells smokey due to some very ignorant people smoking while I was showing off my model. However, it's done now and the only update I'll give it in the future is to change a single cover part beeing quite red instead of balack - that what all grip got in this model. The overall color scheme is very pleasing - white/grey barrel om top with green sights and black grip parts. Parts one can mechanically operate operate dark grey. I'm pleased with it. Totally, as I also mentioned before. But this time it's also complete and pleasant in almost every way - you get the point.

Since I'm off playing games right now and somehow don't feel the need for really playing one as well not wanting to right now create my ressource manager, I'll instead try to remember what I imagined for the new gun model and start it.

What I forgot about

Since I uninstalled Skyrim to not let my self get skills to their maximum level and other ridiculous things, I used the last minutes or today to again pick up my ressource loader system and think about what I originally planned. Heavily multithreaded systems are complex to say the least. One idea might be utterly useless the next time you think about it. In a game context, you also have to keep in mind what parts use what ressources how and how long they have to life and so on. My first concept included only a "might need it/need it/don't need it anymore" system still suitable as a base. But I'll also need to introduce something to note if a ressource is still used by another thread, what each thread should when it immediately wants to release stuff and so on. It's a complex cycle, sometimes looking a bit recursive in case you're trying to automate and specialize it for many possible, parallel accesses. Furthermore, the data map of my game can be changed anytime - persistently. I haven't thought about the problems arising from that and what makes up the wonderfully simple I-only-need-to-set-a-switch-to-let-this-castle-pop-up-here systems used almost in bigger games. Or asked in a better way: should quest set a value to let something slip into the renderer next time it's visible or should it alter the level data permanently? Questions every game programmer has to think about! Normally, everything is saved as a massive database with certain connection to the core quest/map/logic layout and will restore the desired game environment with possible restoration of running scripting events and so on. This saves up quite some amount of questions about how the game engine should start when loading a game and what to do when saving it. Zelda for example can entirely be made up of switches and integer because the level data is fixed and not much stuff is running besides the hero himself. In Oblivion or Skyrim there are most of the time as NPCs around you and need to get saved as well - NPCs having a schedule but aren't visible do not require savin but just calculating when they should pop up in the game. Thus it's mostly only a game engine specialization of sorts and it's good that I having to tackle such problems on my own at first. But all of this nice and clean trigger-based savegame management does not help me with the problem that I'll simply have to dynamically load and store map data as the player goes. I've thought a lot about how to realize such a system with my ressource loader concept and in the end I think it'd work quite automatically when building in some rules of what map data (both physics and graphics) have to stay in memory for what time and with what kind of limitations. However, this carries some problem with saving the map data etc and I'm not quite sure if it's a good idea to burden each thread with the task of also writing stuff to disk inbetween. Well, the actual writing would happen in a nother thread, but the thread would still suspend it's work until it's done. However, that makes enough ressources free to give the saving/loading thread more priority... Well, you see that's a lot of stuff to think about and it's time to focus on developing reallife game code rather trying to incorporate rather conceptual features. I have some extensions for the ressource system as well a plan to create for how the map streaming should work in detail. I'm hitting stone this time, better use a Notched Pickaxe now.


Oh wait, there's a quest left...

128 hours of Skyrim. That's a lot of time to play and even more time you'll have to shave off your daily schedule. I bow before the game's developer, they did a job I've never seen before in any other video game and they did it damn well. And I'm saying this very proud after doing every non-repeatable quest except the ones from the thief's guild. I can't remember even a single game that absorbed so much of my time and thinkage in sequence besides maybe Diablo II oder Titan Quest, which definitely deliver their playtime in a way incomparable to Skyrim of course. Even after always tending to take all my hundrets of chest items at once due to the mischosen controls, even after killing dozens of innocent persons to find out that it's a repeated tasks and even after wondering where the fuck I'm supposed to supposed the millions of dragon souls I absorbed occasionally - this game gave me more than 4 other games together and it was worth almost every minute of playing. It has a shitload of unique little stories, stuff in books to read that expend the series' lore and many unique dungeons in always different layout, background and design. I don't dare to question the developer's in any ways because they've archieved a lot by this game. Push those liars aside that want to do not allow to receive this gem to get it's deserved glory! I'm almost sounding like a Talos priest whatever. Comparing it to other Elderscrolls games and thus to the whole series is of course difficult to me - I only played Oblivion and it's DLCs, Morrowing was too RPG-ish for me. Or lets rather say I prefer the series to develop in simpler, more free ways because there are too many strict RPGs that simply fulfill the formula a typical RPG player will want to need. With Skyrim it seems that they're developing the series into some sort of RPG-based action-adventure as it was with Diablo getting heavy inspiration from roguelikes and the likes. There simply are no games truly comparable to those Bethesda creates (execpt those horrible Gothic games), so I'll put it as straight as it is: Skyrim is a true milestone for the developer and to players like me as well.

So that's it, I've playing almost everything in this game and I can almost only tell good things about it. Oblivion didn't motivate me to do so cause they made impossible-to-play character builds valid as well as repeating too much stuff on and on again. Thus, the two major concerns were put aside and I can't see any of the major problems I've seen in Oblivion. It's motivating and rewarding to explorers and fans of easy-to-access, yet variable and RPG-ish combat. It remembers of so many games that had their great moments but failed beeing great otherwise. Skyrim combines them all and I can only repeat that I currently bow, even kneel before the developers for creating such a amazing game to play for everyone with a decent machine and money for a fullpriced game in their pockets. On a sidenote (and to give the typical RPG fan rants a bit more room), it doesn't give you the feeling of Morrowing or Oblivion but a more... Lord of the Rings or Merlin-alike feeling when playing the game. It's refreshing but not different from such epic struggles those stories delivered to me, though I found Lord of the Rings too boring to read and preferred the movies. Exactly this - it resemblers those two movie series a lot plus some ancient dragon ruin stuff and a good portion of kitschy magic like necromancy and the almighty fireball as well as the typical racism found the Elder Scrolls universe. I don't think they're breaking any essential rules of their previous games except getting away from the numbers a bit. I mean roleplaying back-and-forth - I find simpler systems more enjoyable than those fully blown ones with stuff that obscure the actual joy of exploring and adapting your character to higher leveled challenges! And, well, if you're stupid enough to powerlevel yourself with smithing, enchanting or alchemy, you didn't really understood what's meant to play a roleplay game... It's about slipping into another role in another world. Skyrim does this very well and allows you to do the things you think are suitable to the very Alter Ego you're currently creating. No needed planning, no defined road to rule. You're jumping right into the shoes of someone you can shape as you want - even multiple times.


It's all so simply disappointing

I know why I prefer to stay away from multithreading: it's currently used mechanics are a nightmare in terms of portability. I've already blogged about thinking that a semaphore might solve this problem, but today I realized it doesn't cause it's internally the same as a mutex with some query, build with the same limitations of a normal mutex that you need to do every lock/unlock operation inside the same thread. After further studying of SDL's semaphore implementations, I found that the generic variant actually uses a free combination of semaphores without the typical wait/post loop. However, the mechanic used there would never work for my Linux system cause I know how mutexes behave and that you can't use just them to mimic the effects of semaphores required in this generic implementation. Furthermore, a complete SDL implementation using those "generic" variants is impossible: the generic semaphore implementation requires a mutex and a condition variable implementation where the condition variable implementation requires a mutex and a semaphore implementation! That said, they are only there so provide the same functionlity across all systems as long as they have the required semaphore/condition variable behaviour. System-specific implementations on the other side use only provided system functions with no logic at all. Luckily, I noticed that what I actually need is a condition variable - a way to signal other threads that they continue. I didn't have any lectures about condition variables but I realized that, if it works like described, it must be the exactly problem solution to what I'm looking for. It must be a true nightmare to implement all those different mutex/sem/cond combinations due to all those annoying system differences. Atleast I do know now to NOT rely on system-specific lock/unlock pitfalls but instead rely on that what's defined by standard - not anything else that *might* work somehow.

Man, it's more than annoying. Got to speak with my lecturer about that - I'm sure he'll find it interesting to know that there are exceptions to his practice!


The impurity of semaphores

May sound more like a general rant about misunderstanding thread synchronizations, but it isn't like that. Well, I thought creating a tasker system would remove all the need to write more thread code, but it turned out that I forget to implement a method of waiting for a task to finish. This is especially important for my ressource loader thread system that enables to enlist for preloading (in case of, for example, NPCs close to you which may play certain sounds on certain events which aren't immediately required) or requiring a certain ressource right now. The latter screams for a mutex object to be unlocked when done with loading, but it'd need to get locked by another thread - which's impossible because this thread is responsible to executing tasks and can't immediately lock the mutex for himself, creating a useless lock/unlock combination in the thread waiting for a task to be done. I knew I'd need either double mutex locking or a free combination or locking/unlocking for one thread from another. Double locking did not work on my Linux system, thus rendering it useless for my situation. I had atleast 3 different "solutions" which all based on so special threading implementation details that I couldn't have a guarantee for them to work as expected. Wicked! Absolutely. So I asked one of my lecturers and he mentioned that this problem could be solved using a semaphore. So me didn't first understood why, but then it hit me like nothing did for a while. I learned semaphores as suitable for accessing ressources by a limited number of different threads. Therefore having a number to up/down, an access mutex and so on. However, when all slots got filled, SDL offers me the possibility to wait on the semaphore to become free - exactly what makes it possible to "lock" a one-slot semaphore by the thread posting tasks and then trying to wait for it to become avaible. The thread would wait until someone would increment the value as done by the tasker when executing the task. All provided that SDL allows me to increment the semaphore value multiple time on any major system - it's the only possible way to avoid polling of availability.

That said, I'm only using a side-effect coming through the way a semaphore functions. I find it... impure. Impure in the way of knowing exactly what but prevented by the library/system used caused no finer thread control is necessary. I mean I like standardized functionality, but using a not so suited synchronization object's side-effects is not what I'd want to find in a clean engine. Well, my scripting language will possibly differ from the currently used technology I think. Anyway, I prefer message-based systems more than synchronization system. It's simply more of what I usually use when programming games.


Holy fuck, now I had to fight two dragons at once! Either it's a bug or a goddamn feature - either it's a bit annoying cause I have so many millions of dragon souls in this game but still have to find all the words to use them! Looking at the dragon burial map, I've surely killed atleast double as many dragons as beeing depicted there. I don't know whether I should find this great or exhausting. All in all I don't exactly know what to do with all those dragon bones cause my housecarl and me already have the latest dragon armor in town...

Maybe I should simple created several kinds of suits. One for maximum armor, one for instant magicka regenerations...


The awesomeness of Skyrim

Skyrim is so awesome that I'd prefer it over all lesser Zelda games I have. I'm sowhat in love with this game that I can't remember the last time when I experienced something so close to perfection in terms of overall combination, game feeling and graphics quality, except when playing Metroid Prime of course. I'd put them both at the same level while repecting their given technical limitations. If you have the money and the rig, buy it. I mean nothing pays more off than reading books inside the game, thinking that you might find exactly this awesome cool ruin described in their, finding it then a few reallife days later and knowing that it was a good decision you picked up exactly this book and storing it in your treasure chest in case you might need it! This way the game creates legends and myths and you're immediately frightened by what stuff might in there or maybe you're rather reliefed that most of it was a rumor and that you were to even find your way through it. I can't say how impressed I am that the game designers manage to build up their gameplay, the "looking forward to finding xy" effect and the sheer awe by which you enter so sacred and ancient places. And the enemies don't level, only the rewared treasures. Plus, every dungeon features some kind of little story and will open you a back door once you completed it. It makes it function like a clear goal to get all awesome stuff and beat one or two bosses inbetween. The cleanliness and simplicity of all these concepts make this game a milestone of taste and quality to me. Something I'll never forget nor try to imagine what might happen next in the developer's following titles. While all this is totally subjective to my own video game preferences, I bet it'll be torn apart by others. Gamers publicly expressing their opinion and insisting on spreading their gamer critics are usually assholes cause this combines well

Oh and the games has many highlight, most of them including stunning battles between you and powerful enemies. Not to mention the dragon fights for sure (always a highlight), but also the Draugr bosses that are always different in number of enemies and fighting area and certain more organized villains such as a Vampire Lord in his dining room (you're leading to mob to his cave, storming his lair by surprise). I mean if charging into ancient Germanic ruins with your blade-wielding, I'll-protected-you-with-my-life housecarl while throwing exploding fireballs coming out of both of your hands is not awesome to you, you better go back to your petty online game and stay where you are. This game is a high-level roleplaying fantasy made to feed adventure-lusty nerd minds that long for proving themself in roasting dragon asses.

Oh man, I love this game so much already. I need to buy a big poster or so. Or atleast a T-Shirt.



The last days I ways playing Bethesda's lastest Elder Scrolls game, Skyrim, and it's simply fantastic. It combines much from Fallout 3 with Oblivion while putting in the style a million of fantasy movies like Merlin of Lord of the Rings. I'm saying this to only fill some random words in here, it really looks like from those movies. While this isn't a bad thing, there are so far so few mistakes made in the game's design, it just makes it incredibly enjoyable. The the whole leveling system got an awesome upgrade, shooting fireballs was never more fun and the best of all: no auto-leveling enemies. Sometimes I thought there are atleast some generic, auto-leveling enemies, but giving it another thought, there where only a few very hard ones or enemies on higher mountain elevation levels that are meant to be fought by stronger, more experienced heros. Therefore, I wasn't able to make any automatic enemy leveling so far. However, the higher your level the better are the possible rewards. Therefore it can happen that some enemies carry better weapons cause there is no reward chest or so. However this might change, I was so far always able to create any character I wanted, though I'm therefore much more diverse in the end.

There are only a few things that set me off. First of all, you won't be able know whether you have to get stronger for a specific task except by looking at the game map's elevation level. This rule doesn't seem to always fit cause sometimes you can get really high via a story quest or "cave climbing" activity (thus getting higher via short cut. I haven't noticed quest bugs except a single one where I started drinking with a mage who would then do a million things with me together including temple pollution and marrying a seemingly random girl in the town. Bad thing about this was that nobody told me anything about why I now know where to find this dude and why I can only interact the mentioned girl as if I knew what happened. For some reasons I managed to finish quest parts before others and thus the quest line was probably fucked up. In the end I somehow met this dude again in a portal and he revealed himself as the daedric lord Sanguine himself! Well, I would've loved to do this quest properly. I've adored Oblivions Shivering Isles extension for interacting with Sheogorath in person, simply cause those Daedric Princess are some of the most awesome characters you'll meet in the whole game ever. And one taking me on a personal hellride through Skyrim of which I didn't knew anything? Well, actually, what a prankster this dude must be! Therefore, I'm mildly disappointed by the fact that this quest didn't seem to work for me. Or maybe they didn't fix it. Whatever. I'm looking forward to visiting the other daedric shrines!

It's really a great game so far and I see no off-setting bad carried over from Oblivion. I'll probably be busy the next weeks to characterize my Argonian battle mage a bit more, so don't expect many updates by me...

Edit: Great, this thread is totally bugged. Now the portal remains open and for some stupid reasons Sanguine is standing in front of the portal's staircase, saying nothing but "Hm." and "Fire?" when I try to attack or talk to him. Oh man, there's one chest under the portal I really wanted to have, but I can't reach it cause I'm somewhere close to the portal - while approaching the chest - that I'll automatically warped into this temporarily create world of Sanguine from I can never escape cause Sanguine is simply not standing in there but in the world of Skyrim, thus disabling any possibility to escaped when visiting it again... Good, that I never quicksave in such portals!


generate all known magic square for size N

This is one of the task he have to solve using Erlang, but I'm having my problems with it. It's not actually that we have to find a solution for all possible square sizes - only 3x3 is really necessary, 4x4 is a plus - but since we got the task I start fighting with myself about how ridiculous it'd be to only creating a variant for size 3. I'm a programmer who's alsways seeking for awesome solution to brute-forcey problems. It's not about finding only one square, it's about finding all squares! You can't take the typical Wikipedia approaches for that. So I sad and thought. It's a few days since and I somehow managed to find a solution that'd seem to work for any square size by using a (possibly dynamically filled) database of combinable, valid lines you just render onto the square cells. And damnit, it could work so well as a program if there weren't that annoying Erlang limitation! I'll create a C program first and they try to convert to Erlang, step-by-step. I'm not good at Erlang and I hope this lecturer doesn't turn nuts if I'm using not his beloved one-short-for-all solutions.

I mean really, Erlang is so stupid. No variables but value passing. What a waste of processing time.


Reflections, bump mappings

I'm sort of thinking about pimping my original raytracing and add some sort of reflection. However, I'm sure about to visualize them. I, logically, I'd need to reflect the character the ray is reflecting from, right? While this may be one solution, I'm rather thinking about reflecting only the light color. It wouldn't be a realistic and fancy reflection, rather some kind of mood light to make some more interesting and awesome looking realtime effects. However, I should only deeply think about it when having finished the task and the renderer rewrite. From there I can decide whether the framerate is high enough to also add the other stuff and some more light stuff. But well, I doubt it's possibly with all those threads running... whatever.

Yay, it works

Today was a really good day. I could say this because of the reason I'm typing this right now, but thinking about, the whole day was full of stuff that had to be done for a longer or shorter and I finally finished off all them. This in order enabled me to finish one the things I wanted to have finished a few days ago: the special mutex system I need to create the thread system for my game engine. I made some false assumptions the days before and after a day full of resolutions and a lengthy session of Arx Fatalis (dayum, I love this game!), said myself to brush them all away and found a solution to properly test the system against all the odds I could come up with. I do now know how to handle this sort of custom mutex construct and I'm glad I didn't just moved the finishing to tomorrow (well, technically it's already tomorrow...) but right now at this very moment after watching a new Let's Play video of my favorite Let's Play-er. It pays off to utilize any sugar shock you can, I say you! Also, I did have too much coke this evening, which may also be another reason for why I'm still full of opportunity only held back by the fact that I should go to bed now and not later to not come late or so...

Anyway, though it always worked without, I also implement a little security measure that's highly important depending on how your system schedules threads and processes. Haven't encountered a moment where the problem kicked in, but I know that it can - writing parallel programs always requires you to think any possible timeline-correct permutation of all parallely executed program codes. I'm effectively trying to convert any typical racing condition know when accessing ressources to a query-based system, which works quite as it seems. No aliased access orders, no deadlocks and so segmentation faults as long as the data required to use a queried mutex by a thread won't get deleted when the thread ends. In 2 of 9 cases I got segmentation faults due to this and it really shows how sensitive one must act in such a complex system. It's one of those things I designed that I'd personally call complex. Most code I create requires no complex, but "I'm-right-in-the-subject" thinking to understand or even appreciate it. But this one... Well, it's not really special after all but more a basic tool to force an ensured access order to certain ressources. I'm proud, seriously. It's something I can even use in my bachelor or event master thesis cause it enables you to, well, effectively remove most racing conditions in realtime applications with non-realtime schedulers.

So yeah, I'm so proud on it right now that I probably forget that there atleast a million of other peoples out there using right now. Or not. Or maybe I'm simply too much on coke to take a nap and want to dump out about me and my computer. I feel like Patricia Tannis when she personifies her program as it was able to calculate a few calculate bits of Eridian glyphs on her digside on Pandora before the executing started to melt due to either too intense amounts of calculations or just because of the fact that this Planets will be the death of everyone, thus also including the right in this moment personified program and the executing computer as it's physical form.

Geez, I should run around the block right now. Too bad that our block is rather large and my lungs asthma-ridden enough to not even bear a shopping tour without a longer pause afterwards. Why am I typing this here anyway....

PS: Never drink too much coke in the evening. You may suffer from ingenious ideas and instant implementations.


The Oblivion 100% quest

I've played Oblivion many, many times - but I never finished the main story along with all other guild quests, side quests and so on. The main reason for this is that I always choose character classes/races and are simply not suitable for most of the game's quests. For example, I onced played a very powerful assassin/thief character to meet the needs for all of the Dark Brotherhood quests. Therefore sneak and archery skills combined with light armor, sword fighting, block, alchemy and some bit of acrobatics as well. Playing such a character works very well within the given boundaries but becomes highly problematic withing the planes of Oblivion, most Fighting quests and Undead-populated dungeons as well. And those are highly frequent for almost every fight-based quests in the game... Choosing a classic warrior on the other site is beneficial cause you can simply everything right away. But you have to buy almost everything, need a suitable race in the beginning (I normally prefer Argonian or Khajiit), can't sneak to win related quest and there's no way to utilize magic efficiently. So I've randomly started to think about making a character that can do it all. Well, atleast so that it's able to sneak/assassin, to cast and to do some serious damage in non-stealth combat while not dying in a more unhealthy environment. So I do atleast need some Destruction or Conjuration skill to have some fighting power. Though Conjuration is not really enough when fighting multiple enemies - summoned creatures tend to have their own enemy selection scheme... However, combining Destruction and Conjuration sounds like a good solution - have someone fighting for you while beeing able to still do some damage on your own. Yeah, I think that's a good backup for more hard combats. That said, I already have two skills for fighting and don't need to worry about using swords or bows. But well - no "hard" weapon means no extra damage when attacking from sneak and no distant bow shooting and so on. However, I know that I always overused the bow and know that it can bring you more problems than anything else when if you're not a really good marksman with high luck stats and some points put into sneaking. So it's probably a good solution to choose a character that has atleast a bit of agility and use a sword or blunt weapon instead. Hm, speaking of weapons... swords and maces/axes need strength to work properly. Hm, hm, hm... Strength is useless unless you need to carry stuff or hit hard. But well - carrying stuff is very important in my opinion, but less important if you're not carrying alchemic ingredients (those along with potion smake up to 70-80 weight in a usual inventory of mine). So it's rather useless for a caster and I can look out for inventory capacity somewhere else or simply use a feather skill from Alternation, utilizing the Willpower I'll need for beeing good at Destruction. Anyway, this makes Willpower one the major attribute choices to have Destruction, Alteration and Restoration fully available. Soooo, then I guess I've already chosen three skills and a major attribute, woooo... Anyway, reading UESP, it's annoying that Willpower does nothing but increase your mana regeneration... Anyway, that's also useful since I'll need a lot of stuff for restauration and everything else. One thing I'm rather afraid of choosing wrong is the armor question. I know that I once simply dropped the question of what armor type to use when playing Shivering Isle cause I found a shitload shield-enchanted robes and gloves that provided way better protection than any armor available at this point. I can't rely on them in the normal "lowlevel" Oblivion game, so I'll need to decide this right now! I always used Light Armor cause they combined well with Speed and Athletics/Acrobatics. Problem is that Athletics and Acrobatics level you up as you go and thus you'll never be able to keep you armor, your skills and most importantly your weapons. So what I want to do instead is to use Heavy Armor to overcome this problem. I find it also interesting to combine magic with Heavy Armor usually only found on Warrior type characters... Needing Endurance for Heavy Armor also boosts Armorer and Block... Hm. I don't know. Block could be important, but without a weapon? Well, that's shield + spell casting then. Possibly along with a Soultrap-enchanted Dagger or so. And Armorer is surely useful for higher levels as you can also repair your magically enchanted items.

So we have Endurance and Willpower as governing attributes and a Mage specialization. Skills are Destruction, Conjuration, Alteration, Heavy Armor, Armorer and Block. So I have one additional skill left to choose. But what you choose then? Oh, yes, I've forgot Restauration... So yeah, sounds like a good combination in theory. Yep, I can think of it working ok. Hm, I forgot about the sneaking, though. Well, the thiefs guild is nothing I plan to do again (boring and the reward is just a silly, useless cap). And the assassin quest stuff can be done without sneaking as far as I can remember. I'm usually not too keen on killing people visible to guards, so I'm not sure if that's a good idea. Anyway, I'm only good at killing people unseen with a good melee weapong or bow - contradicting the magic-oriented character build. So in order to have some real advantage over this, I'd need to additional skills I can't spare. Also, I'm always using stealth, so let's so something different this time. I can also simply choose a Shadow birthsign and do complicated stealth jobs this way. I mean really, Brotherhood quests are normally done in short time, so nothing to worry about. I could also drop Conjuration due to lack of intelligence-dependent skills and so on in favour of stealth - could also work. Well, in the end you can simply slay anyone and still have your fun. I'm rather looking forward to solving the stuff that doesn't require stealth.

So I can decide birthsign and 7. skill according to the character race I want to play this time. I must admit I'm tempted to try an Orc mage. And Orc has high Endurance and equally high Willpower. No mage skill point boost and low intelligence but skills aren't everything. Orcs have enough strengths to carry armour and a set of differently enchanted weapons. I could select Blunt or Sword fighting for an Orc, too. I mean it may combine well with blocking and casting, ya know. Overall I can select three attribute increases per level, making Willpower, Endurance and Strength the only ones necessary to click. Sounds good so far! Conjuration is cool but probably a tad too much when combined with other stuff. I'm sick of builds that requires shitloads of stuff to and level up automatically when the simplest tasks. Ok, so then be it - an Orc Mage using it's Endurance and Willpower! Gonna think about the Birthsign, though. Maybe the Mage for more Magicka or the Lady to have 60 Willpower and Endurance points. But well, it's questionable whether this is really of advantage since you gain those stat points quite quick by leveling up. Means you can't improve them in midlevel game. So I'll probably choose the Mage for simplicities sake.

Yay, character done. Now to test it some time.

Pick up the book

I decided to take the rest of the day to make a proper stock for my Lego gun. I haven't posted any pictures of it and it might be not proper at all, but I'll just do it today. I also finished my tracked NXT robot, so that has all of it's previous sensors back in even better condition. Some time I may change it's rotating ultrasonic sensor, but only if necessary. I don't even know if the robot will need to use for our task, but anyway. He looks so cute with his little head and it's bulky rest! I called him Ernie. Anyway, I'll try to create a normal looking stock with my new black parts I got from a recently bought Lego set. It feels good work on a Lego gun again. After so many annoying things, I forgot to do something relaxing that's not playing a videogame or watching a new but bad movie. Oh man, I'm so damn looking forward to the final look of it. It might even look sexy enough to make myself want to shoot it from time to time!

This time I'm making the stock seperately from the gun's functional body and attach it later. This way I can keep the previous stock proportions.

Short time no see

I wish I had coded on my game engine thread stuff the last days, but I didn't. So much annoying stuff to do, a brain-dead father stealing tiny but important parts of your property to blackmail you 'n other shit related to the fact that'll need to find a new home for myself. You finally thought that you eliminate every possible source of problems, but no!, it's just getting artificially worse. I'm not the problem, the problem is that very mind-crippled person I have to endure currently. However, this didn't stop me from doing a very things that were and which I think were most necessary, especially for study-related stuff.

I finally merged my mindstorms robot with my remote-controlled, tracked vehicle. It's something I wanted to do since the last time we programmer it and I find pretty solid at the moment. It's still not tested completely, but I suspect my fellow student to have programmed a rather failing forward motion since the tracked model, like the tri-wheeled before, has some strange drift to the left. I bet he simply set two different numbers for the accelerating motors, which's of course produces certain fail when having to drive in a straight line. But anyway, I'm rather pleased with my current model. It's not finished (needs some rotated ultrasonic head on top), but it's already a good little setup from which I can also remove the NXT in case I need it for another robot or simply want to try it with another dude's one.

And did I mention that'll have to do functional programming this semester? Maybe. Erlang is it called this one language and it certainly has it's advantages. Anyway, it also has enough flaws to make it the most unefficient language ever in terms of looping and batch behaviour. There are no actual variables but only parameters and functions. Thus you need to pass every shit all the and hope it's working. One part of my assignment I'm doing with another dude, is to create a function that generates every magic square with a random size and random sum each row, column and diagonal has to represent. It wouldn't be so hard to create an optimized list-based solution in C (well atleast I'd do so since I'm no expert in such "puzzls-alike" stuff), but it a functional programming language? My current solution is to create a list of vectors that fulfill the requirements and simple brute-force through all possible solutions of those vectors. This way I'll atleast reduce the amount of failure by a vertical sum check and only need to continue with horizontal and diagonal ones. Still thinking about how to reduce the brute forcing cause this is more than annoying to do. I'm quite a bit disliking this lecturers assignments due to his love for tupid math puzzles. The world really doesn't need any of this stuff anymore...

Oh and I've started to play Oblivion once again during my creepy Crypta adventures in Arx Fatalis. Both games do so well in what they were made for. Just gotta love all this stuff right now! Though I still have to find my new home in the next time, parallely.


asynchronous framerates

Title sort of fits if I think about the fact, using the processing model I've chosen so far for my game engine, that there'll a framerate for each cyclic task. One for raytracer, one for the physics, one for the hardware renderer etc... Any idea how to combine them? It's not just a framerate made up of several quick calculations done inside a single frame, no. They run independently and have a varying cycle frequency and thus their own, alternating phase! Means measuring framerate is difficult when you want to provide a convenient, single fps value. I could of course take the delta time or frequency and play a bit with their formulas... Yeah, that could actually somehow work but still won't reflect where the bottle necks are. Hm, simply gonna show all four for swaggering's sake.

I wonder how modern multithreaded games do that. They probably just show up the rendering framerate I guess or don't use multiple threads at all. Simply wondering, I am.

I've done somethin totally awesome

Yell, atleast to it's more than half of the rent for a good game engine! Besides some additional functions to the queried mutex, I've finished the code for the task execution engine (called tasker). Now you can take a break between task execution, avoid any deadlocks as long if the tasker doesn't lock itself from the executed task function and have an in general very stable construct - if I didn't do any heavy mistakes in the theory before, which I strongly doubt. I mean otherwise I'd have this typical damp feeling of knowing that something is wrong with it. Let's say I know when the blood is fresh, and this one is dripping off a living body. However, I haven't done real tests with it except the typical dry scenario. But I believe that this technology is as innovative for me as the internet for indie developers (which means that I planned in long before but it proves more and more awesome over time). Well, only if everything works right of course, but as I said - I have a good feeling about this. I'll make the game engine and game itself BSD or something like that I guess. This way I can gaurantee that it won't rot away in the big chapter of never-publicised secrets of non-opensource software. I know that there are some of those and it doesn't help anyone making good products if there's nobody utilizing or improving it. I may be an ass if it comes to deciding what software or library is worth using, but without giving a variant I would find personally better or simply the best, it doesn't make the world better or solve the problems I have with those libraries. Good things should be shared, especially if it's program code, I think. This is of course not the case for a commercial market, but in this case I'd rather buy the guaranteedly good product resulting out of it and not just the tech behind (which'd then free of course).

Yay, I made it. I'm so glad I made this. I better not pimp it that much in the future cause I'll probably ruin it's awesomeness then. Some things should simply not changed because they are as good as they can become in their bounds. I mean what's the point of working on stuff that was already designed and implemented to work flawless, hm? No point, of course! And because of that I'll not work on it today anymore and do something relaxing like eating Yakisoba with some friends or so. I think I deserve my money today.