Merrak's Isometric Adventures -- Alpha Build 2 Released

merrak

  • *
  • Posts: 2339
This will be time spend well. It is so important to find the right balance between showing enough features and also not overwhelm the player. Pinpointing the player towards features and design without making her/him feel stupid. Having those important aha-moments which create fun and make your game unique.

I build the levels always with a first gut feeling of course. I have a huge spreadsheet which shows which feature (for example the bomb which lest you blow up walls) is introduces and where it is active to find the right balance. Afterwards i test thje level myself until i have all the crashes and bugs out followed by user tests who dont know the level at all. This is always the most crucial part. Letting someone play and sitting next to her/him to take notes. I always ask to think out loud everything and that they cant hamr my feelings.

Cheers!

That's a good point. One thing that will give me some control over when features are introduced is the experience system. The player earns experience points by completing various objectives, and can spend them to read books to gain new skills.

Jumping is a good example. I was thinking about how I could redesign the central "hub" area to introduce jumping. But I realized I don't necessarily need to do this. There are a few areas that are inaccessible without the ability to jump. But they also happen to block off harder sections of the maps. By making jumping a learned skill, I can introduce the mechanic at a more appropriate time and also give the game more of a 'metroidvania' feel.

The only thing I dislike about the 'metroidvania' game is the amount of backtracking these games can have.

Tiny Dangerous Dungeons is a good example of a Gameboy style metroidvania where there's some good things to learn from. Overall I think AdventureIslands did a good job opening up new areas at a pace that kept the game engaging, but not overwhelming. But I did find fighting my way through the same corridors tedious once I've made a few passes through them. The map helps a lot.

I think my "hub area" may suffer from the opposite problem. There are four main stages in the game: four towers with two to three levels each, all connected by a hub area. Once the player kills an NPC, it stays dead. So once the hub is cleared, it is boring to keep traveling through.

One remedy I thought of is to add new corridors to the branch maps that will drop the player directly into another branch map. I'll need to re-think the order skills are obtained in so that there's a logical progression.

I'm working on a dark zone right now. While there's nothing prevent the player from exploring in the dark, it's hard to get very far without a light. If I put the light in another zone, then I need to have a passage from the room with the lamp to the dark zone.

Speaking of lamps--I now have dynamic lights working. So finally you can see in those dark rooms!


mdotedot

  • *
  • Posts: 1522
Quote
Jumping is a good example. I was thinking about how I could redesign the central "hub" area to introduce jumping. But I realized I don't necessarily need to do this. There are a few areas that are inaccessible without the ability to jump. But they also happen to block off harder sections of the maps. By making jumping a learned skill, I can introduce the mechanic at a more appropriate time and also give the game more of a 'metroidvania' feel.

Oh that would be nice. Jumping is a bit weird now and it would help if the player 'learns' it rather than present the default action at game-start.

Dynamic Lighting :  A W E S O M E

Hanging out in the Chat:  http://www.stencyl.com/chat/

Proud member of the League of Idiotic Stencylers! Doing things in Stencyl that probably shouldn't be done.

Bombini

  • *
  • Posts: 1224
Wow, the new gif looks awesome!

merrak

  • *
  • Posts: 2339
Progress! Towers of Vallas is starting to feel less like an engine prototype and more like a game. I've been busy working on maps and adding content.

The overall game map layout has stayed mostly the same as in August. There are four towers, three levels each, connected to a central hub. One thing that has changed is the intended progression. Originally, the player was supposed to pick a tower and complete it from bottom to top... sort of a Mega Man approach to level completion.

This idea hasn't panned out too well. For one thing, the higher levels are much too difficult. I could drop the difficulty of the top levels, but then the sense of player character strength gain is lost.

Game progression works out better if the player clears all the floor 1, then floor 2, and so on, maps. To keep the player from having to backtrack through the hub zone, I've started adding corridors between towers.

The player now has some more choices. Maybe they feel up to the challenge of completing a floor 2 early and reaping an early, strong reward.

