Hello, world!

Last year, I started a small fun side-project to begin learning how to program in C# (C-sharp). This is the primary language that we use at my job, and there is a definite benefit in expanding my knowledge in this area.


What started as curiosity led to extreme joy. I'm someone who has worked with computers for pretty much my whole life and have done many creative things with my pc, from web design via HTML and CSS to attempting to write a book using the Adobe Creative Suite.  But this was new, and I was pretty much addicted to it. I was working out of a book to teach myself, Begin to Code with C# by Rob Miles, and I found myself finishing the entire thing in just over 2 weeks. I would work all day, then come home and spend 4 hours a night going through the courses.

Now, even despite this, I didn't get to a point where I could really program much myself. Learning a programming language (particularly your FIRST one) is just very time-consuming. And while I stopped pursuing it after I finished the book, I still was able to immediately use the context and knowledge I gained to help me better understand much about what had previously been mysterious about my job. So a win, right?

In October of last year, there was an outstanding sale on GameMaker Studio 2 on Steam, and because their proprietary language works VERY close to how C# works, I decided to pick it up on a whim. For about a month and a half, I casually started teaching myself game programming with this tool in combination with the context I had learned from my time with C#. Perhaps in a later blog post, I'll post some screenshots or a video of my robot dude running around a field (I coded a full collision system that I was very proud of, haha).

Shortly after Veterans Day, when I spoke at length about my experiences and how much fun I was having with my best friend, I came to a realization. I needed to slow down. My time spent on this was seriously getting in the way of my ability to spend time with others, or to work on my other projects (notably, the previously mentioned Book that had been in design hell for about 8 months).

So I shelved it. I decided that I'd let myself come back to my programming and game design learning once I finished my book project.

Now, nearly 8 months later, I have had no energy or will to work on the book, and a significant impetus to starting this blog was to chronicle my sinking my teeth back in this new, exciting world. I've learned from my book project that my love affair with world building has its limits. However, I am at my happiest when I'm designing. In my book, me and my team had designed all sorts of new content that would go with the book (it was to be released as a supplement for tabletop roleplaying games, such as Pathfinder or Dungeons and Dragons). Those weeks going over the design and mechanics and then playtesting them were some of my favorite in the entire project.

So now that I'm freeing myself to work on other things, I am now jumping back into programming and proper game design again. Not with any goal, and not to any end. I'm not making any promises, but just letting myself learn. I had the opportunity to catch a great deal on some Udemy courses on programming with C# and Unity, and I've decided that will be the best place to start. Hopefully, I'll be able to dust off the pieces of C# I had previously learned while continuing to grow and supplement that with the joy I get from designing game systems. I may even go back to that game maker project and see if there's anything worth salvaging or continuing there. Who knows.

So tonight, after getting everything installed, I worked through the first few courses and have accomplished the primary objective of programming, which is to get your language to print "Hello World." While this is a small feat, learning it in Unity and how it talks with C# was enough of a hurdle when considering all the technical aspects that come with the initial configuration of systems like this. I cannot wait to get to the next step.

Thank you for reading!

The super simple C# file that is being fed into Unity to display our message.

The Console in Unity, outputting our friendly message!

Comments

  1. I learned the most when I had a passion project. I constantly had to learn new things about programming and system design to overcome new obstacles. Just keep pushing yourself through hard problems to realize your vision.

    Last tip: don't stall for too long because you think you should figure something out on your own. You'll never stop searching the Internet for solutions. Any developer that tells you they don't use StackOverflow, Github Code or other sites is a liar.

    ReplyDelete
    Replies
    1. Oh yeah, for sure. The one thing I learned with my GML game was the importance of standing on the shoulders of giants. Particularly with programming, there are often infinite ways to "skin a cat", but seeing how others have overcome a problem before, even if it's just similar to the problem you are having can not only lead you to the solution, but also help you think of ways to refactor what you've already done and make other improvements.

      It's one of the things that has really drawn me so much to this creative medium. The idea that it is less painting something with brush strokes, and more chipping away at an infinitely growing marble block. You have infinite creative room as long as you are willing to swallow your pride and try things out.

      Thanks for the advice, and for reading dude!

      Delete

Post a Comment

Contact Form

Name

Email *

Message *