Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

Project Suburbion - Subway riding & item trading roguelite

A topic by Auroriax (Tom H.) created Feb 29, 2020 Views: 216 Replies: 7
Viewing posts 1 to 7

Hiya! I participated in 7DRL last year and made a game that I later renamed Hexagone. My intention is to complete the 7DRL challenge this year as well with a significantly different game!

Here's a short bit of narrative background for the game:

In 2050, all means of traffic (except public transportation) have been outlawed, including cargo vehicles. Nowadays, many traders board the subway every day to travel across the urban area, buying low and selling high, to make ends meet. You need to pay your debt today: can you multiply your investment simply by toying with supply and demand?

Two important bits there: the player moves by traveling through a subway network (keeping track of timetables and the railway planning), and can buy and sell stuff on stations (buying low and selling elsewhere at a profit). I worked on the first bit today!

Here's my initial concept of how I want the map to be generated before the game starts:

1) Make nodes on a grid. Each new node must be either perpendicularly or diagonally adjacent to another node, preferably more.
2) For each node, determine location name and blurb.
3) Create routes that connect nodes.
4) For each node, determine item prices (slightly based on nodes surrounding it) & amount of stock for each item (around 20 of them).
5) For each line, determine frequency (mostly around 30 min but between 10 and 60 minutes) and travel time (between 5 and 20 minutes.)
6) Put player with some supplies and some money on a node that has at least two connections.

This is how it generates maps: it keeps track of what tiles are on the "border" of the map (the tiles in black), picks one square at random (in this image it becomes sort of a rounded rectangle), and then adds any new parts of the border.

Then I added a generator for random station names, so you can distinguish them by more than just their location. I kind of designed the names to sound like neo-Dutch, sci-fi sounding terms with typically Dutch word parts mixed in. It generates some super silly stuff ("Nadu-dyke", "Yunnuijs" and "Ninduloft", to name a few) and I kinda love it! In a similar vein, I also made a subtitle generator to describe the environment or points of interest near the station. This is less silly and acts more as randomized world-building, describing places as "Bridge-connected jungle" and  "Underwater Library". Finally, I added tooltips to display this info! Here's the result:

(The font is Cooper Hewitt!)

The next problem is that I need to connect the nodes in a way that makes sense. That's the next problem that I'm going to tackle. I hope my scope isn't going to be a problem, I'm going to end up with a slightly more complex game than last year, so I need to be careful.

Good luck if you're also participating this year!

Day 2, a couple of new things! The game now generates connections between nodes. For a connection to be created, two stations need to be in a straight vertical, horizontal, or diagonal line, no matter how much the lines are away.

At this point it was getting a bit messy (for example, the  "travel time" numbers clutter up the diagram a lot), so I spent some time cleaning up how the diagram looks, and add some rules to prevent too many connections from generating in busy spots.

Now the connection information will only appear on nodes you hover over with the cursor (although the tooltip is blocking some of that information currently, need to look at how to resolve that). Today's end result is this:

Finally, I made sure you can pass the time and have all lines indicate when the next train leaves (the upper number) as well as how frequently this train leaves (e.g. this train leaves every X minutes). It is still a bit cluttered, so I'm gonna look into how to present this nicely.

The player is now also on the grid, and my next priority is to have the player move around on the grid, and have that influence time properly. After that, I can start on the trading bit of the game!

(1 edit)

Day 3!

I cleaned up the UI again, hopefully making it clearer what the numbers on the connections are supposed to mean.

I spent some time to implement functionality allowing you to walk across the map. You don't see it in the GIF, but they also calculate traveling time correctly. And you need to hold the mouse button for a short while to confirm traveling there.

And I implemented that items exist!  Currently there are six items, each with their own price range. The items all have kinda vague names to make it slightly mysterious (What are bulbs? Flower bulbs? Light bulbs?). For each station, a random value within that price range is chosen, so different stations buy and sell products at different prices. I also added that nodes track if they've been visited, and if they are, they reveal pricing information in the tooltip, even if you're not on that station.

Taking all that together, here's how the game looks now:

Next up, I'm going to implement that players can buy and sell items at stations, as well as easily compare prices of items between the different stations. At that point, most of the core gameplay will be implemented, after which I hope to focus on polishing and making some kind of onboarding. Something else I'm thinking is about is adding curation to the level generator, to generate a couple of worlds and picking out the most interesting one based on a couple of rules. I hope I can finish this game by the end of the jam!

It's been a while since I posted, but I've made progress!

I've implemented the basics of selling and buying on day 4:

On day 4, I also added that you have to reveal the network gradually while you play, so you start mostly blind:

