Thursday, 27 November 2008

Unmotivated.

It will take a long time since I will become active again. I currently feel a great burden, again that old feeling, wishing to be creative to give a meaning in my life but being too lazy. Sometimes I say how cool it would be to have a lot of free time and not having to go to work but it seems that you get more lazy when you loose your job. I know, you people will tell me to find another one but I don't want yet. You don't have to tell me. I know how it kills me, yet I want to be able for a while to wake up and do nothing. I can't even code demos or anything because I feel I have other responsibilities to fulfill first. I have no motivation for nothing. I keep watching tv series. I wake up at midday. You will tell me that the solution is to shut up and do what it has to be done. I know, but I don't want it so fast. I want to find an alternative. I want to be able to be creative and happy when I don't have to wake up in the morning, where there is no job to keep me on track, I want to somehow be lazy and creative at the same time. Maybe I ask too much, but I won't follow the other choice (of just doing what the rest do and find a job) for a month or so till I find my answers. Which I won't. So I will rest (I never cared about the supposed missing time anyways).

I need to finish 1-2 things in a week though. Scene and real life things. But it's really too hard for me right now..

Saturday, 1 November 2008

The feeling that almost came back..

It's not really like the very first time though but the releases at X 2008 makes me want to bring back my C64 and start watching demos on the real thing. It also makes me want to start coding again. I wish I start with a new project soon..

I won't say much, just check at the 1st four demos here (either the videos or watch them on an emulator or the real thing). I am wondering how the C64 demomakers can still surprise me when I thought I have seen everything..

Progressing..

It took me 2+ frustrating weeks to integrate the 2nd part of the CPC demo I am currently working on and one evening to finish a rotozoomer effect for another part. Things are so arbitary when coding. Sometimes you spend a whole week to find a fucking bug and at other times you have such inspiration and clear mind that it all goes well and there is something to see on the screen after few hours of coding. I wish I was such productive (or maybe lucky on code) every day. And I even love the code I wrote today for the rotozoomer, so clean, so nice, with nice tricks (yet not the most optimized thing I can get).

I think that the effects for the intro are ready now, I just need to integrate them together, sync them to the music, do little fades and design details here and there and then I go for the big thing. The main demo. I will build this from scratch, being more careful with memory organization and taking more time on optimizing the effects and fitting all in memory. It will be something like a new step beyond and we are planning (or I hope) to release it till the end of 2008. Most probably it will take longer though because that's how projects come along. Also I am trying to not pushing it hard, enjoying the process and even not be too harsh on release but take the time to make something slightly more designed than my previous CPC demos.

I have a week since I stopped following the project list in the previous post. I also rewarded myself on my CPC effort by throwing a 1d20 dice and donate 15 stars to the inactive projects. It hardly works with 5 or 6 projects running low on stars. I need to mainly focus on one. Though I will keep the app running and try various other schemes. It will depend on my creative mood and which projects I would slightly like to take care for a little while (except from the primary CPC project). I try to keep a good balance in my real life and scene life projects and I am slightly content with the results.

Tuesday, 21 October 2008

Multiple Project Planner



And there you can see my current projects, either the ones I have already started working on or those many pending for the future. Some people might say that having so many things to do instead of focusing in only one is what demotivates me and frustrates me. While it partially makes sense, say you are thinking of the various projects you want to start and then worrying about starting with one and leaving the rest you would also like to start, it's not the primary force that kills my will for creativity. I think that even with one project (and there were periods that I was focused in only one) I would still be the same lazy and thus frustrated. There is also an advantage of having multiple project, in that if you get bored of working on one project for a long time you can switch into something different and this can increase your motivation to be creative. In fact I have noticed some points to where I get bored or deny starting to work on anything but that's not with working on multiple projects. Maybe it has to do with daydreaming about multiple projects or it's simply laziness. Still, in the place is the hard decision of which project to start with. That's where this new project planning app and actual experiment seems to be an interesting way to overcome it and motivate me on working on anything. I just need to go on with it for a month to see the results..

Let's talk about this application. First of all I am playing strategically here. From my experience I know that every attempt to "robotize" myself, I mean to make a strict plan and say that at certain hours I will code this and that, simply failed. Even the lighter attempt which sets that I should work for few hours on some project but make my schedule elastic. Well, elasticity is still the way to go (and I use the concept in this app) but it wasn't enough because I would simply deny going to the schedule or forget the whole concept. Also, the idea of either using scheduling software or even coding one was out of the question because I would have to spend a lot of time to learn how to use or make the software while multiple demo projects were running. In fact I used the hard approach here but with a strategic thought. In the past I was thinking about of coding a big application with database, statistics, app uses per hour, etc which I never managed to start of course. But this time I had the rule to find the shortest way to make something, unfinished, very alpha but which can start me up. For example you can't use the app atm. The values are typed inside the C++ IDE and when I want to change those * and @ or set a different status (color) to a project I do it manually. Because it would take a long time to make an interface. The idea was, ok I will do a pointless schedule like app to start helping me with my projects, but what kind of thing can I do in 2-3 days of code? That if I want I will only evolve later, but atm it will do it's job manually from inside the code. Just a project struct, some font rendering and lines, loading static values from the code inside and voila.

And so MPP was born. I can also easilly set sub-MPPs for running project, e.g. if I have a critical project (like a demo I want to finish before a deadline) and I want to make another list of parts of the demo I want to finish and define some time and status for how they are going. I have already done this for our incoming CPC demo. Of course this sub-MPP app is a different DevC++ project with copied files and changed subplans.

Some explanations. The green are active, the red inactive, the grey are OFF atm (and there is some dark orange or brown color for OnHold). When projects are active, they have one @ per day. The yellow mean that work has been done, the dark blue means I was lazy that day. In some inactive projects I wanted to start soon, I have the white stars in the third row. Each day the project is inactive the stars decrease by one. Projects I initially decided to not start soon (e.g. the C64 or GP32 projects, because currently the CPC project is more important) I have put more initial starts. Also if an active project is idle for 3 days it becomes inactive and the stars start decreasing again. If the project is finished I put a white color text and the Working minus the Idle days multiplied by 2 are new stars I can share with other projects.

