April 25, 2020
 

Article by Bryan Fitzmartin



Ever wanted to become a Nintendo game programmer? This is the dream of many a young child, not just today, but throughout the past several decades. It is the case that lots of kids who’ve sat in front of video game consoles have had dreams of being one of the men and women who work to create the magic of Nintendo games. I feel very strongly, and have for a long time, that is it often video games, more than anything you find on other electronic platforms, that encourage young people to develop an interest in programming and development at large. The following is a serious article about the nature of professional game creation, and how developing for Nintendo works in modern times (as compared to the 1980s and 1990s), and why the company has made the choices is has made with its development platforms, however, any young people reading this should also be aware that there are some tips below in the very last section about how they themselves can become game programmers, and how Nintendo has made excellent choices to help them do this. So if you’ re one of those people who feel game development is the thing for you, keep reading – you’re in the right place.

Before we begin however with the main thrust of the article, let’s backtrack in programming history briefly for just a moment. Back in the 1980s and 1990s, professional Nintendo games were made in a extremely different format than they are now. They were always created using something that’s no longer used today called “6502 assembly language.” The reality was, that this was much harder than modern video game development – that platform, since it was an assembly language, had much more “arcane” low level system calls that were much more challenging for programmers to visualize than standard programming languages. So why did Nintendo (and any other company who used 6502 assembly in the past, since they were not the only one) use it at all? Simple, though “higher level” (and much more easier to use) programming languages, such as C and C++ existed at the time, the Nintendo simply did not have enough “power” (in other words, sophisticated enough hardware) under the hood to run games programmed in C and C++ – the reason Nintendo used a very low-level language like 6502 assembly for their games is that the NES console could not actually run games made with anything else due to its processing power.

Fast forward to 2020 and Nintendo’s latest console, the Nintendo Switch, is that still a problem for this latest video game unit? Not at all; of course, modern 8th generation gaming consoles can support games programmed in well – any programming language, not just low-level programming languages from the past like 6502 assembly. It is the case, that excellent languages from that time like C and C++ are still around, and are still alive and well today and are widely used, but there are languages even more modern than those ones such as Java and C# (the latter of the previous two happens to have been created by Microsoft). However, even though the Nintendo Switch is powerful enough to support any programming language in existence, as we shall soon see, in practice it only uses a single one. Beyond just that however, the “Switch” hardware that allows it also means most or all modern “game engines” can now also be supported. This is very important for Nintendo in terms of modern game programming, and the hardware can handle it. Game engines allow “pre-made reusable” (and very well designed and tested) code to be harnessed over and over again to “power” (the way an actual car engine would) different video games (not just a single title like it used to be). When the original Nintendo (or “NES”) system was around there was no way its hardware could support any “pre-packaged” game engine, and during that time it didn’t matter, no pre-made game engines existed then during the 80s and 90s – due to hardware limitations, every video game had to have its own engine created from scratch specifically for that title. However, gone are those days where the Nintendo Entertainment System could only use assembly language and “sprites” and nothing else. Now, the Nintendo consoles people play in their living rooms can potentially support virtually anything thrown at its hardware. This is truly a showing of how much technology has advanced since the 1980s and 1990s across the industry.

So, given that’s true, with all the power under the hood with it’s latest Nintendo Switch console, and with all the potential choices – what programming language does Nintendo actually choose to use with its games? It turns out, that due to an odd quirk of modern game development, the answer to that question is ever so slightly less direct than one might think, since it turns out in modern times what language Nintendo decides to use is also dependent its choice of game engine (strange, I know, however this is actually true for all gaming platforms). This was not the case with the NES (the selection for that relied only on its choice of microprocessor). Since it can now do so, it’s the case that Nintendo would absolutely need to use a pre-made game engine just as other gaming outlets do -- it streamlines games development, makes it take less time to create new games and bring them to market, and creates a unified development platform that makes it easier to bring new programmers into the Nintendo development fold which means (you guessed it) even more games. Therefore, Nintendo has decided to pick one as it’s company standard. However, modern game engines also absolutely require that you use that specific engine’s choice of programming language for all programming projects whatsoever and nothing else (but fortunately absolutely no engine uses 6502 assembly). So if we knew more about what game engine Nintendo wanted, we would then be able to find out and answer our question much more easily in regards to what programming language it also uses. So which one does Nintendo choose to use? The answer is the world’s current leading solution, used by 45% of developers worldwide, a product that was originally created to “democratize game development” – the “Unity” platform.

