Stranded on an island

Written by MentalFish. Posted in Computer Graphics

I came across an issue the other day while doodling on a 3D model of a car wheel. The nuts, or bolts if you will, were too small and I found it strange that there was no tool inside LightWave to scale them individually as separate entities as they were inside the same layer (mesh) in Modeler. This would mean I had to manually select each island and scale them one by one. Not a giant task by any means as it was only a few items, but still annoying.

So I went to the NewTek forums and posted a question on whether or not there is a solution for this, either hidden somewhere in LW or some sort of plugin. I got some suggestions on plugins to use and a script to try. They weren’t exactly what I was after, but it gave me a starting point and idea of how to get this functionality working as I wanted it to.

I studied the suggested LScript (LightWave Script), got the grasps of what was going on, analyzing why it wasn’t working, and after a couple of iterations came up with a solution that worked. This was in turn taken by someone else, new to the discussion, and improved to yet another level.

At this point the script was doing what I wanted in terms of scaling each “island” of selected polygons, but in a very try-and-see-what-happens kind of way, as there was no interactive feedback of the end result while changing the scale value. So I added an interactive update to it as well as the next step.

From this it was a couple of lines extra and we had “island-rotation” as well. The only problem here is that it happens on world-coordinate axis, so if your island of selected polygons were on differently slanted angles, it could mess them up. If they were aligned flat on the same plane, they were fine.

Now this LScript is in a stage of adding scaling around each polygon-selection’s average normal (its local “up” axis) and if this works then… woohoo! Anyone with some 1337 LScript and/or 3D math knowledge is welcome to contribute.

I would not have found these solutions as fast if it was not for the community and the general attitude of sharing and contributing.

That’s it for now, check out the forum thread and follow the continued development of this:

http://www.newtek.com/forums/showthread.php?t=100587

Download LScript

The value of an idea

Written by MentalFish. Posted in Games

<rant mode=”on”>

What is the value of creative efforts, often described as intellectual property? And by value I don’t talk about monetary measures alone.

Envision this: You have an idea with a small technical scope and you share it with others. Later on, the exact same idea is presented and implemented as somebody else’s new and brilliant idea, just before your own implementation of it is completed… Would you consider this to be ok, it’s just your own fault you didn’t implement it fast enough after revealing it?

If an idea in itself has no value, and is up for grabs for anyone as soon as it has been verbally or textually expressed, then I don’t think I will spend a lot of time sharing ideas in any open fora, or even closed ones for that matter. Game concepts and game mechanics will be under a lid and seal until the game is finished.

If I spend 90% of my time working out the gameplay and 10% of my time goes to producing graphics and code, then the time spent on gameplay is where the value of the game reside. If you spend 90% of your time on the graphics, and someone traces it to create “their own” version of it, would you accept it as decent behavior? What about re-record the in-game sounds and changing the pitch to create their own version of it?

I am not saying people shouldn’t make another tower defense game (we at illustrata just made one), or not make another physics stacking game, but there is a difference between making a similar game in a category of several variations, and recreating one specific game with only microscopic changes and reduced polish.

If you are a cloner from Kamino insisting on identically cloning other game concepts, at least have the decency to clone something that has already been released and not something you have come across being in development for the same target platform and audience you are aiming for.

Then again, this might only be me being overly sensitive to injustice and what i consider to be rude behavior.

</rant>

Scale sound in electric R/C planes

Written by MentalFish. Posted in Planes

What do I need to say, just press play, watch and listen:

http://www.youtube.com/v/HnLy694FW-E&hl=en&fs=1&

http://www.youtube.com/v/ua8vvwn59q8&hl=en&fs=1&

http://www.youtube.com/v/pVtZ-v0mFlw&hl=en&fs=1&

http://www.youtube.com/v/sLYiWZTzWjk&hl=en&fs=1&

And of course you can have machine gun sound:
Aerosound RC SOUND System Review (scroll down in the review for links to videos)

Time is flying as well, last blog post was in April… I have other posts up my sleeve, but life in general keeps me from getting them done. I guess I should set aside dedicated time for them and for my planned update of the previous post on 3D workflow.

