TWITCH SUCCESSES, OFFICIALLY BECOMING A GAMES DEVELOPER AND THE FUTURE!

An eventful year so far! Started a pretty successful Twitch channel, and now I've started my first job in the games industry!

5:00 PM (AEST), May 3rd, 2022

Introduction

It's been a while since I last wrote on this blog, but for a good reason, I think, and that was the fact I was having a little break from programming and development, focusing more on applying for work and giving Twitch streaming a legitimate attempt! Thankfully, I had success in both of these activities! I started a small community of fans and viewers on my Twitch Channel while also landing my first real paying job in the games industry.

From late November to mid-February, I worked on three projects (An Infestation, Digging Simulator 1989 and my Website redesign) one after the other, not really taking any breaks or time in between (other than maybe Christmas or a family event), and while fun, it was time to relax for a little and put more focus on the job searching side and maybe focus on other hobbies again.


Have You Seen Deez Keyz?

Funnily, I'm the kind of person that always needs to monetize my time, and even though I wanted the downtime and wanted to play games with friends again, playing games felt like a waste of my time, so the best of both worlds was to stream. The thinking was I'm having a break, playing some games, but I'm also doing something more meaningful, something I've always wanted to do too!

So I created my Twitch channel as the persona of SeenDeezKeyz, (but sadly, most people I raided just called me Sean) and started streaming in late February! To my amazement, a little over a week went by, and I had made it not only into the Twitch Affiliate program but had almost 60 followers, an average viewer count of 6 and 4-5 people constantly talking in my live chat! These huge achievements were just week one!

After a very successful and memorable celebration stream for making Twitch Affiliate, I streamed for another month, obtaining 118 followers, 25 subscribers, 15 average viewers, and had a total stream time of 178 hours! Sadly because of the next topic in this blog, I haven't been able to stream over the last 20 days, but I am so very proud of myself for these achievements! I'm also thankful to everyone that stopped by and supported me in my streaming journey, and I really hope I can return to my stream very soon. I miss it! And I miss everyone involved!

Check out the channel, and consider following in the hope that I eventually return!
https://www.twitch.tv/seendeezkeyz


Officially Becoming a Games Developer

While I was enjoying my break from development, my other focus, along with Twitch Streaming, was looking for a job in the games and software development industry. Thankfully I was successful in this activity at long last too, but it was a lot of work and learning.

I don't want to talk too much about the actual business, but I can talk about some basics! I'll be in a Junior position as a Games Designer / Unity Developer, and they have an understanding of my current abilities, meaning plenty of opportunities for education and moulding me for the industry. The project I'll be working on is Crypto related, and one thing to know about me that most likely hasn't been mentioned in this blog before is that I love all things cryptocurrency! So this is a dream position for me, not only for the foot in the door with the games and software development industry but for my interest in cryptocurrency technology too!

I'm very excited for my future and what opportunities this position can open for me in this industry and games development in general! It's been a very tough two years, so getting this position has been a massive relief and a weight off my shoulders. I'm so thankful to everyone that helped me along the way, and I hope you wish me luck for things to come!


Final Points

Obviously, with the changes in my life, this blog will need to change. I don't think I'll be doing much independent or hobby development projects anymore, and I can't talk about the specifics of what I'm doing at work either. So I may be making some changes with the structure possibly to a journal or maybe even an educational blog, haven't decided just yet. All I know is I do want to keep writing "something like this", so stay tuned for something fun!

HELLO AGAIN, I COMPLETELY REDESIGNED MY WEBSITE!

It's been long overdue, so I decided it was time to update the entire website over the last few weeks, boy does it shine!

2:09 AM (AEST), February 11th, 2022

Why The Redesign?

I've always been proud of this website and portfolio, but lately, it started to feel more and more out of date in terms of design (especially compared to this blog), and with my added desire to get back into the industry, it desperately needed a makeover!

I've had several entries in a long list of tasks on my mind lately for the website that wouldn't work without an entire design overhaul. So I decided it was time to rethink the site and rewrite it from the ground up to 1. fit better with the idea of it being a showcase/portfolio of my development work, 2. It's an opportunity to finally improve design consistency site-wide, and 3. Another activity to further my skills in web development.