It’s really not a very odd selection, Unity is the game engine of choice across a wide range of devices both for desktop and mobile; it works on Windows, Mac, and Linux, but also on Android and iOS mobile (as well as all recent Nintendo hardware). And what language drives the entire Unity platform? Unity’s choice of programming language is one that was created by Microsoft, C# (pronounced C-sharp). C# is a high-level, advanced, object-oriented, programming language that is robust enough to handle almost programming project (in fact it’s used across the entire development world, not just with video games). It’s also very similar syntactically to Java and C++, which makes it very easy for established programmers (who already know those languages) to read it, understand it, and pick it up easily; in fact, Microsoft brags about this on their development websites.

It is this choice, both in terms of the game engine Nintendo will use (Unity) and that game engine’s standard language (C#) that makes it such an excellent selection of platform for Nintendo. As mentioned before, Unity is already used by many programmers across a very wide range of devices so the barrier to entry for existing programmers is low. As a bonus, Unity happens to also be very affordable for people to use at every level, and this makes it far easier to learn that if you’re just starting out as a programmer. Unity has a free “Personal Version” for novice users and a “Plus Version” offered at $25 per month, their “Pro Version” is $125 dollars per month. This makes Nintendo development far more accessible to not only all professional developers, but also hobbyists, something that would never have been possible during the 80s and 90s, believe it or not this actually makes the entire Nintendo brand far more valuable in the marketplace.

But do you remember at the beginning of this article where I wrote that young, would be developers should read to the end? Those folks who love playing Nintendo, across the board in general? It is Nintendo’s wise choice of Unity as a platform that allows young people (perhaps even more importantly than hobbyists it turns out) in general who grow up like the past few generations playing Nintendo games to learn Unity and C# and begin developing with ease. This would have been impossible during the late 1980s and 1990s with 6502 assembly language like on the Nintendo Entertainment System, as you would need an expensive, sophisticated, professional setup to use it – not so with Unity and C#. So if you’re a young person starting out and interested in video game development, head over to amazon.com and get a book about Unity Game Programming that includes tutorials on the C# language; you might also read tutorials about learning the general C# language online. As for a development platform, if your plan is to do it yourself, since you’ll be using Unity and C#, a Windows PC setup would be preferable to Linux or a Mac, since C# was developed by Microsoft and is most fully supported on their Windows Platform (and you can also use that setup even if you’re developing for iOS and Android on other unrelated projects using Microsoft Visual Studio, as a side note). That’s not to say it’s impossible to program for Unity (as well as the C# language) on another platform besides Microsoft Windows, but the level of support is much lower, and someone would have to research specific C# and Unity programming options for that platform to make sure a non-Windows based platform such as Linux or iOS would be sufficient.

Nintendo is clearly to be commended for selecting the Unity Engine and C# as its select development platform of choice; it shows how much their hardware has advanced over the decades from their early days with their original console system that could only use 6502 assembly language for their titles. One can certainly see how much Nintendo has “grown up” over the years in terms of its how its games are programmed – high praise indeed for a company that is always there to bring out the kid in all of us.


Sources:
https://www.gamesparks.com/blog/unity-game-engine-review/

 

 

Share this :
December 27, 2019
 
The article below is rather informative, in the sense that it actually reviews the state of affairs for a great many programming languages.  If you don't believe me -- check out the list partway down where it has PHP ranked as number nine among other programming favorites such as C#, Java, and Python. That's an interesting list, but in regards to the premise itself, I would argue the author in fact gets many things wrong. First off, PHP has become too entrenched for its "downfall" to happen quite like the article says.  You may not have heard of PHP, but it is the backbone core of many popular content management systems such as Wordpress (which you probably have heard of), and Drupal (which the White House uses as its CMS because it is very secure); either of the previous two would not be possible without PHP as they are not just written in PHP, but PHP is needed to program them and write code for them.  I personally program in PHP all the time and write themes for Wordpress (among other things).  It cannot be argued that Wordpress and Drupal will be going away any time soon, as that would require a paradigm shift in the way the internet works, so the (so-called) "death" of PHP has been very much exaggerated. Also, one might notice that when ranking PHP along with other languages, a mistake in context is made. PHP is a (very important) back-end serverside programming solution – that is its function. While PHP is in fact a general purpose programming language, it is not a compiled language the way C++ is, and does not run on a “virtual machine” the way JAVA or C# does  -- it is interpreted on the server. So, while PHP is an essential programming solution, it is entirely internet based, so it should not be ranked along side other languages that perform less specialized functions. Also, I have no idea why SQL is included in that list as well, as SQL can only be used for programming databases (and has no other function at all); so as opposed to C++, JAVA, or C# which are less specific in terms of what they are commonly used for, SQL is far too specific to compare to PHP at any time.


So we can see as a whole, while the article seeks to “sound an alarm” in terms of the life (and so-called death) of PHP, in a much broader sense, its suppositions are too general to signal an “end of days” when it comes the the PHP language – sorry everyone.

https://jaxenter.com/php-tiobe-sept-2019-162096.html

Article by Bryan Fitzmartin



 

Share this :
December 27, 2019
 

With a decline in the market share of Windows, and the rise of both mobile devices and Linux, one might expect a decline in the effectiveness of Visual Studio. First off, one must explain exactly what Visual Studio is for those not in the know: Visual Studio is Microsoft’s Integrated Development Environment (and compiler) for the Window’s platform (or what Microsoft calls its “ecosystem”). In other words, Visual Studio is Microsoft’s tool for programming Windows applications across the entire broad spectrum of environments that make up the whole of the windows core (Windows Home, Windows Server, etc.). Now, one may immediately ask – “Wait a second, doesn’t Android have this?” Of course it does, but the difference is, the Android Programming environment (which is now called “Android Studio”) is free, where as Visual Studio is not.

Therefore, Microsoft knows for its programming tools to actually be good and sought after by developers, they must be really good, smart, and responsive, and in fact they are. This is critical for them to remain relevant at all. This article I have posted is a good example of exactly why (but in fact only just one example). The fact is, Microsoft remains relevant in that area by making sure its compiler works not only on its own platform, but on others as well. Visual Studio users can now use it to develop for Apple products (using a programming interface called Xamarin, which is made by a company that Microsoft went so far as to purchase to make sure that this was the case). Visual Studio users can also develop for Android as well, and also, as the article mentions, Microsoft’s development environment can also be used to develop for the Unity Game engine. This is critical because the Unity Game Engine uses the C# programming language, and, who invented C# – Microsoft, of course. So, since Microsoft is that language’s primary user, and the company that writes almost all of the development tools for it, Visual Studio absolutely can be used (and is used) to develop video games (on all relevant platforms, including mobile) using the Unity Game engine and the C# language. This may seem obvious to people in the know given that the developers of Unity decided to use C# as its primary scripting language (and it is in fact quite obvious that it would be the case), but it’s also a win for Microsoft, as it makes Visual Studio all that more relevant in the marketplace to be sure; although in my opinion the real success of Visual Studio over Android Studio really comes from the fact that it has a much slicker and responsive interface. In any case, check out the article below to learn more about Unity Game development using the Microsoft Programming Environment.


Article by Bryan Fitzmartin




 

Share this :
March 25, 2016
 
We just created a new jQuery programming solution for our new site.  For those unfamiliar with jQuery, it is a Javascript library that allows you to change css on the fly, but also create custom animations.  We used it to create two custom menus that have animations using divs that toggle in and out of the page, making the menus “light up” on command.  We also used it to make the menus appear and disappear at different times.  We plan on using these techniques to create a third menu with all the “special effects” that made the others look so nice.
 
jQuery also allowed us to make the images on our site change sizes (or technically the divs that contain them) when you change the size of the page.  We also used it to write code that allows you to change the background of the page (the background image, in other words) by pressing a two different "divs" (divisions).  These "divs" can be designated “forward” or “back” and allowed us to make the backgrounds move and change when a user pressed them.  We highly recommend jQuery and its syntax is pretty simple for those already familiar with JavaScript or languages with similar syntax like PHP, C++, Java, C#, etc.  Or at least, the learning curve is pretty low.
Share this :
March 25, 2016
 

Let’s face it, when it comes to JavaScript frameworks, not all are created equal. By this time, the time of this writing, some frameworks are considered “modern” and some frameworks are considered, well, “not modern.” When you look at any job posting calling for front-end web development, you usually see a laundry list of JavaScript frameworks that are “in demand” and most of these fall squarely into the category of the so-called “modern” frameworks, such as Angular, React, and Node.js. “React” most famously was invented by Facebook to handle their own front-end development for their website. Whatever your opinion on these (so-called) “modern” frameworks is (and the previous was only a partial list), we have a very different story, we have had a great deal of success using – jQuery.

That particular one, the one we’re using, jQuery, is very specifically missing from the previous list. In other words, it is considered by no means a “modern” JavaScript framework (although if you browse through job postings you still can indeed find a limited demand for it), however, it is able to generate (and operate), all of the “special effects” (interactive JavaScript effects) our we need to have a modern looking and well functioning website. One may think just by hearing the term “modern” (which jQuery is not considered), that our functionality must be limited in some way, or that what we can achieve is somehow lacking compared to others, or that we simply cannot do as much – this is very much not true, as jQuery is actually a very powerful JavaScript library and is able to leverage the power of the language. So, even though this would not be a very popular thing to say, maybe it is misleading to consider jQuery “not modern” since it is actually still a powerful and relevant library. So the next time you hear that jQuery is “not modern” -- take it with a grain of salt, it’s able to leverage everything a website needs (on the front-end) to show off its very best. However, in any case, if you do in fact want to be “modern” (so to speak) we’ve included a list here of the most popular JavaScript frameworks for 2020.

Article by Bryan Fitzmartin
(updated with a list of JavaScript frameworks for 2020)



 

Share this :
March 25, 2016
 
We also wrote code for our CMS in PHP.  In our last post, we talked about writing JQuery code for our new site.  But after that the question is -- “what goes on the site?” rather than just talk about the animations involved below.  To do this we used a CMS, and like most all CMS platforms the one we chose used PHP, and we had to write some.  PHP in terms of its syntax is similar to many other languages, especially ones we know, so we didn’t have much of a problem picking it up.  We used it to communicate with the SQL database that runs on the backend; and of course, as all those who are familiar with PHP know -- when you’re using it, everything runs on the backend.  It’s not like JavaScript (or HTML) that works on the frontend side of things.
 
We were very happy with the code we wrote, it allowed us to have a section that selects articles at random that we feel strongly will help us with our google rankings; in fact, that feature was built into our CMS, but we had to write PHP to access it. And of course we used it to make sure the “loop” selected the articles we wanted as well.  We think things are a “go” on the PHP side of things.
Share this :
March 25, 2016
 
Share this :
June 06, 2014
 
We began work on porting our "Dictionary" App to the Android framework.  The app was originally written in C# for Windows 8 and Windows Phone, and is complete for those versions except for the final UI framework; but we have planned to release it for the Android platform first, so we have begun the work of porting the main functional code from C# to Android Java.  We have successfully ported the network interface and are able to establish the network connection to carry the raw search data on command from the external source and user search object.  Since we can pull in the data, we are now in the process of porting the raw data processing code from our working C# version, to change the incoming raw feed into a final, user readable format.  More updates to come as they arrive...
May 16, 2014
 
Hi there,

My name is Bryan Fitzmartin and I work in computers; I have a Masters in Computer Information Systems and Computer Programming.  So as part of my buisness, I program hip and fun apps for Android, Windows 8, and Windows Phone.  Check them out yourself for some cool apps!  On this site, I will post updates and relevant news and even coding stratgies for fans and people who are interested in and love our apps.  Check back for more as they come together!