3D Workflow

Written by MentalFish. Posted in Computer Graphics

As an interaction designer with a wide range of experience with 3D software, I frequently see the need of a better interface and workflow in these applications. I do not mean I have the best shortcut configuration, theme or icon design to offer, but I am talking about the way in which polygons, bones and items in general are created and modified. Whether the s key or alt button is used to rotate the camera/view port is not important, as that is a matter of assignment and not a part of the fundamental workflow design of the application. In this day and age, no key/button/wheel/pen tip should be hard coded into the software’s core functionality anyway. If you want the pen tip pressure to control zooming, why not have the option of assigning it?

To start off with the more generic features and improvement of the workflow, we can take a look at the overall handling of items in a 3D scene. All 3D applications have some sort of hierarchy or scene graph in which all the content reside, and traditionally this is accessed through an Explorer like interface with expanding nodes in a tree structure. As an alternative or addition to the traditional tree structure of items and data, and the typical mode change via buttons such as: “edit bones” , I propose the introduction of an “immediate mode” with these default assignments:

  • Double click (or single click + modifier-key) on an item to enter the edit/modify mode of that item type, edit bones, edit mesh, and so on. No need to go to a drop down menu or keyboard shortcut to do this mode change.
  • Left mouse button (LMB) click and drag = translate the element you click on, regardless of it being a model, a vertex or bone. Move is move, no need to have different tools for moving models and vertecies.
    • To scale or rotate the item instead of moving it, hold down a modifier key for the duration of the scaling or rotation (alternatively go for sticky-keys as found in XSI).
  • Click and drag right mouse button (RMB) or LMB + modifier-key, you duplicate / extend the current selection as in a typical extrude edge operation, or duplicating/instance/clone a model if working on a pr model level.
  • Scroll wheel or scroll strip/circle on Wacom tablet + modifier key, is set to expand the current selection:
    • When a model (scene item) is selected, the selection will perform a spherical “grow selection”.
    • When only one polygon or point is selected it will do a radial selection growth from that point.
    • When a row of polygons are selected the scrollwheel will grow the polyloop selection (with a correct pattern if “every other” polygon is selected).
    • When an edge is selected it will grow the edge loop selection.
  • The scrollwheel operates the view-port zooming when a modifier-key is pressed down (the same modifier key that handles view-port translation and rotation)
  • Scroll wheel + modifier key will keep applying the last multiplication, so an extrude will be repeated for each step/click of the scroll wheel, and a model instance will be created for each scroll increment (“array clone”).
  • The alt key should by default be assigned as the “alternative mode” for the current event taking place. I.e. an extrusion of multiple polygons will toggle between uniformed extrusion and pr polygon extrusion (like bevel in LightWave). Another example can be when a model is RMB click-dragged and instantiated, it will make a duplicate (copy) of it instead of an instance. This could of course be assigned to a different key, but alt is the alternative key by definition.

These are some thoughts as of now, and I will keep on extending this blog entry with more ideas and illustrations as I get time to make them.

How to make games fun?

Written by MentalFish. Posted in Games

<rant mode=”on”>

I have a question to ask: Can a game with mediocre gameplay be saved by a grand story or cool graphics? In my book it is a big fat resounding NO. Can a game with no story or simple visuals still be fun? Most definitely yes, look at Tetris.

I can almost hear someone coming in shouting “But Tetris has a story!”. If you want to make a philosophical point and argue that the blocks are representing something more than just falling game mechanics, then sure, you can make the case that Tetris has a story to tell. What about to the wooden tilt-maze game, is there a story being told when you tilt the board to avoid the holes? Is the metal ball a character in a story about not falling into the pits of eternal doom and gloom? If so, then it is the player’s imagination that is creating and telling the story, not the game itself. “But the story is the catalyst for this imagination”, could be true, but even so, it is not the story the game creator was thinking of telling, they created a pure game mechanic in which people can add their own imagination.