Each tower has a rough theme: Shooters, Platforms, Dark, Melee

The platforming tower is the only one that can't be completed first, since the player will need to find the Jump skill book and enough exp to learn from it. Every other tower has an item or skill book that makes another tower's challenge easier.

Here are some other things I've been working on...

Little UI and graphical changes that make life easier. Chests now show with an open cover when all the items have been extracted. An icon shows what weapon is equipped. I thought about merging this icon with the move points meter, but later in the game you can find projectile weapons, and the ammunition count will have to go there.


I implemented reading. All skills are obtained by finding books, but the player must obtain a certain amount of EXP to learn from the book. Some books will grant experience when read.


A wide array of items can be found now: weapons, utilities (lamp and fuel), armor items, elixirs, books. I still haven't updated the inventory UI. There are already more than 15 items.


Here is a scene from Level3A (Dark Map, Level A). Dynamic lighting works on staircases. Longer readers of this thread may remember that staircases always caused all kinds of problems... so I'm glad to see that's working.


The lamp activates automatically when walking in and out of dark areas. The lamp burns fuel which must be found in various maps. It is possible to stumble around in the dark, but dark areas sometimes hide pits and traps.

This is another room in Dark Map A. It has the easiest gimmick to overcome--the dark, but in turn it has tougher combat situations.


Deep inside Dark Map A is the parry book. Shield Block and Parry are very useful, since they allow you to block enemy attacks when standing idle (and a shield is equipped) and swinging a weapon respectively. I was a bit surprised how much easier the lower level enemies became once those items and skills were obtained.

All armor items have an encumbrance value which subtracts from the player's max move points. The max move points cannot drop to below half the actual max (max-max? :o) but the player can gain strength by... what else, reading books! Rather than automatically gaining HP and move points, these are gained by reading just like all the other skills. So support your local library, reading is power 8)

So far I'm happy with the feeling of progression. There's a definite reward for exploration: tough situations become much easier after finding the right items and gaining enough exp. Since I have books that reward exp, I can now reward players for finding secret areas.

« Last Edit: December 11, 2018, 10:16:43 pm by merrak »

mdotedot

  • *
  • Posts: 1522
Great to read a little about planning,balancing and themes.
I am interested in the idea of the jump skill book. But I don't have a clear visual representation of such behavior in my mind so it will be interesting to see how you will do that

So you are sticking to the Game Boy resolution for Towers?
Will Temple of Idosra still be on the roadmap?

Do you focus on Towers because of the low resolution, which gives you more performance, or is it more convenient to
work/design on a smaller canvas?

Hanging out in the Chat:  http://www.stencyl.com/chat/

Proud member of the League of Idiotic Stencylers! Doing things in Stencyl that probably shouldn't be done.

merrak

  • *
  • Posts: 2339
...I am interested in the idea of the jump skill book. But I don't have a clear visual representation of such behavior in my mind so it will be interesting to see how you will do that

So you are sticking to the Game Boy resolution for Towers?
Will Temple of Idosra still be on the roadmap?

Do you focus on Towers because of the low resolution, which gives you more performance, or is it more convenient to
work/design on a smaller canvas?

One of the purposes of the skill books is to introduce complexity at a steadier pace. In the Alpha 1 version, you can jump right from the start. But in the first level there aren't any places to use jumping... so jumping kind of comes out of nowhere when it is finally encountered. I thought about revising the hub area to have some jumping, but I didn't want to throw too much at a new player's way. I remember watching my nephews play the original Idosra and they had a hard time getting used to basic walking around. Granted, the oldest was age 8, but I still think a gradual learning curve is more appropriate than what I had in the demo.

Temple of Idosra is definitely still on the roadmap. I wanted to have a web game that could act as a demo, and the low resolution makes it easier to get a web version that performs adequately. Although a few people complained about lag in the Alpha 1 version, I don't notice any lag at all. So optimization wise, I'm not that far off from my goal (albeit not there yet). My "rule of thumb" for code optimization is that if my code's efficiency is within one order of magnitude of my goal, I have a realistic chance of achieving it.