One of the first items on the list was a complete change to the front page, I've never been happy with how that looked, and I wanted something that could show off my work better and more effectively. As the front page is the first page most people will see, I decided this was my starting position for the redesign, theming each page after this to that style.


Walkthrough of the new Design

Usually, for these posts, I keep the talking in the text, but with the number of changes to the site, and any video or images I might require to show what has really changed with this redesign, I decided a video walkthrough would be the best option, especially for showing before and after!

The walkthrough is around 9 minutes in length and has talking throughout, with a showcase of both before and after versions. The audio/talking, however, isn't too important and was added to make the explaining a little easier. So if you would like to mute and skip through, it should be perfect.


Conclusion

I hope you've enjoyed this change of pace in terms of blog posts. I might do videos like this more often, but maybe for YouTube with some extra effort in the editing department (GameBoy development possibly), but the quick in-depth walkthrough style works for the post today. If you would like to look at the previous website design yourself, you can do so by checking out the GitHub branch below!

I'm incredibly happy with how this redesign has turned out, but even happier with the help and feedback I received to achieve it! You know who you are, and I am more grateful than you realize!



A DREAM COME TRUE, I MADE A GAMEBOY GAME!

Every Nintendo fans dream is to create a GameBoy game, and today I have achieved this, even if it is lacklustre...

12:39 AM (AEST), January 17th, 2022

Remaking My Classic

Something I've always wanted to do ever since I was a kid was to create my own GameBoy game, but doing so was always so intimidating. Reading up on topics like assembly language, binary, and the hardware limitations had my mind stumped. Eventually, I found a piece of software that could make the whole process a lot simpler with no programming required! This software was called GB Studio and is extremely cool! Sadly to me personally, it felt like cheating to use GB Studio, as I wanted to program a game myself from scratch.

So after catching up on some old Modern Vintage Gamer videos a few days ago, I watched his video "Learn to code and write games on the Nintendo Game Boy", which obviously, motivated me to look into development once more. He talked about a C based tool kit called GBDK or the GameBoy Development Kit, which would eventually help me achieve my dream!

I present to you today a basic recreation/prequel of my classic, but boring practical joke game Digging Simulator for the original Nintendo GameBoy. I call it, very fittingly, Digging Simulator 1989.


Development

So on top of the help from the Modern Vintage Gamers video, I also discovered a series by a YouTuber named GamingMonsters. His videos were so helpful for wrapping my head around most of the basics in developing with GBDK and was a good balance of showing you how to do things but not doing it for you, which I really liked. So while watching, I coded along and quickly noticed that the GameBoy was indeed as difficult as most people described for development, but, GamingMonsters videos left me confident I could do it! And so after three days of learning, I was done. I created something!

If you also want to learn how to create GameBoy games for yourself, firstly, I would suggest the GB Studio. It is an amazing modern-day engine that can help pretty much help anyone create a basic game! But if you like me and want to go for a more traditional approach but not Assembly, I highly suggest GBDK and watching the GamingMonsters series!

Chris Maltby's GB Studio: https://www.gbstudio.dev/
GamingMonsters: https://www.youtube.com/channel/UCMMhSfBStEti-Lqzs30HYWw
Modern Vintage Gamer: https://www.youtube.com/watch?v=FzPTK91EJY8


Conclusion

To clarify, this isn't really a game, so trust me when I say this, it is not fun! The original game, I thought, was a good laugh. This version was more of a tech demo. I wanted to program my first GameBoy game and thought the recreation of Digging Simulator would be a good fit for a quick and easy project for learning. It was a good choice, but I couldn't capture the character of the original with the limitations of the system, as well as just running out of time. However, now that it's complete, I plan on starting development on an actual game.

Digging Sim is an actual GameBoy game, meaning it can run on a real system using either an Everdrive or other similar cartridge solutions, as well as other third-party systems and emulators.

