Global Game JamEncounterHardware and SoftwareEditable source codeDisk conversionGraphic creation time-lapseMixed graphicsInteractive graphicsUI improvementsSound experimentsPimp up the IntroPerformance BenchmarkHall of FameOn Screen ItemsGraphical MarathonCode optimizationRefactoringLabels!Delayed episodeThe Final CountdownWhat's next?Earlier this year, I was told that it would be "kind of cool" if I did some videos to show how I developed my Oric and Atari projects, instead of just writing blog posts and forum updates.
The first real test was in February when I did a few hours of live streaming during the Global Game Jam 2018.
Then I pushed the idea even farther, and started to document in video the development of my "Encounter" game revamp.
I started in March, without any particular plan on what I would be doing, and it continued for 18 videos in total, published every Sunday, at least until August when real life caught up with my planning.
Global Game JamBefore the Game Jam, I poked around at the various possibilities, the first one being Twitch with OBS Studio, since everybody seemed to use this setup.
I toyed with this solution for a couple of days before I decided I really did not like it, then I tried to stream on YouTube and that worked much better for me.
Anyway, I did my Game Jam stream on YouTube, it mostly worked, and it taught me a bunch of things about what did work or not.
Having finally my face (and voice) on video, the biggest mental barrier snapped away and I was ready for doing some serious videos, but not in real time: I hate the constraints of real time streaming!
EncounterDespite what some people think, I'm not some kind of hardcore programming machine who can program and think out loud like Jonathan Blow, so I really needed something simple to work on.
Which is why I decided to work on the Encounter project:
How hard can it be to refactor a 1983 Text Adventure written 100% in BASIC ?
Hardware and SoftwareThe two first videos were done using my old microsoft webcam and a desktop microphone, without any additional lights, and a black Ikea shelve behind me.
The result was predictable: Terrible audio, terrible image.
From the first video I progressively upgraded the equipment, first by switching to a better webcam, then to a better microphone, and finally better lighting and background elements.
As of today my current setup is:
- OBS Studio for the recording
- Logitech C920 HD Pro Webcam for the video
- Audio Technica AT2020 USB with a folding arm and shock mount for the audio
- Two Viltrox L132T and some led strips to improve the light
- Some acoustic foam to reduce the tin-can effect
- Paint Shop Pro (8/9) for all the graphical stuff
- Sublime Text 2 for all the text editing
- Beyond Compare 4 for all the diffing
- Cygnus Hex Editor for the binary exploration of files
- Shotcut for the editing of videos (only used for the time-lapse)
- Wavosaur for all the audio manipulation
I believe the later videos are much better than the earlier ones, but I'm definitely not a pro:
Kudos to the pro YouTubers, this is a really big job to keep doing that regularly.
Editable source codeThis first video is 33 minutes long; this problem that kept creeping on me: I suck at brevity1
Anyway, I hopefully still managed to explain how to extract a BASIC game to a text file, and how to use Bas2Tap2 to regenerate a working executable.
Disk conversionThe second video still used the same equipment, but I swapped the position of the Ikea shelf with my old computers cabinet, resulting in a much brighter image.
I also discovered the volume button on the microphone, still not loud enough, but not as bas as the previous video.
This episode explained how to use Tap2DSK to get the game start from a floppy disk instead of a tape, how to use a custom character set as well a title picture.
Graphic creation time-lapseSince I had decided to go for a graphic revamp of the game, I had 40+ scenes to draw, and doing that would have taken forever, so I decided to just do a time-lapse video showing how I was creating graphics on the Oric, starting from hand made drawings, scanning, cleaning, etc...
This time there's no camera, no microphone, just Paint Shop Pro and some background music!
Mixed graphicsThis next episode explained how to create a mixed video mode, with the top half using high resolution graphics (HIRES) and the rest of the screen in text mode, giving a result similar to the old adventure games from Magnetic Scrolls3
Interactive graphicsInteractive is probably a big word here, but basically now instead of just writting in the description that a "dog is growling at you" or that there is "the body of a dead dog", it's much more interesting to actually show that on the picture.
UI improvementsThe original game would only show the list of objects you have by answering to the command I (Inventory), in this episode I show how to make the game permanently show things on screen.
Sound experimentsIn this episode I tried to do real time audio (alarm ringing, dog barking), but ultimately the game is still silent because I did not find a satisfactory way to include that in the game while making it playable.
Pimp up the IntroThe original game only had a boring text presentation when you started it, after this episode it displays some animated story elements on startup.
Performance BenchmarkSince I was adding more and more stuff to the game, it started to run a bit slow, so I decided to do some measurement to see what was actually the fastest or slowest way to achieve the same result using the various BASIC commands.
Hall of FameThe best way to add incentive to continue to play a game is to make it easier to notice your progress. I solved this issue by adding a hall of fame system showing the name of the player, their score and the way they ended the game.
The first part shows how to display the high scores:
The second part handles the save of the player score:
On Screen ItemsI was asked about the possibility to see on screen graphically the various items instead of just in the textual description, so there it is.
Graphical MarathonIn this episode I finally got all the placeholder pictures replaced by semi-final versions, as well as a few ending conditions improvements (like showing the dog attacking you).
Code optimizationI'm starting to get serious in the BASIC code change: In this episode I basically rewrote the entire movement code from the original game, replacing it by something half the length and much easier to update and extend.
RefactoringAnother episode mostly about decoding the original source code, adding of comments, commenting of variables use, etc...
Labels!I got fed up, and finally added label support to Bas2Tap because these line numbers were making it very difficult to continue extending the game.
Delayed episodeThis summer was very warm like pretty much everywhere in Europe, making it very difficult to work on the game.
In this episode I show what the game looks like without any line numbers, I introduced a simplified container handling code, and another graphic overhaul pass.
The Final CountdownThis episode, released in early August is probably going to be the last episode for a long while,
At this point, a large part of the game is now data driven (comes from actual DATA lines) instead of hard-coded IF THEN ELSE statements, and still works pretty much the same as before, except using a lot less memory than the original game.
What's next?I could probably continue going on like that, but the thing is:
This is not worth it, at least not for my own sake.
When I wrote earlier that I had a lot of respect for professional YouTubers, I meant it: It's easy to criticize the presentation, elocution, sound, etc... of random people, but doing much better is actually a very intense process!
Consider the amount of free time you have for your hobbies.
Now, consider that each of these videos is about 20 to 30 minutes long, and there are 18 of these - just in pure recording time that's almost 9 hours of recording.
But that's obviously not all!
For each of these videos you have to take into account:
- All the preparatory work of what is shown in the videos4
- Setting up the recording "studio"5
- The fact that sometimes the recording does not go well and you have to redo it
- Checking that the video result is ok
- Uploading the video to youTube
- Creation of the custom thumbnail for the episode
- Editing the description and keywords
- Go back to the previous video to link the end to the new video
- Advertise on Twitter, IRC, Facebook and Defence-Force6
Which brings me to the decision to stop making these videos.
I've reach the point where I've shown most of the “showable" things, now I need to soldier on and actually get the game finished without stopping every two steps to show what I changed.
Ultimately I've learnt a lot of things, and I hope other have as well, so it was definitely not a wasted opportunity, but continuing week after week from now would just feel like having a second job where I'm obliged to do my weekly reporting.
Additionally, I want the game to be interesting, so it's going to deviate from the original game:
The original solutions will not work, some things will have move around or not work the same way, so having that on video would just be a giant spoiler.
I've no idea when the game will be finished, I've no real idea of how it will look like, or how it will play, but I guess that's going to be a surprise for everybody :)
Just one sure for certain: It will not be called "Encounter Something", I'm changing pretty much everything else, so why stick to the name!
Will there may some new videos in the future? Maybe, but probably things like OSDK tutorials about how to use PictConv, FilePack, change a font, etc...
I hope that makes sense :)
1. If you are a regular on this blog, you already knew that :D↩
2. In the process I found and fix a bunch of bugs in Bas2Tap↩
3. Who released The Pawn, The Guild of Thieves, Jinxter, Corruption and Fish!↩
4. including code work, graphics, extracting and cleaning the various user manual pages↩
5. making sure there's not some smelly socks in the background, checking the light is ok, that the webcam and microphone are at the correct levels, that the screen resolution is readable, ...↩
6. Optional, but obviously the video is for other people to watch...↩