Main Menu

Vecalabeth

Started by Pix, August 25, 2018, 06:31:22 AM

Previous topic - Next topic

Pix

Update 10th Nov 2021

I've released the final version and updated the attachment on this first post.


--------------------------------------------------

I've been working on a port of Akalabeth which was one of the first ever RPG's created back in 1979 by Richard Garriott for the Apple 2. It used nothing but line graphics making it a perfect fit for the Vectrex. The game sold about 30,000 copies at the time which then led him to quit his degree and start the Ultima series and ultimately Origin Systems.

I've worked from the original source code to try to get things as close as possible. There is an overhead world view and first person dungeon sections. This is a seriously primitive game but an RPG on the Vectrex has to be something of a novelty at any rate. I started this ages back but kept running into memory issues because of the large amount of array data required. The file handling that was added in the last firmware made all the difference as I was able to shift some of the data into files and load it as needed.

I should say that this is by no means finished but all the elements of the game are there and it's just a case of refinement and bug fixing from here on out. The code is a bit of a mess - it's quite nice to be able to just bash stuff out and not worry about other people understanding any of it actually. I've basically dashed the majority of this off in my spare time over the last week. The menus need improving to say the least and there are definitely bugs but it's essentially playable from the little testing I've done.

If you want to give it a go, button 1 is for using things, select in menu, enter castle, climb ladder, etc.. , button 2 attacks, button 4 shows the equipment and you can equip weapons from there. There is a manual for the original game in the long list at http://www.pixsoriginadventures.co.uk/downloads/ under Miscellaneous.

Suggestions/bug reports are welcome. I haven't had chance to do proper testing on this yet but I'm aware of some issues with secret walls showing up when then shouldn't, menus being too hard to use, and I'm unconvinced by the dungeon generation even if I have followed the original code. Expect dead ends but the dungeons do shift every time you go up/down a ladder so you can possibly backtrack.


Edit - I've uploaded a new version having done some playtesting, fixed a load of bugs and generally made things more playable. There are certainly improvements I could still make but it's a fair representation of the original game now and stable enough for me to have been able to finish the game.

Further Edit - "Final" version now attached

Iwantgames:)

Awesome! just played a quick round as I died pretty early since I spent all my gold on a sword and shield and didnt have enough for much food. I didnt see where it actually says how much gold I had when in the Item purchase screen so didnt realize I was almost out lol. Anyway looks and plays awesome! Great work!

Iwantgames:)

I got quite a bit farther this time, made it to the carrion creeper quest :) really ment to start looking into attempting to port a old game design I did to the Vec32 but this game just kept me wanting to keep playing lol.

Pix

Glad you are enjoying yourself. I was beginning to wonder if anyone else was ever going to play it. I did get a tweet off Richard Garriott (Lord British himself) saying he wanted a copy for his own Vectrex and I pointed him here to buy a Vectrex32. No idea if he has or not though.

There is a trick which makes beating the game much easier but I won't give it away. Watch out for those gremlins when you get that far by the way even if they don't look that menacing.

It doesn't really take advantage of the vector graphics at the moment. At some point, I'm going to have a go at adding some smooth panning on the overworld and pseudo 3D movement around the dungeons. Probably nothing too realistic, something like Lands Of Lore if you ever played it. If I ever get that done, I might see whether it's possible to throw some music and sound in there.

Iwantgames:)

That's pretty cool about Richard wanting a copy! Ultima has always been one of my favorite series so playing this on my Vectrex is sweet :) I'll most likely be bringing it to Free Play Florida in November so it'll get some playtime then :)

cjherr

I just found out about Vecalabeth, and it's the reason I'm going to buy a Vertex 32.  :)

Iwantgames:)

Quote from: cjherr on September 29, 2018, 07:39:06 PM
I just found out about Vecalabeth, and it's the reason I'm going to buy a Vertex 32.  :)

Lol it's what made me finally decide to buy one too :) had been on the fence but this showed me how awesome this piece of hardware can be :) I've begun working on my own thing too (not nearly as cool tho)

cjherr

