2021 was actually the most difficult year for me in terms of sheer brain-busting programming challenges since I began development way back in 2013. My goals for the year were simple: get the hard, technical stuff out of the way, and create a solid base for my future work on the game. 2022 is all about implementing actual structure and content into the game, which should hopefully be a lot more fun and a lot less stressful. I'm super excited about my upcoming work, and I can't wait to see this thing start to come together as a cohesive whole.
Got suggestions for what you want to see in the sequel or questions for me? Post them in the comments below, and I'll try to answer what I can!
(From here on out, I'll be referring to the sequel as "SOR2", but just to be clear, it doesn't have an official name as of yet.)
Here's just some of what I've been working on:
- Fully streaming open world
- The original Streets of Rogue was level-based. Upon entering a new level, the game would procedurally generate everything over the course of a loading screen. This is how a typical rogue-lite works.
Streets of Rogue 2 takes an approach similar to other procedurally generated open-world games, such as Minecraft. As the player moves along the landscape, the procedural generation system works its magic to determine what the world should look like, new chunks of data are streamed in, and old data is removed.
There’s nothing particularly new or innovative about how I’ve approached all of this. However, the major challenge comes in the form of integrating my existing systems into this new structure. AI, combat, items, world interactions, etc., there are very few aspects of the game that didn’t need heavy modification to function properly.
- World generation system
- At the start of a new game, SOR2 generates a large procedural world that is (for the moment at least) approximately 3,000 times the size of a SOR1 level. This world includes a full countryside to explore, complete with numerous cities and towns, and an interconnected road system.
- “Dungeons”
- When I say “dungeon”, I’m referring to any area that the player enters which isn’t a part of the main open world. This could end up being anything from a small cave to a multi-story underground city.
- New Save/Load system
- The original SOR allowed for saving at the beginning of levels. Nothing too fancy. However, saving the state of a large open world is… something more of a challenge. Bear in mind that SOR2 is a persistent sort of open world, more akin to Skyrim than GTA5. For example: if you blow up a wall, it stays blow’d up. If you punch a shopkeeper, he’s going to stay angry, even if you walk halfway across the world and return to his shop.
- New map systems
- SOR2 actually includes a couple of different types of maps. First off, there’s the “close-up” maps, which are similar to the maps in SOR1, but are now capable of following the player as they move around the open world. And second, there’s a much more zoomed-out world map, which shows a somewhat abstract version of the entire game world.
- Day/night cycle
- The game world changes in significant ways based on the time of day…
- NPC Schedules
- NPCs are now capable of pursuing different goals based on the time of day. For example, a Shopkeeper might leave their home at 8:00 in the morning, drive their car to a store that they own, work until 10:00 at night, and then return home.
- Vehicles
- There were two major challenges to solve when implementing vehicles: A. coming up with a solid driving model that’s both fun and not completely awkward due to the top-down nature of the game, and B. NPC artificial intelligence. I’m happy to say that both A and B are in great shape right now.
- Animals
- Yes, the game will have animals this time around. No, I’m not going to say which ones. Will they be playable?... We’ll see!
- Ability to build walls and floors
- SOR2 will allow players to create their own structures within the game world. While I don’t want to give away any specifics about the purpose of these structures just yet, I will say that they may have uses beyond what is typically seen in open-world sandbox games.
- Diagonal walls
- In the original SOR, you may have noticed that walls exclusively face 90-degree angles. Last February, I spent three torturous weeks re-jiggering my systems to allow for 45-degree angles as well.
- Level editor updates
- The level editor has been updated to accommodate new features of SOR2, such as the ability to construct large regions of the world.
- “Abstracted” AI system
- NPCs are capable of continuing to pursue their high-level goals regardless of their distance from the player, and with little performance cost. Just because you’re on the opposite end of the world, doesn’t mean NPCs can get out of doing their jobs!
- Full couch co-op support
- Returning from the first game, SOR2 still supports up to four players in split-screen mode. Players can act completely independently from one another, visiting different locations on the map at the same time, or even entering different dungeons.
- Full online multiplayer support
- Much like the first game, SOR2 will allow for players to jump into and out of a game at any time. Loads of time has been spent adapting online multiplayer to the game’s new open world structure.
- Early quest integration
- All of the quest types from the original game are fully functional in SOR2, with a number of new ones planned. I’m also intending to add some actual narrative to the quest system this time around…
- A new look
- While SOR2 retains the top-down perspective of the first game, the graphics are in the process of being overhauled to look super-stunning.
- Performance and memory optimization
- I spent close to two months optimizing the crap out of this game. Why so much time at such an early juncture? Imagine this scenario: four players in split-screen coop are driving their cars at high speeds in four completely separate locations on the map, in areas dense with buildings and objects. And they’re playing on a Nintendo Switch. For my own peace of mind, I needed to ensure that it was actually feasible to do this while maintaining a decent-ish frame rate and streaming in new data quickly enough.
- Bug testing
- A LOT of time has been spent working out the kinks in the features that I’ve listed above. My hope is that I won’t be constantly getting stopped in my tracks with showstopping bugs during my efforts to add “the fun” to the game this year.
Hopefully I'll have some more news for you in the coming months!