RSSAmplifier

Blog

jono shields

Recent content on jono shields

jonoshields.comRSS feed ↗60 posts

Latest posts

Tiny News

Inspiration 
 About 6 months ago I stumbled across the Guten , a tiny newspaper printer. This discovery blew my mind and introduced me to the world of thermal printing - some of which I will explore here. 
 Immediately I jumped on a local auction site and started watching thermal printers. I think a lot of people’s intuition here might be to buy new (and there is nothing wrong with…

Thinking about json differently

Recently I had a somewhat philosophical conversation with a co-worker regarding the role of json outside of the web - and in fact outside of software development entirely. 
 
 JSON - Javascript Object Notation - a structured data format that makes up a good portion of communication on the internet 
 e.g. 
 {
 'latitude' : 52.52 ,
 'longitude' : 13.419998 ,
 'timezone' :…

Maybe I can't do everything

After reading a few particularly good books I felt inspired to start writing a book of my own. I love to learn and of the firm belief that anyone can do anything if they truly put their mind to it. So I went down one heck of a rabbit-hole. 
 From reading every post on r/writing daily to buying distraction-free writing devices to doing daily exercises out of Ursula K. Le Guin’s…

Learning usereducer live on stream


 Note: If you want to watch it for your self you can find the link here . 
 
 Recently I had fun streaming myself making a simple habit tracking app. The intention was to go in with some basic wireframes and see what happens. 
 And wow, did I learn a lot! 
 The App 
 I made a quick mock-up of the habit tracker app in Miro (highly recommend for whiteboarding and wireframing…

Procedural Dungeon Generation in Godot

Welcome back! 
 Today we are going to be using an algorithm called Binary Space Partitioning (BSP) to create a dungeon in Godot. We won’t be going into as many of the basics in Godot as we did last time. 
 
 If you haven’t already, have a look at my tutorial for cellular automata in Godot here . 
 Before we hop into coding. Let’s have a look at what BSP is and how…

Making Conway's Game of Life in Godot

I saw a great question on Reddit recently about how someone can get started with procedural generation in Godot. And as a fan of both, I thought it would be fun to give it a go and maybe make a bit of a tutorial. 
 
 Note: This will be done in Godot 4.1. If using an earlier version, the code might be a little different. 
 We will be making Conway’s Game of Life.

Sips

Time for another GBA Gamejam! This time it is the winter jam, its the smaller of the annual GBA Gamejams. We had 1 month to make something little, this time the Title Screen. 
 Wow. I almost feel called out. The Title Screen is usually the last thing I think of and sometimes skip entirely. 
 A whole month. I could make a pretty popping title screen in that time. 
 So I set to work…

Nuclear Love

You can look at my last couple of posts for my grand desires to compete in GBA Jam 2022. But the best laid plans and all that. 
 I ended up not actually starting any sort of entry until the 28th of October. 3 days till the jam ends. 
 So I sit down with my brother for coffee and we get chatting. It would be cool to do a Halloween themed game since the game ends on October 31st. We spitball…

Making a Shoot 'em up for the masses

Kirby’s Dreamland 
 Recently I watched an interview with Masahiro Sakurai, the designer of the original Kirby game among other amazing titles. He talks a bit about the history of platformers and how at that point in time games in general were made to be difficult. Not just for the sake of it mind you, catridges had limited sizes and developers could only fit so much content in there, so…

Starting another GBA Jam

The past ~7 months since LRO 
 My plan after LRO was to keep working on it and eventually release a paid edition with a lot more content and airport themed games. That didn’t happen. Instead I got distracted. Life got in they way. 
 However over all this time inspiration did strike a number of times. 
 LRO, but now a full BLOWN RPG! 
 I downloaded a ton of stock assets from…

Polishing LRO

Carrying on from the previous post I wanted to talk about further design decisions I made in the last couple of weeks. 
 Using Dialog to create a narrative element 
 At this point the game works. You can complete levels and progress through the rank system from Trainee -> Expert -> Officer. And while the puzzles get harder to help show the progression, there is little else. 
 Can I get…

Enhancing Luggage Retrieval Officer

The Todo List 
 At the end of the last post I left a todo list with a bunch of features for me to add to the game. 
 
 ✔️ Level Select Screens - 40 puzzles and to select between (4 difficulty levels). 
 ✔️ New Suitcase select - having a cursor to select the item you want to move instead of tabbing through the suitcases will be a lot easier for most players. 
 ✔️ Success…

GBA Winter Jam

Another GameJam 
 Following on from the success of the GBAJam21, the GBAdev community has decided to wrap up the year with a relaxed winter game jam. The optional theme is Frozen. 
 Check it out on Itch.io here . 
 Scope 
 Based on the last GBAJam that I did, I knew I had to reel in the scope. There were two games that I kind of had in mind. 
 
 A space shoot ’em up,…

Why I stopped making NFTs

What is an NFT? 
 Skip to Why if you already know 
 Non Fungible Token. A token (small piece of data) that can’t be changed. This achieved using blockchain technology. Most NFT’s are made using smart contracts on the Ethereum (a cryptocurrency) network. 
 This datum is replicated along with a public key across thousands of computers around the world. They all agree that the…

Kiwijam21 - 48HRS - Adapt


 
 Kiwijam21 
 Kiwijam started on Friday night, at 7pm the theme was announced and our space at The University of Auckland became a hive of activity. 
 The theme - Adapt. 
 My first thoughts were that I wanted to make a game where the player needed to use a Bop-It (TM) to control several different “levels” where the game changes significantly in between. For…

Revisiting Tacotown


 
 Tacotown 
 A number of years ago I got playing with Ink making narrative driven games. 
 One of the ideas I had was to make a game where you buy a food truck, leave your old life behind to start anew. Beginning your life as a mobile restaurant vendor on the road. 
 You can play the opening to the game (2 mins) that I made 5 years ago here… 
 
 I called this…

Feline - Finishing Touches


 
 GBAGameJam2021 | Making a game for the Gameboy Advance 
 Day 88 
 It is the last week of the jam and I am cramming like a high school student before exams. 
 A New Level 
 I really had to get my a** into g. 
 So I took my dungeon tile sheet, added a filter or three and threw some rocks in there. 
 
 Throw in a background and… 
 
 And a New…

Using HBlank to add Parallax


 
 GBAGameJam2021 | Making a game for the Gameboy Advance 
 Day 81 
 At first I thought that adding a title screen would be boring, but not when you discover how to use HBlank effects. 
 
 What is an HBlank Effect? Well, when the gba draws to the screen it draws in rows, starting at the top and going down. We can make code run in between these rows. Find more detailed info…

Adding more lore to Feline


 
 GBAGameJam2021 | Making a game for the Gameboy Advance 
 Day 74 
 Unfortunately I haven’t had much time over the last few weeks to work my GBAJam2021 entry. And I realized today that the deadline is approaching very quickly. 
 In the last post I talked about how important narrative was to me in this game. 
 I decided to add stone tablets dotted around the level…

Mapping out an MVP for Feline


 
 GBAGameJam2021 | Making a game for the Gameboy Advance 
 Day 52 
 In a previous post I talked a little about how important it is to make a plan. You may be thinking “well if I don’t have a plan, it is impossible for things to not go as planned”. 
 Well yes. Technically this statement is correct. But it also means that when things don’t work, it is…

Making a boids simulation on the GBA

I have had an idea for a game that needs to use a boids algorithm for a while now. 
 Boids Algorithm 
 To put it simply Boids as a algorithm works fairly similarly to cellular automata and conways game of life. There are a few simple rules that all parties action each frame. Then positions are updated. 
 Have a look at the original creator of Boids explanation of it if you are curious.

Jono has a Plan


 
 GBAGameJam2021 | Making a game for the Gameboy Advance 
 Day 44 
 I read a really good post-mortem the other day. One of my key takeaways was simply to have a plan. Not so that you can stick to it, you update it as you go. But so that when things go wrong you can look back and try to figure out why. Like “oh, I shouldn’t have left the music till the last week”…

Attacking Animations and Enemies


 
 GBAGameJam2021 | Making a game for the Gameboy Advance 
 Day 40 
 Okay, so in a lot of projects there comes a part where a lot of work is needed for little reward. I always struggle to find motivation in these parts. Queue a week of procrastinating. 
 But this week I… 
 
 Refactored the player class so that an instance of Player lasts for the whole game.…

Animation, Camera and Movement Improvements


 
 GBAGameJam - Days 28-32 
 Camera Movement 
 Last time I posted an update on the GBA Dev Discord I was recommended an article about camera movement . And I can highly recommend this to anyone making any sort of 2d game. It made me think for a lot about how the camera should move in my game. 
 When I started the easiest thing was just to set the camera’s position to the…

Another Level, Dialogue and NPC's


 
 GBAGameJam - Days 24-27 
 Off the Grid 
 The last 3 nights I have been staying in a campsite with no cell reception. But thanks to the awesome docs bundled with Butano, I haven’t really hit any major snags. 
 And without the distractions of the internet I have made a lot of progress in the last few days. 
 New Level 
 Our story has to start somewhere, and the…

Will this be a game?


 
 GBAGameJam - Days 20-23 
 Lets talk game design 
 Okay. We are at the point where I need to try to figure out if this is going to be a real game or not. So I came up with a game design pitch, another level, a world map, abilities, collectables and more. 
 Pitch 
 You arrive home to find your place in ruins, your wife and children are missing. Find out what happened and…

Animation States and Dash Ability


 
 GBAGameJam - Days 18-20 
 More refactoring 
 Okay, so last time we pulled some stuff out into classes. Now after learning some more I have created .h and .cpp files for my new hitbox and player classes. 
 At this point comparing c++ to other languages I have used before an header file is kind of like an interface or an abstract class. But also at the same time it is…

Refactor and Acceleration


 
 GBAGameJam - Days 14-17 
 Major Refactor - Classes 
 So. How do classes in C++ work? Yeah, that took some googling on its own. Actually just trying to figure out the weirdness of their constructors was time consuming. 
 I ended up making a hitbox class that I could use for my character. This is what it looks like… 
 class Hitbox 
 {
 private : 
 int…

Collisions, Music and More


 
 GBAGameJam - Day 13 
 Collisions 
 This should be fun. 
 FYI I first learned collision logic making a similar platformer in pico8. I found these tutorials invaluable for that. And I think its a great resource that can be applied in any programming language even though the examples are lua & pico8 specific. 
 This should be easy now that we can get map data. 
 So…

Detecting Map Tiles


 
 GBAGameJam - Day 12 
 Okay. I did it! 
 I figured out how to get map data so I can start using tile data to figure out collisions. 
 So as before. We have our bg that we made.. 
 bn::affine_bg_ptr map_bg = bn::affine_bg_items::map.create_bg(256, 256); 
 And I finally found out that you can call map_bg.map().cells_ref() to get the pointer to the cells of the map. You…

Yeah, its going okay


 
 GBAGameJam - Days 4 to 11 
 Okay. So I may have been scared off a little by C++ again and a little frustrated at my self for not trying harding or digging deeper. 
 This week hasn’t been very good. 
 But that isn’t to say I haven’t done anything. The gbaDev discord is buzzing with activity and I am enjoying learning little bits and pieces about the GBA,…

Animation, Movement and Backgrounds


 
 GBAGameJam - Day 3 
 Animation 
 Today I am tackling animation, not for any specific purpose, but just because I have the assets for them already. 
 We can use Butano’s create_sprite_animate_action_forever to kick off the animation. 
 
 Also just note that throughout using Butano you will see the use of Actions, they allow you to do transformations to a sprite…

Let's draw a sprite!


 
 GBAGameJam - Day 2 
 Okay lets do this. Lets try to get as far as I can doing this with assets from an old game. 
 This is the Butano Sprite Example.. 
 /*
 * Copyright (c) 2020-2021 Gustavo Valiente gustavo.valiente@protonmail.com
 * zlib License, see LICENSE file.
 */ 
 void sprites_visibility_scene (bn :: sprite_text_generator & text_generator)
…

Joining GBAJam


 
 Day 1 of the GBAGameJam21 
 I normally use much higher level languages, python, javascript, c#. But looking at the example code for Butano and seeing all of these :: confuses me a lot. 
 Maybe I could map all of this to a language that I know. Googles “Lua bridge” furiously. 
 Eventually gives up.

Experimenting with Double-X

For my birthday my amazing fiance got me the gift of a bulk roller and a 100ft roll of Kodak Double-X 5222. 
 I have wanted to get into bulk rolling for a couple of reasons.. 
 
 Film of any length with minimal waste. Short rolls to experiment with new gear or developing. 
 Getting intimate with a single emulsion, learning the ins and outs and how to make the most of it. 
…

Imposter Syndrome

You know that feeling, when you really want to do something, but something holds you back? 
 
 Well, I really want to get into doing more portraiture. I think about it quite often now. 
 I also get this feeling though, I don’t know whether it is anxiety or imposter syndrome . But something makes me feel small , inadequate and scared . 
 Its not just strangers, asking family…

Summer Roadtrip

This year we are moving into a smaller place and I just know that at some point I will have to say goodbye to my Pentax 6x7. 
 So this summer I decided to take it with us on our roadtrip around the north island. 
 
 On the way down we stopped at the Three Sisters. 
 


Exhibit

These last couple of weeks have been the most exciting. I entered one of my photos in a competition to be exhibited in a gallery in Auckland. And lo and behold it got chosen to be one of 25 exhibited. 
 
 It isn’t often I print my photos and never big. So walking into this gallery and seeing this thing on the wall was just awesome. A massive thank you to The Black & White Box who…

Catching up

I haven’t written a post in a long time. Like at least a year. 
 So here are some photos that have been memorable… 
 Towards the end of 2019 we attended the Animal Rights March. It was incredible to see people from all walks of life protesting together to end animal cruelty. This ten year old boy and his sister marched for what they believe, he holds an Animal Liberation sign,…

Island Generation

So I saw another cool post by someone that was generating islands and I wanted to give it a go. 
 Since I haven’t really used three.js for anything before I thought it would be a good way to learn that too. 
 Finished product first… 
 
 Starting out by using Perlin noise to generate some terrain, there were tons of examples of this and three.js had one on their site .…

Fake News


 Test it for yourself here . 
 What are Markov Chains? 
 
 Markov Chains are a way of modelling states of something and using probability to determine a likely next state. For example if you are sitting, your next state might be as follows… 50% continue sitting, 30% standing, 10% lying down, 10% running. 
 As per usual someone else already has an amazing explanation…

New Camera Day

I recently acquired my grail film camera. The Leica M2. Leica is a heritage brand and has a long history with press and documentary photography. The build quality is beyond excellent and their cameras have always been built solid. This bad boy is roughly 60 years old. 
 Why not the M3? It doesn’t support 35mm framelines, so shooting with a 35mm lens means that I wouldn’t be able to…

Gospel of Luke

Recently a friend reached out to me to help him with a project he was working on. 
 He is studying Theology at St Johns and wanted to highlight the role of women in the Gospel of Luke. 
 I am not religious in the slightest, but I liked the idea as most texts of this age downplay the impact of female characters. 
 We met at St Matthews to talk about it and plan each of the shots on…

How to do street photography?

Street Photography. It’s not that scary. 
 And just like every other aspect of photography you can make it your own. 
 You can focus on the environment. 
 
 Or on people. 
 
 You can set up your composition and wait. 
 
 Or you can walk and shoot. 
 
 You can get up close and personal. 
 
 Or you can shoot from afar. 
 
 You can talk to…

Jono's first attempt to develop film

Lately photography (especially analog stuff) has taken a bit of a back seat. 
 This week I decided to take the next step in the process and have a crack at developing my own film. 
 What follows is possibly the worst first attempt in the history of photography. 
 I decided the best idea was to develop a roll that I had accidentally exposed by opening the back of the camera without…

Getting into Portraits with the Pentax 6x7


 We went to Stanley Bay in the evening to catch the sun setting behind the harbour bridge and as I was setting up this cat appeared. 
 It would not stop hissing at me. It was seriously pissed off for some reason. And then when I got closer to take a photo it hissed loudly and started coming towards me. 
 I wussed out and ran away, but managed to get this shot.

Early Morning Photography

I’m a morning a person. Every day while I have been in Christchurch for the last two weeks I have been up at dawn, exploring the city in the hours that I can before I have to go to work. 
 
 This old school 1950’s Studbaker sat on the side of the road. 
 


Panoramas with the Pentax 6x7

Another new camera? 
 Yep. 
 
 This beast of a camera came with a 45mm f/4 lens and a panorama kit. Now I can do super wide shots like the above. 
 
 The pano kit lets a roll of 35mm film cross the entirety of the 120 frame. I can get about 21 shots off the roll.

The Yashica 35 M

Look at this beauty! 
 The Yashica 35 M is now the oldest camera I own, from 1973 it’s more than twice as old as I am. 
 
 It shows its age in how you use it. It has a lightmeter on the front that I thought was a flash hahaha. It uses Selenium, a chemical, to measure the light rather than the more modern silicon semiconductors.

A Photographer's Perspective

My camera is always by my side these days. And I’m always on the lookout for interesting ways to look at things. The same things I look at everyday. 
 
 The photo above is from a cafe called Rabbit. The main seating area is lofted above the kitchen, but I never once had a reason to lean over the edge and have a look down.