For this post, I wanted to just focus on the fact I actually created something for the GameBoy and instead save posts about the nitty-gritty stuff for either the next game I create or just another post in general.

Thanks again for reading! You can find below a download of the ROM file, a link to my itch.io page, where you can play the game in the browser, as well as the source code, which is well commented, so I encourage you to pull it apart, play around and experiment with GBDK yourself!



SIX SIMPLE WORDS. SYNC THE ACTION, NOT THE RESULT!

Lot's to talk about in this post! Been a lack of action lately, but the shooting wasn't as easy as I thought.

3:00 PM (AEST), December 9th, 2021

Shooting On The Server

It's been a short while since my last post, but here we are with something to finally talk about on the blog! The main struggle of this latest build was achieving shooting over the network. See, I thought it would be easy to implement as it is probably the most popular feature people want to achieve when making a hobby multiplayer project. Boy, was I wrong!

The first technique I attempted for shooting over the network was hosting the actual shooting event on the server, which did work, though with a minor flaw. This technique worked by requesting a bullet from an Object Pool spawned on the server, getting that bullet ready for fire and then doing the actual fire event on the server and pushing the position updates of that bullet to all the clients. Networking these bullets did work as intended, but clients had severe latency issues; Initial firing delays, despawning was out of sync, and bullets would fire before they had finished resetting. So the research began to find a better solution.


Sync The Action, Not The Result

After the previous attempts of getting shooting to work for my multiplayer game, I decided it was time to rest my mind and play Metroid Dread (Amazing, by the way). As usual, after playing a well-made game like Metroid Dread, my game developer mind started to race again, and I was ready to tackle shooting over the network once more. I decided it was time to look at it from a different angle and instead spent some time reading a variety of blogs and technical design documents. For example, one of my first finds was Valve's "Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization" page, which is a long name but was great, and a very interesting read. After skimming the valve documentation, I continued my search and came across what would become the most important find of my research, and that was a small blog about an indie developer named Paul Marsh, containing six words that blew my mind.

"Sync the action, not the result" was a small section of Paul Marsh's "Synchronizing player bullets...?" blog post of May 29th 2021. As soon as I read the title of this section, it clicked in my head exactly what he meant, and I instantly felt stupid that I never thought of it myself, but hey, that's the fun of programming.

Simplified Fire Event Sync [by Paul Marsh]. https://pauliom.medium.com/synchronizing-player-bullets-48223d5c9ad7

The concept of syncing the action instead of the results of said action is quite simple. Instead of spawning and accessing the Bullets from an Object Pool located on the server, this technique has the Bullets present on each client locally and simply tells the server it wants to fire one. The client essentially says to the server: "Oh Hey, I'm gonna fire my gun now, if that's okay?", the server confirms this event and tells all the connected clients: "Hey Everyone, Player 1 is firing the gun now!" which alerts those clients that it's time to shoot the bullet from Player 1's representation in their scene. The end result of this implementation, while still silently out of sync, is a much cleaner and polished looking shooting experience perfect for the kind of game I am creating.

Paul Marsh's Blog was a great read, full of interesting posts about his development journey through MLAPI. I'll be coming back to this blog with my future MLAPI problems for sure!

Check it out: https://pauliom.medium.com/synchronizing-player-bullets-48223d5c9ad7


And Now All The Other Stuff

Lastly, let's quickly talk about some of the other changes in this build, which mostly involves inventory and item changes. However, these changes were important for completing the bare requirements for building the Murder In The Dark Prototype, hopefully coming up real soon!

The changes to this weeks build (other than the shooting, of course) are the following:

  • Equipping an item now works as intended. In the previous build, it was inconsistent and buggy.
  • A Player can now drop items from their inventory, making them available again to other players. Dropping can be done using the middle mouse button when hovering over an item in the inventory panel.
  • Aiming down-sights/zooming is back and working over the network. Zooming can be activated while holding a compatible equitable item and clicking the right mouse button.
  • Plenty of bug fixes in this build too. The most notable bug fix was ensuring players that joined late weren't out of sync with the server. Often a player would join and other players would have invisible items.