There is this specific problem, say for some reasons I was idle (it's not only laziness but real life too) and the stars and idle days of various projects are coming down. Or you may not be motivated to work for a project that has reached zero stars. There is an option to exchange stars, e.g. to steal some from an inactive project with many ones and give it to the project you want to avoid at the current time, thus postponing it for the next days. You can also finish a small project to get new stars to share with the rest. Yes, a bit pressing condition watching the counters decreasing like monsters and wondering how you can work with five projects the next day. And I am currently near this situation. It's interesting to see what will happen. What is the entropy? Will the stars decrease faster than I can sustain a balance? Can I cheat by starting inactive projects for a day, being idle with most for less than 3 days and work the other day again? (remember, when active the stars stop to decrease, unless you are idle for 3 days again). Can I cheat with other ways? Do I miss the point which is to actually being motivated to be creative and not chase some counters? (though it's a nice game too that keeps me focused on projects I would forget for months otherwise and a different perspective to be creative too :) Will I have to switch and adapt to different rules that fit my own pace? I believe that the sets of rule will slowly slowly evolve. It's interesting and I will know in less than a month..

Another bet I set to myself is if I can succeed this time. Always, when I started planning a demo and visualized it in my mind it never end like I have wished and I was even frustrated near the end to finish it harsh. Now we have a CPC demo in my mind, one that if this predictable phenomenon doesn't occure this time, it will be something really great that I will be very happy with. It might be the first demo for me that I will be really really satisfied with. And I want to win this bet because it will change how I see things. When you have failed for 10 times, each next time you know that the predictable result will be to fail again. And you get dissapointed so much that you are not motivated even to start. If this doesn't fail this time I will have broken the ice and a lot will have changed with my psychology of how I see myself and demomaking. Each next time I will know that it is possible in once to dream of a good demo and make it a good demo without having to kill it and make a harsh release. Well, I think I said similar things in "A Step Beyond" too, that it was the first time to break that ice (and it was but several things weren't exactly what I wanted and there were only 2-3 effects and no design (for this one I have great plans :)). But I know that the bet seems like putting myself too high, being unrealistic. However a lot of parameters have changed that persuaded me that now is the time to set the same bet again to myself and truly succeed this time.

Recently I have evolved into a being that might easier and without much frustration as in the past finally make his dreams come true. For projects in general I have first of all evolved my psychology of how I view things concerning demomaking, my frustration, my laziness, what motivates me and what demotivates me, what I really ask for and methods I could follow. Even to stay calm in case of bad times. Also, I have experience. I have build some nice frameworks that are not yet finished but evolving. I have learned to play strategically, e.g. coding the things I can finish fast in order to show something, to motivate me and have a start. In top of all is this MPP application which reflects some of my ideas. I have learned to persuade myself to work for 1-2 hours and not go for 8 hours full (except if I am really into it) because I wrongly believe that without hard work a demo can't be done, to work for 1-2 hours slowly slowly, then make something else and have patience. And I still try to evolve my attitude towards how I plan and work on projects and my life too because it's dynamic. I still find times where I loose my patience but I regulate my feeling better now. Other than that, with the CPC demo I have great support from Rex and Voxfreax this time and we really hope to finish something before Xmas. At least I hope but if I don't I will keep the project still for the next year if my schedule gets out of proportion.

All I need is faith and a lot of courage. Patience, good psychology, trying to regulate my feelings even in bad times, understanding of what I am and what I want to do or where my flaws are. As long as I speak about it and don't code I have this feeling. But I'll have to break the ice this time. I have to succeed and well. Step by step..

Friday, 17 October 2008

The hacker, the cracker and the scener

It seems that my anti-hacker posts will never seize to appear. In fact I am really motivated to get more into it in any way possible :P

I will just make some comparisons now of the average person in three different communities. And two funny analogies too.. (my favorites :)

First, some distinctions have to be made. I will be shortly talking about the hacker, the cracker and the scener. I will define their meaning at least as used in this post. I need to be sure that no misunderstandings will take place because of a different understanding of the same words and that my point will be understood.


The hacker: I know that you don't like the use of this term to describe these electronic pranksters as seen on TV (Neither do I). In this post though I will use it as it is (even without the quotes) and I will mean only the definition as portrayed by the mass media and adapted by our own culture. I will not mean in this post by the word "hacker" the hobbyist programmer, the computer enthousiast or the computer pioneers of the past. Please understand this is just for the purpose of the post and as means to be understood even by the illiterate.

The cracker: Be careful to my definition of this term for the purpose of this post! This is not the term used in hacker ethics to differentiate from the programmer to the electronic prankster. It does not mean the bad hacker or the script kiddie here. It is about the software cracker, the dude who managed to overpass the copy protection of commercial software, makes serial number generators or even makes those nice cracktro screens with gfx/music and sometimes (maybe in the past) option for infitive lives/energy/etc. While piracy is also ethically questionable, in my opinion this guy has not much to do with the hacker as described in the previous paragraph in my opinion.

The scener: Some people say that the demoscene has it's ancestors in the cracking scene (as described in the previous paragraph). Some of the software crackers except from removing the copy protection from the commercial software, also did code some sort of a graphical screen with some music, a logo of the cracking group and a scrolling text with greeting/fuckings to various other crackers and other messages. These are the cracktros accompanied some pirated games which some of you might remember a lot of years ago even though they are not too frequent today. Some of the crackers who liked doing these intros stop their cracking abilities and just released similar cracktros (later called intros or demos (from demonstration)) purely for artistic purposes. When I first got involved in the demoscene I had no idea about the cracking scene. I just liked to code demonstrations of graphic algorithms synced to the music and release them to the public. Demoscene has nothing to do with "illegal" (as in piracy) cracking activities except for the roots (how the cracktros evolved into the scene demos of today).



In a nutshell:

What my terms mean here is:




The hacker is mostly caring about the reach of his goal which is to get access to some server in order to make some supposedly "cool" act as defacing a website, spreading a virus, stealing some private informations or maybe make a political statement. The primary force that drove most of these dudes into hacking could be because it sounded "cool" or maybe they thought romantically that they are heros fighting against the system or anything. They don't really care much about knowledge or programming skills as they just really dream for the time they make a cool "hack" into the pentagon or something. 98% "coolness" / 2% soul in my opinion.

The cracker mostly cares about the challenge of breaking that copy protection scheme, reverse engineering the algorithm behind those serial codes, disassembling commercial software and make few improvements here and there, etc. They get commercial software from suppliers and send cracked versions to the warez dudez who are responsible for spreading the pirated (and cracked) copies. Sometimes they code cracktros attached to the software and run before it starts, to claim how leet they are. The cracker may not care whether software piracy is accepted or not, they are more driven from the challenge of bypassing the protection against piracy and they feel very proud if succeed. Not much code or work is needed to achieve this but they know what a disassembler is and use it regularly for example. Funny thing is that I have met two crackers in the past and they both ignored or even snobbed my demoscene involvement while bragging about their cracking activities. There is a feeling of leetness in this scene but at least it's not about pranks on the internet and those dudes know a bit about programming and love the challenge. 70% coolness / 30% work (always in my opinion).

The scener in his first days had watched some demos done from older scene veterans and for some reasons he really liked the graphics algorithms, music and programming effort went into it. He actually liked the demos alone for their feeling and creativity and thought he'd really like to learn how to create something like that. He is in a great need for being creative with his computer and show that he can do something cool rather than spend time gaming, chatting or watching porn. It's hard at the beginning, needs a lot of effort to learn good programming, optimizations, mathematics, graphics algorithms or even how to choose the proper colors for his demo, it's even hard to organize this one with other sceners who are willing to paint computer graphics or write some music for you and put all things together in a nice presentation. Ripping a demo and presenting it as yours is more than lame in the scene because the whole purpose of what we are doing is to work hard and create a pleasing realtime demonstration of graphics algorithms, art and sound, the creative road taken is the soul of demomaking (entirely opposite from hacking, where someone can even succeed sometimes doing a "lucky" hack in a website and brag about it strongly). Of course there is a bit of a feeling of leetness in the scene too, we use cool sounding nicks and group names and argue with each other too, as in cracking and hacking, something that happens in a lesser or greater degree in every other community now I am thinking it. But the greatest motivation to join was initially to create something like the first demos we have seen and loved, no matter if some of us needed that for curing their low self-esteem too. (I am talking about myself here :)) 20% coolness / 80% creativity.



And now my favorites!

A scener is someone who walks several miles to reach his destination although he enjoys the walk. A lot of obstacles and problems are to be passed on his way. There is a great prize at the end for the good effort.

The cracker needs to jump over a protective electric fence to get to the other side. There is a ramp there at the right position and he finds a broken motorcycle. With his tools he manages to fix it and jump on the other side. He finds the switch to turn off the electric fence and cuts an opening in the fence with his tools for others to get through.

The hacker enters into the back of the car of a careless driver who stops to take a piss. The driver gets back and drives to his home. The hacker gets out, gets into the driver's house without to be seen and starts writing messages with spray over the wall. Sometimes he leaves the place, sometimes he breaks some furniture or beat the crap out of the driver too. And at the end he brags about it, thinks he is a hero and even some people congratulate him for his acts because they have heard it's to be respected.


Another one. What if sometimes even sceners or crackers seem to be engaged into hacker's activities? Why would that happen in any of these cases?

The scener is a scientist who except from his primary expertise also happens to be engaged into lock picking as a hobby because it's a tricky thing to do(like Feynmann for example). At best he finds a safe target just to experiment, not someone else's house.

The cracker is into lock picking sometimes. It's a similar technical challenge as his primary cracking activities and gives him back some more of the leetness that makes him feel special. He tries lockpicking and maybe breaks into some house. He maybe steals some food to eat or supply to other people who need it.

The hacker most of the times cannot even bother to lockpick but slams the door with a kick and gets inside. He either writes some messages with spray upon the walls or furniture with texts that mock the owner, sometimes he may steal some money or only in rare situations breaks everything apart or kills the owners. In the end he things he is a great respected scientist, a brilliant mind or a hero of the revolution because lockpicking is what Feynmann is into also. Most of the people think that these dudes are like robin hood and praise them. When you have a different opinion they blame you of being ignorant or working for something they call "the system".



I said things as raw as I could. Trying to be as exhibitive as possible. And you have seen nothing yet..

Now, to the people who still think I shouldn't be using the term "hacker" to describe what I am talking about in this post I have to say this. Nobody is using or understands the distinction term "cracker". (with which definition I also disagree because there is another scene of software crackers that have almost nothing to do with the new hacker definition (in either color of hats)) It doesn't show the real problem here. We, computer enthousiasts and hardcore programmers are not called hackers anymore. Our image to the average person is of geeks rather than revolutionary heros as seen on TV. And the new definition is deeply into our culture and only confuses things if we try to both keep the old and new definitions or even try to put different titles, not understanding at the end which activities we praise or blame given the words used.

If for example I started by saying that hacker is defined as a programming pioneer of the past that is bound to be respected and then tried to either use the same or even a distinction term (like your bad hacker "cracker") to describe it, people would still click to the well known cool sounding of the word "hacker" and further attribute the good things of the old definition you describe with their liking of the new definition everybody understands. What we would have here as a result is people thinking that illegally attacking or taking access into computer networks is to be respected and it's called "hacking" and it's done by computer gods and think that your distinction talks about the difference between good and evil hackers who both invade into computer networks but for different reasons. This is why I insisted only on the new term definition, because this is what people think either ways and I really wanted to make it clear to them that this one is not romantic or heroic but purely lame.

I thought about the term "neohacker". If you speak to people that people who invade computer networks are called "crackers" (or anything else not using the synthetic word "hacker") they will not understand. Nobody calls anyone cracker outside the world to mean anything like that. It's not deep into their culture as the romantic or heroic sounding word "hacker". And you will confuse the things more. I thought that "neohacker" still having the synthetic "hacker" into it would drag people's attention but make the distinction nicely. "Neo" refers to the new definition of the later generations. "Hacker" with the quotes wouldn't make it because if not written it sounds the same. But "neohacker" would still drag attention and yet not being forgotten as "cracker" and also can easilly make the distinction.

In fact neither "neohacker" would do it because those electronic pranksters and wannabe rebellions would still think they are called hackers and that only the bad sides of their activity is called neohacking. Where they would still think that defacing a website is on the good or accepted side (since it doesn't "destroy" anything, hell yet in my opinion it kills a lot of the precious time of people behind the website or the admins, frustrates people and is simply childish :P). But I will use the term more frequently in the future. Not much that can be done when something enters our culture and stays. But we can forget these terms for a while and just concentrate on criticizing these not really to be respected activities. If only meanings wouldn't be distorted because of the words used..

Sunday, 28 September 2008

The feeling that is gone..

This is a complement to the previous post. It's all about this magic feeling of the demoscene, the demos doing the impossible thing and how it is gone. Not because of age, not because of modern hardware, not because of any cliche reason you'd think (like the scene is dead). Because it's different when you watch the first demos, trying to code your first effect and imagining how the hardware works. It's different when you go to your first demoparties, it's different when everything is new for you than when the demoscene is all you were doing for years.

I still can stare back at C64 achievements, CPC effects or 386 demos and respect the effort and genious behind some "impossible" ideas. But they will never give me back the same feeling as during the first times. The feeling of the impossible, the feeling of my dreams.

Someone said that democoding is like magician's work. You are trying to do something which in the far end can be explained but seems to be impossible. It's programming and trickery combined. The young democoder starts as a newbie, trying to learn the basic trick with the cards while staring with awe upon the cut in half with a saw high level magicians, wondering if it's really a trick or they have sold their soul to the devil. As they learn more, they figure out that even the most amazing tricks are nothing really extreme in reality. The magic is gone.



We used to stare at effects like the above done on an 8bit and wonder how is it possible? Today, most of my favorite C64 effects (bitmap manipulating, precalculated mapping, etc) are just big unrolled codes of LDA/STA. It only remains to precalculate the 3d to 2d coordinates and correlate the pixels of a bitmap to the positions of the screen for a bunch of pixels to be written. Then you only scroll the bitmap or increase/decrease an index register (depends on the size of your bitmap and what you want to achieve), rerun the unrolled codes for each frame and voila! It's no big deal (the biggest pain is to generate the unroll codes and fit them in memory I think), though the first time I would see this effect on an 8bit I would think it's impossible. Now the magic is gone.

The magic is gone even for the more clever codes. Or at least, I have seen now what a C64 can really achieve, I even know that if these things are possible on the C64 they can easilly be done in the CPC too at similar speeds, I have a big idea of what is possible in 8bits, 16bits or early 32bits today, so it's really hard for me to feel the magic. I may still be impressed, especially when C64 coders continue to do slightly better versions of these effects today, as they continue to improve when you first think there is nothing more to be done. I think the best times for someone in the demoscene are maybe the first years.

The magic was getting even bigger as someone started learning to code. During the first years I didn't know much about optimizing Z80 assembly, my code was slow, I didn't even thought someone would unroll codes to the last pixel and that would save him from other things too (no need for compare/jump, values could be given directly instead read from tables, etc) and when I tried to scroll say 1000 bytes the screen was almost refreshed once and then I thought "If I need a vbl to move 1kb then how can they move and even manipulate whole screens? I never expected it to be soooo slow..". Then everything seemed more impossible because I didn't had the experience to know the tricks and the limits.

I believe that small fractions of the feeling can come back at times. At rare times someone tries not to do a slightly better version of an effect but something new, not done before especially in this speed (for example, the free directional tunnel of Error 23, not seen before on the C64 and thought it was PC territory because it needs floating point calcs even with subdivision). It's not because the scene has changed and people code less impressive things, it's because you have seen everything and have a wider view of why they are possible. Maybe it really is because we have done a lot and it's harder to impress (like in music when a new genre appears and everything after that is copies, because the original is done once) but maybe this feeling was always present at any age and maybe when people age in these territories they feel that everything is stagnating unlike their first years. Maybe it's just a feeling. But one I can never experience in the same sense again. I just long for those rare impossible effects that can bring the feeling back for a while..

Thursday, 25 September 2008

Why I love the demoscene?

Some funny things I have heard from people with old computers hating hardware requirements.

"Hardware requirements are illogical. It's a conspiracy of the software and hardware companies. 386 is enough for everyone!"

"I can't understand why 3d studio needs an FPU coprocessor. It doesn't do anything extreme that can't run on my 386."

"3D graphics are 2D really. Projected on screen. So, they should run as fast as 2D games.


"Myst has better graphics than Quake but it only needs a 386 while the latter requires a Pentium. It's a conspiracy!"

"My TV set can show movies with perfect video featuring explosions and a lot of crazy action and it's just a cheap chipset. Why can't FPS on my 386 do that?


"That game is a 10 MIPS software while on PC we write code of 3 MIPS, that's why consoles can do it better" (pointing at some lousy prerendered animation on 3DO console =)

A PC Master reader: "I assure you that need for speed can easilly run well on a 286."

Some friend pointing at an arcade coin op: "Mortal Kombat 4 should run on my XT. Why not?

When you are an illiterate user you can't understand the difference between realtime or not, you don't have an internal knowledge of the process that is required for a game to render something on the screen, you only compare the final image thinking that your average 3d engine should be the same fast as a prerendered animation or an action movie on your TV set. There is the moment when a coder comes to explain you how things are, sometimes although the software MIPS dude sounding knowledgable, is enough to make you believe.

I remember that time when two guys were discussing about that 3DO game, I knew nothing about programming then but somehow I was curious about the whole high requirements/performace issue. I wanted to know in deep what is the truth. So, hearing someone speaking the word "MIPS" I was immediately hooked. I couldn't understand though that saying this software runs at 10 MIPS wasn't exactly the right way to say it. But now I understood that he maybe meaned that the consoles were build with more processing power (he didn't mentioned custom chips) or that the game programmers are targetting a machine with lower performance than PC, optimizing their codes for a hardware with less MIPS or something like that.

It doesn't matter. What mattered was that by using some tech-jargon he sounded credible and knowledgable. But most of us users then were either seeing things on the surface (the graphics of Monkey Island are more beautiful than Doom but they are faster, why?) or listening to the "experts" without actually understanding in deep.




I will make a parable here. One that will get me to the point of why demoscene rocks!

Say that the clueless users who maybe wish their C64 could fly are something similar to the people believing in ufos, ghosts, fairies and yetis. They claim things with little or no knowledge, dreaming of their wonderland. The programmers are like the skeptic trying to show them what's the real deal is and land their C64s back on the ground.

Personally, I was into that anti-requirements craze (through some articles in an old greek magazine, PC Master) not because I couldn't afford a computer but somehow I was always fascinated about the software performance/hardware ratio. I have been dreamed of Quake engines running on a 386, SNES games on my CPC, MP3 players on my XT, perfect OS with high performance on low CPUs, just because of the idea of how impossible would that be! It was like a dream, till someone came and grounded me to the floor: "You know, the CPC runs at 19968 cycles per frame and smooth texture mapping would need at least a 4MIPS machine while the CPC isn't even close that!".

This was the time when an expert was talking and you couldn't say much even whether you were literate or not. The thing that I like in the demoscene is that there are times when dreams come true, where the impossible happens, where the expert sounding dude analyzing the limited performance of the hardware and requirements of the software would fail.


Say that someone comes and tells you that he observed an UFO doing impossible manouvers in the sky and then disappearing into the void. Say that you have also photographic or video evidence. He'd probably think that it's either fake or your idea while arguing why it's highly unprobable.

Say that there comes a dude claiming he has a video of the best Amiga demo running like a charm on a C64. He has video on youtube. You can be skeptical but it's the first time someone actually analyzes why it's not possible, how the C64 has not even multiplication and couldn't run 3D so smoothly, sounds (and possibly is) knowledgable, seems logical on how this is impossible on a hardware 10 times slower than Amiga (you could base upon his words if you never had the actual D64s on your hands to see it for yourself) and yet he fails. It's the first time that things we always dreamed and laughed upon are actually real! Things like Desert Dreams for C64 or Second Reality for C64, a windows like OS on the CPC, wolfenstein 3d on AtariST or Doom in spectrum (almost :). Wouldn't you say that's impossible? Wouldn't you be skeptical? Of course it's not the same doom, not the same second reality, not the same windows as in their high versions but would you still believe such a functional windows like OS would work like a charm on the little CPC? It's like the silly dreams of the people quoted in the beginning of this post, but this time it's here and it works!!!


The screenshot above is from Parts by Oxyron, a C64 demo that stroke me with awe. (Unfortunatelly it's nowhere on youtube but check this with similar tricks (Dawnfall by Oxyron)) It's a classic example where if you described the desired effect, the skeptic or knowledgable would argue that it's not possible.

I can do it myself. There is a big zooming and distorting bitmap in one part of Parts, it's not blocky, it's manipulating the bitmap so smoothly and pixel perfect! Now you'd say, C64 has around 17500 cycles free (I really don't remember) and that bitmap say it's 144 pixels * 128 lines = 18432 pixels (haven't counted really but they are a lot). For each pixel we would need 17500 / 18432 = less than 1 cycle left to run this on 50hz. Impossible! Most opcodes take 2 to 4 cycles on the C64. By using 1-2 opcodes per pixel this would even need 4VBLs. You need to do interpolation, calculate the pixel shift to make a byte and write it, maybe little more things, you'd need 6-7 lines of code. Even with LDA/STA style speedcodes you'd never make it 50hz. All the data are against your dreams!

This is why I love the demoscene so much! The impossible becomes possible. It's there in front of your eyes. No magic! And there are two other reasons why I love demos so much (especially those in old computers):


  • 1) For such impossibilities to work, someone should shift his perception of how he stares at things. Because a bitmap manipulation is calculating interpolation for each pixel and writting it, it doesn't mean that what looks like pixel rendering should be done by pixels. Because something is fullscreen it also doesn't mean every byte of the videoram is really updated. You have to think out of the box! The effect in the above screenshot is done by different shifted and zoomed version of various graphics tiles done in char mode on the C64. But it looks like the perfect pixel manipulation effect!

  • 2) The one who claims it to be possible should sit down and code it. This is how the demoscene works! In the parable above, it would be like searching for aliens and then putting a real extraterrestrial body on the top of the table surrounded by skeptics. Of course there is a big difference between searching for the unexplained and democoding. There is where the demoscene gives you the tools to be creative and show the impossible.




Demos do amazing things but why never games, those dudes would say. The craziest letter on the PC Master was one where a reader screamed that Second Reality surprised us in a way that noone in the commercial software companies could ever do even in a Sextium. I liked that one and wondered what is the second reality demo he mentions and if it's sooooo impossibly amazing then why I have never heard about it (similar to what skeptics say, if such crazy unexplained phenomena were real, we'd be fascinated for sure but where are they?). Though it was real! I found it and later discovered the demoscene community too.

There was a time when someone in greece formed a 8088 club. They were angry on the excessive requirements of software and wanted to go backwards. It was mostly about playing games on our XTs and stuff. They say they had a programmer. I sent them some demos and spoke the best words about the demoscene but they didn't seemed to bother. But demos were the means to say that impossible things can be true in even the lowest of hardware! Yet they were not impressed. If second reality was the greatest software ever, then why it's not heard? Now you know..

So great, so magnificent, making my dreams true, yet so few people understand it. And they still worry why Quake can't run on their 386..

Wednesday, 17 September 2008

Teapot mess 2



Here it is and my gouraud shading is not working well yet. Strange that I start from scratch and there I am back at the beginning. There are a lot to be done and I am still messing with 1993 alike treedees ;P

I did more than you can see in the screenshot. And there is still more to be done. Will it ever be a righteous 3d engine?

Monday, 15 September 2008

Teapot mess



Just an ugly test. Some polygon pushing test. To do some speed checks.

I am rewritting my software 3d engine from. Currently I am working on the PC version but there will be ports for GP32, GP2X and GBA too. I have totally rewritten the triangle rendering and setup code, quite different than the old crappy renderer, seems twice faster on PC (I am wondering how well it does in gameparks) and it's organized so that it helps me write various shaders in the future. However there is no clipping, it's buggy with the interpolation, needs subpixel accuracy and a lot of other stuff. Various old data structures are rethought and rewritten, new are added that will help me to easilly define worlds with sets of objects, materials, cameras, etc. Half of the stuff are written and there are a lot to be fixed.

I hope I will finish with it oneday because as it seems, it needs much more work than I originally thought. I am not so much thinking how to optimize (except the triangle renderer), but more dwelling into how to organize the data structures, the functions, the whole logic in the best way possible so that it's easier for me to show stuff with this engine easilly. And everyday I discover a logic that I would prefer from what I have now. And then change my mind. And it's still a bit confusing. And the renderer is buggy and needs a lot of code :P

Maybe I will return back to CPC soon. I totally stopped working on our demo since I started with the PC engine but I needed this as a change. Now I need the CPC as a change :P

Saturday, 30 August 2008

CPC nostalgy 2



I wonder why I named my first entry cpc nostalgy and not something like CPC ribbons alike or CPC curves or new CPC code or something? So this will be number 2 but the title might not be oh well..

I will just post another screenshot here and maybe take a long time till I post another preview. It would spoil the thrill of the demo if I was about posting preview shots all the time.

This one is my attempt to try something like antialiasing (or WU pixels Mode 0 where only DY counts for one up and one down pixel, but DX takes no part in the filter). It looks ugly at some places but I still wouldn't think I would make something like antialiasing so easilly on the CPC. It's just the fractional part of Y and some look up table (or not even that but you get the example). Oh,. and forget the bad thing with the lines stopping after some X in some parts. It's not a bug, just some rendering going looping and out of vram but not checking..

Maybe oneday I will leave CPC and also try making that OpenGL framework I was talking about. Mmm,. I wish I could make both at the same time :P

NV scene releases

I thought it was time for me to buy a new PC. Most demos wouldn't even start in my old Radeon 9600 these days or being too slow to enjoy. The timing was good but useless, since I learned too late that there was something called demobox. I am wondering now, would it motivate me so much that I would have made a new accelerated demo or 4k that wouldn't suck so much? Or would I just take the demobox and say goodbye? I don't know about me, but it really worked in a way for the rest of the scene. This year we had an assembly party empty of demos and all effort went into nvscene. 15 demos and 19 4ks, where several of them are quite decent is quite good for the american scene. Even amateur sceners who got a demobox evolved. Some are skeptical though about such a motive, how it presses you to finish the damn demo because you have to and how fun it isn't. And I don't think it will ever become a trend in the scene.



Normally this post would use half of it's text for praising Andromeda. Well, it wasn't just Andromeda but Orb and gloom too. But it was the Andromeda kind of demos since their first attempt on PC done much better and more impressively this time. What can I say? You know, there are most demos today which have 1-2 (if real) effects, several 3d scenes with tons of alpha images and noise to cover something that doesn't look as nice when naked. Ok, andromeda demos also use some noise effects and blending but only in the appropriate places and the effect/scene alone looks great and is the highlight of each part. I am not sure how to describe it. It's like the old style brought up into the new tech. When other good demos have plenty of 3d scene and the effect of the demo in the last parts, this one has at least three effects that stand on it's own, and also the music, sync and presentation is simply perfect! Awesomeness in everything!!! I was really wondering what they will bring after Noumenon and I think that Stargazer fulfilled my expectations were.



So, after this (over?)praise of the 1st place at the demo compo, let's move to the rest. I will try to be shorter here so that this post will not get 40 pages long. I am thinking about the half 3rd position right now. The ASD demo. It's like a sequel of Metamorphosis but maybe better or bigger. It doesn't have that gloomy or melancholic feeling of the first, the music is kind different, maybe happier, maybe weird with some silly greek lyrics that,. I am not sure but I laugh everytime I reach the part where the lyrics start. I will watch this demo few more times again. The other half 3rd place was the XPLSV demo. For some reasons I really like the colors even though they are too bright or too coder's. I don't care, I like them and the style is pure demostyle with some nice blob and other effects (I have to see it again to remember which were them :) and energetic music. I like this demo. More demos similar to this style at NV scene were proton by science & black maiden, maybe but not exactly Ersatz by Limp Ninja (I adore the 3d blobs effect) and maybe also visage by Nah Kolor. Other nice classic demos you should watch are rarefaction by Youth Uprising, life on air by SystemK (a japanishe group that improves), echoes by Anadune and yin by Brainstorm. I think most of the demos had something to show.

And the demos I have forgotten to talk about are the 2nd place by Plastik which has impressive visuals as usual (ahh,. that bugs are creepy :P), is simply state of the art, but for me it fails to give me what Stargazer and few others in the compo do. But I still adore it and it will make a nice benchmark on my friend's PC. Binary alchemy by northern dragons (5th place) has a nice pencil cross hatch rendering (long time since I have seen a demo based on some artistic rendering) but it's getting a bit boring after a while. Still I like that they try to experiment with something. And moove! by fresh!mindworkz was a nice attempt (with some original ideas for effects) to bring state of the art style demos back on PC, although the soundtrack and movement is not energetic as in the old Amiga demos of this kind. More red bull is missing in this one but I adore the idea and I would still watch it (for the girl? :). I am also happy to see Extrait's best effort at demomaking although some ugly 3d scenes and the too annoying camera movements ruined most of the experience. And the guideline demo was a funny joke. As if they have chosen the colors intentionally. And yes, I have forgotten to check on the music box :P



I will write less about the 4ks here. Because it's kinda lame linking every demo up there and I can't manage doing the same for the 4ks. Just have a look at the pouet page with results and link for each of them. The 1st place was really great at the video. It was dark, atmospheric, into your face. It needs Vista and steals some sounds from it they say. I purely enjoyed The TBC intro again with it's great music and visuals and Photo race 2 is an interesting experiment at raytracing with the GPU (it even has caustics!) even though the framerate jumps at times. From the rest I really liked Kybernetic by Still effectwise and I am happy to see Lord Graga from the GBA making his first attempt at 4k coding on PC (although this one ate up all memory on the PC at some netcafe and forced me to reboot :P). Astra has stars (even though they should be glowing or something), statics was nice, eco was nice, solitude was nice, ok,. you get the point, everything was nice, not spectacular but nice. Spectacular were the 1st, 2nd and maybe 3rd position. Ok, maybe not everything was nice, maybe I am exagerating (I am the guy who has one of the highest thumbs up percentage on Pouet, shame to me for not being objective and just happily praise everything that makes me happier in the demoworld :P) but what the fuck. Surely it was a great compo!



And yet again, Stargazer. You know, now that my PC doesn't run most demos I resort to videos. I download and watch the video once and then delete it. I never keep videos of demos because it doesn't make sense. But with stargazer it was the first time I wanted to download the video and keep it in my HD at least till I buy a new PC that can run this baby. Andromeda saved the scene for another time and this is not senseless praising or because of the name, I really felt like that again after watching this demo for the nth time. Maybe taste (because I am surprised to see anyone thumbing this down at Pouet) but that's it. I adore this group!

Tuesday, 26 August 2008

Urban Brawl (aka Action Doom 2)



I wasn't even expecting this! Long time ago, a massive work of art that turned Doom into a classic action game was released. It was heavily inspired by Metal Slug and Contra and there were a lot of great surprises here and there. Even different paths to follow in the game, secret weapons and funny easter eggs and graphical reference to movies/games or anything. The ammount of graphics and scripting should be hellish and everything was very well presented. This wasn't doom, this was action doom! :)

