+Tarzilla Posted January 2, 2018 Share Posted January 2, 2018 I've been going through my many folders deciding on what games I'm going to finish in 2018 (and looking for where I put the 4th game we are going to use for IntyBASIC Showcase Volume 2) It reminded me that I wanted to do a post-mortem for the game that I put the most time into...Super Pro Gosub. I did a few things I'll never do again, so this post will highlight some of the tools and workflow I used to make Gosub a game I would want to play. I can't remember when Rev of Intellivision Revolution asked me if I would help him get Gosub ready for a cart release but it would have been late 2015, if I recall. Unfortunately I had an opinion about value, expected game design methodology, and what a customer should be entitled to for a release that people pay $60 or more for. Lots of cart space left, a more polished release would have a bunch of things: A reason to play, better scoring, high score, a reason to keep going (carrot and stick etc,) intermissions with a story, more variety, player customization, skill levels and so on. Rev said something to the effect of "show me, don't tell me" So, in no real order are some of evolutionary steps of Gosub to Super Pro Gosub 1) The Map Menu Screen. I wanted a way to replay certain maps and show off the graphics of the Intellivision. Above are the two quick ideas I threw out, Rev wisely chose the right hand one. It gave a more visual idea of zones (including that prerequisite...snow) At some point I added animated indicators that the Zone was open (having unlocked it from completing the previous 10.) A benefit of having zones is that you can replay completed zones which led to the idea of giving lives to the player, instead of the arbitrary 3 tries per level in Gosub. This leads to a risk/reward scenario because I wanted to know what was in those damn chests you had to touch to complete each screen. I also wanted the items to have a purpose, leading to the creation of the compass item, so you could exit back to the map to replay some easier levels to build up lives. How to build up lives? Well, giving a free one at the end of a zone or level would be arbitrary, how about one of the random items in a chest be a free life? So the various items began evolving. Rev didn't like that you couldn't stop the motion, I was just going to use an unused button to let the less skilled player stop, but quickly realized that would be too easy so I made the anchor another item that you find and have a limited number of uses for. That resulted in another issue, namely that the Octopus would only move if the sub did. Rather than re-coding the behavior I got the idea of adding more critters to avoid as you get farther in the game and that ignored the anchor. That led to the creating of the other critters and the story and intermissions and whole story fell quickly into place. Below is the basically final map screen as seen in paint.net, each zone is a layer, as is the grid. 2)Make some noise. I wanted a lot more audio so I created a bunch of new short tunes, Chris also created the nice loopable map screen music. I have zero musical bones in my body so I had to resort to hand converting notes from Synthasia videos from youtube. Here is a couple of examples: Fortunately I've created better ways of converting MIDI files for my use so the task is much less onerous now. 3)Reward the player with new stuff Otherwise known as carrot-and-stick I wanted to see new stuff as the game progressed, not just new mazes. A common game design technique is bonus levels. I decided that every 5 levels you should have a bonus level to allow the player to get some more treasure, especially if the random chests haven't been lucky. At first I had a simple shoot the octopi as they were falling game to get random items, but the story I was going to tell in the intermissions conflicted with that. The next idea was Slot Machine. First stab was this: I can't remember why I didn't like it, probably because a giant octopus with prizes for eyes didn't make sense but a sunken temple or ruin did. Below is the evolution of the skull slot machine: Notice how it changes as I adjust to card boundaries and re-use cards so I still have detail but also freeing up some to use for the octopus arms inside the eyes as they flick the prizes out. Initially I was going to give 3 tries, but decided getting random coins in the level chests would add a randomness to the over all game. To be fair to the player tho, if you hadn't found any coins, they would at least get one try...and might be rewarded more by the slot machine. To be continued. 10 Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted January 2, 2018 Author Share Posted January 2, 2018 Part 2 4) Intermissions A story quickly fell into place about the curious Octopus and the mysterious "weird thing." I didn't make sense for the octopus to be talking to himself so along came the guys...Guys..GUYS!!! Each of the gang used double high cards to get more details. If I had more time I would have used more than 2 frames of animation. I didn't go thru the effort of creating any kind of scripting engine, but came up with a trick to make the speech and thought bubbles easier to manage but I also didn't want to use the default Intellivision font due to it's size. Below is an example of some of the text, in many cases putting 2 letters in the same card. All text is printed using this command Print color $2600, "\290\291\292\293\294\295\296\297" During the intermissions I just redefine the cards Define 34,5,WeirdThing The bubble is also defined cards, with the speech or thought indicator a MOB 5) Levels The original game had 39 levels, and these were kept but were patched in many cases with things like the plunger to clean blockages, as well, zones were stylized to match the theme of the zone. Here are the original 39 levels plus the first menu screen that changed radically by the end. GosubLevels.pdf Breaking up into zones of 10 meant I now had to create 21 more levels to round out the 60 we would need based on 6 zones on the map. For awhile I was creating new mazes on graph paper but then I built this: It let me create really elaborate levels using all kinds of map pieces but the result was to jarring compared to the original 39 so I dialed it back a bit. The level editor is coming in real handy for my original game I hope to finish in 2018. 6) Jean-Luc to the Rescue At some point it was decided to use Left Turn Only's JLP board which opened up a whole new world of features, but mainly SAVE support. A game this long needs to be resumable, For awhile it was saving high score, color and type of sub and the highest level beaten. It proved confusing when entering a zone...should the player be taken to the highest reached? What if the player wanted to replay an earlier level? So I changed the save to save what zones were opened and added the animation on the map to show which ones were open. Another benefit of save support is after you complete the game a variable is set and saved that adds a new menu option to view the intermissions as a complete story. It also unlocks something else To be continued... 7 Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted January 2, 2018 Author Share Posted January 2, 2018 This space for rent 7) Details make the difference The octopus will laugh at you when you die, it still makes me chuckle when I see it. Since the octopus was in the intermissions, it didn't make sense that he be killed by your torpedoes like in the original game where the purpose was to murder as many of them as possible Now, the octopus runs away stunned only to come back again from a corner. I also added the quick little score that rises up. Since his friends are in the intermissions, it made sense to have them in the game part as well. One of the things I think turned out the best is the starfish that guards the chest. It only took a few lines of code and uses a circle data table like so: CircleX: Data 0,1,2,3,4,5,6,7,8,9,9,10,10,10,10 ,10,10,10,9,9,8,7,6,5,4,3,2,1, 0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-9,-10,-10,-10 Data -10,-10,-10,-10,-9,-9,-8,-7,-6,-5,-4,-3,-2,-1 CircleY:Data -10,-10,-10,-10,-9,-9,-8,-7,-6,-5,-4,-3,-2,-1,0, 1,2,3,4,5,6,7,8,9,9,10,10,10, 10,10,10,10,9,9,8,7,6,5,4,3,2,1,0 Data -1,-2,-3,-4,-5,-6,-7,-8,-9,-9,-10,-10,-10 Normally CircleWidth and CircleHeight are equal to 1, but by varying them in later zones, the circle becomes bigger in one or both directions, and is randomized in the last zone. Sprite 6,ChestX+visible +HIT+ circlex(RoamerLoopFrame)*circlewidth, chesty+doubley+CircleY (RoamerLoopFrame)*circleheight, spr06+spr_YELLOW There is one level that is designed to introduce a "holy shit, I have to move!" factor. Normally the starfish starts moving as the level starts, (unlike the octopus,) this lets you sit an analyze the maze. However there is a level where the starfish will circle right into if you aren't paying attention. This unpredicabilty comes into play later where the circle is random and bigger. 8 )Cheat while testing Each level needs to be repeatedly tested. Program in cheats to help testers play thru, including a few times where I had to test an entire playthru from 1 to 60. Sometimes cheats stay in the game's final code , I'm not sure since I don't have a copy of the final cart, I'll have to dig thru my emails to find the final version I sent to Joe Z. for burning to confirm by the final part. 9) Get some help/friends While I like to think I can do the box art, manuals, and the programming/graphics (but not music as stated above ) I'd never have finished the game for the PRGE 2016 deadline (big thanks to Joe or making the last minute production of the carts!) So thanks to MThompson for doing the manuals, awesome work as usual. If you are working on a game, ask him to do the manual so you can do the programming. 6 Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted January 2, 2018 Author Share Posted January 2, 2018 The final chapter In post #2 I mentioned a level editor. Here is a fairly lengthy animated gif of it in action. It would have let me mix the different zone themes, particularly in the last Volcano zone. Unfortunately if I had used it the way I intended I would have had to go back and recreate every maze because the style change would have been too jarring if I had just used it on the last 10 levels. I didn't want to miss PRGE and it would have meant a proper refactoring on how the levels were stored and rendered. The plan was to save each level to flash then pull the data out of the jzintv flash file then do some sort of rle compression before adding to the code but I changed my mind before even attempting it. I checked the final BIN delivered for burning and I did leave in a cheat, someday I'll reveal it... All in all, I'm really happy with how it turned out, showing what can be done with the Intellivision to make a complete game that has a story and a reason to play to the end; modern features like game saving were a very welcome bonus, all my original games will use this feature along with high score saving where appropriate. After any creative endeavor you will always see things that you could have done better or notice just one more thing you could have added but a deadline like PRGE also makes you evaluate the cost vs reward factor of a change or addition, especially in this day and age where the number of people actually playing the homebrews they bought is so small. About the only thing I'd really do different is get some things in writing up front...I'm glad that I got to see the final product at PRGE, someday I might even get my copies to go on my shelf with some of the other titles I have contributed to. The End. 4 Quote Link to comment Share on other sites More sharing options...
+cmart604 Posted January 2, 2018 Share Posted January 2, 2018 Cool. I have actually played the original more than Super Pro. Clearly I need to spend more time playing this 1 Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted January 2, 2018 Author Share Posted January 2, 2018 Cool. I have actually played the original more than Super Pro. Clearly I need to spend more time playing this You should, you might end up being the first person to actually finish it on cart It saves your progress don't you know? 1 Quote Link to comment Share on other sites More sharing options...
+cmart604 Posted January 2, 2018 Share Posted January 2, 2018 You should, you might end up being the first person to actually finish it on cart It saves your progress don't you know? Well that sounds like a challenge Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted January 2, 2018 Share Posted January 2, 2018 You should, you might end up being the first person to actually finish it on cart It saves your progress don't you know? I believe I finished it. Super Pro Gosub is an awesome game! -dZ. 1 Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted January 2, 2018 Author Share Posted January 2, 2018 I believe I finished it. Super Pro Gosub is an awesome game! -dZ. You'll know if you finished it when you see the 5-Story option on the menu. This lets you watch the intermissions as one continuous movie. Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted January 2, 2018 Share Posted January 2, 2018 You'll know if you finished it when you see the 5-Story option on the menu. This lets you watch the intermissions as one continuous movie. shot0108.gif Well, it's been a long time since I played, so I honestly don't remember. I'll have to check it, but I know I played the heck out of it! I also hope that if you plan to include the Government Waffle Project in the next anthology, that you give it a similar "Super Pro" treatment. -dZ. Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted January 2, 2018 Author Share Posted January 2, 2018 Well, it's been a long time since I played, so I honestly don't remember. I'll have to check it, but I know I played the heck out of it! I also hope that if you plan to include the Government Waffle Project in the next anthology, that you give it a similar "Super Pro" treatment. -dZ. Please check when you have a minute, I'm generally curious if you finished it since in this day and age I don't believe that many people actually play the new games, let alone finish the ones that have an ending 1 Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted January 2, 2018 Author Share Posted January 2, 2018 Updated Post #2 Quote Link to comment Share on other sites More sharing options...
wolfy62 Posted January 2, 2018 Share Posted January 2, 2018 I love the Super Pro version, yet life and time for everything else seems to hold me back as i get older! I want to play 100 games, yet after working all day my body has been telling me to rest. juggling life.... Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted January 5, 2018 Author Share Posted January 5, 2018 Updated post #3 Quote Link to comment Share on other sites More sharing options...
Rev Posted January 7, 2018 Share Posted January 7, 2018 Nice to see development stories. 1 Quote Link to comment Share on other sites More sharing options...
+nanochess Posted January 8, 2018 Share Posted January 8, 2018 Cool history bits! Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted January 23, 2018 Author Share Posted January 23, 2018 Updated post #3 with the summary. 2 Quote Link to comment Share on other sites More sharing options...
intvnut Posted January 24, 2018 Share Posted January 24, 2018 That level editor looks pretty cool! The plan was to save each level to flash then pull the data out of the jzintv flash file then do some sort of rle compression before adding to the code but I changed my mind before even attempting it. BTW, for those wanting to do something like this on a future title, there's a little-known feature in jzIntv called EmuLink. EmuLink lets you make calls directly into jzIntv for various services, one of which is file I/O. You have to enable it on the command line, in order to prevent jzIntv from becoming a vector for malicious cod I put together a couple small demos, including this file I/O example. The rest of the documentation is mainly in macro source files. See emu_link.mac, el_fileio.mac, el_joy.mac, and el_event.mac for an idea of what EmuLink can do. I wonder if it makes sense to extend IntyBASIC to make use of it this interface? Otherwise, it should be possible to write some inline ASM to invoke the emulator calls. It would make writing level editors like this easier, possibly. Easier than pulling data out of the flash image file, I'd hope. Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted January 24, 2018 Author Share Posted January 24, 2018 That level editor looks pretty cool! BTW, for those wanting to do something like this on a future title, there's a little-known feature in jzIntv called EmuLink. EmuLink lets you make calls directly into jzIntv for various services, one of which is file I/O. You have to enable it on the command line, in order to prevent jzIntv from becoming a vector for malicious cod I put together a couple small demos, including this file I/O example. The rest of the documentation is mainly in macro source files. See emu_link.mac, el_fileio.mac, el_joy.mac, and el_event.mac for an idea of what EmuLink can do. I wonder if it makes sense to extend IntyBASIC to make use of it this interface? Otherwise, it should be possible to write some inline ASM to invoke the emulator calls. It would make writing level editors like this easier, possibly. Easier than pulling data out of the flash image file, I'd hope. Good thing I mentioned it It sounds like I could directly write the decls of the backtab to a text file on the file system instead of having to parse the screen into flash...interesting and useful, thanks! 1 Quote Link to comment Share on other sites More sharing options...
intvnut Posted January 24, 2018 Share Posted January 24, 2018 You have to enable it on the command line, in order to prevent jzIntv from becoming a vector for malicious cod Amusing typo given the seafaring context. 1 Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted January 24, 2018 Author Share Posted January 24, 2018 Here is another sample level i dug up The bubbles are deadly, but you could try to sneak past them along the lava (knowing that the periscope doesn't have collision detection) but you need to get the key first, which starts off next to the octopus...depending on where this level would have ended up, there might be a starfish guarding the chest. 1 Quote Link to comment Share on other sites More sharing options...
freewheel Posted January 24, 2018 Share Posted January 24, 2018 So from a technical standpoint, this level editor is pretty damned cool. But I gotta ask - is it simply building up a tilemap for later export? Or are you "doing" something with other bits, like setting collisions or special actions? Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted January 24, 2018 Author Share Posted January 24, 2018 So from a technical standpoint, this level editor is pretty damned cool. But I gotta ask - is it simply building up a tilemap for later export? Or are you "doing" something with other bits, like setting collisions or special actions? For my purposes it is literally just building the screen, collisions in the game were standard mob to card collisions, so, if you touched anything with the body of your sub you died. The letters specify starting spots of things like the Sub, Octopus, Chest etc. I don't see any reason it couldn't do more, I just didn't need it. The editor itself isn't really amazing, the cursor over the tile set at the bottom is a Mob, as is the cursor moved by the disc. The side buttons move the selector over the tiles, the third button stamps it in the level. How you ask? Whatever card that is under cursor is just copied to the spot the other mob occupies. I might release the source for reference after I'm done my next game (code named "16" for now) it certainly isn't general purpose but could be modified. I'll be trying Joe's file I/o examples about as soon as I get a couple hours free. Quote Link to comment Share on other sites More sharing options...
+DZ-Jay Posted January 24, 2018 Share Posted January 24, 2018 The final chapter In post #2 I mentioned a level editor. Here is a fairly lengthy animated gif of it in action. editorani.gif Wow, that's pretty slick! I recall intvnut created a bare-bones level editor for Christmas Carol, back when the plan was for him to design various levels. It wasn't as rich as yours, you pressed keypad buttons to select a tile type and then just move a cursor and pressed an action button to "stick" it on the background. It worked well enough for him to design one level that actually made it to the final version. It's actually one of my favorite levels. I perhaps should find it, clean it up, and release it just for kicks. Anyway, I hope someday you get to make a special "Super-Duper Pro Gosub" with a built-in level editor that lets players save their custom levels into Flash RAM. That would be great! -dZ. Quote Link to comment Share on other sites More sharing options...
+Tarzilla Posted January 24, 2018 Author Share Posted January 24, 2018 Wow, that's pretty slick! I recall intvnut created a bare-bones level editor for Christmas Carol, back when the plan was for him to design various levels. It wasn't as rich as yours, you pressed keypad buttons to select a tile type and then just move a cursor and pressed an action button to "stick" it on the background. It worked well enough for him to design one level that actually made it to the final version. It's actually one of my favorite levels. I perhaps should find it, clean it up, and release it just for kicks. Anyway, I hope someday you get to make a special "Super-Duper Pro Gosub" with a built-in level editor that lets players save their custom levels into Flash RAM. That would be great! -dZ. Probably not Gosub but "16" might have a custom zone where the player can edit, save and play a custom zone. 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.