I love Unity3D and have created simple projects introduced from Youtube or directly from the Unity3D website.
Some people in class found SDV602 to be difficult as they found Unity3d hard to understand or navigate.
I feel this course was presented well and the demos presented in class to be relevant to the course material. I Personally wished we followed a more generic example that had further online resources available to us so that we could go extend our understand with some similar examples or explanations.
If i had to rate this course out of 5 i would give it 3-4. Thanks to this course i have purchased a VR headset with the intentions to create games and applications specific for VR.
For our text based game we had to create a series of tasks that took in user input which would then impact the game in some form or another.
Sadly due to poor time management and trying to achieve a game that was not completely based on the project brief. At the start off the assessment i could spent a lot of time on the visuals that where not even part of the marking criteria.
If i had a chance to reduce the entire subject i would strictly stay on focus and only complete tasks that would produce a mark.
Issues
Testing the game within Unity3D seamed to produce the desired results needed for the assessment but when i exported my game and ran it on my Android and Bluestacks i discovered a range of game breaking issues that i will not have the time to fix before the due date. Some of these issues:
Can create a new account from withing Unity3D but not within Bluestacks or my Android device. I could not discover as to why the game would allow the creation of a new user but not on the game. My problem soving directled me to the Database not being accessed however when i entered the credentials of an existing user the game responded as expected.
Displaying all the players that are located at a specific checkpoint. I tried my best to create the appropriate function that would pull the data from the desired tabled and display them in the appropriate displays onscreen.
Overall even though my assessment was more challenging that it needed to be i feel that i did a great job and hope that all my efforts get recognized.
Last year my time management was rather good and i never required extensions or where rushing to complete assessments on the day. All that changed this year with the rise of Covid 19. Thanks to that pandemic my time management went out the window and seven though for New Zealand at least life has returned to normal. Sadly my performance in time management failed to return as it once was.
Impact
The impact of having less than ideal time management made my stress level sky rocket with myself rushing to complete assessments hours before they are due. Sadly the last month i have added time constraints forced upon me as personal matter have surfaced with a family member being submitted to hospital in the critical wing.
What have i learnt?
Having less than ideal time management can have serious effects upon my health and family life. So for the 3rd year I’m going to focus on improving my time management so that i can make the 3rd and final year as productive and stress free as possible.
What real world impact will this have?
regardless if i am completing assessments or preforming tasks at work having great time management not only ensures that my work is of high standard- as I’m not rushing work with little or no sleep, it will also ensure that my stress levels remain low adding.
For the Assessment 2 we needed to make some Domain classes and control classes. I learnt that it is possible to make a controller game object that was responsible for executing the needed controllers to run the game.
Why have i learnt this?
Being able to use a empty game object to control all the needed scripts that communicate with the back end such as communicating with the database.
How have i learnt this?
In class the tutor has given instructions and a demonstration on how to create a central game object that in essence becomes the a master controller. These game objects start their executions of code when the scene they are attached to load up.
What do you know now that you didn’t before?
It was unknown to me that you could make a empty game object that could be used to execute important procedures. By completing the assessment requirements i had to make a few controller game objects that executed a series of commands as the scene loads. For example in order for me to get the shake sensor to work in my phone i needed to create a empty game object that i named ‘AcceletatorManger’ attached to the game object was a simple script that would become active once that particular scene loaded.
What will i do to remember this?
Knowing that you can create game objects that execute a range of tasks indirectly attached to a particular sprite located within the scene. As i continue to develop applications through Unity3D i will continue to use empty game objects as a “Master controllers”.
What new understanding/skills have you gained?
Before the assessment i have had some experience with creating games with Unity3D. However i have never used a empty game objects as a controller to execute a range of tasks related to the overall execution of the game
What is the point?
It is important to note that you can utilize empty game objects to manage a series of tasks that work in the background to execute scripts that enhance the performance of the game or application.
What will i do to remember this?
Like all things it is important to continue to utilize what new skills you have gained in order to improve upon them.
Untiy3D has the power to create a wide range of applications such as 3d games that require a lot of resources, or the more modest 2d platforming games. The beauty of Unity is that it has all the needed elements to make almost anything the developer would like to create. For the course we needed to create a Text based game that met a range of criteria such as relying on user input to preform a range of tasks such an moving to a different position.
Why have i learnt this?
Unity3D is a powerful platform that can be used to a range of different purposes. Thanks to its diverse cross-platform application it is a fun method of developing skills in c# that are created in scripts and attached to game objects to make the game or application functional.
How have i learnt this?
In class we have been going though a series of tutorials that covered a wide range of unities that Unity3d offers in the way of application development.At first i was going to make a textbased game however, i was given the option of developing a 2d game as long as it still met the marking criteria
What do you know now that you didn’t before?
Unity3D is powerful tool that can be used to develop a range of different applications. Textbased games are were a game relies on the input from the user to preform tasks within the game such as opening bags, searching bodies or even communicate with NPCs populating the game’s world.
What is the point?
Developing a game where it requires the input from a user to store and retrieve data from a database. Communicating back and fourth from a database is important for any application not just in a game sense.
What will i do to remember this?
Linkedin has a range of Unity3d courses that cover how to send and retrieve data from a database from within the C# scripting language .Even tough the courses focus on a different method of communicating with a database it will still give mea great understand and further my development with both Unity and C# scripting to communicate with a database.
What new understanding/skills have i gained?
It is possible to develop a game or application that uses the input from the user to communicate with a database behind the scene, and based on the input will preform a series of actions associated with the given input. The easiest method of ensuring the input from a user is valid you can utilize a C# switch. The function of the switch is to store a series of actions that will only get preformed when the stored parameter has been met.
Sqlite manager is an application that you can download for free that gives the user a platform to manage there tables and database through the use of a GUI interface. Eventhough you can download the application from the formal website for free the company did place some restrictions on the program. Such a restriction would be the limiting the tables stored within the Sqlite manager to 20 rows of data.
Why have i learnt this?
Being able to view the tables that you create for your applications in an environment that is specifically constructed for sql data is import for ease of use and manageability.
How have i learnt this?
In class we needed to download the Sqlite manager for the use in our assessments.At first we had no idea that there was a restriction of 20 rows of data that can be stored within each table. Luckily for the purpose of our assessment we do not need to store large amounts of data.
What do you know now that you didn’t before?
I had no idea that it would be possible to send data from a application developed in Unity3D to a database using normal sql queries that we learnt in our database courses.As we are developing an application from within Unity3D we needed a platform that we could use to view the tables for our database and Sqlite manager fitted the bill perfectly.
What is the point?
All application that gather some form of data need a place to store that data in an organized manner. Sqlite manager offers the user the necessary platform to view an manage the data gather regardless of the application.
What will i do to remember this?
Knowing now how to send and retrieve data from a database to make more meaningful applications i will continue to further my understanding so that the data being stored will become more secure and meaningful.
What new understanding/skills did i gain?
Gaining the skill to apply database services to an application created in Unity3D opens more possibility to create more exciting applications from within Unity3D.
What will i do to fill in the gaps?
Reading online documents published by both Unity3D and Sqlite. I will also continue to complete courses on the subject found on Linkedin. Repetition is the key to mastery.
When you build an application for Android you need to consider how the user input will be received as there is no keyboard or mouse
Why have i learnt this?
In order to successfully develop applications for Android you will need to know what input the Android platform requires in order to get the touch input to work when the user’s fingers touch the screen
How have i learnt this?
During the class sessions we were required to develop an application and test it in a locally connected device or by making use of Bluestacks. When i first got the application to successfully run on a local Android device i soon discovered that the touch inputs were not automatic applied and needed to be coded using the Unity3D scripting tool.
What do you know now that you didn’t before?
I had no idea that developing applications in Unity3d would be so easy to convert your project to work on an Android device. With a few small modifications made to Unity3d such as installing the Android module and making some changes in the build settings that converts the project into a Android project. After you have completed those steps you can build the the project that will produce a APK file that you call install on your Android device and Run the application like a stand alone application.
What is the point?
Mobile device are become more powerful with each generation that is produced. With smart phones being so powerful more and more people are using them to complete tasks instead of a bulky laptop or desktop. Knowing how to develop applications for Mobile devices is important to keep up with the times.
What will i do to remember this?
I will continue developing small projects through Unity3d and with the knowledge of how easy it is to convert a project into a functional mobile application i will strive to improve each application.
What new understanding/skills did you gain?
How easy it is to convert an project into a Mobile application and made it function as a stand alone application.
Bluestacks is a free application that is used to simulate Android on pc. Thanks to the application pc users can run Android applications from their pc. The software is available on both Windows and Mac operating systems.
Why have i learnt this?
If you are developing applications to run on Android devices from such software as Unity3D, you can test the application directly using Bluestacks.
How have i learnt this?
For our assessment we needed to make a game that would run on a Android device. If you were unable to link your phone directly to Unity3D to test the application you had the option of running the game through Bluestacks which offered the same functionality as a proper Android device.
What new understanding/skills do i have?
Before the commencement of the course i had not heard of Bluestacks and how to build and run an application developed in Unity3D for Android devices.
What is the point?
It is a good way to test the functionality of an application that has been specifically developed for Cell phones.
What will i do to remember this?
I will be undertaking side projects throughout the summer period using Unity3D tool to create applications designed for Android.
What will i do to fill in the gaps?
In order to further my understanding of Bluestacks i will continue to use it for development purposes. To potentially improve my usage of the application i will explore its available functionality and online documentation if available.
When Unity was first created there was a total of 3 people:
Nicholas Francis, Joachim Ante and David Helgason formed the entirety of the company created Unity exclusively for Mac. Fast Track to the present and the company has expanded into a global success with a growing number of staff
Nicholas Francis cannot be seen in the Employee roster as he left the company to run a Indie company that uses Unity as its development platform.[1]
Unity Strengths and Weaknesses
Build once, deploy whenever and wherever– This means that once you have created the game or application it will have cross platform support thanks to Mono in the C#.
Flexible deployment across other platforms– The list of platforms that Unity3D supports is highly impressive and even expanding as seen below
[2]
Unity3D Editor is easy to learn– The Editor is completely customizable with the editor windows able to be adjusted and moved according to the developer(s) needs or preferences. the Editor supports a drop and drag element that makes development a breeze.
Renders in both 2D and 3D– Even though Unity is a robust Editor that is capable of creating large scale 3D games, it also offers developers(s) the freedom to create 2D games and textbase games suited for Mobile devices.
Solo developers
Unity3D was created with the small developers in mind, and throughout the years the company may have grown with new missions and objectives but regardless of the growth and expanse of the company they still remain true to the small developers offering full free tutorials along with assets to get developers started in game creation.
If you try and find some games that where created either by solo or small group developers you will be shocked to discover that Minecraft was first developed by a solo developer Marus “Notch”Persson who created the original game back in 2009 and later sold his creation to Microsoft for a nice small sum of $2.5 billion dollars.[3]
Unity3d has broken the walls for game development allowing small part time developers the opportunity to create their dream with little restrictions. WELL DONE UNITY3D.
Demonstrate your current understanding of
Heritage and Philosophy of C#
Back in 1999 a group led by Anders Hejlsberg created a language dubbed “Cool” which stood for C-like Object Oriented Language At first Microsoft was going to keep the name but sadly to trademark restrictions the name had to changed to c#.
compared to Java at the time C# took a different approach to implementing generics; In the C# the generics are objects while in java generics are seen as a language syntax feature.
Over the years the language has expanded to meet the ever change needs of the populous and many extensions have been added to the C# family. Such a library would have to be the System.Linq which is responsible for creating connections with databases.[4]
Visual Studio is an Editor that makes coding more user friendly by providing a area to work with the use of a GUI (Graph User Interface). Visual Studio supports a wide range of languages and offers the user to drop and drag features such as buttons and text input fields without the need to code all the design and event handling systems to make the button look or function as a button.
When it comes to the way of Unity3D Visual studio along with C# are the preferred Editor and Language. With the System settings of Unity3D a user can change the the default editor(Visual Studio) to a Editor of their choice.
Windows platform
Unity3D is a powerful development tool that can be used in Windows, Mac and Linux Operating Systems. In regards to working with Unity It is advisable to have 8gigs or higher of Ram as the program takes a lot of memory resources while in use. The nice feature while working with the Editor is that you can have multiple projects running side by side if you wanted to test features or connectivity if you so wish to test multiplayer features.
by Default Unity3D uses Visual Studio but you can change this to your preferred editor such as Visual Studio Code
[2]
Android OS
In order to build or run applications on Android you will need to setup the environment. First you will need to Android Build Support platform module.
Second, you will need to install the Android Software Development Kit(SDK) and the Native Development Kit(NDK). Once you have successfully installed and configured the 2 Developer Kits you will need to set your Android device into developer mode before your Unity application will run on Android.
A great example of a world crazed game made in Unity3d for mobile devices would have to be Poemon Go. This game took the world by storm when it came out and is still being updated with new content and limited time events such as Halloween.
Pokemon Go is a game where you find small creatures and capture them as pets that you can use in battles.
Android Strengths
Free for users to run their applications on Mobile devices Once they have correctly setup the environment.
2. You are able to test your application directly on the Mobile device during the development stages.
3. Sqlite database is a c-language that is small and yet fast enough to run on Mobile devices. Due to its performance the Sqlite database is widely used world wide and thanks to its file format it is stable, cross-platform and backwards comparable.
You are able to create the database and accosted tables through code or through a GUI such as Sqlite manager.
If you wanted to use the Sqlite manager to create your database there is no need to understand any quires, as Sqlite manager has a drop and drag feature to create tables more easily.
Android Weaknesses
One of the weaknesses for Android is that in order to execute Unity3D made applications on your Mobile device you will need to Install and configure 1)Android Software Development Kit(SDK) 2)Native Development Kit(NDK) and finally Android Build Support platform module
Below is the specification requirements for Mobile devices to run Unity3d applications. This will be regarded as a weakness as you Mobile device needs to meet these requirements
Sqlite is a open source database that is widely use for a wide range of applications across the world. The database is powerful but small enough to work on mobile devices with ease and is self contained meaning that it does not require a server to operate such as other similar databases.
The database is stable,cross-platform and backwards compatible. SQLite is a c based library that makes this database a great choice for applications developed in the Unity environment.
Why have i learnt this?
This database is widely used by a large number of both well known and not so known companies throughout the world. As potential software developers we need to be aware of such popular software that may find its way into a work flow.
How have i learnt this?
So far we have some resources provided to us though the Nmit online web application known as Moodle. Through Moodle we have some great documentation and useful youtube tutorials that we can follow. The lecture has provided a demonstration on the installation and configuration on Sqlite with Unity development engine where we are developing an application of our choosing.
What is the point?
The point is to demonstrate that there are a number of great software available for all to use, regardless of the size of the project or for what purpose.
What will i do to remember this learning?
The best way to retain information especially if it is new, is to apply the knowledge to a practical exercise. For our milestone 2 we have to apply a database to the Unity application we are currently development as all software needs to have a connection to a database regardless if it is a game or web based program.
What are the real world applications?
Having the knowledge to attach a database to a wide range of applications developed for all platforms opens the possibility to deploy those applications outside of the local scope of the host machine that they were created on.