Yep, just need a little time to come up with the cash, but the Vectrex 32 (and Vecalabeth) are at the top of the priority list.

Vectrex32

Quote from: Pix on August 25, 2018, 06:31:22 AM
but kept running into memory issues because of the large amount of array data required. The file handling that was added in the last firmware made all the difference as I was able to shift some of the data into files and load it as needed.

You're not the only one to run into memory issues. Another V32 owner ran into them too and brought them to my attention. As a result, firmware version 1.17 compiles the BASIC program into a much more compact form. It's almost embarrassing how much memory I was able to free up.

I don't know if this means you'd be able to fold those data files back into the main program - and I'd understand if you don't want to expend the effort to try - but it's something to consider.

- Bob

Vectrex32

Any news on Vecalabeth? Have you continued to develop it?

- Bob

Pix

I haven't but will be diving back into it at some point in the next few months as it happens. Everything worked as such, the only real improvements I'd like to make were around interface and getting the flickering down. I'm not going to claim it's the most fun game to play but it's pretty much faithful to the original experience as is so I don't want to change too much.

While it's based on the original source code the dungeon generation is crude and gives no guarantee of a path through the level so I might want to look at that. Later versions of Akalabeth fixed this so it's a question of which one I'm trying to copy.

The reason I'm going back to this is that I'm helping out with a Kickstarter for part 2 of a book about Origin Systems which is starting next week. Among the rewards are going to be 20 copies of Vecalabeth, complete in zip lock bags with cover artwork signed by Richard Garriott himself. We are planning on just having a credit card USB stick for the cheaper end but also some with a Vectrex 32 so we will be looking to buy several of these from yourself at some point if successful. Given we are charging money for it, I'll be going back to make some improvements + I have someone lined up to help with playtesting this time around. The bulk of the first version was essentially written over one week of evenings so I would hope I can get it more polished with a little effort.

Other than that, I was watching a video that mentioned 3D Deathchase on the ZX Spectrum the other day and thought what a great Vectrex game it could make. It's dead simple and probably wouldn't be all that tricky to port either so I'm giving that serious consideration for the next project.

jgkspsx

#11
I'm sad to say that I get to the character class selection, and it locks up after that. I think my Vectrex is struggling to supply the V32 with enough power (based on the fact that the screen flickers violently on and off when copying files to and from it), so maybe that's part of the problem? I have not recapped the power board and I wonder if that's an issue.

EDIT: Looks like it was a change in the system libraries. ^ has been redefined to mean a bitwise XOR:

At line 130, column 56: E166: Illegal operand. '^' is now bitwise XOR, not exponent; use pow()

So I edited line 130 to say:

outsideMap[x, y] = INT(POW((Rand() MOD 101) / 100.0, 5) * 4.5)

After that, I was able to play a game without any issues except getting lost trying to do the stupid "kill a rat" quest.  :P

Pix

Yes, I just about remember fixing that one. I do have a newer version of the code but won't be releasing it publicly here until after the backers of the Kickstarter I mentioned above have received their copies which should be in a couple of months or so. Covid has kept pushing things back or it would already have happened.

I've made a few small fixes and improvements like a title screen, always reachable maze exits and persistent mazes that don't move every time you go to a new floor. You aren't missing too much with the version on here though. I'm just waiting on playtesting now - I've been holding out for months for my playtester to get set up with a Vectrex + Vectrex32 which he finally sorted out today as it happens.

Pix

It's been a long time coming but the last of the Kickstarter rewards got shipped out last weekend. I've updated the attachment on the original post with the final version for anyone wanting it.

The changes are:-
  Lucky number actually implemented (i.e. same number will equal same dungeon)
  Always solvable dungeon maps
  Slightly more responsive interface
  Title screen
  Persistent dungeons that don't shift every time you return to them
  Flipped all the monsters to be the correct way round
  Various bug fixes

I'm fairly pleased with how it all turned out. It's a faithful representation of the original I reckon. I would have quite liked to add music but without writing something original, I couldn't use anything from the Ultima series without breaching copyright. This wasn't an option when this was getting an official release.

Vectrex32

Excellent! Thank you for updating us here!

- Bob