Suddenly, I get informed that something new is out. I never expected of a sequel. When you do such a work on the first one, you usually retire from the scene or something. Very very happily I downloaded the demo (which even doesn't need the original doom wad) and ran it on my computer. It was different than expected, this time not an action game, but a beat'em up with a cartoonish look, some cutscenes and voice acting that reminds me of Max Payne and being inspired from various beat'em ups, mostly the punisher, maybe Streets of Rage and Final Fight too. What I liked in this sequel (or prequel, since it's taking place several years before the timeline of the first) in comparison with the original, is that it's not extremely hard. It's playable, fun, easier and smaller (except if you buy the full game). And there are still a lot of surprises there! I think I am having much more fun with this one than the first.



As you start in your room, fires ablaze around the building. You can grab a pistol from the drawer, a bottle of jack daniel's (which you need to drink first before using it as a weapon) or a fire exstinguisher (and hell knows how many more secrets I have missed ;). You go out in the city and various ugly dudes are waiting for you. Punksters, pimps, bitches, gangsters, fat dudes or emo's (That one was hilarious for me, because here in greece the news talk all the time about emo's vs trendies and how easilly they get beaten by everyone. Here in the game they are the most weak characters for another time, is it a funny coincidence or was it intentional? :). You have in your disposition every kind of brutal weapon you always wanted to get and beat the crap out of something, like pipes, chains, peg with nail, baseball bat, french keys, big hammer, knifes, bottles, billiard sticks and way more I am surely I have missed. You can break trashcans, piles of tires, smoking cans, etc where you find food, weapons or money. It's really the game for the young hooligan inside you :)



