December 13, 2011
Projects in Unity: Finished and Unfinished…
I’ve been focusing on various coding tasks in Unity in order to flesh out the limits of the program. Unity is flexible, not just as an easy one stop for game developing/publishing on the web and all the major gaming platforms. I’m really concerned about working on something unique by adding skills to my portfolio. Feel free to read on but this seems as good a place as any to to hash out what I’ve done and what needs to be finished regarding my projects.
“Wall Climber”-a test which involved a player walking up to and onto walls with/without jumping. Upside down and on the sides of walls, up rainbow/ramp style slopes. Like a bug. A machine logs the state of the player according to the angle of the ground slope.
“Outside Obstacle Pathfinding”– A 3 state machine driver inside an NPC finds the shortest distance around an irregularly shaped object and to a target game object. The memetic was more of a vehicular feel, so when character animations are involved it might be neccessary to consider some special turning or delay motion to avoid the “spin” move.
“Inside Obstacle Pathfinding”-Some serious work was done on this, unfortunately it was early work which was too coordinate based and modular with moves and turns. Ambitions with the idea of having the NPC be smart enough to go directly to the goal without any mistakes during the search; to be dumbed down from there. This one screams “i’m useful!” every so often concerning its recursive coordinate based searches.
“Interactive GUI Fields”-multiple interactive GUI fields onscreen with add/subtract radio buttons. Fun!
“Targetting”-Using the mouse while navigating, the player can mouse over an object and a GUI Icon displays signalling a lock on the object. If the player presses the mouse button a projectile stream flies toward the coordinate where the object GUI was displayed in 3D space. Sometimes the GUI displaces, no idea why…
“Irregular Flocking/Following Leader”-Flocks of NPC’s will follow a leader NPC driven by the pathfinder. The stay distance from each other is questionable, as over time there seems to be some close quarters and interpenetration. This could have been a simple oversight concerning the detection of mesh colliders between the boids…
“City Instantiation”-Had/may still have an algorythm which evenly distributes a series of randomly selected city prefabs. Was in the process of building more local variation and may have lost the original algorythm. Might have been smarter to augment scale than to try a 4D solution. However none of this would accomodate for street variation which (can)deviates from simple grid patterns.
“Freeway System”-Began linking interconnectable modules of freeway systems/turns/loops/offramps but the scale repeatedly caused occlusion problems with the observation of results of additional coding. May adjust the scale of the module prefabs as well as the code constants to see if the scale was too small. Links create a four tier system of cross connected freeways which extend out to a random limit and proceed in the opposite “T” direction via a limit prefab. Smaller and larger loops are created, and coding is in process to connect opposite sides but is being hindered by the previous “invisibility” of new instantiations.
“Planar Reprojection”– A square that is rotated in in 3D space with an object “above” it locally can find the landing position at a right angle on that square and find the same coordinate on a different plane of a different size.
“Planetary Approach”-Ship(player) approaches a random(1 of 9) size and textured planets and finds closest planetary sector. Still working on the transfer of the reprojection algorythm to this. Had a little power cable problem that day which resulted in about two week sketchbook spree!
“Sound/Visual Frequency Transforms”-gleaned some code which allows the representation of sound frequency through selected game object transforms. Also working with time code class to create a BPM machine but the FPS skips numbers where a drum should have sounded with time/ BPM translation eq. , causing irregular BPM. Final thought was to allow the user to control the speed organically rather than select accepted BPM speeds from an array of electronica memes.
“Object Foreign Language Word GUI”-Navigate a 3D environment while using the mouse and select letter keys to identify the name of teh object in various languages. Using a number placed in front of the object in the object list, the program uses a “lookup table” to identify the name of the object across a range of languages. While the “j” key is pressed with the mouse over the object a GUI with the Japanese name of the object appears onscreen near the object for tatoe e ba. 🙂
“AI Conversation GUI Window”-The window displays a sequence of conversational questions about things such as name, age, origin, and occupation which may be answered in various but limited ways. It identifies looks for the important information in the answer line and comments generically, moving on to the next question after a certain amount of time. This was meant to be paired with the language tables. It has worked well in the past but needs serious work not just in variation but also with the basic looping stuff.
“Mesh Creation”-Created a psuedo cube(not a cube) from 3D vertices and triangle loops. Looking further into procedural methods for static and time based creation of displaced mesh objects.
That said, a lot could be done(disregarding network/server playability) to improve the play of the existing published game; or to create something going in a different direction. Haven’t fucused on textures very much, and uv mapping always rears its head. Currently dipping a toe into the lukewarm waters of differential calculus and matrix classes for C#. Wheeeeeee!