I may upgrade Temple of Idosra to full color, and target it to desktop only, where as it is now currently 8-color. It's a deviation from my earlier plans, but I learned two important things once the core features of the game engine got to running reliably: Desktop performance is way above what I envisioned, but Flash/HTML5 is worse. When I first outlined my plans for Temple of Idosra, I was developing on Stencyl 3.4. Stencyl 3.5 with the new OpenFL had a significant impact on my rendering speed, so a lot more is possible than I had first planned for.

I don't want to set that plan in stone yet, because there's still one more potential upset: I really need to fix the memory usage issues. I'm pretty certain that's the source of most of the lag. I have a lot of fast memory, so I don't notice it. I suspect, based on commentary, that 1MrPaul1 is on the other end of the spectrum and has a lot of lag. Everyone else falls somewhere between the end points. The Flash version claims 2.5 GB and that's just the Alpha 1 version with a handful of maps. I know how to fix it--I just need to sit down and do it. But that might open up more web options than I'm thinking I'll have right now.

Bombini

  • *
  • Posts: 1224
This sounds all great!
Let us know when we can test :)

merrak

  • *
  • Posts: 2339
This sounds all great!
Let us know when we can test :)

It'd be great to have another test version ready in January. I don't think it will take too long to finish the rough draft of the "A levels" of all four towers. So far I have level0 (the hub), 1A, 1B, 2A, 2B, and 3A in various stages of completion, with the B's mostly empty but the A's mostly done. Since the new intent is for the player to complete the A level maps first, the next demo should have approximately the first 1/3 of the game playable.

I've been doing a lot of play testing, tweaking balance and adjusting stats. My spreadsheet with its difficulty estimate has actually worked out pretty well, but needs some tuning as I expected.


I have three armor items and they make a big difference, so I need to adjust their locations so that the player finds them before giving up.

The big unknown in the next month's timeline is how long it will take to revise the memory routines. I can see that being a significant task. And of course, there are the various Flash-dependent issues that will need to be resolved. I've done a lot of play testing in the past few days on desktop, and have not encountered any of the timing bugs or map exit bugs that were reported on the demo. Exactly where the problem is occurring is a bit of a mystery.  :o

One thing I want to do is see if these problems persist on the HTML5 version. I can't even test on HTML5 without fixing the memory usage issue, though. Once I got an HTML5 version to compile, game loading slowed to a crawl.

merrak

  • *
  • Posts: 2339
New Year Update! I thought I'd leave a quick update on how things are progressing, just to ring in the new year. I've been busy at work lately, so most of these are December updates. Once I settle into my new semester I will have more free time and maybe get another demo up. I'm still aiming for a January demo. I have a lot of new features to show off  :o

Highlights: I got all of the "A" maps done--at least, a rough draft of them. I expect I'll need to revise some of them, but the start is there. For a reminder, the game is divided into four main areas ("towers") with three levels each (A, B, C), all connected by a central hub. So this means I have about a third of the maps done. But I actually have a bit more than that, because I already started a couple of the "B" maps before I decided on a final structure. Each tower also has a D level, but that map functions as a "boss level" and is small.

While I generally dislike mazes, I decided to lock all of the doorways out of the central hub area and make the player find the key. The thinking is that the player will find some of the power-up items before finding the key. I placed the key pretty deep into the map, and also spread out the power-up items so that the player will feel some progression in their power as they move away from the starting room.

I've also been going through the comments I received on the first demo. The big issue: Flash-dependent bugs, will probably be the last one I tackle. I'm hoping fixing some of the memory issues might also fix the Flash issues, or at least give me some more evidence to go on. I did stumble upon, and fix, some significant bugs regarding objects handling.

I got to the point where I couldn't even play test because there were too many objects to carry around. So I went ahead and revised the inventory UI screen. Here's what I have so far.


It's not perfect, but it is a lot more usable. You can select category by moving up/down, then select cards in a category using left/right.