There are a lot of places to visit that are classic in most beat em up's. Dark alleys, subways, bars, a bridge (this reminded me street's of rage 2) and of course elevators which the stop and more dudes are coming in each floor (another very classic thing in most beat em up's). And the high building with the rich boss at the end (although the demo does not reach the very end I guess). Also funny stuff like a casino where you can even play poker or jackpot (hell of a scripting!), rotate the roulette, smash vending machines and get cola and chips. And there is a secret with action which reminds me of kill bill. And the two pink girl ninjas that always annoyed me in streets of rage. And more surprises, way more!

And I am missing more because I haven't bought the full game. Support the developers because they deserve it! (You get Action Doom 1 and more stuff too for only 9,99$). This is a hell of a great work! And plays well and much easier than their first.

Sunday, 24 August 2008

CPC nostalgy



What I was doing these days was, coding the CPC, playing some old CPC games, drinking tequila, more coding, more tequila, dreaming of CPC, coding the CPC, playing some old games and coding the CPC.

It was good. I am working on a demo but I really wish to code a game next time. For some reasons I am really obsessed, really dreaming of coding some games for the CPC. I won't be thinking of the state of the art all the time, at least the first 2-3 titles will be simple stuff focused on gameplay and decent speed. I mean, I will prefer to have small sprites and no tens of tricks and big sprites and the controls to work well and smooth. Maybe I'll have some cpu time to add some nice mode 1 rasters or something. Anyways,. I have two simple games in my mind as first developing plans.

Whatever, what I coded was not exactly a new effect (what I have now is the mathematics for drawing curves) but something I will be using with various ways, the main routine of the demo. The screenshot is an ugly representation that it just works (almost). But the most important code was some functions that help me to build new objects with data structures, providing things like adding new objects in an array, iterating through each object, taking care of memory or the max limit of objects, etc. Things that make coding much easier. I couldn't believe that I would create something that tries to look like C/C++.

Well, not exactly. There are a lot of things to be done (maybe some real memory allocation functions which split the memory in 256b blocks and a table to tell me which are reserved and which not, maybe more). But it just happened. As I code, I ask myself how some things would be written nicer, more organized or more practical for further use. And I just come into this. It's great, it will make game developing on CPC in the future much more nicer, but now I will continue with the demo and maybe leave that part and concentrate more on the effects.

But it's nice that I am building such a system. I'd really like to see how this makes life easier in game and demo development. Of course if I had to write, e.g. a dot record, I wouldn't make a call for the next object in the array list for each dot. But I would rather write an ugly unrolled code specifically for the effect. But for more general stuff that don't need much speed, this is great!

Till next week I will try to make the curves look nicer (maybe with something like WU pixels from a precalculated table) and maybe I'll need to start messing around with CRTC hardware for this demo. It's getting harder and more challenging. I am hoping to finish the demo in maybe 3 months, because I'll be coding for other things soon too, but most probably it will take some more time. At least I am coding. And happily! :)

Thursday, 14 August 2008

Love the scene..

..it was reviving. To finish a demo that doesn't suck too much (a 64k intro actually :P) and present it at a demoparty with lot's of people.

I have more than a year since I last finished a good demowork. The same long time applies since I last visited a demoparty. Yep, somewhere between the army period, a mediocre slow and ugly demo for GP2X, still with new effects I enjoyed coding, and two nicer GP32/GP2X in August 2006 a month before visiting the greek army. Two years of some kind of inactivity, two years that many things have changed (finished studies, army, got a job, etc.). I have done more things that I feel like during this period.

I am enthusiastic for the scene again. It's not just an aftereffect from visiting Euskal. It's not just because I was there in the prize ceremony with four thousand people around me, getting some kind of scene medal and praise. Maybe it's these factors too. But I think I am changing. The demoscene is not a reason for my sometimes unbalanced mental condition. I think I am able manage to regulate my emotions more now. There might be more times in the future where I hit the blues, I know, but I am able to struggle for a bit, accept it and then revive back. The demoscene is good, it is creative, I even persuaded myself that it's better at the end to code something (even if a random thing) for 1-2 hours than play games for the rest of the day. Of course when I want to relax I can leave myself take some day off from my hobby, but moderation works better and I try to remember that it's worth it. Demomaking is worth it. Slowly coding sometimes because of the job but worth it.

So, I am back!

I already have in mind what I will be coding next. There is a lot of unfinished code and a lot of projects and ideas. Currently I should be starting my new CPC demo and hopefully here I have support from two over enthusiastic and active greek sceners at the time. I shouldn't miss this! Unfortunately more dedication is really needed to write assembly for an old platform especially now I might work for 2-3 hours at times. Opening a C compiler for few hours in the evening to write a new effect for fun or experiment with unreleased sources is possible and might give me feedback on the screen easily. Assembly, especially on an old 8bit, might not give me any feedback that evening and I may feel that my evening was spent without getting something. I am slow with it and spend time figuring out how the hell the videoram or char memory works and why I see black or everything crashes (the last time I tried to code something on C64, I had to read docs again just to remember how the complex screen or char ram works). So it's really hard but I do think possibly for the CPC demo with these dudes. I wish I can also find an opportunity window to start writting my first good C64 demo. Not something extreme, just few midschool pixel effects to show that I can do it.

CPC and C64. Assembly. CPC maybe soon, C64 maybe later. Both need a lot of dedication for several hours per day, not few evening hours after the job. C projects work better for the latter.

So, about C projects. I think it's time to get into 3d acceleration again. Some people argue that I am choosing the wrong hardware for software rendering, I am also thinking that maybe I could create some neat things in OpenGL and pixel shaders. I should try! I am already planning to start coding a new demo framework with just the basic things (hopefully also a demo scripting engine to make my life easy). Lately I am more into coding little frameworks and organizing my code snippets into bigger things and I even really enjoy it. In the past, each new demo was a unique ugly code just for the demo. Now I am more organized and I am trying to do it this way so that it will help me in the future. The big thing is OpenGL framework now. I will be just evolving my latest framework and 3d engine from the software rendering world into the new accelerated one. Each time I write a new demo I notice some things I could be doing different. I want to give time to myself. Maybe I'll release something small in between (4k/64k?), maybe not, but for the big OpenGL demo I am planning for Breakpoint the next year. I might be visiting. 8 months. A lot of time..

And then there are various C projects lying around. My evolving framework, more organized software 3d engine I just checked now after several months, little coding for gamepark (GP32/GP2X) or nintendo devices (NDS/GBA). More little projects that stand around or will come in my mind. Unfinished X86 asm tiny intro. A lame abandoned attempt to code a X86 emulator in C. Some little game experiment. Maybe flash. Little fun with DBF interactive competitions. Maybe I start with 68000 AtariST. 386 demo. Quickbasic code. Evolving my just started engines (raycaster, raytracer, voxel). Lot's of ideas I have in mind. The small stuff that come and go. You'd be telling me that I should concentrate on one or two things. But I am doing so. I have one or two plans in mind (CPC demo maybe soon or maybe not, OpenGL framework and demo till Breakpoint) that I will primarily focus on, and the new prescription that seems to work = when I hopelessly procrastinate with the primary goals, switch to coding for any of these small ideas you currently have in mind and wish to code at the time for fun. It works because it makes me happy and maybe motivates me to work tomorrow. Instead of procrastinating with games, procrastinate with smaller projects you find more fun than deadlines, and at least you have plenty of random code left in your HD that you might find handy in the future. And being content with still being creative even if not working for the primary goals!

I love the scene. I even love code even if it is a bastard sometimes :)

