Hi there, and thanks for checking out my Portfolio!
My name is Ben, and I'm a software developer. I have a passion for creating data driven games and applications, that also are as customizable and 'moddable' as the user would like them to be.
Creating a product is one thing, but the ability to have potentially
endless content created for that product is what I belive, really makes a product flourish. Look at Skyrim for example. Years ago now it was released, and still
tens of thousands of people play it! Why? Mods!
I haven't been a hard core 'modder' myself - althought the concept is something that I really love. I've played around with Unity and other Applications I've developed in my spare time to try and make a customizable experience, and you can see some of those linked on my GitHub, which you can find linked below.
Data makes the world go around. Without it, how can we possibly know all the things that we do? I think it's a very cool thing to be able to store data from one thing, related to some other thing, and do something with those things, to make another thing! Or make one thing do a thing to that thing! Data can be complicated to work with, depending on how deep you're getting in to it. But I love data. I love making data do something with other data, and representing it in different ways. And the way you can open it all up when you throw the customizable experience at it? In theory, anything can be done, at all! Which is why, I love Data and Customizable Experiences.
C# is my best and most preferred language! I work extensively in C# to create both Windows Applications, and also work with the Unity Engine in Interactive/Game projects.
I've worked with Java through my studies, and have used it to create simple Android applications, as well as basic I/O programs, and Android applications linking to a Database
As C# is my language of choice, my primary IDE is Visual Studio. I use this for coding in Unity, and writing a range of Windows applications.
I primarilly only work with Java for Android App development, where I will develop inside Android Studio
Although you can write SQL on a napkin and parse it, I prefer to work with Workbench, especially for ERDs and mapping out databases. It works for me.
Although I prefer the 'come up with it as you go along' approach(much like Agile), I've worked with early versions of StarUML to plan, help document, and visualize programs ahead of development.
I'm currently in my last semester of a Diploma of Software Development (ICT50715). Through my studies, I've completed multiple competencies and subjects, starting in basics of languages mentioned above to data bound Windows Phone and WPF Applications, to simple Android and iOS Applications, and even Copyright Study. Other competencies have included Database Administration and Design, and advanced debugging techniques Through the study, a large range of nationally recognized competencies have been completed. For a full list of competencies included in the Diploma, more information can be found here.
Key focuses in my study have been using C# and in some cases Java as the primary language, to develop data bound / data driven, MVVC applications. These have been applied to Windows Forms applications, Android and iOS apps, Console applications, and Web Pages. Testing has been an integral part of each course (as it should be), and has made use of many debugging techniques. Deployment methods have also been looked at to, from SaaS, to regular .exe builds and WiX Deployments, ClickOnce installers, and Windows Installers.
As a passionate Hobby game developer, I work extensively with the Unity platform to create a wide range of Games, Applications, and Tools, as well as rapidly prototype my ideas. I've been working with Unity for close to 5 years now, and learn something new almost every day. Every games project I've worked on has been created with Unity, using C# as the language behind it. I've worked on projects with Teams, in most cases remotely, consisting of both other programmers, and Artists as well.
I love making tools, and things to extend the way that the user can interact with my projects. As an example of this, I've developed systems in Unity that will allow external files to be loaded in to the core game, and if necesary can overwrite existing game data. It's become a staple in all of my projects, because I love it when a game has the ability to be modified or extended by the users. Plus, isn't it just awesome that all that data can be shown to a user in a text file!?
Through my learning journey, I've quite often discovered different ways I can do things, be it faster, or more performance friendly, or to make other things easier. I've spent some time developing the same systems with different methods. The inventory system for example, I've made over from the ground up at least 3 or 4 times now. Every time I have, It's done something better than the previous. I find it hard to settle until something is the very best that it can be.
What you see above are the tools and languages I use most frequently. But a mechanic doesn't only have one spanner. There are other tools I use, though perhaps not as frequently as the tools above, I've had some level of training or experience in using what is listed below in the Overview. It's also worth noting, that as a Software Developer, I'm continually expanding my knowledge in the languages I do know, and others that I don't know as well. Most if not all Languages I've encountered are incredibly similar and can at least be interpreted by me.