Same as the previous build, there is a new prototype available for anyone reading this post. Consider giving the game a try, and let me know what you think! The contact button at the top of the page has my social links and email, so don't be afraid to reach out and tell me all about the bugs! Thank You!



A QUICK UPDATE ON NOT BEING AROUND, SOME WORK GOT DONE AT LEAST.

Freedom means a lot to me, so I needed to embrace it before it's stolen again.

7:32 PM (AEST), November 23rd, 2021

It's been a few weeks since I made a post here, so I wanted to make a quick update today on where I have been the last few weeks, but most importantly, an update on my development over that time.

Just a few days after my last post here on the blog, my home state of Victoria came out of lockdown, and I had an opportunity to finally see my friends and family again for the first time in almost a year. I decided to take this time and relax, no development, just fun times with the people that matter most.

Development during this time mostly involved solving a few small problems, mainly attempting and then reversing an upgrade to Netcode for GameObjects (More on that later). But other than a failed attempt to upgrade the multiplayer system, the equipping system for items seems to be working well and shooting and other weapons/equipable item functions are now the current focus. Sadly it's not a lot of progress for the month of November, but it's been a rough year so some time out of the house was well needed!

Now onto the future; Current plans for development work is attempting to upgrade the project to Netcode for GameObjects again, as well as finishing up all the equipable item system scripts. But why am I talking about the upgrade to Netcode for GameObjects so much? Well now that Unity has taken over the development of MLAPI they have started cleaning the system up from inside and out, fixed bugs and hopefully simplified some of the functionality. My first attempt to upgrade was a few weeks ago when the new version was fresh and documentation wasn't so great, the game was unplayable and sadly spent a while getting MLAPI installed again as they seem to be scrubbing this version from the internet now. Things are looking up though, there are a few videos available, research, blog post and slightly improved documentation means I'll be giving the upgrade another go, wish me luck!

Anyway, once these tasks above are eventually complete it's time to start creating a level, create some sort of simple Murder in the Dark gamemode and finally, it's ready for some mass testing with friends!

NO LONGER IS YOUR FOG STOLEN BY OTHERS, AND INTERACTABLE OBJECTS ARE, GET THIS.. INTERACTABLE!

The game is almost back to where it was as a single-player game, with just a few more features to add for the multiplayer to be caught up!

4:55 AM (AEST), October 22nd, 2021

Murder In The Dark Mode

Some more biggish changes to An Infestation this week, adding to the list of fundamental features I need available for the goals of the first proper version of this project. Like I mentioned a few weeks ago, the main goal at the moment is making a player-versus-player experience like my childhood favourite, the Friday night family classic, Murder In The Dark. If you haven't heard of Murder In The Dark, I'll give a quick explanation and then continue with the main changes for this version of An Infestation below. Let's begin.

Murder In The Dark is a simple party game, played at night, in pitch-black darkness, with two simple rules:

  1. If you're the Murderer, your task is to find everyone hiding and tag them with your torchlight.
  2. If you're the hider, your mission is to find a hiding spot and hope you don't get caught.

My adaptation of this real-world game might have some differences, like allowing the actual killing of other players, but it will still follow the basic concept from above.


New Changes And Download

Now time for this week's changes! Nothing major or any new additions, but more reworks of current features getting the multiplayer treatment:

  • Fog Of War bug fixed where other players were exploring local player fog. Additionally, a fun accident occurred during the fix of this bug where there is now a slight outline of a local players fog in the light source of other players. I like how this turned out. It gives the player a sense of what they have explored.
  • Interactable objects are back, now working over multiplayer! Interaction with objects is an important feature, allowing for item pickups, chests and doors. The possibilities are endless.
  • Inventory appears to be working again, mainly with the ability to do item pickups. However, further testing will allow for different inventory interactions in a later version.

While there are still some additions to be made in the future, I am happy with what has been completed so far and think it's time I start recording versions of the game. Now that majority of the original game features are present in multiplayer, what better time than now to add an extra 1 to that filename. If anyone is reading this, give the prototype a try, and let me know what you think, including any bugs you find. Thank you!