p.s. And till the next crush, I think I can handle it...

Thursday, 24 July 2008

Ready to ship!



See you at Euskal!

Tuesday, 22 July 2008

Tiny code marathon



It's easier to motivate myself to sit down and code hard for 3 days before the deadline than doing it for a month. At least I had in mind that with little effort something could go for the big screen at Euskal. Instead of coding something entirely new, I threw my old effects on a plane of voxels (aka heightmap). There was no time and the plan was nice because some effects look neat on this setup, the music is sweet and the colors are ...err (but there is nice morphing/transition of colors and heightmap from one part to the next). It's done in a haste but it's better than I thought for 3 days of work. Now, if I only can port it on tinyptc and make use of minifmod, this can be easilly crunch to be presented as a 64k intro rather than a demo. I will probably try this today. But whatever happens I have at least a demo ready for the big screen and I am quite happy about it!

I'd only wish I could take the time to build a true framework for demos instead of meshing around with unorganized code. Something to make life easier when scripting sequences of demoparts and syncing to the music. Well, I already try to improve my demo framework(s) slowly slowly but there is more to be done still.

Long time have passed since my last code marathon. This one has lasted for 9 hours.

Friday, 18 July 2008

Failed coding - vacations



I haven't written a line since the last post. But it doesn't matter much or I try to not care really (still trying to regulate my feelings). Afteralls the reason was not procrastination but social occasions. I had gone to the beach with some friends the last weekend and it's gonna happen again. It's good. Just no time to finish a project. Then four days but half of these days I am gonna be meeting friends. Maybe I'll try to do something today in the evening. But what?