David Lancaster has grabbed up Unity and posted 2 videos on YouTube of his process of how to make a fun game. A highly pragmatic approach to game design and development.

Not just talking the talk, but also walking the walk:what-makes-a-game-fun-1what-makes-a-game-fun-2

I am not against stories being told in the games medium, nor that the visuals should not be impressive, but I believe there is too much focus on making games behave like movies. If storytelling in games are done as if they are movies, we easily end up with horrible or almost non-existing gameplay as in Space Ace and Dragons Lair. Those games were first of their kind and I loved them due to their highly visual and different approach to graphics and vivid characters in games, but I will be the first to admit I was wrong when I back in the 90-ies, hardheaded meant they were the best games available of the time. The gameplay can be compared to having 8 play buttons where you guess what random button to press. If you press the wrong play button for this scene/sequence you cant see the rest of the movie. SMACK!!! Back to start.

We still see games being treated as movies by the frequent use of cut scenes, although real time instead of pre-rendered, and button mashing to get through cinematic kill scenes (such as in God of War and its derivatives). Couldn’t these stories be integrated more directly into a more interesting gameplay? Button mashing and joystick joggling is for Summer Games on C64 and people not know how to play Tekken and Street Fighter (<- me).

Hear ye, hear ye! Gameplay is king and story has proclaimed its support as a loyal subject!

So how to do it then? Take inspiration from the 1991 game, Another World. In that game the story and gameplay is inseparable, no long winded dialog or written stories in sight, and the cinematic cut scenes are short (apart from the intro) and integrated into the gameplay. You are performing the actions that define the story through the game mechanics provided by the game developer, which in this case is also the game designer and the game graphics artist, Eric Chahi.

another-world-logoanother-world-screenshotAs a final rant I just want to say: A written story outline is not a game design document and a story can not in itself make a game great.

</rant>

Now that the rant is off I just want to say: Make your games the way you want to and play the games you want to play. I think I have given a clear point on where I stand :)

Update: Its not just me who think games should not be treated as movies or books:
The Register – GDC09: Jeffrey Kaplan

MentalFish blog is live

Written by MentalFish. Posted in Uncategorized

What better way to start off the MentalFish blog than some words on the release of Unity 2.5? Apart from Unity related issues this blog will contain posts on LightWave, thoughts on usability and interaction design, updates on what is going on with Galactic Fleet and occasional posts on radio controlled planes and the likes.
unity-on-windows
With Unity 2.5 we have the possibility of using Windows and can expect an explosive count of Unity users. This is good news for anyone using Unity as their real time 3D engine of choice, as the general awareness of Unity existing will increase. In time we might even see it becoming a the most installed plug-in for browser based 3D, in the same way as Flash has become the most installed plugin for video and “rich media” on the web.

Also check out the Unite 2008 conference videos, lots of good information. Now I finally get to watch the ones I didn’t attend as I couldn’t replicate myself like Dr Manhatten from Watchmen. I chose to go to the more technical ones, missing out on talks such as bringing concepts to life and making art look good.

Although Unity is now available for Windows, I’ll still stick to Mac OS X. I have gotten fond of having *nix command line available (i.e. cronjobs) and all the applications I use apart from Unity is also available on OS X, especially LightWave which has a Cocoa (true 64bit) version around the corner. Finally my 6 gigs of RAM can be used to its full extent by LightWave (if I ever need to lightmap a massive scene that is).

To be honest, I have bought 3 Mac’s; a Mac Mini to get familiar with Unity, then I bought a Mac Pro as my workstation and the smallest Macbook Pro available for on-the-go work and prestentations. All because of Unity. In other words, I have some hardware investment in the Mac world. That said, if I feel like going back to Windows, all machines can become Wintel machines immediately via Bootcamp, but there is one other aspect that keeps me on the OS X platform: Galactic Fleet turning into an iPhone / iPod game. So I guess I have no need of swapping hardware for at least another 2 years (perhaps a GFX card upgrade for the Mac Pro in a year or two).

For anyone interested and hasn’t seen or tried Unity yet, go get get the demo at their website.