Terrain Editor Stage 1 – Heliosphere Development

Florian pretty much finished a basic first stage of a terrain editor for Heliosphere.

Lithosphere Snowy Mountains

The description runs as follows:

Lithosphere is a GPU driven terrain generator. It allows you to create and export material textures and heightmaps intended for use in realtime graphics applications.

You can download the editor and enjoy playing around with it. Please see the documentation and release notes.

Addition would be to extend it to be generate spherical objects such as asteroids and even planets.

Why so puzzled?

UPDATE: Follow the discussion at GAMASUTRA.

Interactive – non-Interactive and Staic – Active

Puzzles are static, games are interactive. -Greg Costikyan
http://www.costik.com/nowords.html

The first thing I must ask here is:

Are Puzzles static?
Are Puzzles non-interactive?

Can we compare even puzzles to games on the grounds that one is static and the other is interactive? What are we talking about here? Can the two words even be compared to each other?

________________________________________
The state of the thing will change depending on your decision. -Greg Costikyan
________________________________________

A puzzle starts unsolved, and you complete it when there is nothing to solve anymore.
Assembling a car is unfinished until all that go into it are assembled and no parts a left over.
A game is not finished until the last objective is completed and a player has won. Continue reading ‘Why so puzzled?’

Web Text Formatting done better

There is a big difference between writing for normal documents and the web.

This is even more apparent on blogs, B2C and informative websites then anywhere else. People want to “skim” the site for information and not ready every word.

When Florian read my recently published Garden Planet post, he mentioned that it read more like a book then a skim-able web entry. He directed me to the UseIt Website to read up on how to more effectively write for the web.

To make a long story short, I try to do what the site suggests now and format my entries more according to what their research concludes. You will find a lot more:

I hope those measures will help my avid reader to enjoy my site more and help them assimilate the information given.

Warning: I will add my own spin to all of this at times. I don’t believe in rigid rules. Also I will reformat older entries to become more legible.

Garden Planet – A short potmortem – Part 1

After a long and bumpy road, with lots of joy, tears, sweat, hard on the body and soul changes and many many challenges, I can say Garden Planet is finished (in several perceived meanings of the word).

The first game that combines user created music as an input device and simulated emotion is finally complete. I am really glad it is finished and also glad that the core gameplay of the game is finished and working as well. Many features I had in my initial design and what we had in the prototype we unfortunately had to cut out because the project timeline was reduced by one year. But nevertheless I am pleased with the outcome and what the team was able to do in what was essentially just two months of development after a whole redesign was asked for (for reasons I really don’t understand short of someone having a bad case of changeitis, again).

But lets dive into some more specifics on what Garden Planet is, what it not is, what it was supposed to be, what I think we did right, and what we did horribly wrong. And I shall try my best not to point fingers, except at myself, for better or for worse. I hope some of the findings, and I want to give credit to the rest of the team for this as well, again for better or for worse, will prove useful to whoever actually thinks I have enough “cred” to be listened to. In any case, I have learned some very valuable lessons, either for the first time, or again because I forgot them. I am human after all, be nice….please.

What on earth is “Garden Planet “? (I will be lazy from now on and just type GP, in the spirit of Singaporeans who just can’t go without a day of using abbreviations like they were one cent coins waiting to be thrown at a crowd of beggars over in JB.(If you wonder what JB is, then you know how I feel every day at the office. The good thing is, I always get a nice “AHA” moment on a daily basis. Makes you at least feel like you learning something new.) But back to the point at hand…)

Essentially GP is a tech demo (if you are very gallant you might call it a sandbox game…) that takes sounds as an input, mashes it through it’s fancy probability algorithm, maps it out, and gives you some colorful output. This might sound very harsh when I talk about the game that I in fact designed, maybe it sounds even degrading, *big* but, I can without a doubt say I am proud of what we have done. Why? GP now is not the game I set out to make, and through “changeitis” was forced to alter it into it’s current form. And even despite that fact, we accomplished something amazing in the short time left for this endeavor by essentially proving a point.

To slow down on the possibly perceived “rant” that I am on, chew on this:
“Garden Planet is the first system to actively simulate emotion through music AND use it in a conversational, interactive way.”