I abandoned the GP32 demo. For the moment. No time for Euskal deadline. But today I was thinking of maybe doing something else, something smaller with old resources in a tinyptc old framework with tinyfmod maybe. Going for 64k? If it gets larger I will just release it as a demo at Euskal. Of course the bigger possibility is that I am not making it. Then I'll just enjoy the party and my holidays in Spain and forget democoding for a while. Maybe I'll go back to my CPC projects again.

I know, jumping from one project to another. But I try to be happy that I am sometimes active and not care about release much. Afteralls I am not doing this 8 hours per day anymore..

Tuesday, 8 July 2008

More boring news

It's going well. All this with regulating my emotion and coding for a little while. Slowly but working. Better slowly without big expections and seeking for the fun of it than getting anxious and frustrated.

The NDS democoding is postponed. I lend it to a friend so that he can play the new Super Mario :)

Afteralls I need more time to get used to it. I also need to make a port/simulation of some basic functions and vram addresses on the PC so that I can debug the demo effects there without needing to pass the code through the microSD every time I compile a change but test my demo only after several changes that happen to work on the PC port simulating the NDS lib functions that are used. I tried the similar technique with my first GP32 demo and now I code again for the GP32, I used the same framework.

It's funny how there are some programms which could help me so greatly if I knew them before. And in the past I would be all about whining "I don't need any additional programms to help me coding, it's a waste, I have to spend more time learning the actual programm". In my job we use several apps for code management and while there is no team working on my demos, one particular program was exactly useful for what I was doing back there with GP32. Yesterday I tested Araxis Merge for my old GP32/PC framework in my new demoproject. It worked like a bliss!!! You know,. some changes are C code and algorithms, but some others might be in source files that bare little difference between the GP32 and PC version. And in the past when I couldn't remember the changes I'd copy the PC source file onto the GP32 one and get few errors. But now I can check with Araxis the differences one by one and do my work greatly and fast! Who would believe that code management tools would help me in a demoproject? If I knew this years ago maybe my work on Led Blur would be much much easier..

