diff --git a/docs/assets/images/shinar/shinar_turret_2019.png b/docs/assets/images/shinar/shinar_turret_2019.png new file mode 100755 index 0000000..afd15df Binary files /dev/null and b/docs/assets/images/shinar/shinar_turret_2019.png differ diff --git a/docs/assets/images/shinar/shinar_work_2023.png b/docs/assets/images/shinar/shinar_work_2023.png new file mode 100755 index 0000000..49bbe51 Binary files /dev/null and b/docs/assets/images/shinar/shinar_work_2023.png differ diff --git a/docs/assets/images/shinar/tob_front1.png b/docs/assets/images/shinar/tob_front1.png new file mode 100755 index 0000000..d00ec5f Binary files /dev/null and b/docs/assets/images/shinar/tob_front1.png differ diff --git a/docs/assets/images/shinar/tob_front2.png b/docs/assets/images/shinar/tob_front2.png new file mode 100755 index 0000000..5039023 Binary files /dev/null and b/docs/assets/images/shinar/tob_front2.png differ diff --git a/docs/assets/images/shinar/tob_front3.png b/docs/assets/images/shinar/tob_front3.png new file mode 100755 index 0000000..c619367 Binary files /dev/null and b/docs/assets/images/shinar/tob_front3.png differ diff --git a/docs/assets/images/shinar/tob_level1.png b/docs/assets/images/shinar/tob_level1.png new file mode 100755 index 0000000..5152524 Binary files /dev/null and b/docs/assets/images/shinar/tob_level1.png differ diff --git a/docs/assets/images/shinar/tob_level2.png b/docs/assets/images/shinar/tob_level2.png new file mode 100755 index 0000000..857be22 Binary files /dev/null and b/docs/assets/images/shinar/tob_level2.png differ diff --git a/docs/assets/images/shinar/tob_level3.png b/docs/assets/images/shinar/tob_level3.png new file mode 100755 index 0000000..ee5d4f4 Binary files /dev/null and b/docs/assets/images/shinar/tob_level3.png differ diff --git a/docs/projectshinar/history.md b/docs/projectshinar/history.md new file mode 100755 index 0000000..ddd8d8f --- /dev/null +++ b/docs/projectshinar/history.md @@ -0,0 +1,189 @@ + +# 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? + +The name of comes from a somewhat strained attempt at providing the +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. + +![Screenshot](../assets/images/shinar/tob_front1.png){ width=320 } +![Screenshot](../assets/images/shinar/tob_front2.png){ 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. + +![Screenshot](../assets/images/shinar/tob_level1.png){ width=320 } +![Screenshot](../assets/images/shinar/tob_level2.png){ width=320 } +![Screenshot](../assets/images/shinar/tob_level3.png){ width=320 } +![Screenshot](../assets/images/shinar/tob_front3.png){ 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 + program the robots were working in. +- 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_ + +![Screenshot](../assets/images/shinar/shinar_turret_2019.png){ 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... + +![Screenshot](../assets/images/shinar/shinar_work_2023.png){ 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. +[^5]: One Amiga game had come close... i was almost ready to get some friends to +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. \ No newline at end of file