After that, I've mostly been focusing on some much needed UI tweaks. To begin, tooltips show how much the value of a certain items differ from your current station:

And then I got the shop UI in order:

I still want to tweak it a little bit, but it should already be a lot more clear what you can do and how you can do it.

Another thing I added is the ability to compare the value of a single item over multiple stations:

Which should be super useful for players who've already explored the majority of the map.

Right now I still need to get the economy of the game in order to make it fun to play. The goal of the game was first set at 10.000 euro, but my brother pointed out that there's not enough money in the economy to achieve that goal, even if you play with unlimited time! So my next priority is to make that more balanced, and also redesign the trading UI a bit to make it  more obvious what's happening there.

I added some decoration lines in the background, they have very low alpha to I hope players will understand that these are just for decoration.

And I managed to finalize most of the game's UI yesterday:

Compared to the last screenshots, there's a bit more clarity and consistency overall. I wanted to have it a little more complex than this, but I finally think it's expansive enough to help players make meaningful decisions about playing the game tactically.

I also added some music and sounds to the game in almost the exact same way as in my entry from last year. I even used music from the same artist (Meydän)!

The final stuff I want to fix before finishing the game:

- Make economy smarter (price value based on multiple variables)
- Make a way to reveal/unlock cheats
- Enforce lose and victory condition
- Add net value charts (a stretch goal, but I also had some graphs in last year's entry, so it shouldn't be too hard)

I really like how the game has been shaking up so far, so I hope I can make these final touches happen before I run out of time.


such an interesting concept, cant wait to play it :)

Thank you! I've just submitted it, so enjoy (and if you want, let me know what you think!)

I have just submitted my game, since my 7 days were nearing their end. Play it here, and vote for it here.

I have done pretty much everything I wanted to do in my list from the last post:

- The economy is now a bit smarter in general. For example, if a station has 8 connections, Fluid prices will be a round value between 10 and 20 chosen at random, but if such a station only has two connection, the random range becomes 12-20. In this way, there is a slightly higher chance that interesting places to sell stuff are near the edge of the map, without completely excluding the possibility that a high-ranking station pops up in the middle of the city.

- If you hold the right mouse button on top of the project title in the bottom left corner, you'll be presented with a list of all shortcuts you can use. I also added some extra cheats to increase the time limit, or get one of each item. I even added one where you can replace the "YOU" text on the map with an @.

- I really liked the solution I used for last year's entry, where if the player gets a game over, the game takes a snapshot of the current game screen, and use that in a new room using the screenshot as the background.

- The net value chart appears both in the net value tooltip, as well as in this really huge variant in the end of game screen:

But that's not all!

- I've added that you can place up to 20 pins with the right mouse button. I really wanted players to be able to mark interesting locations on the map, and this was the thing I could quickly implement to allow that. So far it's been pretty useful!

- I have added the little pie charts that show how high the relative price of an item is to the shop UI as well. I hope it's not too confusing for new players, but once you know what you're doing, these are the easiest way to check if buying that item is worth it or not.

- I added a mode where you can see what the net value for your all stations. Meaning that, if you would travel to that station with your current inventory, you would get that amount of money if you sell everything you have there. This is the easiest way to see where you can make a huge profit, provided you've already explored most of the network. Simillarilty, there's a mode that shows the total item stock for all stations as well.

- I ended up balancing quite a bit, and ended up decreasing the amount of money you need to make to 3499, and increase the frequency of trains so they ride more often. Stations also kept generating outside of the screen and under the UI, so I reduced the maximum grid side, and ended up decreasing the amount of stations to still make the map feel like a metro line. I feel the current balance does put you under pressure, while it does feel very fair to play, although the random generation of the economy still has a tiny bit too much influence on the difficulty of the game.

If you happen to own Game Maker Studio 2 and want to dive into the source code, then be my guest, as well! (I especially recommend looking at the Dutch Sci-fi town name generator.)


Overall I think this is a good step up from my last entry Hexagone, and both games really compliment each other.

In Hexagone, I didn't want to use words and keep the gameplay simple, to make it easy to learn how to play. For Suburbion, I really liked having to design the UI in such a way that it helps players make their tactical decisions as frictionlessly as possible, and I think I've succeeded doing that in almost every area. But it doesn't explain itself as well as Hexagone does for first-time players, except for the blinking "Buy something!" text so players won't go in completely clueless. That places these games at opposite sides of the spectrum, and I'm really curious what effect this distinction will have on my game's ranking this year.

While I have a bit more thoughts on this, I've already written too much this week, so I'm going to wrap it up here. Please, don't forget that you can play the game now. Thank you for reading, and enjoy the rest of 7DRL 2020!