The Tower of Torment

https://gitlab.com/toastengineer/pyweek-28

An old-fashioned Wizardry style dungeon crawler, except, yanno, upside down.

Awards


Tar Bomba
Presented by rdb

The 3d Maze of Twisty Passages Award for a Maze of Twisty Passages
Presented by ntoll

Give this entry an award

Scores

Ratings (show detail)

Overall: 2.7
Fun: 1.7
Production: 3.4
Innovation: 2.9

46% respondents marked the game as not working.
Respondents: 7

Files

File Uploader Date
Pyweek_28_Tower_of_Torment.zipfinal
Python 3.7 source + PyInstaller EXE
schilcote 2019/09/29 02:14

Diary Entries

Where's Jonas?

We had a guy called Jonas join the team and never show up. If you're still around, I added a discord link on the project page, hop in. If I don't hear from you by the end of the day I'll assume something came up or something and take you off the project.

Anyway, we're doing an old fashioned WRPG in the vein of Wizardry or Might and Magic. Assemble party, climb tower, kill evil wizard, steal his stuff. First-person ASCII art pseudo-3D exploration with text based menus for combat. Got a guy who can do music, and we don't need art, but having another programmer would still be pretty cool.

Add a comment

Mockup

Just a quick mockup of what I'm thinking the exploration view will look like.

4 comments

Raycaster progress

Working on the raycaster. I think there may be some kind of bug here, not sure...

Add a comment

Boring parts all but done!



The picture is worth a thousand words, really - the boring support work is... mostly all done. Still need to enable the player to move the camera around and do the groundwork for the town menus, but that should be easy.

Once that's done, I can move on to the actual game part! Level generation and combat.

The biggest mistake I've made so far, by far, is holding off on trying to write visualization code when debugging the raytracer. I spent four hours trying to debug what I couldn't actually see, then spent about fifteen minutes writing this:
which showed the problem immediately.

The other big mistake was not resorting to brute force. I spent the rest of Tuesday trying to implement proper ray tracing - finding the exact distance to the wall in exactly as many steps as there are grid cells between you and the wall - and kept running into to issue after issue after issue, and finally gave up and used a naive brute force algorithm that just steps 1/100th of a cell at a time, accelerated with Numba, and it worked perfectly the first time. Between those two issues, Tuesday was a complete wash. Still, I've got time.

Add a comment

Minigames!

I don't like randomness in games - or, more that I don't like when randomness makes your actions not matter. You can position your soliders perfectly in the XCOM remake, but if the game doesn't feel like letting them hit their targets, then it doesn't matter what you do.

RPGs are traditionally very randomness dependent. Wherever the games Tower of Torment is emuilating would have rolled a die, I have the player play a minigame instead.


Strength and agility based actions are powered by a timing minigame; technical tasks are decided by Meavis Beaconing it up, and magic makes you do math.

I want the hardest wizard spells to make you factor binomials.

1 comment

All falls apart at the end

There's a ton of stuff I'm proud of on this project, esp. the dynamic music stuff. But, in the end, I ran out of time. Thinking back on it, I probably should've just ripped the combat system out rather than trying to fix it at the last minute.

So, why'd I fail? Well... to be honest, I think it just comes down to one single thing; the fact that I wasted a day trying to get the raycaster working efficiently when brute force worked just fine. If I'd started with the option I ended up using anyway I'd have a whole nother day and a half, which was really all I needed - heck, even just a few more hours to figure out the combat balance would have made a huge difference. Alas, it was not to be. If i'd stuck to standard Final Fantasy clone combat it'd probably have been fine as well, so there's a lesson - don't innovate just for its own sake, especially when you're under time pressure.

Still! It's a pretty cool walking-around-mazes simulator, except for when it decides to force you to play broken RPG combat instead. And the dynamic music stuff tieff and I put together is definitely awesome.

So, while I'm pretty disappointed in the version that I'm actually submitting to PyWeek, I think with another couple days of work this could be a pretty friggin' cool game.

6 comments