Other news? I am also working on a X86 intro. Slowly. I had some idea, I wrote half of the code and the other half needs some careful thought. If it works it will be cool. But maybe I am even releasing this after I finish with the GP32 if not between, because GP32 is the priority now.

Friday, 4 July 2008

Current news

I code again (enough with the K(ode) meme :P). I said that before. Perhaps tomorrow I won't code. But I don't care since I am trying to change the mood. I didn't planned for this change but it involves a lot of experimental coding or trying out things, no strict deadlines, thinking of fun, even trying to code something for half an hour if I feel bored and tired and then I can relax if it doesn't grab me into. And regulating my feelings about all these. I didn't plan it. When I plan something I never fulfill my initial wish. It came after my frustration, maybe something was planted in my neural cells and it's just happened. Even if I code very few hours but at least I code something just for the occasion instead of being inactive for a month and crying about it. My neural cells change and see it's a bit worth it. And I really need some proper stimulus like being focused into something creative as code, in order to forget my existential thoughts for a little bit. So I am coding. Again.



What I am currently doing. Trying to code in parallel, either for GP32 or NDS. I was planning to do a demo for each. The NDS demo was planned since a long. I was thinking to finish something for Assembly but my plans changed and I am not gonna visit Assembly this year. Not that I am not going to continue coding a NDS demo too. Although I will be at Euskal demoparty and will probably bring something.

With both demo plans, I haven't even started. I've just ported my new demo framework from PC/SDL into both, almost finished with making the music player to work and maybe I'll start tomorrow. I'll probably be too late for Euskal but the GP32 demo would be much easier to finish while I have more idea on the NDS and I need to know the screen modes more so it needs work. But I don't bother with this thought, even if I miss the deadline I'll have a half demo. And I'll try to enjoy the process rather than the goal.

Generally I love to work in the GP32 more. Ok,. the screen mode is vertical, there is a sound bug, but there is something I also like in this machine. Maybe it's also more challenging than GP2X (and doesn't eat my batteries so fast :P). I really love the GP32, even more than the Pandora when it comes =)

Tuesday, 1 July 2008

Terraforming...



I have decided to walk through madness to koding. Koding is the kure. The kure for my madness. And now this blog will transform from mindless crap to anything related to kode. Small things I am doing, koding news, koding thoughts, demo thoughts, plans, projects, wishes about koding, philosophy of koding, dreams of koding, etc, etc, etc...

Yey!!! I sort of finding my way in kode with a bit of regulation of my feelings about koding, the scene, the "real" life and kode. It works... in a way!

Afteralls, life does not have a meaning but programming has logic.

This is a koding blog from now on (till I flip out!)

Saturday, 10 May 2008

The City of The Damned : Apocalypse

It's a long time since I've last played a good WAD. And this one I am reviewing now is not the only recent good one. But I will just start from this one and maybe I'll write later about the rest. There is a long time since the weekly doom wad reviews gone missing from doomworld. I don't know what happened and didn't have the time to ask the community about or search for any announcements or news in the doomworld forums. I found this one from the Outpost of Doom 2 site which features reviews from only the greatest WADs released. Maybe it's a nice alternative resource to discover the recent diamonds now that doomworld reviews are missing.



Looking at the screenshots of this one on the reviews site, I was immediately obsessed to play it as I happen to be a great fan of the game blood. The WAD doesn't only use gfx and sound resource from blood but also from several other games and WADs and it builds a dark and gloomy atmosphere running on the GZDoom port. It has the same adventurish exploration style as few other WADs I played back then, like wandering in forests, abandoned buildings, cemetaries, etc and discovering notes that reveal part of the story, only though this time it doesn't have much searching around as the other WADs. Nor is the map very big which can be good or bad for some. But personally I prefer it this way. It gets too annoying if the map grows big sometimes..



What impressed me very much was specific parts of the graphics design. Judging by some details at some places, it's tailored enough. Even when you try to read any message you find in your path, you look at some greatly detailed torn papers with beautiful and different calligraphic fonts each that only make the game more beautiful if not more atmospheric. Even at the finale credits, there is a nice upscroller with great antialiased fonts and shades that fade to black in the upper and lower corner. It's very well-looked after in these terms. I can't speak about the rest of the graphics because they are not new but old reused resources, although they are greatly used for sure.



What dissapointed me a little is how hard the game is. Not only you are getting low on ammo and health too easily but the enemies have to get too many bullets to fall, much more than the regular doom monsters. At the beginning you start with the trident from blood which is a very useful weapon since several monsters need quite more hits with the pistol (which you have to use for half of the map till you find more interesting weapons) and there are not even enough bullets there. Also, the WAD uses the secondary fire mode of Zdoom (as in blood too) and baring the trident in hands, this mode will throw the trident and inflict enough damage (Like, the beginning monster needing to take around 10 bullets, can only be killed with two trident throws. Also sometimes the gun carrying monks can be hit with a single good trident shot!). It's not only useful at times but also fun! It's much later when you manage to get the shotgun in your hands which does enough damage and has a powerful secondary fire mode.

