2025-01-26 15:03:38 +00:00
# Project Shinar: A Bit of History
## The original inspiration
Cast your mind back if you will, dear reader, to the heady days of 1991[^1].
The Soviet Union collapsed, the first Gulf War ended, the World Wide Web
was released outside CERN to other research institutions, and the first website
ever was published. Amidst all of these and many other huge events, one
event in particular had an impact on my young self that may be responsible
for where I am today: this was the year my brothers and I got an [Amiga 500 ](https://en.wikipedia.org/wiki/Amiga_500 )
for Christmas.
We were pretty late to the Amiga really, but my family weren't exactly well
off and the Amiga wasn't cheap. It took some saving to buy the system. As a
family we'd gone to a small shop called Stewart Electronics on Penny Meadow
in Ashton-under-Lyne[^2], and we brought the new computer home on a rattly
old bus while we poured over the box. The set we got came with a bundle of
games[^3], and one of those games was Tower of Babel.
Tower of Babel had been released the year before for the Amiga, programmed by
Pete Cooke and published by Rainbird Software, a label of [MicroProse ](https://en.wikipedia.org/wiki/MicroProse ).
It was effectively a port of an Atari ST game, so it didn't really take
full advantage of the Amiga's capabilities - with the perspective provided
by many years of distance, it is pretty obvious that the sound effects are
basic and crude, the graphics are at best functional, and the framerate
on a stock A500 was... not great.
That said, coming from a [ZX Spectrum 128 ](https://en.wikipedia.org/wiki/ZX_Spectrum#ZX_Spectrum_128 )
it blew us away: the graphics, sound, and speed _were_ way ahead of anything
we were used to. ToB was played a lot to begin with, in part because it was a fun puzzle
game, but perhaps more so because it included a level editor! We could build
our own levels and challenge each other to finish them - always a good source of
fun between brothers (or arguments anyway). Inevitably it fell by the wayside
as more games were acquired, but even now I still have a copy of ToB in my
WinUAE install.
## So, what was it then?
2025-01-26 15:47:27 +00:00
The name comes from a somewhat strained attempt at providing the
2025-01-26 15:03:38 +00:00
background for the game: the construction of the Tower of Babel attracts the
attention of passing aliens who leave three robots to help the Shinarians
with their work on the Tower. Human nature being what it is, things go
pear-shaped, and the humans turn on the robots. The player controls the three
robots as they attempt to traverse levels (called 'towers') full of traps,
puzzles, and creatures so they can collect their power supplies and escape.
{ width=320 }
{ width=320 }
Leaving dubious biblical references to one side, the game itself has you controlling
the imaginatively named "Zapper", "Pusher", and "Grabber" robots: Zapper has
a laser beam you use to blow things up, Pusher has a repeller beam to push
things away from it, while Grabber has a tractor beam to collect the
all-important power supplies and turn on a few different devices around the
towers.
Tower Of Babel's supplied 'towers' are split into 13 groups of 9 towers, each of
which puts you in control of one, two, or three robots. Each level has varying
objectives - you might need to collect a given number of the power supplies
and/or destroy a given number of objects, and there may be a time limit in
which you need to complete the objectives (for some reason that is never
explained.)
The levels themselves are formed from coloured squares in a chequerboard
pattern, up to 8x8 floor squares in horizontal size, and with up to four
floors. Travel between different floors is via grey 'lift' squares that
can go up or down at most one floor. When objects, including the robots,
move around the level they may only do so along the cardinal directions
- they can not move diagonally - and only one object may occupy a given
square at a time.
{ width=320 }
{ width=320 }
{ width=320 }
{ width=320 }
## And so to Project Shinar
I've done game dev, on and off, for almost as long as I have had access to a
computer[^4], but almost none of the things I've done have really come close
to a state where I'd release them[^5]. I'd always either end up losing
interest or, more likely, end up going down rabbit holes trying to write my
own engine and end up never actually _making a game_ . During 2017 I got it
into my head that I wanted to learn Unity and hopefully make something I'd
_actually release_. I started casting around for ideas for what to make, but
inspiration eluded me.
Then one day I was clearing out boxes in the attic[^6] and came across [the manual ](https://archive.org/details/AstraPack_Tower_Of_Babel_Amiga/_Manual01_1200/ ) for
Tower of Babel in a box of old manuals and papers. This set me wondering, could
I use ToB as inspiration for a game to build while learning Unity? I didn't
want to straight up _clone_ the game, but it did start a chain of design ideas
for ways to take the core ideas of the game - the three robots, having them
coordinate to solve puzzles in a 3D world - and see what could be done without
the restrictions of late 1980s/early 1990s technology.
It was late 2019 before I'd actually worked out what I wanted to do, and
really started learning Unity to make it work. A key piece of the puzzle came
when playing with possible designs for turrets in Lightwave when Winamp[^7]
randomly chose the [Overture ](https://youtu.be/iOCKc917XdA?si=pjdvRslTB2wWsgGr )
track from the [TRON: Legacy soundtrack ](https://www.youtube.com/playlist?list=OLAK5uy_ncZEqIkjEY-qvlzl_5FVk3JUwGNGFxjwU )[^8]
and I suddenly realised: what if I took the core mechanics from Tower of Babel
and set it inside a TRON-like world inside a computer? Lots of ideas suddenly
started to slot into place
- The three robots are robotic agents being controlled by the player trying
to infiltrate a big computer system and extract data from it.
- The TRON-inspired setting allows for manageable assets: fairly low poly
objects with relatively simple textures that add glowing edges, and no
need for organic-like objects (making those has always been my nemesis.)
- The TRON-inspired setting also gives scope for naming things in a TRON-like
way: referencing computer parts, systems, or programs for areas the game
happens in, naming the robots after CPU assembler mnemonics (even M68k ones!),
and naming entities found in levels in a similar fashion.
- Time limits for levels can be explained as runtime limits on the
2025-01-26 15:56:40 +00:00
program the robots are working in.
2025-01-26 15:03:38 +00:00
- With the scope of more memory, CPU power, and graphics power, I can
allow larger levels, and more programming steps per robot.
I threw away the turret design I had been working on, and started building
something that looked like it could exist in the TRON world, and quickly came
to the conclusion that this _would work_
{ width=320 }
/// caption
The first turret object from 2019-12-17
///
Before long I had a list of features, NPCs, and level mechanics that took
ideas from Tower of Babel and enhanced them or added entirely new systems,
like wall-mounted signal emitters that beams could activate to send signals,
and those signals could turn things on or off, open barriers, or even move
lifts.
Progress was still really slow, though - I had a lot of trouble focusing in
the latter part of 2019 and early 2020 _for some reason_ . During the first
lockdown, [Ascorbius ](https://www.ascorbius.com/ ) started doing gamedev
livestreams and I regularly joined the chat for those. Those livestreams
and conversations really helped my enthusiasm, and I really got into the
development properly.
I'm going to fast-forward a bit here, because this is long and rambly enough
as it is.
By mid 2023 I had released several alpha versions of Project Shinar,
and by that point a fair bit of the game was working: levels could be
completed, a lot of entities had been made and worked, the built-in level
editor was functional, and I was starting work on the interface the player
would use to move between different zones in the computer.
[And then The Unity Debacle of Sept 2023 happened ](https://jeremiahfieldhaven.itch.io/project-shinar/devlog/588210/halting-development-in-unity ).
To say I was put out would be something of an understatement. I could have
carried on with Unity, realistically I wasn't affected by their change, but
I'd be forever worried about them doing something else that would cause me
trouble, and continuing to support them in any way just felt wrong.
So I needed a new engine. And while I wasn't starting from scratch again -
I knew many of the assets could be used in any other engine - I knew I was
going to end up redoing several years of work.
By mid-October 2023, I'd settled on Unreal as the replacement. Another
page will probably be in the works about my experience moving from Unity
to Unreal...
{ width=320 }
/// caption
The first screenshot I have from Unreal of work on the rebuild.
///
[^1]: If we had more budget, there'd be a wobbly effect around the screen
now, but wobbly effects? In this economy?
[^2]: I do really miss these small, local, family-run shops. Stewart Electronics
seems to have made it into the early 2010s by pivoting to AV equipment, but has
gone the way of so many shops like it.
[^3]: I am _fairly_ sure it was the [Astra Pack ](https://amiga.abime.net/games/view/astra-pack ).
DataStorm (another game in that pack, a Defender clone) was another source of endless
familiar competition as we battled for increasingly ludicrous high scores.
[^4]: Modifying type-in programs in where it started, and it just went down-hill from there.
2025-01-26 15:56:40 +00:00
[^5]: One Amiga game had come close... I was almost ready to get some friends to
2025-01-26 15:03:38 +00:00
test it when the 40MB hard drive that all the game sources were on shat itself.
I had no backups. Now I make backups.
[^6]: I swear they bloody multiply. Leave a few boxes in the attic, and next time
you look there's a dozen of them...
[^7]: Yes, I still use Winamp 5.666, with the [Drone ](https://www.wincustomize.com/explore/winamp/1263/ ) skin.
[^8]: If you've never listened to it, stop what you're doing and go listen to it now.
Seriously. Especially [Flynn Lives ](https://www.youtube.com/watch?v=9D-jnfz9L3c ). It
is an _awesome_ soundtrack, and some of Daft Punk's finest work.