Category: Newest🆕

2020 till now

  • 2006 Terrain, Water 🌅

    2006 Terrain, Water 🌅

    ⏱️Overview

    This is a collection of programs written in C++ and using Direct3D9. Only the first one left (with green terrain) was mostly mine. It was also a project on college, for subject: 3D Graphics (I think). I did way above requirements as nobody even knew shaders.

    📷Gallery

    Link to more screenshots.

    📜History

    The first small terrain had a shader for blending (mixing) terrain textures together smoothly. Already found somewhere on internet. This I knew is needed for good looking terrain for start.

    After achieving just a small terrain and a cloth looking, pseudo water I started searching on internet for open source examples (it was likely the first time for me). I managed to build all of them and customize the demo applications. I didn’t put anything together as a game yet.

    The water in middle was great but very demanding for CPU, which was computing the animated noise and its normals. This is done nowadays on GPU only. Still, it had the best look IMO for years.

    White terrain with water on left, had a great animated noise but was always flat. Originally it also featured reflection and refraction. This always flat water, was still good and we had a similar one in our game years later.

    On right there is a terrain with level of detail (LOD) Geomorphing (also described here) if I remember it was CPU generated though, but had 5 levels. That was a great and complicated implementation.

    The car screenshot was someone’s 3D model, with a 2D driving code I found. I made it 3D, but only on flat ground.

    ➡️Conclusions

    Then I started thinking and realized, I don’t want to write all 3D equations, surely not a physics system. This is when I got interested in available physics engines.
    Today I would definitely recommend bullet for collision detection and simulation.

    Next, I had the same thought for rendering. Writing everything using calls to Direct3D was tedious and not very practical.
    By using a 3D engine, all becomes much easier and one can achieve much more with it. But I knew a guy at college, who liked the first approach, read books for it, and wrote his own engine.
    Later I found OGRE 3D and started learning it.

  • 2006 Shader effects 💫

    2006 Shader effects 💫

    ⏱️Overview

    This is a result of me learning bump shaders with also implemented reflection and refraction (just from cube skybox).
    There wasn’t really a goal here, just to learn and show what could be achieved with my GPU (ATI Radeon 9800 I think) at the time.

    📷Gallery

    Link to more screenshots.

    🔍Implementation

    My code was using WinAPI for window creation and messages. Then Direct3D9 calls for rendering and HLSL 2.0 for vertex and pixel shaders. Also D3DX for anything else like 3D matrix and vector operations, compiling shaders, and loading 3D models (meshes) from X files. Lastly a sprite font, for screen texts (with parameters to adjust by keys) using my bitmap fonts.

    To get mouse and keyboard events I was using DirectInput. I made a camera system to move around the scene, rotate and zoom. There was also 1 point light here.
    I wrote a Timer (based on precise QueryPerformanceCounter) for checking intervals and computing current frame rate (Fps).

    I think I made most of the basic models. I would use Blender for this now. The skull model and all textures were gathered from other demos and games.

    ⏳Conclusions

    Professional made textures made the demos look quite good, already with simple 3D objects.
    But those were just demos. In a bad looking, low level written code.

    I continued using just C++ and Direct3D9 for a while in next project’s forks with terrain and water. And after that moved to using OGRE 3D engine.
    All that was too tied to DirectX and would need major rewrites every time I wanted to use new DirectX interface. Another good reason for using an engine, it can have different rendering systems also OpenGL based.

    Still, this experience was good learning for future, as I was developing shaders in Stunt Rally too, years later.

  • 2005-06 Crystal Font 🔤

    2005-06 Crystal Font 🔤

    ⏱️Overview

    This is one of my oldest Windows programs in C++.
    It can generate colorized bitmap fonts from true type fonts with glow effect.

    Done on college as hobby around 2005-2006.
    I used bitmap fonts from it in most of my programs, until about 2010. Additionally it made the text for my logo, and lastly the speed and gear digits in our game.

    📜History

    I had a small font tool without GUI, earlier when I was programming in Delphi. This one evolved to be a full featured program with medium size code.

    I presented the program at college, during scientific circles session, for 15 minutes. The presentation was also a good experience to have.

    It was a nice, useful program for me. Probably difficult to use for others due to only keyboard navigation and value changing. It had a help screen with shortcuts though.

    📂Sources

    Later I’ve uploaded it to Source Forge and thus it became my first FOSS program. Then I moved to Google Code and when it shut down, moved to GitHub.

    Available here.

    There were several programs done called bitmap font creator, maker or editor. It was (or still is) a popular thing to do. Both using bitmap fonts and making a program for it.

    📊Features

    Among other features it allowed quick loading and saving project files and coloring schemes. Also browsing them in its own lists with previews. One could easily pick a scheme for font color and quickly match another for glow.

    Glow was computed on CPU and thus rather slow, especially for big font sizes and large textures. I didn’t develop it further after realizing that all this could probably be done with a GPU shader in real time, even with animations, at least for small to medium fonts.

  • 2005 Keyboards CK1,2 ⌨️

    2005 Keyboards CK1,2 ⌨️

    ⏱️Overview

    This is an older topic with less information, just for history purpose. If you’re interested see my newer keyboards or the newest ones, with more explanation, own controller and display.

    These were my first modifications for keyboards.

    They were both done on a Logitech Ultra X Flat, a well done, solid keyboard. Surprisingly different for same model made after 1 year.

    ✍️Motivation

    Originally most keyboards have about 50 gram force needed to press keys, and probably 4 mm distance. After first step of cutting rubber domes the distance is about 1-2mm, the force was about 22 gram for CK1 (bottom) and 33g for CK2 (top). This can also be varied per key.

    📊Features

    The second step was removing the middle part with arrows. Which I find unnecessary and worse (less keys) than the same from numpad. In CK1 I’ve bent the foil and hid it under. It was risky, but the foil survived. The CK2 was different, it was made from two identical keyboards, thus no need to bend, only cut the metal and foil. That too was risky since the foil could have connections around the cut off part. It was only for numpad, the bigger part had whole foil under.

    Years later I modified CK2 further and bent the foil to create CK4 keyboard. And that’s 11 years already, so this would answer any doubts for longevity of such modifications. The number of times I disassembled it, changed something, and put it together is also quite high.

    The third step was adding extra keys. Using my oldest program for showing pressed keys and their codes, I figured out that there are more possible keys in keyboard matrix, that are just not connected. So I added them with wires and glued on keyboards. First as regular switches with metal domes, small and hard to press. Later using rubber switches, lighter to press. But turned out to be an even bigger fail since they wear out and stop connecting. They have some resistance too (like maybe 300 ohm) in addition to the resistance of foil traces (maybe 150 ohm). So finally I ended with the smallest metal dome switch I found, with force 0.5 N (50gf). It feels different than other keys but otherwise is good.

    📷Galleries

    The old galleries from my keyboards:

    1. CK2 final (2008)
    2. CK1 and 2 making of (2005 and 2006)

    Most pictures have some description text (explaining what I did there).

  • 2003-04 Composed Music 🎵

    2003-04 Composed Music 🎵

    ⏱️Overview

    I’ve assembled my best music tracks from 2002-2004 into an album on jamendo, called Eye of the Pharaoh.

    The style is quite original if I may say so, but generally it is somewhere in the area of Symphonic Metal with lots of solos and slightly oriental (Egypt) influences.

    🔍Detail

    Played on electric guitar and the rest composed in my own tracker SXIV. Solo is using a mix of violins and other fitting instruments from a keyboard. Background keyboards usually have brass like tubas, trumpets etc.

    It must be said that I didn’t play the keyboard by hand. I once recorded samples from it and then always used my tracker with them. So actually used PC keyboard to practice and input notes.

    🎵Tracks

    The tracks from oldest to newest are:

    1A deep ride inside4:54quite heavy at start, later fast and lively, had bass guitar
    2The Princess of Black Egypt11:592nd best, slow but very varying song, with feel
    3Intro2:161st best, short but quite oriental
    4When Cyan Sun Glances7:25quite fast and basically a never ending solo
    5Through the Eye of black sand2:46very slow, keyboard only, didn’t record guitar

    📜History

    I was playing electric guitar from 2001 to 2005, almost only backgrounds, with my friend who played solos. We made many awesome tracks together. Mainly 2 guitars with constant solo and sometimes percussion from my tracker. Of course no vocal. Those were some pretty good times, we got few hours of recorded fun to remember.

    At the times (of technical high school) I was also into electronics and analog guitar effects. I started with electronics about age 16. Later it proved very useful for us as we were using my stuff a lot when playing. Also learned a lot about sound effects this way and triggered the development of my tracker SXIV.

  • 2003-04 Distortion X 🎸

    2003-04 Distortion X 🎸

    ⏱️Overview

    “Distortion X – The Great” was my final version of an analog guitar effect from 2004, and looked similar in 2003 already.

    📷Gallery

    Link to gallery. Which also has pictures of inside and schematics.

    📊Features

    It had a Distortion, Reverb / Echo and 2 Equalizers (9 and 18 bands).

    The Distortion featured such regulations:

    • Switch for Clean / Distorted mode, pink LED
    • Clean Volume
    • Drive (i.e. Distortion, Amplification)
    • Low Pass (filter frequency)
    • High Pass (filter frequency)
    • Balance (mix between the two filters)

    Reverb was made on the longer analog line MN3008.

    It had only 3 potentiometers (knobs):

    • Delay (i.e. Length: short would do Reverb and long did Echo, at reduced bandwidth)
    • Feedback (how much from output was summed back to input)
    • Volume (output mix between Reverb and clean)
    • Switch to turn on/off, white LED

    Equalizers were used only one at once. By default the Narrow one (9 bands) was for Clean mode and Wide (18 bands) was for Distorted, thus allowing more customization. Narrow had violet LED on left, and Wide had orange, on right.

    It also had 2 switched, one would exchange Narrow with Wide (so the opposite to default, Narrow for Distorted). And other switch was to turn equalization off, mainly just to check the difference, most left, red-orange LED.

    For a moment it had also the short Reverb / Flanger board with knobs, visible on pictures. But I didn’t use it. Power supply for it was different (not symmetrical) and that added more noise.

    📜History

    I was developing analog effects for electric guitar since we started playing in 2001. There were several versions of it. The 1st was just a distortion. The 5th had one 9 band equalizer and I think also a Reverb / Flanger on short delay line MN3007. The 8th was similar but had 18 band equalizer and long Reverb / Echo.

    Since I was playing backgrounds and my friend solos, we needed 2 effects. The 5th and 8th were separate and best combination. I was naming them using Roman numerals, so this one, X was the 10th and last version.

    ⏳Conclusions

    In 2004 I bought a digital effect, Digitech RP 200A, and first realized the huge difference between analog and digital effects. It was very feature rich and the sound quality was much better (probably like 20dB more, I guess my analog could be about 70dB SNR at best). Digital also had many more effects like Chorus, Detune, realistic Reverb, high quality Echo, Cabinet models etc, and was stereo. But that model was very poor in regulations, there was only one parameter for each effect that could be changed (had only 3 nobs).

    So even though it was higher quality and had more features (but less regulations), I still used my Distortion for some time. Also since the digital sound and because we started college we stopped playing together so often and then at all. Also we had the digital one so I could just put all equalizers and reverbs in one. Then I finished it with a better case (from an Audio CD Recorder, which internals I moved to a worse case ?).

    ➡️End

    I sold it recently. For a ridiculous price, maybe just summing up to what parts had cost me. But there was a lot of time dedicated to developing it and making PCBs. But still, I’m glad I freed up cabinet space and didn’t have to throw it out (too sentimental to do that). Also got some money for it and somebody could find it useful or maybe even educational. I sold my guitars that year too. They were just gathering dust for too many years.

  • 2004 Frogs III 🐸

    2004 Frogs III 🐸

    ⏱️Overview

    This is the 3rd and last version of my Frogs game for 2 players. Programmed in Delphi.
    Done on college, subject was Programming (I think). I’m glad I could use my existing experience to pass it easier and more creatively.
    Previous 2 versions were in DOS and Turbo Pascal, shown here. It had exactly the same game style.

    Gameplay

    Player controls a frog, jumps to reach and catch flies with tongue. After game time, the player who had more flies wins (or there is a tie).
    It could be a slow and tricky game if flies were appearing rarely, or a fast game with lots of flies. Still, splashing flies made them fall down. Catching a falling fly would make the frog loose 3 and vomit. This was pretty hilarious.

    The screenshot is composed of few, but this is shown.

    📊Features

    Sadly, it had no sounds at all. A huge flaw compared to earlier Frogs II, which was even more hilarious with funny sounds.
    It featured:

    • Nice looking menu (my own logo art)
    • Many options, for:
      • Flies – max count, increase over time, width and height of appearance, resistance to water)
      • Frogs – jump height, resistance to water (made jumping harder), tongue speed and idle time
      • Game – game, time, showing a counter (of flies, particles, etc.)
    • Lots of particles for:
      • Water splashes (like 500 was already enough for big ones)
      • Vomit (this even had extra keys to test)
    • Waving grass blades
    • Water changing direction and look, depending on direction of frogs landing in it (e.g. always dropping from 1 side made water more fuzzy and moving faster).
      Strangely this doesn’t work at all now. But anyway I’m surprised this game still starts and works 15 years later.
  • 2003 Shooter 🚀

    2003 Shooter 🚀

    ⏱️Overview

    This is my first game in C++. Done as a project on college, subject was C++ Programming, I think.
    It was a top down space shooter and had just 1 level. Without game end, just no more enemies.

    🔍Implementation

    It was using purely Direct3D9 calls for rendering and WinAPI for Window.
    I drew the textures myself, not many.

    Player ship had 4 weapons, auto gained with game progress: main 2 dots, small lasers, main thick lasers and side dots.
    There were 6 enemy types and the layout with their movement paths was already quite nice. Enemy weapons were actually just 1 type of orange dot. One ship fired a dot, auto directed at player. Others fired 2 to 4 dots in certain directions.

    ➡️Comments

    I’m glad I managed to create a game (2nd actually) at college, where the major was basically Industrial Software for Metallurgy. It was still my main hobby back then. Since I had experience in games I wanted more to use it and develop. Was also quicker, easier and more fun to make a project for that subject.
    Code looked cryptic, I was still coding in my own way of not doing a single space if not required, and using 1 letter abbreviations for keywords and types.

  • 2002-03 Tracker SXIV 🎶

    2002-03 Tracker SXIV 🎶

    ⏱️Overview

    This is the music tracker program I wrote around 2002-2003, in Delphi 5.

    It was 800×600 on a 17″ CRT back then, so already 4 screens fit now.

    📷Gallery

    All screenshots here.

    ✍️Motivation

    I was having fun with Scream Tracker on DOS before, so it felt best for creating music and using only keyboard for that.

    I called my program simply the same way, but started with version 6 and increased until 14. Then shorted it to just S and used Roman numerals XIV.

    This was such an awesome program to use and look at. Mainly because keyboard shortcuts were customized to what I wanted, and also I implemented many quite useful operations in it, e.g. in patterns editor.

    🔍Implementation

    It was using GLScene package for Delphi and my colored bitmap fonts from another program (it was the predecessor to Crystal Font), hence so varying and colorful texts everywhere.

    By default I also used colored image backgrounds, since pages felt really empty. It even had animated text transitions for title pages text and a toggleable fire animation in corner 🔥.

    But it was complete garbage at the way sound creation was done. It simply relied on a system timer event and triggered sound playing from DirectSound buffers. I know, nobody does that for music. I didn’t know any other way to code this then.

    Timer was more or less stable, but I had to render very little while playing, mostly empty screen and 1 bottom line of info.

    🎵Music

    I made about 5 songs with it, more here. Also used it for percussion patterns when we were both playing electric guitars.

    Later I was checking out Renoise, but eventually my interest faded away from creating music.

  • 2003 Painting, Eye

    2003 Painting, Eye

    ⏱️Overview

    This is the painting I did in 2003, on my room’s wall (the one behind my monitor). It was empty and really boring, and so it became an original and fitting background.

    I called it “The Eye of the Pharaoh”. It is a magical Gem (in middle) surrounded by 4 powers, emitting outside. From top left these are: Fire (yellow), Laser (lime), Lightning (white) and Neon (cyan). The eye itself is emerging from a cloud and has an extra lightning ring around it.

    💡Idea

    It was an inspiration for a game I wanted to create once (and most likely won’t). A top down ARPG shooter which would have weapons with those powers and this could be the energy source. But since I was also creating music at the time I used the title also for my group name.

    🔍Details

    I think it took about 1 week to make. It was actually quite an exercise for me, to move around and paint. It has at least 5 layers. I used various 1 liter house paints, only few colors I think (thus orange in fire is not saturated).

    • The background and most was done with a medium 1cm wide brush, nothing special.
    • The shiny skyblue ribbons in background are done with a spray paint. Also center gem (eye) has some of it. Red ribbons are regular paint.
    • The black rods are also done with a spray, shiny black. That’s why they are very dark and lower part shines from camera’s flash. The picture was only edited near borders. It’s also difficult to shoot straight at it, so it’s a little skewed, viewed from below.
    • The tiny detailed parts in ornaments (on rod ends) and a lot in lighting were done with few pieces of bent metal, sunk in paint and touched on wall to get a sharp and thin line.
    • Outer parts (web) and glowing glyphs were done with paint mixed with water, so they became transparent. I also darkened this way the ornaments later, with black paint and water, were too bright before.

    I think I used a small paintbrush for the rod shining and arc blocks (near center) but the detail was limited by the wall’s texture, It is quite coarse.

    ➡️Note

    Well it is still here, even after 20 years. It surely was a nice thing to look at, instead of a boring wall 😁.