Organic Spline Particles

Using OpenFrameworks, I coded this wiggly little particle system that renders organic-looking tentacles in real-time. I was heavily inspired from the movement of underwater anemones and decided to try to imitate its behavior.

With 2D Hermite splines, I was able to render the curves in color-shaded line segments. The tangents and positions are warped slightly every frame using sinusoidal waves to give that life-like wiggly behavior.

Feel free to download it and check it out for yourself. Use left-click to spawn a large entity and right-click to spawn a smaller entity. Press R to reset the app and F to set it to full-screen. Enjoy!

[ Download (.exe) | Screenshot ]

Zen Machine

In an effort to mix color theory and music creation, I have concocted this visual music composer application. Each color on the wheel corresponds to one musical note in the C-Maj-7th chord. The color wheel has four octaves of notes that may be used to color the melody of the song. The Major-7th chord was chosen because I find it to be the most pleasant out of all the chords.

This project was coded in C++ using OpenFrameworks.

[ Download (2.1 MB) ]

Fish In a Pond

After hearing all the hype surrounding OpenFrameworks, I decided to check out what it was all about. OpenFrameworks is an open-source C++ toolkit used for “creative coding”. Generally, it’s used for visualizers and interactive applications. The API is clean and effective. So far I like it alot.

Last night, I decided to dive into the framework and try my luck at coding some simple flocking behavior based on Craig Reynolds’ Boids algorithm. “Boids” is an artificial life program which endeavors to simulate the flocking behavior of birds. The movement of each entity is governed by three simple rules: separation, alignment and cohesion. The result is this group behavior that appears natural and “emergent”.

[ Download (.exe) ]

Conway’s Game of Life

The Game of Life is not a game in the conventional sense. Rather, it is a cellular automaton algorithm devised by John Horton Conway to abstract the biological functionalities of life. This simulation runs on a 2D grid and provides really cool “life-like” results.

The rules to the Game of Life are extremely simple. A grid can be alive or dead. Then for each cell, we count the number of live neighbors surrounding the current grid and use that number to apply the following transitions:

  • Any live cell with fewer than two live neighbors dies, as if caused by under-population.
  • Any live cell with two or three live neighbours lives on to the next generation.
  • Any live cell with more than three live neighbours dies, as if by overcrowding.
  • Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.

A “neighboring cell” is any of the eight cells adjacent or diagonally adjacent to the given cell. Also, the initial layout of the system acts as the seed of the simulation.

Making Caves with Cellular Automata (in flixel)

Above is a picture of the results from the algorithm I used to procedurally generate the underwater level for my game, Between the Devil and the Deep Blue Sea. The algorithm is called cellular automata and it’s a freakin sweet way to create random cave-like structures.

Traditionally known as the “4-5 rule”, this basic idea of this algorithm is to fill the map randomly, then repeatedly apply the 4-5 rule to each cell. The details of the algorithm can be found here.

I’ve implemented the algorithm in Actionscript3, under the class name FlxCaveGenerator. I named that way because the class can be easily streamlined into flixel’s FlxTileMap implementation.

 

Introducing: Between the Devil and the Deep Blue Sea

It is my pleasure to introduce to you my lastest and greatest game, Between the Devil and the Deep Blue Sea.

Between the Devil and the Deep Blue Sea is a sea-faring adventure-RPG where you take the role of a protagonist who is set out to slay the epic sea-monster which captured your loved one.

Most the game takes place underwater where you battle dangerous sea-creatures to gain experience points in order to level-up and to grow more powerful. You can resurface anytime to board your boat, where you go sea-faring amongst open water in search for your long lost love.

Nearby, there lies a port town where friendly locals give you advice and offer you weapon upgrades and equipment to aid you in your journey.

The epic sea-monster lies below waiting for you. Do you think you have what it takes?

The project is heavily under construction. But if you wish, you can check out the work in progress. The art in this game is done by Michael Hussinger. As you can see from the art in the game, he is quite awesome.

Battle.net 2.0 and the Theory of Flow

I have been playing Starcraft II quite consistently since its official release and have been having a blast. Recently, I’ve managed to claw myself up to diamond rank in 2vs2 and 3vs3 matches and it’s been quite the challenge. Based on the Elo ranking system of chess, the new Battle.net is a vastly more improved system that greatly outshines all previous matchmaking services that Blizzard has churned out.

One thing that plagued the original Starcraft‘s Battle.net system was it’s lack of player matching. For example, if you log on to play a friendly game against a random stranger, you never know if you are being matched against some total newb or a 16-year old Korean pro-gamer.

So the matches you play usually ends up like this: 60% of the time, the matches were too easy; 30% of the time, you were vastly out-classed; and 10% of the time, you are playing against someone who is about the same level as you. Given that the average game lasts between 15-20 minutes, that’s a lot of games you have to play (about 9 games) before you find a single one who is within your level of skill.

Blizzard definitely reworked a lot of the issues that plagued their original Battle.net to give its users a more rewarding experience.

 


© Copyright 2012 Illogic Tree | Powered by WordPress | Theme by Zidalgo | Log in