“As I mentioned in another thread recently, the last time I went job searching, I posted my resume everywhere I could and got awful signal to noise ratio everywhere; the only one that was reasonable at all was Angel List, and I think that’s because I looked through postings and initiated contact myself. My conclusion is that you need to put in the work yourself to find jobs that fit you, because recruiters will not.
Also, I was getting half a dozen new conversations every day and it was draining. More leads is not better.
Don’t post a phone number in the first place – there’s no reason to. When recruiters send you a “I saw your resume when can I call you” email, reply with a template response telling them that you won’t take phone calls until you’ve seen a job description, and you’ll get job descriptions and be able to filter out the 90% that aren’t worth even talking about.”
“Dice is where I’ve seen some of my better leads come from. It’s dedicated to technical jobs. But honestly, I’d recommend putting up your resume on all of the job sites you can, more exposure is never a bad thing in my opinion. You’ll get a lot of calls/emails from low quality recruiters trying to get you to put in your resume for every position they have. Just ignore them if you can tell they didn’t even take the time to look at your resume/profile.
I downloaded Blender over a decade ago (before Youtube), tinkered with it, and let it rot because I couldn’t figure it out. To be fair I gave it no real investment of my time or energy but I was really happy it was so powerful and I was excited to get to know it when the time was right. A few years ago I read about Blender and how much it had matured. The impression I got was that although it works a bit unconventionally it had a fantastic user interface which some people swear by. A few months ago I downloaded it again when it was time for me to start making games and I read a book about it but it wasn’t until tonight I finally legitimately dug into it and figured out some of the things I can do with it.
Goals
In this article I’ll lay out what I know about the Blender 3D modeling tool and will keep track of the best resources that I find for the swiss-army-knife of 3D tools, the mighty Blender.
What I learned today
I learned a bunch of keyboard and mouse shortcuts:
Select, Deselect, Create, Extrude, Select Objects, Vertices, Edges, Faces.
I learned to turn on “Screencast Keys”
I learned to create cool pipes using bezier curves and related Bevel Objects.
I also learned how to navigate Blender from my MacBook Pro Trackpad.
Specifics
Here I’ll list some specifics that I didn’t mention in the videos above:
Select a segment of faces easily.
select a face, then alt select a nearby edge to select the segment in that direction.
On this page I’ll keep resources related to the topic above. I have always had a special place in my heart for games that ran directly on “bare metal” hardware like consoles or the Commodore 64 because from some perspectives things were so simple and straightforward and there weren’t enormous layers of operating environment to bog your code down. Of course from other perspectives programming was vastly more complicated back then due to the limitations and quirks of computing and gaming hardware and this page will list some resources about low level things of that nature. I also have a soft spot for classic computing and gaming so there will likely be plenty of that going on here.
Enjoy!
Low Level Computing
This video is about an hour long and explains in detail how your operating system works; for example it explains what happens when your computer boots up and ultimately shows you how to create an extremely bare bones operating system of your own that runs a tiny amount of software that you wrote!
#ProgrammingIsBetterNowThanInThe80s
@35:00 it shows that you have to do some byte skipping to put characters on the screen
Notes To Self: Other reasons: Wolfenstein 3D had to do some black magic with the VGA screen buffer turning the bitmaps sideways to get texture mapping to be fast enough.
in the NES video I watched earlier today about programming NES with 6502 assembly it talked about how you had to fill up a background buffer with loops bigger than the processor could handle.
On this emulator site you can emulate a bunch of old and new operating systems some with assemblers already installed.
I ran windows version 1 (interesting how much it has progressed) and freebsd.
This video (called How we fit an NES game into 40kb (~12Min)) has high production values and explains many of the optimizations they used to get their (relatively advanced) NES game to fit in the original NES rom size of 40kb which as you probably know is absolutely freaking tiny by todays standards. It notably does a fantastic job visualizing how their sprites were optimized to fit in the small amount of graphics memory available (8kb) which allowed them to add more actual content to the game.
Assembly
Get started by building and running code that does something in assembly in just 20 minutes total. The most straightforward way to start dabbling in assembly programming is probably to watch this 10 minute video and then run the software he gives you to build and run an assembly program for the Sega Genesis. I watched the video and less than 10 minutes later I had built and run my first assembly program!
Caveats: You need windows, and you need this Sega Genesis Emulator which worked well for me (any other emulator will work too)
Here is a good high level introduction to Assembly on the NES which shows that even though pong is effectively a very simple game, making a pong game isn’t as easy as it might seem when you are working at the lowest levels.
It also briefly shows writing to video memory, reading from controller input, interrupts on the NES, etc.
Here is a good low level introduction to Aseembly on the NES which goes into way more detail about assembly (its about an hour long) but I haven’t tested whether its easy to reproduce his work.
There are links to the source code and the assembler in the video description so you should be able to reproduce what he did.
But much of the video is really an exposition of how complicated it was to develop games like this back in the day
How does an ‘if’ statement work at a hardware level
I spent some time preparing an answer to a stack overflow question and although I’m not even sure I answered the question they were asking there is a lot of good information in my answer:
The answer to this has to involve an explanation of what software the hardware is executing.
Background: Each processor has a set of built in codes that tell it what to do (its “machine language” or assembly language) and on modern computers one of those is always a “branch” statement of some sort and I think this wikipedia article) will help answer your question.
More Information: A simple example of this is ‘jeq’ in x86 assembler which stands for ‘jump if equal’ which works like:
JEQ R1,R2,addr // IF R1 == R2 THEN PC addr ELSE PC++
which compares R1 and R2 and if they are equal then the program counter jumps to a location in memory (addr) and starts reading commands from that new location (which would be everything inside the if statements curly brackets). Slide 13 of this presentation has more on this.
A possible explanation of this code:
if (4 < 5)
one instruction would load 4 into register a a second instruction would load 5 into register b a third instruction would compare them and the result would be stored in a ‘condition code’ and a fourth instruction would look at the condition code and either jump the program counter to a new location, or continue executing the next instruction
This page is an easy read and does a good job explaining logic gates and multiplexers which are the building blocks needed to make the circuit you are describing
This ALU was included in many original 1970s computers and this data sheet explains what it can do and this answer talks about all of the different conditions that chip can solve.
Heres a video that disassembles a simple C program into machine language and although there is technically no if statement, there are related conditional statements which work somewhat similar.
Here are two answers number 1number 2 with clues about if statements in assembler
And here is an assembly guide from the university of Virginia.
As I work my way through this tutorial I’ll post my findings here.
This tutorial shows how to test a game on iOS for free. It talks about how if you want to publish to the App Store and do other similar things you may have to pay for a developer license.
Xcode has changed in small ways since this was written. In the section called Building the sample project to your device using Xcode it says that in the top left you can open the project settings by clicking “Unity-iPhone” which didn’t work for me. Instead I found project settings in the menu but I don’t think it is right because there is no “general” tab nor any “identity section”. As a result I didn’t do any of this, but did “generate a new certificate” which was a simple two step process back in the same place where you added your Apple ID (Xcode->Preferences->Accounts)
When I plugged in my iPhone via usb (which I had never done before but only because its a new phone) it opened iTunes and made me verify that I wanted this trusted communication to take place then in Xcode it took a few minutes to “prepare it for debugging”.
Ok when I clicked build it failed and said that I needed to “select a development team in the project editor”. I did some googling and things have really changed so it wasn’t easy to figure out what to do instead: 1. I found a “Build Settings” in the main editor window that had identity in it which let me select my identity at least. After that it still required me to select the project on the left, then change the ‘target’ in the drop down just a bove the main editor window. From there I could get to most of the settings it spoke of earlier. I set the development team accordingly but then I had to go to the info tab and change the bundle id to something more unique than I had put in (per the tutorial I put com.unity3d.mobiledemo but thats not unique).
After that it still didnt launch so I had to go into my device in the general->device management settings and trust things from this developer. But after that it totally worked!
Getting my Game to Build and play on my iPhone
This is an entirely different prospect. I’m going to try doing the exact same things that I did with the other project but I know that my project has differences in its setup so I’m prepared to have to tweak things.
Update: Actually the build worked on the first try! My game is running on my iPhone now!!! YAY!
Touch Controls
To get Touch Controls working I may choose to download an asset from the asset store but first I want to see what I’m getting into.
This is part of the official rogue like tutorial but I don’t think it does what I am looking for either:
A youtube tutorial on the topic:
This one looks more along the lines of what I’m looking for. he spends over 60s telling us which of his videos to watch but the code in this is really top notch, tight, elegant and clever.
It was quite good but I saw another video which led me to the asset store where I found this:
This is free and should do the trick so I’m going to try it out.
Final Virtual Joystick Decision:
I ended up using the CN Controls from the Asset store. It was really really easy. I just dragged it into my canveas and changed Input.GetAxis to CnInputManager.GetAxis in my code then built and deployed to my iPhone and it TOTALLY WORKED!! I’m glad I watched those videos because I now know that I could reproduce this on my own if I had to and I understand most of what these controllers are doing.
Problem with Shadows
I found a problem with shadows that only manifested on level 10.
Scene 10 has problem Scene 9 doesn’t.
One solution I saw at the unity answers suggested increasing the scale of my game, but I don’t think thats wise because of this:
I did NOT end up finding any good solutions online and I believe there is somewhat of a bug but people are pretty religious about this topic for some reason and seem to either think that it “shouldn’t be a problem” because “why do you need more than that distance of shadows anyway!?!” which I think is pretty lame. Regardless after hours of trial and error (including going back in time in git and copying the entire project and wiping things out behind the senes and re-generating them) I did find somewhat of a workaround. First I switched build settings from iOS back to Mac/PC and then back to iOS which seemed to clear some shit out and at least made the shadows consistent from one scene to another. Then I changed the shadow distance to 40 (Edit->ProjectSettings->Quality). 60 might have worked, 100 was pretty bad (My wife said it was Atari 2600 level!). This does not look nearly as crisp as it looks when the shadow distance is 10 or when you are using the Mac/pc build setting but the lower you go the more disadvantages you get and this was the lowest I could go without seeing any dramatic disadvantages of shadows disappearing and popping up unnaturally toward the back of the screen (it still happens its just not too terribly unnatural).
Shadow Distance Differences (iOS Build Setting)
Code Signing
Half of the times you build (after you’ve plugged your phone in again or done a clean build or for whatever reason) you have to go manually change the Team ID in Xcode but Unity does have a workaround. In Unity->Preferences->External Tools there is an option to automatically sign your app but you have to put in a Team ID. I had created one in Xcode (documented somewhat above) but putting that email or my name from there didnt work. I had to dig deep to find the team. Almost everyone online pointed me to something that doesn’t exist and said that at developer.apple.com you can find your team id, but since I have the free account atm thats not available from there (There is no Account.Membership section of my account on that site). I was able to find the right Team ID using a real tricky bash script:
I found that hidden at the bottom of this answer which says that it is a part of the keychain on my Mac (and apparently can somehow be looked up that way as well).
When you run that it takes a few seconds and then spits out the ID then a comma and then the name of the team account you’ve been using in Xcode. Plugging the ID into Unity worked like a charm.
Optimization
When you are done and you want to optimize here is an article all about optimization on mobile
In this tutorial I will walk you through the mechanics of making a scorched tank game. When I say tank game I’m talking about the classic games: Scorched Earth (PC), Scorched Tanks (Amiga), or Gorilla (DOS), or Worms (all platforms?) or one of many other games of this nature where you launch projectiles at targets.
We will be making it in 2.5d (why? because I like 2.5d!) but the mechanics will apply similarly to a similar game made in 3d and 2d.
I don’t plan on putting much “spit and polish” on this because this tutorial is about showing you the mechanics of the game not how to make a publishable game from start to finish, however many of my other videos and tutorials will fill in all of the gaps you need to pull that off so browse around on my site for more.
Part 1: Turret Rotation
In this Unity5 tutorial I walk you through the mechanics making the first part of a tank game where you will be shooting projectiles and hitting targets. This Unity5 tutorial speaks to the creation of the cannon and the turret and the rotation of the turret as well. The turret needs to rotate independently of the cannon body and needs to rotate around an anchor point at the end of the cylinder not in the center and this video shows how to do all of that and more.
Part 2: Launching Projectiles
In this video we create a projectile and launch it out of a spawn point with a given direction.
Part 3: Constraining Bullet Positions
In this video we constrain the bullet position so they don’t move out of the 2d plane. I considered doing it with a script but decided that setting up physics objects to bump into and constraining the rigid body position vector was preferable (it behaves more like you would expect it to in this situation).
Part 4: Explosions
In this video I show a few different physics explosions and how to target them only to certain collisions so you don’t go blowing EVERYTHING up! 😉
Part 5: Making it a fun game
The first thing we do in this video is one of the funnest things in the whole tutorial: make every ball go flying at once! After that I show you how to make it into a complete (albeit very basic) game with just a few added game objects and scripts and it ends up pretty darned fun if I do say so myself!
Thank you so much for working through this tutorial and watching my videos and coming to my website! I’d love to interact with you so will you add some comments to the video or here at the blog? Ask questions, ask for clarifications, make suggestions or whatever! Enjoy your new Unity5 powers and thanks again for coming!
I’ve been investigating lots of level design tools and I found one that seems to work really well. its got subtractive features as well as additive and is pretty mature. I made a few videos about how to use it although they aren’t edited yet and aren’t uploaded. Its called SabreCSG. These should let me make larger levels for Super BelDevere which is what I’ll be working on today: making a large level for that game.
I’ve been having a problem for a while where the ball sticks to the wall no matter how I adjust the bounciness in the physics materials. I found out that in the physics engine there is a bounciness threshold and below that threshold of speed in the same linear direction as the wall then those things don’t bounce. I changed that bounciness threshold to be 0 so lets see how it works … Yup that worked great. I tested it with a higher number (20) just so I could understand what was going on and it made the game unplayable (just as I suspected).
Monday Dec 11
I have been working a lot on my pong style game called Co-Parenting Beldevere. In this game Beldevere feels unloved by his deadbeat father so as his mother you have to play both roles (control both paddles) to help BelDevere feel loved.
Co-Parenting Beldevere
Cut Scene
I spent a lot of time over the last few days working on a simple cut-scene. When I think about how apparently complicated the cut-scene is I feel like it took me way to long to figure out how to do this part. Thats just me getting judgmental towards myself but there it is!?! The more cut-scenes and similar animations I make the better I will get at it. Also I feel like it will be valuable having done it this more difficult way because when I see tools or scripts that make this process easier I will have a point of reference and I will be able to understand the problems they are trying to solve and the advantages to the way they chose to solve them.
Physics
I have had a lot of trouble with the physics in this game. I’m beating myself up about this a bit too because it seems like they should be so simple, and it was simple to get it working somewhat, but to add convincing English to the ball and to make it feel good was anything but. The problems were manifold. Sometimes the ball would get stuck. Sometimes the English wouldn’t work at all. My solution as of today feels fantastic and involves adding a shallow sphere collider to the paddles.
Saturday December 2
I went to see my friend Chad Carrie yesterday and he showed me some great ways to use Sketch-Up to make 3D models and import them in. Here is some of what I learned:
Tuesday November 28
Today I made a 3 part tutorial (Part 1, Part 2, Part 3) about converting your game into stereoscopic for iOS. There is a lot of important information in these videos about how I pulled this off, but keep in mind that there have been quirky problems (which have apparently nothing to do with the stereoscopic display and work perfect testing on PC before I move it over to iOS) each time I’ve done it.
Monday November 27
Beldevere in Stereoscopic 3D on Sunday November 28!
Stereoscopic Beldevere
Marshall and me worked on getting an in game stereoscopic display working for like 4 hours on Saturday night. We actually got that part working ok pretty quick but then (and I saw this coming) needed to get some form of external control (you can’t touch the screen when the phone is in the VR Goggles. We eventually gave up at like midnight, but I obsessed about it and found something that night and implemented it the next morning that *mostly* worked. I was able to tighten it up over the course of the day and show Marshall and his friend and my beautiful encouraging wife Cristi Level 3 of Beldevere in 3D later that night!
Later on that evening I was able to get controls working for all levels as well as the title screen and high score screen and while there are two outstanding bugs it does work and I genericized the stereoscopic camera and UI canvases such that all of my levels benefitted automatically and now you just click a button in the inspector and that level is Stereoscopic 3D! Its funny how time flies because its just Monday right now but it feels like its been an eternity since that happened.
I also ordered a nice gaming PC on Black Friday which will be here perhaps later tonight and I just picked up a nice monitor from Best Buy (Cyber Monday Sale).
Monday November 20
Yesterday I tightened up some of the code for expanding and shrinking objects. Today I totally re-worked level 2 scaling it to 1.5x its previous size (x and z) and adding bounding volumes so you can kind of ride the walls a bit.
Yesterday I also experimented with using the terrain features of Unity to make a level 1. I liked it a lot, however it totally “showed up” the rest of the levels. At some point I will need to draw the line and say its good enough to ship and if that level looks way smoother than the rest I will feel like I need to make similar changes to all of the rest of the levels to make them catch up to that one. I’m struggling with where to draw that line.
Saturday November 18
Today I’ve been working with lighting, adjusting it, balancing it, getting all the levels balanced, trying to not wash things out, etc. I noticed that on mobile especially some things looked weird, even dark. I started by re-baking all of the lighting for all of the levels, then I worked with the skybox and the default ambient light color making it a light grey. Then I made the directional light a darker gray and adjusted its intensity until it looked about right and that seemed to work out pretty well for all of the levels.
I found a problem with shadows and spent most of the day finding a workaround. (details in my article on iOS)
Shadow Distance Differences (iOS Build Setting)
Tuesday November 14
Yesterday was really monumental but today I got the controls working on the iPhone! Just one more thing to do and it will be fully functional on iPhone. I feel like parts are still “clunky” but it will be a minimum viable product as the saying goes.
Monday November 13
I got my game building and running on iPhone today! *Huge Milestone!!!*
Sunday October 29
Wow so much progress! I got sound throughout and really … its a REAL GAME as of just now! 5:00pm sharp.
It starts with a musically backed title screen, moves into a musically backed level with lots of fun sound effects, and when you are done with that it moves into a musically backed high score screen and then back to the level select screen! I’m so proud!
Thursday October 26
I travelled to see my dad last week and got some good feedback and ideas from him and my mom. Thanks guys! I got the skeleton of my new much more interesting scoring system working as well as having fixed a problem I made with the gravity collector. I got it working on one level but it broke the rest. It wasn’t a difficult fix. This week I’ve been working on sounds and music.
Saturday October 14
Got the Gravity Collector working much better. Occasionally it used to leave dots stranded on accident but it doesn’t do that anymore. A fun side effect is it ends up swirling the dots around the player and sometimes getting pretty close to a perfect zero gravity orbit (illustrated in the video below) a situation which I’ve cleaned up now but which was cool enough to make a video out of..
Unity5 C# code for gravity collector
Friday October 13
I found out about NavMeshAgents priority field and how it would help me. Its technically called “Obstacle Avoidance Priority” and although it makes sense in hindsight at first glance I didn’t imagine that other AI NavMeshAgents would be considered “obstacles”. In fact there is something else in the engine specifically called a NavMeshObstacle which I was just fiddling with yesterday.
Wednesday October 11
I haven’t done much in the last week but today I got some good info from this video which showed me how to make my game look better reasonably quickly. I can see how this will help but at the same time I did some of the steps and my game didn’t instantly look better but I think with some tweaking it will.
Wednesday October 4
Just got back from Pennsylvania where I went to visit my sister, brother-in-law and niece and I made some progress while I was there specifically making the title screen level select much scroll much smoother. I also re-did the making of video that I did a few weeks ago shortening it from 6 minutes to 2 minutes.
For my scorch game while I was in Pennsylvania I made it work with two players with shooting on different sides of one controller and balanced out the explosions. Yesterday I made it keep track of scores for each player
Scorch with Scores
Also I created a video about the simplest way to add a HUD and set the values from anywhere in your game:
And on top of all that I made my first full tutorial series in its entirety today!
Got a Level Select screen working that lets you clumsily scroll through the levels and select one. it definitely works but the clumsy parts are the scrolling is abrupt and not smooth, the images in the rear are confusing, button presses get confused when you press too quickly, behind the scenes the image is not the same object as the scene number (they are aligned so it works atm but …) and the the whole look and feel of the screen is inconsistent.
I’m still proud that it works because now you can fire up the game, select a level, then go play that level and get a high score on that level. Thats a complete one way game!
Level Select Screen
Sunday Sep 24
Worked on some side projects today mostly getting the Survival Shooter meta-tutorial done, but also figuring out how to launch projectiles and making a tutorial about that.
Also made some cool little glitches:
and
Saturday Sep 23
Got a pong game working. Started today. Finished today.
Friday Sep 22
Last night a friend (Gary) came over and spent some time with my game. He said that I had made a lot of progress and I appreciated that he came by. In order to show him the progress I had made I tagged some commits in my git repository and then went through them in stages and today I went back through the same commits in this video.
It shows ho I started this project on August 13 and the progress I made every week or two since then (and there has been a LOT). Its pretty cool to see the contrast between the first few versions and the latest and it makes me proud of what I have done. More details are in the ~6min video.
In addition today I got independent high score tables working for each level. And I figured out a pretty good method for accessing non static singletons statically.
Thursday Sep 21
Fixed fonts and got bouncing off the walls working better
Monday Sep 18
Got the High Score system working pretty well yesterday! I animated the score popup so it spins around gracefully and I also went through every level and changed all the prefabs to match my latest configurations so they all play about the same with the only difference being the landscapes of the levels themselves. D’oh! I just realized that I forgot to add power pellets … oh well thats probably a 10-15min total task.
Friday Sep 15
Added a title screen and got the HUD text looking way better and more consistent
And I figured out how to really use TextMesh Pro (at least for in game text meshes, using it like this for UI text meshes is still a bit of a puzzle)
Text Mesh Pro
Got the trick with using 3d in the UI mostly figured out
Wednesday Sep 13
Ive been thinking a lot about scoring but as a result didn’t make a ton of progress in the last few days … until today!
Got a score plugin working (so it tracks your high score persistently) and a score UI setup. and fixed some problems and made graphical improvements (for example the warp tunnels are cool spirals now).
Added hula hoops to indicate lives, and made the game reset when all of your lives are used up.
Also I got Super Beldevere to shrink when he is losing his powers after he has eaten a power pellet (and added a grace period so you don’t get too caught off guard when he’s just barely done shrinking).
Friday Sep 8
Got scoring popups working.
Thursday Sep 7
Tons of progress today. I added scoring, multipliers, Simple GUIs for both, got the basic mechanics of powering up with a power pellet and eating ghosts figured out, refined the ghostie radar, refined the wall bounciness (so its not *quite* so crazy launching the player – see video). All that happened really in 3 hours in the evening after having thought about it all day (tbh I also binge watched Voltron and played Shantae on 3DS which made room for the creativity to blossom!).
Wednesday Sep 6
In the last few days I’ve made some nice progress. Made an 8th and 9th level, balanced the gameplay, added zen mode (so it doesn’t start you over if you get hit), and I came up with ideas for how to best do scoring (which is the next thing I’m working on).
Today I got a ghostie radar working so they don’t blindside you when you’re flying around the level.
Tuesday August 29
Worked with vectors to get a cannon onto Beldevere’s head for the scorch game. Made a really cool level 7 for Beldevere: Interstellar Hero
Also Added a tail (or hat or nose) and a tail attack to kill the ghosties and a gravity collector.
Monday August 28
Autogeneration works although I had some quirky behavior for a while (see Popcorn Bricks). I’m proud that I got a basic implementation of the launching of a physics projectile working from a primitive gun without any help from the first person shooter starter kit pro. Probably going to use my PacMan game as a starting point for this one.
Sunday August 27
Began a Scorched Earth/Tanks style game. Autogenerating a stack of bricks to play around in.
Saturday August 26
Quakecon was awesome. The competition was intense. Doom VFR blew my mind.
Friday August 25
Created several more levels of Beldevere. Each level is more refined than the last so I will probably have to go back and refine / re create the first few levels. Got AI working smoothly late last night.
Thursday August 24
Tentacles to see what PacMans Ghosts are targeting
Wednesday August 23
Today I cancelled the project I was calling Gauntlet. I trashed the project files and data, but I did keep the prefabs and scripts. Update: in the intervening week I have found it difficult to re-use those prefabs (dependency hell). Lesson learned: theres probably a way to standardize this somewhat … OTOH some of those dependencies are due to the FPS Starter Kit Pro.
Have you ever noticed that Unity5 doesn’t have any snap to grid functionality? Its conspicuously missing even though its in most other tools like this (Unreal, Blender, Maya, Etc.). Never fear because Unity Technologies have provided a way to add substantial new capabilities to the editor through something called editor extensions.
Grid Snap Extensions in the Asset Store
There are a number of extensions in the asset store which allow you to snap your objects to a grid, but I have only tried this one called Quick Set Object Placer (free version) and it is actually awesome. There is also an inexpensive paid version which I haven’t tried. The following videos show you how to leverage it and help you get around some of its quirks.
Installation and Setup
It is really easy to use.
Advanced Usage and Prefabs
There is a quirk with using prefabs but it works really well if you just do this one extra step that I show you in the video.
Organization and Prefab Offsets Matter
In this video I talk about how to have it automatically organize your painted objects for you and also I talk about why offsets in your prefab can make a big difference (for better or worse).
An apparent problem (and a solution)
It seems to be snapping objects at the wrong place, and it seems to be incapable of putting them at the *right* place. Primarily it ended up being a viewing window perspective/iso issue and when I fixed that the problem went away.
This is a simple guide to an asset in the Unity3D Asset Store called “Procedural Examples”. It states that it requires Unity 3.5.6 or higher which was written about five years ago so this asset is old and has experienced substantial rot and when you import it it doesn’t run. This guide will help you get it running in 2017.1 and help you experience most (if not all of what it has to offer).
Most of it actually works (after you do this one thing).
I wrestled with this asset for a few minutes and got nowhere so feeling dismayed I put it away and came back to it a few days later and when I looked at it with a fresh set of eyes and a new determination I decided to start removing things that didn’t work to see if any of it would work at all.
First I found several significant errors in the Lightning script so I tried to update them, but I didn’t get very far before I got discouraged and had to admit I don’t know enough about the old particle systems vs the new to be able to port this script. At that point I gave up and just deleted that script and gave up on that particular example but if anyone knows an easy way to get it working again let me know.
Once I did that all of the rest of the examples worked quite well!
How to use the procedural examples
When you import the asset into a new project you get this: (note: ignore the Textures folder – I added that later).
Unity5 Procedural Examples Asset Folder
In the top level directory is the set of examples and all of them except for Lightning bolt work just fine. Just double click on them and go for it.
Some really cool results and effects
Most of them are either self-explanatory or come with simple in-game instructions in the top right. My favorites are below (Extrusion was actually really cool)
There are still some bugs here for example in the extrusion example if you make the ‘time’ too long then that shape just disappears saying that the triangles are out of bounds. As a result these aren’t going to be good platforms for production code but using their techniques and building upon them is certainly a workable implementation.
Conclusion about the Unity5 Procedural Examples
This is a good set of examples for how to manipulate meshes procedurally and I’m glad that its out there. It could clearly use a refresh and one of the examples doesn’t work at all but otherwise its informative and pretty easy to get working and could be of value to a lot of us developers. Thanks Unity Technologies!
Many of the tutorials or examples I make will refer to the STE (aka Simple Test Environment) which is a scene with which you can do a lot of different stuff and it only takes 5 minutes to setup.
Learn about Layers
Simple way to add ‘billboard’ text into your game
Simple way to make Billboard Text SPIN in your game