Home Existing within the Non-Linear
Post
Cancel

Existing within the Non-Linear

Second Game Complete

It has been a full month since my last blog entry. This was shortly before I “completed” Star Trek: Collective Mischief.. so this post will serve as partly post mortem to that creative experience and journey.

It was a rough journey simply because the mental health issues haven’t changed much. Maybe I should just expect them as one would expect the storm but each storm still feels like it might be the last. That the defenses that held out last time might just give way and suddenly you’re drowning, never to surface.

Through various crashing waves and violent disruptions, I finally released Collective Mischief. I’m not entirely satisfied with it. It is very similar to the base tutorial where I learned the skills/design elements of a shmup in general.

The biggest difficulty was handling the limited token count constraint inherent with the Pico 8 fantasy console. With my general desire to overachieve and do better than what the tutorial presented, I made a lot of terrible coding choices that compounded over time.

Eventually I was sitting at maximum tokens and I was doing terrible things like putting a bunch of variable declarations on the same line separated by commas. The absolute priority of this project wasn’t to make a perfect game with everything added – it was to make a fun game while I learned as much as possible about game dev and programming in general.

Accomplishments

  • The Borg “Tactical Sphere” boss was very fun to make and it is obviously an homage to the classic Invaders creature. It just seems to have so much personality and it just feels like it belongs somehow.
  • Designing a custom font and a translation function for the numbers in the game. You’d just do a call like a print function but you’d get sprites as a result.
  • The tutorial didn’t have information about efficiently switching between game states so I constructed a state switcher, a function you can call to switch the draw/update functions. This replaces a series of if statements that would be checked each frame – 30 times a second.
  • The LCARS UI and the art assets in general are just nice! Most of the Federation ships went through 3-4 iterations before looking like their final form.
  • Nailing the sound of the game. 99% of the SFX/music was not done by me at all but the sounds of the game just effortlessly came together for the most part.
  • Going to the effort of adding a second playable ship, knowing that having a fast less powerful and a slow but powerful ship would be a great addition. This required figuring out how to make a menu and all the details associated. This is one the consistent good pieces of feedback I get about this game.

Missed Opportunities

  • Most of the waves are bog standard waves and don’t have much personality in them.
  • The Boss battle was largely coded was it was in the tutorial and I didn’t really take the time to add more personality there.
  • The introduction is strong but short, maybe too short? Way more personality was planned on being there but I just didn’t know how to make enough room to add it there. Maybe a more efficient scene-changing function?
  • Most of the game mechanics are almost verbatim what the tutorial had. While things are tweaked for a particular balance, they have a pretty basic feel compared to what other more recent shmups might have.

Final Thoughts

Overall I thought the experience was a very rewarding one. Not only did a game result from all of this, two games actually resulted from me starting the Lazy Devs’ Shmup Tutorial! The other was Sun Escapes Me in case you weren’t paying attention! Sun Escapes Me was almost the better of the two games since it was able to break free of the construct of the tutorial it was based upon.

This blog wouldn’t exist without the explosion in creativity and technical exploration that the tutorial brought on! Nor would I have released my first Android app on the Google Play store!

Something that is clear from the last few months of learning and exploration: being creative is absolutely in my blood. It is something that is CRAVE and need to be doing constantly. Even this writing right now is needed. Being able to bleed these thoughts into SOME space is essential.

The Journey and Motivation Loss

A great deal of the motivation behind starting game dev and starting the tutorial in earnest was to escape what I perceived to be a terrible job that didn’t respect my boundaries. Thoughts like “If only I can get good at this in a few months flat then maybe I can escape my job too?” rang around in my head. While obviously it wasn’t reasonable to take on such a thought, I took it on anyway as a way to try to control my situation.

It served as amazing rocket fuel because I only had three months of leave to GIT GUD or I’d be back to what I saw as a negative environment.

Eventually that situation resolved itself with me no longer working there! RELIEF

It sounds like a good thing but with the looming return to this job removed as a potential consequence the same motivating rocket fuel just evaporated.

Now what do I do?

Mostly Been Practicing Programming

For the last few weeks, most everyday has had Javascript and Spanish. More recently it has also had a fair share of Python scripting in play too! C# on Unity and a little Twine has showed up as well.

Aprendiendo Español

Spanish has been something I’ve been trying to learn for a while. Mostly learning through Duolingo, I can say that I have been learning Spanish well enough to notice a difference when I try to read random Spanish tweets for example.

While not directly related to programming, it is the learning of a language or a system of communication. Maybe if I practice the learning of an entire language like Spanish, maybe I can practice learning programming languages in a similar way? Maybe that is complete nonsense but I don’t think it can hurt.

Fair Amount of JavaScript Practice

A daily practice I’ve had for a few weeks now is learning some basic web dev through the Grasshopper app. While it isn’t my favorite app or way to learn ever I have been learning more about basic Javascript/CSS. Made myself go through a JS calculator tutorial as well in order to really get a feel for how things come together.

Though I’ve made some basic toys in JS, there is much for me to learn down this particular pathway. React seems like one of the big ones and I’m not quite there yet.

Inch by inch we’ll make progress on these ones! Web dev seems like a good backup knowledge set and something that could augment the repertoire of a game dev. You want to be able to make pretty websites for your game, right?

Python Exploration

For the last week and a half I’ve been doing the “100 Days of Code” - a Python learning course on (Replit)(https://replit.com/). As of this writing I’m up to Day 18. Python is actually a joy to write in because it is so simple and Replit has this cool little AI coding assistant that helps to complete little parts of your code for you. It seems like a bad habit in some sense but it has helped me learn ways to do things that I wouldn’t have thought up on my own. Now those ideas have been added to my toolbox too!

Python Sats to USD Converter

Yesterday I spent some time writing up a script to take the price information from the Kraken API and present that information in a Q&A style interface. You can play this little script/app thing over here.

Pile of Random Python Scripts

If you care, you can go to https://replit.com/@thechaz and check out the mess of Python scripts I’ve made in the last week!

The Professional Path with C# in Unity

There is this idea that in order to pursue game dev that I will have to pursue Unity and C#. So some of amount of the last month has been spent on learning the basics of Unity and C#. It is actually pretty fun to use Unity once you get some of the basics down.

That being said, it is a very complicated application. There are a lot of knobs and a lot of potential scripts that would have to be written for almost anything complicated.

My next step here would be to focus on some VR game dev in order to see if I can get some jobs as a contractor doing some game dev work.

Twine! Narrative Design!

Yet another thing I’ve been playing with and toying around with the idea of is narrative design. Out of all the games I’m absolutely ITCHING to make right now, none am I itching to make more than narrative based games.

After going through the narrative experience of “The Writer Will Do Something”, I began to think that maybe my next game should be entirely text based? What better way to focus on narrative and all the related structure than to strip everything else away?

No spending days or weeks figuring out a particular UI design. Instead I’ll trade that in for some narrative design instead! TO TELL A STORY! Perhaps we can eventually get to an engaging story?

Twine is a pretty fun program to use and it is fairly easy to learn.

Splitting Paths

As you can see, I have some splitting paths here, not just because I was talking about Twine just now. There appears to be some mutually exclusive paths in front of me. There appears to be a chance to pursue any of these paths or even two of these paths but all of them? All at once?

There’s also the problem of getting a job with this mishmash of skills and interests.

My current course of action is to follow my intuition wherever it may lead me. Thus far it has lead me to some amazing learning opportunities and a change towards something better.