The current card is always on top, and the correct name now shows on the prompt. I want to redo the cards graphics a bit so that the highlighted card is brighter, but that aside I think this is a significant improvement.

It also gives me a menu, so I can now add the usual save/load, volume, controls configuration, etc. that players expect to see.

Improvements already on my to-do list include: showing some quick stats about the player character (HP, experience points, etc.) in a more accessible location, highlighting the currently equipped items in some way, and maybe adding some decoration or something just to make the screen look nicer.

merrak

  • *
  • Posts: 2339
Shoot! I recently got projectile weapons working. It took a lot longer than anticipated, but most of that time was fixing a bunch of little bugs that this project uncovered. Here's the result.


The last major hurdle behind putting out another demo is memory. I've been putting it off long enough, so now it's time to dig into it. I wrote a small routine that dumps the memory contents of each sector as it's generated. All this time I was assuming most of it was graphics, but that isn't the case much at all.

This is the typical output, showing RAM usage (in MB) for each sector

Code: [Select]
Design_202_202_LoadGameBehavior.hx:795: Building map 6 of 10
MapNode.hx:1815: MAP: level2b
MapNode.hx:1817: Sort Buckets ............... 0
MapNode.hx:1818: Sort Nodes ................. 0
MapNode.hx:1819: wpOptimize ................. 0
MapNode.hx:1820: Make Auto Lights ........... 0
MapNode.hx:1821: Make Doorways .............. 0
MapNode.hx:1823: Connect Wall Planes ........ 142
MapNode.hx:1824: Make Walls ................. 0
MapNode.hx:1825: Make Statues ............... 0
MapNode.hx:1826: Connect Buckets ............ 0
MapNode.hx:1827: Construct Wall Faces ....... 19
MapNode.hx:1829: Make Visible Walls ......... 0
MapNode.hx:1830: Make Subsectors ............ 0
MapNode.hx:1831: Make Canvas ................ 0
MapNode.hx:1832: Sort By Dependency Graph ... 119
MapNode.hx:1833: Set Layers ................. 0
MapNode.hx:1835: Make Visible Wall Faces .... 0
MapNode.hx:1836: Compute Ambient ............ 0

The graphics are generated in the routine "Construct Wall Faces", which takes a marginal 19 MB compared to "Connect Wall Planes" and "Sort By Dependency Graph"

This is actually good news in a way. Most of the RAM hogs are living in the code that builds and sorts the walls. It shouldn't be too difficult to have the map editor build the walls and then save the relevant data in a file so that, when the game loads, it doesn't need to do all the calculations. It will also greatly speed up the game loading process, since computing the wall coordinates and order is what it's spending most of its time doing when it loads.

Right now total RAM usage is ~1150MB doing everything in about the worst possible way for storing data. It looks like dumping all the graphs can get me down to ~300MB, which is still high, but can be trimmed down further if I don't want to load all the level graphics at once.

Majora64

  • *
  • Posts: 518
Oh this is looking gorgeous. Is there a new link somewhere that I missed with the latest alpha build for mac? I haven’t gotten to dissect this beauty since you shared your older build on discord awhiles back. Im curious to see what’s changed and improved first hand! Is memory management going to be an issue in the future? I’d hate to run into issues playing this because my old crappy mac can’t handle it :P

merrak

  • *
  • Posts: 2339
Oh this is looking gorgeous. Is there a new link somewhere that I missed with the latest alpha build for mac? I haven’t gotten to dissect this beauty since you shared your older build on discord awhiles back. Im curious to see what’s changed and improved first hand! Is memory management going to be an issue in the future? I’d hate to run into issues playing this because my old crappy mac can’t handle it :P

Thanks :D Currently there is only the Alpha Build 1 I made (with Flash) back in November. I don't have a working Windows machine, but I could make a Mac version. My Mac Mini's OS is a few generations old, but that can be fixed. Maybe when I get further along I'll build a cheap Windows / Linux dual boot computer so I can make a Windows build.