Still, after being frustrated with it's difficulty, I restarted the game in the easiest mode and there were times I was still in serious trouble. Only the final monster was quite easier than I thought, hopefully. Usually in such total remakes, the end bosses are not only total killing machines (e.g. throwing a blast of BFG that throws smaller BFG balls scattered all over the place, nowhere to hide) but also have x10 times the energy of a Cyberdemon. Here the second is not valid and you can easilly hide from the first issue. I thought it would take aeons to reduce it's energy to zero but it ended so soon after 15-20 bazooka blasts and several hits with the tommy machine gun. I liked very much the particle effects on the boss and also it's motion blur effect. Neat!



There are quite more surprises in this one and quite many beatiful places! It's one of the best doom WADs of this kind (Total conversions, big adventure style, using zdoom resources) I've played so far. Recomended! (Play in easy mode except if you like hardcore and watch out to not loose your ammo or your trident(I threw it over an unreachable fence but I found two more through the game so it's ok).

Sunday, 9 March 2008

DelphiDoom



I just stumbled upon this doom port yesterday. It's not the fact that Doom is ported from C to Pascal language which impressed me but what is more interesting is the software engine and it's features/tricks.

First of all there is something I had in my mind trying with some doom source port but someone else did it before I even started. How would doom look like with bilinear filtering on walls and floor/ceiling and how feasable is this with software rendering. I have even seen how the walls would like if interpolation is done in 1D over the vertical wall columns (which is the initial interpolation on wall columns I was thinking trying to code and never did :). For some reason, when you select the highres texture packs the interpolation on walls is 1D while it's only proper 2D with the original textures. Also with the highres packs the port doesn't filter the floor/ceiling texture which makes the highres texture mode much faster than the one with the original textures where everything in the screen has true bilinear filtering. I don't know why this happens and if I could also change some setting to see how the highres textures look with 2D filtering (but with 1D they also look great not very close enough) but that's still great because the game is faster with the good textures.

In my PC in 1024*768 I only get 10-15fps with ultra detail while 20-25 with the highres textures whose options don't filter everything i the detail the lowres textures are filtered. In 640*480 or 800*600 it's more playable. Except from the cases where some lightning effects suddenly drop the frame rate. Maybe I should uncheck these ones from the options. There is also support for 32bit color and more smooth shading on Z (light diminishing) which feature I don't think I have seen in some other ports I play frequently (at least in Zdoom I don't get anything more than 8bit mode).

The most interesting feature is the so called true 3d emulation technique. I haven't heard of this before. It's a very unique and interesting technique to solve the wall shearing that happens in Doom when the player looks up and down. Because doom does not render textures but scales vertical lines of a bitmap, to look up and down the makers of various ports shifted the Y positions of the columns according to their distance. This resulted in a rather distorded view (which also makes me motion sick and that's why I never play doom with the mouse view :P). What mr. Jim Valavanis do here is if I understood correctly, a post processing of the already rendered frame buffer, taking each horizontal line of the screen and scaling it on X according to... what? That's what I wondered. To the Z of some collumn in the center? To the total average Z from each column? Of course that Z is altered on Y depending the angle of the view, but some walls far away wouldn't have to be scaled as much as the walls near the place I think. Here a whole line of the frame buffer is scaled (according to Z of some selected column pixel in this line? Or the average of all?). If you go to some corner and try to look up down you will see there is something wrong here. But the idea is a very interesting solution and I haven't heard of something like that before!

I would never expect to see software bilinear filtering in games. It's a bit rare anyways. Especially for Doom in Delphi :)

You can find more info and downloads in delphidoom website. I suggest you first have the Doom1/Doom2 commercial WADs and download the big package with highres textures and MP3 music. If you wish to see the tricks explained here in software run the launcher and uncheck the OpenGL support (Someone would joke that this makes the software tricks useless anymore, full true 3D perspective, bilinear and lightning at 200fps in 1024*768 with the help of the GPU :) But what I find interesting is the software part :P))

Wednesday, 5 March 2008

Phun



I really liked the recent 2d physics engines that appear lately after the release of crayon physics. My favorite is Markerworld (more reliable and playable than the first imho) yet one of the most impressive recent attempts is Phun. Except for the regular stuff I am really impressed by it's liquify option that turns a solid object into hundreds or thousands of tiny balls that together form a liquid mass. Be carefull though with placing lot's of water because it starts slowing down extremely! The engine has a GUI with several other features like changing various physics variables (friction, gravity and more) or you can draw chains, strings and circles attached together and build physical machines, catapults, rigid bodies or ugly cars :)

Just watch the youtube video presentation and then go to phun's website and try it out!

Friday, 22 February 2008

Hugi #34



Hugi #34 was just released. Probably one of the better Hugi issues out there. Not only there are a lot of interesting articles to read (from Shane's story about Fearmoths to how scener's wives understand our hobby) but the quality of graphics and music choice this time is at it's best! For this issue I have written two articles, a review of the CPC activity in 2007 and another one entitled "disorder" (With thoughts and ideas similar to the ones from articles in my primary blog).

Visit the Pouet link. I am gonna read some more now! :)

Sunday, 27 January 2008

Damn Interesting

My blog is about everything I like, from beer and women to websites :)
This is the first entry of this kind here and only rarely I will be motivated to include websites when they really deserve it.

So what is Damn Interesting? It does look like a blog at first sight, though it's one where several people contribute. What made me bookmark this site at first was the discovery of this article which dives into the insight that "mentally disordered" people might be thinking more logically than "normal" people who seem to be living an illusion they call reality. But that's not what I want to say about the site though read the article asap!

What's interesting about damn interesting is that it contains articles of scientific nature that are damn interesting because they offer insightful stories and strange facts you don't happen to read every day. What I mean is that the selected subjects are a bit not so known or heard to most people, even those who fiddle around scientific sites, yet each of the article is so inspiring and shares such rare facts I haven't heard before that drives me to read more and even more. In a nutshell, those little known facts and stories about history and science you don't happen to encounter every day, which although tend to be rather insightful. It's the selection and the narration. It's Damn Interesting!!! =)

You won't stop reading article after article. One of my favorite sites! Visit ASAP!!!

Saturday, 19 January 2008

The Shrine


The AtariXL scene produces maybe the most impressive demos I have ever seen running on an 8bit machine. I was wondering why this machine can display 4 times more complex 3ds than the C64 for example who share the same CPU but it is 1.5 times slower than the XL. Those demos usually use the 320kb memory expansion where there may be a possibility for cheating by precalculating lot's of data. That would be one explanation for this.

One of the most impressive demos I have seen recently on the XL is The Shrine by laresistance. You can also watch a youtube video of the real thing running this beauty! Simply stunning!!!

Of course the XL demos mostly use a smooth shade of a single color, either blue, red or green, producing great shades for polygon lighting or other newschool 2d effects. Most of the times they use big pixels of 4*4 size (Or it is 2*4 in a pixel width that occures in a 160*200 resolution (I don't know if the XL also shares this resolution but the pixel width looks like C64 multicolor or the Mode 0 of CPC)). Maybe there is a video mode that makes it easier to output such pixel block, much easier and less CPU wasting than the ways used in C64 or CPC to achieve this? Who knows..

But then we can see some great smooth fullscreen crosszooms (also used in a fractal zoomer) but the quality of the 3d scenes is stunning! We can see a 3d sierpinski gasket, shaded, with proper polygon clipping rotating in your face with a fairly good speed, which is an object that is stunning for an 8bit. Even in Amiga/AtariST 16bit demos it's not too common to see such 3d models in demos. Usually you see cubes, pyramids and 3d models with 10-20 polygons, not 80 in your face! Not even the later scenes where a background, a great floor mapper and some 3d structures like a zigurat, an easter island head or the stonehedge are combined together to create an outworld environment. I also like the environment mapped spike object with the reflection on the floor in the beginning. Simply awesome code for an 8bit and not only!!!

But maybe there is a secret magic in the atari hardware and lot'sa memory that makes this possible :)