FRESH NEW UNITY AND PRETTY NEW COLOURS!

After a lot of backend work, updating and reading, a player can now be assigned a random colour on connection.

1:15 PM (AEST), October 12th, 2021

Some major changes to An Infestation this week. Firstly, the project has been upgraded to the latest version of Unity from 2020.1.6f1 to 2021.1.24f1. This update allowed for the install of the latest version of MLAPI. The reason this update is necessary is that RPC calls and NetworkVariables weren't working correctly, turns out because I was accidentally using the version before Unity took over development. So after everything was updated and the code stitched back together, the script handling player colour changes is now working correctly and as intended, which leads directly into the next major change, and that's new colour variations for the players.

When a player connects, they will be assigned a colour for their player character at random. Each colour is unique and won't repeat unless every option has been exhausted to the available players, and thus, fresh colours are needed, and the List containing them refreshed. The reason this change took so long was because of the nature of its logic, this system needed to be run on the server so that all connecting players know what colours are remaining for assignment. Running code on the server is achieved using RPC calls and NetworkVariables, which ensure that altering the List of available colours or assigning colours to a player can only be performed by the server.

Unity update and some colour shifting are small changes in the grand scheme of things, but pretty decent changes to me. RPCs are something I will use more and more as time goes on with the development of An Infestation as a multiplayer game, so it's good to get a headstart.

AN ANNOYING LONG STORY, NOT ABOUT RPCS.

This is an experience I had with programming this week. It's a bit of a boring ramble but, what are blogs for...

11:00 AM (AEST), October 12th, 2021

After last weeks post with the working FOV and online play, I decided it was time to wrap my head around RPC calls, and so I figured the random colour selection I wanted for each player would be a great feature to try this out. While it was a great idea to wrap my mind around RPC calls early, I didn't anticipate the amount of time this would take in the end.

So after reading through the documentation for MLAPI and watching a few videos, I thought I had the idea down and tried to implement it. Sadly no ice, no reaction from the code at all. My next thought was maybe it was the actual code for the colour changer. So I coded that for single-player and got it working, put it back on the server and still nothing. Something started to smell fishy, but I thought to myself, it must be something that I've done wrong, so I pushed past that feeling and continued. Back at the drawing board, I thought maybe the NetworkVariables weren't working as I was confident I was writing these RPC calls correctly. I removed all traces of RPC calls and made sure the code functioned from each individual player object instead, and again, it worked. Now I started to get annoyed. I wasn't doing anything wrong.

After a few more days of thinking and reading with nothing to show, I noticed something interesting. The version of MLAPI I was using had the RPC attributes declared as [ServerRPC], but in the documentation and videos, it was [ServerRpc]. I quickly realized it wasn't just [ServerRPC] either, GameObjects were all NetworkedObject instead of NetworkObject, and my synced variables were NetworkedVar instead of NetworkVariable. It turns out this whole time, using autofill to write these terms had hidden the problem right under my nose.

I upgraded Unity, removed the old MLAPI, installed the new MLAPI, spent several hours getting the project functioning again, and finally, it was again time to test my RPC calls. Well, you won't believe this, AGAIN it didn't work. However, there is still hope! I did get a different result this time, and this is the funniest part of programming. Sometimes you are trying to solve an issue, you might go down a path that has nothing to do with the problem, but then that path leads to an actual solution. Well, a Client connecting to the server was now setting the colour of the Host, which meant the RPC calls WERE working in the project, just not as intended. I had a new problem, a hilarious problem with all the added context of the story so far, and that was the RPC calls I was so confident about was wrong.

After some use of paper and actual planning for how I needed this system to work, I managed to wrap my head around what I needed and finally successfully implemented the colour change system. Essentially, the RPC calls were happening correctly but, the NetworkVariable I was using existed on every client, and I was setting that version instead of the server version.

AN UPDATE ON AN INFESTATION'S MULTIPLAYER PROGRESS

The successful hosting of a server over the internet, four players together and FOV working perfectly!

2:03 AM (AEST), October 6th, 2021

