It took a few hours and I had to rewrite the code for doors, but I've got keys and locks working. A major part of any metroidvania is exploring new areas and finding some kind of impassable barrier - a wide pit, a wall of metal blocks, a force field, etc. It's only later when you find some new ability or item - double jump, rocket launcher, field disabler, etc - that you can go past the barrier to a new region. You can abstract this idea of obstacles and items as "locks" and matching "keys". In one game the "red locks" and "red key" might represent actual locked doors and a key, in another game they might be security cameras and a disguise, and in another game they might be tall walls and the ability to climb walls.
You can see the locks and keys in my latest update. The icons are ugly and hard to distinguish, but it's just for example and will be redone many times before the project is over. Consider this the "alpha version" artwork.
[I just noticed that sometimes the first room in a region doesn't connect to the other rooms. A bug I just fixed when I redid that code for my latest work.]
when visiting a region for locks and keys:
place an unused key
put the matching lock on one door to each unvisited adjacent region
any unlocked doors to adjacent regions are added to a "to do" list
visit each unvisited adjacent region
after visiting all regions for locks and keys:
for each unlocked door on the "to do" list, put a random used lock
This ensures that each region has a key that you need to proceed to the neighboring regions. Although; since each region can connect with its neighboring regions multiple times, it's theoretically possible that getting the first key would be enough to explore all regions.
Compile and Execute Java Online - Try and experience the best cloud computing where you can edit, compile, ... Compile Preview | Execute | Share Code.
Sunday, October 30, 2011
Randomized metroidvania 04: map keys and locks
Subscribe to:
Post Comments (Atom)
Popular Posts
-
Announcing hspec - BDD for Haskell I've long been interested in Behavior Driven Design and it's something that is strangely missing ...
-
This tutorial will be written in Java since I'm familiar with it and it's a decent enough language, has many tools and libraries, a ...
-
More vague notes about rogulikes; this time about monster difficulty or Power Curve . In I Rule, You Rule, We All Rule Old-School Hyrule th...
-
[FD's BlOg] - Adnet là một hệ thống quảng cáo trực tuyến trên nền tảng mạng Internet mà công cụ chính là các Website & Blog. Adnet ...
-
Bước 1 . Sử dụng ảnh rocket.psd để import vào trong dự án Flash của bạn. Xây dựng 2 layer để chứa tên lửa và phần nhiên liệu bị đốt cháy. Bư...
-
Dijkstra's algorithm is a useful algorithm for roguelike developers to know. It basically calculates the distance from a starting point...
-
I'm rarely a fan of posts that are in list form (e.g. "Top 10 tips for writing top 10 lists") but I seem to be in "list m...
-
[FD's BlOg] - Khi mà các comment ở một bài viết nào đó trong blog của bạn trở nên quá nhiều, nó sẽ làm cho blog của bạn dài lê thê, là ...
-
[FD's BlOg] - Hôm nay mình lại quay về với menu cho blog. Và bài này mình xin giới thiệu 9 kiểu menuside cực kì bắt mắt. Xem demo trực ...
-
"Make a game — Take it to Market — Earn $1" I'm in. I just got haxe setup on my computer and I'm ready to start working on...
No comments:
Post a Comment