Memory management is only an issue because up until now, I hadn't put any effort into optimizing it. I put all of my time into improving speed. I always had planned to go back and fix it up, but the Alpha Build 1 alerted me to just how serious the problem really is.

Separating the map building process from the game loading process will make a lot of things easier. RAM, as I saw, will improve by a lot more than I thought. But this will also open the door to making non tile-based maps. Tiles are convenient and makes it quick to build levels, but as far as the renderer is concerned, it only sees planes. I could easily make more intricate maps. The only things I'd need to rework are some of the physics routines (I use tile coordinates to optimize physics code) and I'd need a new map editor.

merrak

  • *
  • Posts: 2339
Alpha Build 2. GBJam 6, Day 165, I made a new alpha build of Towers of Vallas. I was on the fence whether or not to release this build. A lot has improved, but there's also a lot to go, including a few known issues that I haven't gotten to yet. Ultimately I decided I wanted something better than the first build to show interested people.

This time I made Desktop builds.




The game seems to run just about as well on my lowest-end 2015 Mac Mini as it does on my higher-end Linux machine. Level loading takes a bit longer on the Mac, but that's the only difference I noticed. I reduced RAM usage by a lot, but I still have some more work to do there.

Unfortunately, I do not have a Windows machine set up for development. The first thing I'd need to do is get a Windows computer... maybe build a cheap one. I tried making an HTML5 version and it works pretty well, albeit a little laggy in rooms with a lot of light recalculations. It does have a weird numerical bug with combat hit/miss calculations. Vallas uses a normal distribution to calculate strike damage. I suspect the algorithm I used to pick a random number from a normal distribution doesn't play well with HTML5, but that's only my best guess. Until I get to the bottom of that, the HTML5 version will have to remain on hold.

Screenshot S'Monday. Summary of improvements known issues afterward...

   

   

   

What's New.
Engine Features: Dynamic lighting, interactive objects (switches, doors, and keys). Reduced RAM footprint (about 80% to 90% less memory used). Skills system and books to gain skills.

Game Features: Added all "A" level maps and new objects to find in the hub (level 0) map. Added projectile weapons and different kinds of melee weapons. Added fuel for the lamp and dark areas to explore. Revised inventory system to make it more usable. Added UI icons to display equipped weapon, light fuel remaining.

Unresolved Issues: Did not yet add in-game tutorial features. Jumping animation still not implemented.

Known Issues: Hitting inventory buttons too quickly can cause a segfault crash. Projectile walls are currently out of commission. No player death or save system implemented, so player character can get permanently stuck if falls into a pit. Gameplay balance still questionable. Some enemies are probably too hard in low-level areas.

« Last Edit: February 06, 2019, 04:49:00 pm by merrak »

merrak

  • *
  • Posts: 2339
Windows Wednesday I now have a Windows build (link added to original post above). I remembered that a laptop computer I replaced a couple of years ago had Windows on dual boot. It's a seven year old laptop running Windows 7, but I managed to get Visual Studio 2015 up and running on it.

The game seems to run pretty well on it, even with the minimal RAM that the computer has installed. The Windows build even runs on Linux through Wine. So I think I have all my desktop build bases covered.

mdotedot

  • *
  • Posts: 1522
Very nice!

This is coming along great. I played for some time and I especially like that the enemies are not too bad. A lot of games it takes way too long to get past them. Ideally I would like a game without hack&slash and do only a quest.

I laughed when a known writer makes a game involving a book and reading it awards you experience points without actually reading anything :D :D

I stumbled upon a bug once I got the leather boots. There was a flashing rectangle (kind of like indicator that you are on a chest)
That rectangle appeared and disappeared when entering/leaving other rooms.

Personally I would like a map, maybe we get one later in the game? I easily get lost and I would like to know which parts I did visit or not.

Edit: And yeah running on Windows : the desktop build is a faster experience than anything that I played from you before. Loading is much faster and controls are smooth and fast.
Hanging out in the Chat:  http://www.stencyl.com/chat/

Proud member of the League of Idiotic Stencylers! Doing things in Stencyl that probably shouldn't be done.