It's only been a few days since my last post where I successfully implemented multiplayer in my latest project, An Infestation, but in that time, I've got even more done! Almost half of the main features in the game are now working over a network, most notable being the Field Of View system; Which has everything from the shadow projection and basic Fog Of War effect to Toggling On and Off for some epic Hide'n'Seek action with other players!

Another notable change from a few days ago is the ability to host a game with a build and get my friends to connect over the internet during lockdown with nothing more than requiring port forwarding on my network. I successfully hosted and had four friends running around hiding in the dark. See the video above!

I know everything I am doing in the grand scheme of things is simple, but multiplayer has always been something I was scared of doing in my games development, so every tiny little detail I can achieve is huge to me, like a dream come true!

Anyway, just a small update today! While there is still lots of work, I am still rather proud of my efforts so far and look forward to getting the Fog Of War effect working fully, inventory and interactable items working and of course, shooting too!

IN JUST ONE DAY, AN INFESTATION NOW HAS MULTIPLAYER!

Using the power of MLAPI, I added multiplayer to my single-player game in a little over a day.

2:29 AM (AEST), October 2nd, 2021

Now that the progress updates are out of the way, it's time to talk about the next project I started, and that's getting back into the development of An Infestation.

An Infestation is a game I worked on almost exactly a year ago. It was one of the first projects I started working on in Unity after finishing university and I am very proud of it. Sadly I hadn't developed it further until this week because of a lack of motivation and ideas for how it could be fun. One thought that came to mind to address the fun problem was multiplayer; for something supposed to be scary, it might be fun to turn towards a player-versus-player experience like murder in the dark (A game I cherish from my childhood).

To get started, I needed to figure out how I would implement networking in my game. After a lot of research and experimentation with different techniques in Unity for multiplayer implementation, I settled on a simple solution called MLAPI, which seem to be the (new?) official system for doing networking in Unity. That's almost where this post ends; after a 15-minute video, I had it working! Obviously, the multiplayer isn't working 100% but still very impressive for something I was worried would take weeks.

Currently, the multiplayer of An Infestation consists of two player-controlled characters connecting over a network. Players can move and rotate independently, including the arm, and affect the Fog Of War of each connected client. The next plan for multiplayer features is full Field Of View and Fog Of War support with the vision cone (Players torch/light source) for each player, giving the game a sense of darkness and presence of other players in the world.

I got started in MLAPI by following SRCoder's video he published as a part of a series on MLAPI. I only watched the first two parts for what I needed, but I highly recommend his videos, found them very helpful!

Channel: https://www.youtube.com/channel/UCYaNsGvyvIupxpecr4rZY9A

MLAPI Tutorial: https://www.youtube.com/watch?v=qJMXv5J4wf4

A QUICK PROGRESS UPDATE

I haven't posted in a little, sorry about that..

2:09 AM (AEST), October 2nd, 2021

Just a small update before main post today, I suddenly realised this morning that I haven't posted in a little while but have still been working on projects. So I thought I would make a small post with an update, but talk later about something I did yesterday just for some fun, which turned into multiplayer for my old An Infestation project.

Since my last post a month ago, a few things got done but not as much as I hoped. COVID19 and still being in lockdown has been an emotional rollercoaster, some days being hard to get motivated, but I have tried, and I'm happy with that at the very least.

Firstly I did some minor updates to the JamJar bot, published it on a few websites and got a nice amount of installs! After JamJar, I started looking into Discord.NET, an API for developing Discord bots in C#, but sadly I lost motivation without a clear idea for my next bot. Lastly, I started developing a custom 2D engine written in C++ as a hobby project, the idea being to keep my mind refreshed on the language. I'll post something on it soon.

I COULDN'T THINK OF A GAME IDEA. A BOT CAN DO IT I GUESS...

Sometimes as a programmer, you are so lazy that you just make bots to do stuff for you.

3:45 AM (AEST), August 24th, 2021

JamJar [Screenshot by Thomas Wiltshire]. https://thomaswiltshire.com/pages/jamjar