That, I agree, is a damn bold statement.

Let me explain:
GP uses a new kind of input system called M-EDGE (Music-Emotion Driven Game Engine). That one could be considered a bit of a misnomer for the fact that is it not a game engine at all, just a plugin. What is does is analyze audio and tries to categorize it via a probability algorithm into emotional perceptions of the feelings “happy”, “sad” and “angry” or short HaSaA (pronounced for funs’ sake, husaaaahhhh!).

Now you might say (or should in fact say this): “But Simon, this is ridiculous, a computer cannot understand emotion, that’s something humans do! How would a computer know what HaSaA is!?”

Point taken my dear friend, but let me edify you. The first conundrum we face of course is: What is emotion?

“Dear Mr. Dictionary, please give us a sensible reply?”

“Simon, I shall do as you command:”

“Here is thy answer: ‘emotion, noun, an affective state of consciousness in which joy, sorrow, fear, hate, or the like, is experienced, as distinguished from cognitive and volitional states of consciousness.’Among certain others…”

“Thanks Mr. Dictionary.”

The words we are especially keen on are “state” and “consciousness”. Make that into “state consciousness” and remember what a state is. Now I ask you what is a computer? Essentially a “state machine”. If you don’t agree I suggest you learn how a computer chip really works and come back to argue (In case you do, be reminded I will purposely ignore this discussion if it has the smallest hint of ending in a flame war, savvy?).

Now that we have this revelation, it means we can in fact program a computer to have an emotional state. I am not saying the computer has a profound and deep understanding the way we do, but like any other state machine, we can simulate this state very easily. The tricky part comes when we want to show this state to the player.

Problem #2: Emotion is subjective and personal. How do you show, unmistakably, your feelings to another person? Without being ambiguous?

“Simon, go an get a computer to understand that one! HA!”

You thought you got me there, but wait, we don’t have to. I didn’t tell you all there is to know about M-EDGE yet.

M-EDGE doesn’t just analyze the audio but it also categorizes it as I explained earlier. This categorisation happens via a probability calculation that requires one of two things to map what it recorded to the correct emotion. The first is hard data that Dr. Roberto Dillon, the inventor of M-EDGE generated from research data collected that provides a stereotypical value range how people in general feel about certain tunes. Those values are matched to correspond to the emotion flag output and when now M-EDGE detects value that match in the probability mapping to thos stereotypical values you have a detected emotion. The second one is by letting the player provide the hard data himself by configuring the system to those target values. This can make the system more taylored to the the users own taste and perception of emotion in music.
I want to remind that this is not simple pattern matching. The system can very well be configured with Led Zeppelins’ Immigrant Song for happy and when the user plays Deep Purples’ Space Trucking it will be detected as happy. The two songs have similarities enough in the way they are played, even when we ignore the actual notes, that M-EDGE will detect them similarly.

Now as for how you in fact show what M-EDGE detected is really up to the design team.

For Garden Planet I used two ways. One for immediate feedback so the player can see what M-EDGE is doing in realtime and secondly buffer system that looks at changes of M-EDGE over time.
The first just shows themed models popping up and dissapearing on a rotating cylinder shape that represent the current emotion detected. The second one is a bit more complicated. Over time I am basically pouring in and out values of three buckets that represent the basic emotions happy, sad and angry. The values I put/remove are based on the probability calculated by M-EDGE. This bucket system will then depending on how full or empty the buckets are control the spawn and change rate of emotion themed assets on the planet that we try to influence with our music. Once you play it you will see very quickly how it essentially works.

This are the absolute core features of GP and how they tie in with M-EDGE. It is also the main way how games should use the M-EDGE engine.
It is really difficult to design games with it but just based on those core features many a good game can be made with M-EDGE.

LSCM unwrapping in 3ds Max

If you take a long time to unwrap your models in any 3d package then this is for you. Blender 3D users are familiar with this tool but how many other people are? Creating good UV maps is a skill not many people have, and even fewer can do it really fast. It is not so much a case of having not enough skill but a case of not having the appropriate tools.

