Learning Blender
Leaving Max for Blender
Back in the day... okay that makes me sound old. Seriously though I picked up 3D Studio Max way back when. I remember eagerly awaiting the character studio with 2.5.... and well lets just say I've been using Max a very very long time. I'm familiar with it and happy with it but well it's expensive!
Now I had a University license which expired a while back, but that was not the turning point. No the turning point was working on a mobile phone project and the god awful level editor I wrote. Followed by long discussions of how much our studio was spending on Art software, and how extensible Blender is. This lead a friend and I to conclude with proper tools support Blender could almost be a more effective tool than Maya.
That was about a year ago. Now as you may or may not know I've been working on several side projects and well I hit the point where I was about to reinstall that university copy of Max. When two thoughts hit me... is this license still valid, and what about that Blender idea?
So I sat down with Blender, some tutorials, immense frustration and set about it.
My Yellow Submarine
Finding good tutorials
Well the tutorials varied greatly in quality but the biggest barrier is that Blender's UI is extremely complex and very function focused. Which is very off putting at first, something they acknowledge with their massive UI rework but its still far behind Autodesk products in term of context flow and usability.
The real problem with tutorials is they were either for idiots or pros. Very few were focused at someone with 3D skills (technical skill, my art skills suck) but no knowledge of Blender. Though due to the UI I had to mostly depend on Video tutorials to help me with the crazy UI.
So I made a sad monkey, thanks to these tutorials - Blender 3D Design Course. I could write an entire blog post on the tutorial issue, which I may do.
Crash Crash Crash
Yeah this happened to me often. Way way too often. All I can say was save lots.
I miss X
So I set about music blearing to model a Yellow Submarine, Beetles style. Straight-away I started missing the Max modifier stack and many useful tools. Bridge oh how I miss thee.
Is it working?
So often while modelling I would accidentally create extra faces, verts or just screw up normals. The real problem though was the mistakes were not obvious and many kept coming back to bite me.
I cannot see!
Aaa the Max camera controls how I miss thee. Also with a laptop and blender depending on num keys. I mean like WTF?!? Also it took a while to realise how the right select and the 3d pointer worked. I mean what a mind fuck. After a few hours it starts making sense but it still feels so unnatural.
Keyboard Freaks
Give a programmer the job of UI and you will get lots and lots of key presses, combos and god forbid threads (pressing keys in sequence)! Yeah Blender suffers badly from this. The over-reliance on keyboard controls, and the programmer's desire to get as many features in as possible means they are all squished in there. So yeah be very very careful what you do with your keyboard... and it changes on context. Which makes sense but catches you out.
Seams Wonderful Seams
Yes seams are glorious! Just magically mark them and you help the unwrapping process to NO end. I'm sure with correct mesh construction (mine was sloppy due to being new) and correct usage of seams well it should be a dream.
Windows Frames View Thingies
With enough screen space and a bit of tweaking well the system is gorgeousness itself sauced with complexity and sprinkled with crashes! Love hate realtionships aside, skinning while seeing the effect on the model is very very handy.
Pin It
OOoh I love pinning UV points! So handy with remapping and tweaking. I do miss some of the more advanced Max UV features. It's very different, and the lack of the modifier stack... *sigh*. Also the whole shared vertex or location thing can be a bit infuriating at times.
I then tried to map it to a custom key. Though 4 hours on Google and no luck, not without writing some Python.
Finished Product
It should be stated I have no interest in the render functions, and I'm treating Blender as a content creation tool for games. But yes... success and drugs!
Conclusion
I'm getting familiar with it and I'm glad I'm using a free program which is easy to modify and build upon. Watch this space to see if I continue to rage or coooo over the Blender fight.
When in doubt, break it down
I can point to countless notebooks some of which date back to some of my first programming experiments in my pre-teen years. One problem which I've never felt happy about are TILES.
Now I've always had a bit of a love affair with tiles but also an obsession with clean logic. Sadly tiles require some dirty link ups when working in an animated 2d or 3d world not built out of tiles but instead pixels or some floating point algebra.
Not to mention the issue of WALLS!!! Does tile A or B own the wall, or does it exist in wall space. Do you split the wall down the middle? In the case of wall space does the tile extend underneath it?
These all have quick and dirty answers but I don't like working like that. Sadly I've never been called on professionally to look at the tile problem. If I ever had I'm sure the sanity of deadlines and my team would have made the problem almost trivial filled with arbitrary choices.
So yeah the game I've been working on was stuck in limbo for a month while I fought with data formats, and variety of ways of representing the data. Not to mention a bunch of stupid graphic glitches.
Solution
Bless Sophie and her balance of manic development with apathy. After a coffee and my ranting about the tiles I realised how stupid it was and in one day rewrote it from scratch. In a horrible hacky memory inefficient way. Though my stubborn self and experience found the hacky method worked and then was easily smoothed out. I honestly couldn't tell you if it is the best solution but it is a solution!
For those curious I went with the concept of wall space which overlaps with tiles and belongs to no tile. So it has additionally memory overlap but no convoluted calculations involving bitmasks, or bit shifting.
So hopefully I can move on from here and just place objects in the world and then get some guys running around the room X-Com style.
Chess and Unity
So the big milestone for the Data Driven Dialogue project is in and frankly it needs some time to sit on the shelf while I gather my thoughts for a fresh assault. So I set about learning Unity, something I've been interested in for a long time as a prototyping tool.
The first thing I will say, and I found this with XNA as well, is 90% of the tutorials, resources ect... are worthless to anyone with any base level knowledge. Throw them out, you just need a quick run though the UI, and some quirks pages. All of 10 mins then just use your gathered experience and the reference docs from there on out.
Now when learning new tech two of my favourite test projects are Pong and Tetris. I immediately dismissed these however as Unity made both very easy with its built in functionality, and I knew I wouldn't learn much because I wouldn't need to solve too many problems. I immediately settled on Chess as a well defined game because as anyone who has worked with high level world based tools knows.
- Using any coordiante system for game logic not directly tied to render space is a pain
- Object and Game logic conflict requiring you to split things up
- State based animations and effects can be a pain
- A simple chess AI is a nice little work-out
So yeah I'm tinkering away with that at the moment. Slowly building more layers of complexity on top of it till I'm satisfied I know Unity well enough for a real project I have in mind.
Oh and if you asked why I'm writing a boring Pong / Tetris / Chess game to learn Unity when I could be making Cool Idea #63? The answer is simple always learn new tech with a pre-defined and tested design. Otherwise you will compromise the design to avoid problems rather than be forced to overcome them. The goal is to learn the tech not to make a super awesome game.