All I've wanted from these new lockdowns in Australia is to develop a new project or two, but ideas aren't flowing as well as they usually do when I can be out and about in the world being inspired by things. I decided the best solution for this was using a Game Jam to get inspired, which resulted in me thinking: "How do they come up with themes? Generated right? Is there a Discord Bot, so I can always have it ready?". Nope, it didn't look like there were any Discord Bots. "I suppose I could make one and think of a game idea along the way!". (Spoilers: No game idea, but I did make a bot!)

So I do have some experience making Discord Bots. Last year I spent a night creating and learning how to create my first bot ImpostorBot, a bot created to take advantage of the Among Us trend and make it easier to invite players. I spent a week or so polishing up ImpostorBot, playing with different Discord features, and that was that. I haven't had another idea until now, which I was surprised to find that development was easy compared to the last. See, all this idea took was learning how to do JSON parsing, which is the same as I expected, and then getting a list of themes, genres and limitations to use for the random generation.

Genres and Limitations for the bot were easy to write; I wrote the Limitations myself and genres based on research of classic and modern-day genres used in the industry. However, the Themes list required a little more work. Initially, the development of the Themes list was manual and written by myself; this was slow and impractical. After some research of theme lists and other idea generators for game developers, I stumbled upon a project on itch.io by Gunnar Clovis; He had also made a theme generator, but instead of a Discord bot, he hosted it online. After a few email exchanges, he graciously allowed me to use his theme list, giving my bot millions of combinations along with the genres and limitations I had already written.

Please check out some of Gunnar's work: @GunnarClovis.

After the database of ideas to generate was complete, there was nothing left to do but polish, name it and get it running on my Heroku server. Naming was pretty easy; I went with JamJar because its ideal usage is for game jams, so I thought the "Jam" of game jams is the ideas/themes part, and this bot is the "Jar" that holds it? I thought it was clever anyway.

Now to get it running on my Heroku server did involve some sad news. To have two bots cost money to run each month, meaning ImpostorBot is no more. There is still a bright side to ImpostorBot's demise. Hopefully, I can list this bot on directories for Discord bots AND actually get some servers installing this one!

It was a short but very fun and well worth project making JamJar! Hopefully, I can get it out into a few servers, as I honestly believe it's a fun little tool and very handy for other developers like me!

CREATING A STATIC BLOG

My first post! Let's see how this goes...

5:00 AM (AEST), August 19th, 2021

GitHub, Inc (2021). GitHub Pages [Screenshot by Thomas Wiltshire]. https://pages.github.com/

So I finally started a dev blog, a lot more effort than I first imagined, yet so simple...

For the longest time, I've wanted to create a blog. I wanted somewhere I could talk about my development, to help with my motivation, an insight into the development of a project once I progressed further, but equally important, a place to talk about my life or at least my nerdy life. The problem is, making a blog when you use GitHub Pages isn't as easy as it would seem, near impossible in the traditional sense.

See GitHub Pages is a static way to build a website, meaning you can't have databases, complicated designs, PHP or even run things like WordPress to handle the blog experience. Making a blog on GitHub Pages wasn't going to be easy, at least from what I could understand. I would most likely have to generate one locally, create a post through it and copy all the statically created files back into the Git repository each time I wanted to make a post. Generating the blog isn't the worst option, as projects like Jekyll can make this a simple and easy process. But I do feel like you lose a bit of control.

One of the main hurdles I found when trying Jekyll was getting it working with my current Website as I didn't want any rebuilds or redesigns to make it work. Sadly for me, it didn't seem worth that extra work and instead, I elected a basic approach with standard HTML and CSS to create a base post and blog page template and leave it at that.

It isn't all bad, I can use markdown to help create the <p> and <h> tags but yes, basically, I am writing a new page for every post, adding to the blog page for every post, all in HTML and its manual. However, it does keep things simple, still getting my hands dirty in code, even though it is only HTML, and I get to keep everything looking exactly how I like it. All in all, I did enjoy the experience of writing my first post using this method. It was fun.

×
×

CONTACT ME

Thomas

I'M THOMAS WILTSHIRE


WORKING AT:
SAVYSODA