3ds max introduced peltmaping but how useful is it really? Not really you might say. Buggy and unrealiable. So you spend a lot of time going back to traditional methods and it takes ages until you have a propper unwrap.

Now LSCM or “Least Sqare Comform Mapping” is an unwrapping algorythm where you simply select edges on your mesh along which you cut up your model and so define the outside border of the shape you want to unwrap.

How does it get it right? The algorythm basically looks at the size of adjacent polygons and the angles of connecting edges and tries when flattening the mesh to keep those realtively even to each other as, similar to what they are in the 3d space.

Now as said this is more efficient then Peltmapping for the way LSCM works. Once you in fact use it, it becomes super easy and fast. You need to have to good spacial visualization ablity and think ahead of how your mesh should unfold, else you end up with a mess.

There is a plugin for 3ds max that allows you to use LSCM without having to go through Blender and its clunky interface. Just make sure in 3ds max to collapse your model down into a clean edit poly (else it wont work, dont use just an edit poly modifier, make sure you collapse your mod stack) with all double verts merged (thats two or more verts in the same place creating unnessecary open edges) or you might get gaps in your UVs.

You can download the Plugin here:

http://www.luxinia.de/index.php/ArtTools/3dsmax#lscm

Heliosphere Dev Journal – Entry 2

It has been a while since the updates on Heliosphere. Life is busy as usual. Florian has been working on the new GUI code and I finished almost all the the actual game design. Same time I also managed to get started on texturing our little spaceship.

Also as a new addition in the art department, I want to welcome Justin. My old buddy from uni is also joining in to help us making models.

Battle of the Pink Baron Completed

Finally I was able to get around and complete the Pink Baron. Please enjoy!

WWI_Ukio-e_01_V2.4

WWI_Ukio-e_01_V2.3

Robot Bug

A few months ago I attended a small two day art workshop by Feng Zhu here in Singapore as part of CGOverdrive. That got me going on some more robot design doodels in  my sketchbook. I figured that the design could be really interesting and started out on a small model. The result of it you can find below. It is also still a WIP, the joint’s don’t move yet but I thought about posing it anyhow just to see if the shape really is working in 3D. I feel rather satisfied with how it is coming along but there definitly is more work to do and some cleanup of the mesh.

Battle of the Pink Baron

Thinking of WWI airplanes and fierce battles in the sky, most people (in Europe at least) will think right away of Manfred von Richthofen, or better know as the Red Baron with his famous red triplane.

I am exploring by good suggestion a rather new art style that seems to fit more the sye of drawing that I have been practicing for the past years. I am particularly because of this suggestion become enthralled by Japanese Ukio-e (Japanese Woodprints) and the artwork of famous artist Hiroshige.

Hiroshige - Evening Shower at Atake and the Great Bridge (1856)

Hiroshige - Evening Shower at Atake and the Great Bridge (1856)

All Ukio-e has a very cinematic feel to it, uses heavy perspective but keeps things simple and above all is not afraid of bending the rules of the real in order to get the story across.

Now what does this have to do with the Red Baron? I am starting to be a bit fed up by the seriousness of all the early modern war era and thought I give it a bit of a modern spin to it. Adding a bit of “gayness” in the original sense of the word to it and some Roy Lichtenstein could maybe do the trick. The result (still requiring some cleanups) of my thinking plus something can be seen below (including process drawings below).

WWI_Ukio-e_01_V2.2

Heliosphere Dev Journal – Entry 1

I decided to relase some initial informaiton of Heliosphere that I am devloping together with Florian over at Codeflow.

The game is a multi-player 3d action space shooter in the fashion of Descent but in outside environments. The game is built on OS X in Phython and OpenGL  but will be available for OS X, Linux and Windows.

In the movie file (double click to play) you can see some initial navigation of the game around some large asteroids. The scene is over 200k polys and oh dear does it run smooth on the fps, sorry currently without textures. Florian is doing a great job on the physics and hope he gets around to finish implementing the weapons so I can add some guns to the ship (screen further down).

On that note I have to warn you, the art style has not been completely designed yet and is still undergoing some drastic changes. Hope this makes some mouths watery!

embedded by Embedded Video

Download Video

Ship_Prototype_01_RenderGather