Tag: Old-School RPG


  • I had a couple of days off this week, so I couldn’t work on the puzzles as I wanted, but still, some progress was made this week:

    This Week’s Highlights

    • Persistent Dungeon Levels: Dungeon floors now save their state between visits, keeping enemies and objects exactly where you left them.
    • Rendering Fixes: Adjusted object rendering positions to ensure everything displays correctly on screen.
    • Dungeon Cleanup: When the player exits a dungeon, enemies are now cleared. I don’t know if this could be exploited somehow, testing will reveal it I guess.
    • Doors & Keys: Added doors to dungeons that can be unlocked with keys, which can be found during exploration.
    • New Enemy: Introduced the Giant Rat to the dungeon.

    Preview

    A lock door in the dungeon
    A Giant Rat and a Void Warden behind it

    What’s Next?

    This coming week, I’m shifting focus to dungeon layout and puzzle design. Currently I have a small labyrinth I created in a couple of minutes but I want to start creating purposeful, hand-crafted spaces that challenge players and make exploration more meaningful.

    Thanks for reading and supporting Solivium! Stay tuned for the next update!

  • It’s been two weeks since the last update! Last week, I participated in the 7DRL Challenge, but unfortunately, I didn’t manage to finish and launch anything. Still, it was a valuable experience, and now I’m back to working on Solivium with renewed focus.

    This Week’s Highlights

    • Enemies in Dungeons: I added enemies in the dungeons, they use the same mechanics as in the overworld, although I had to tweaks some stuff like ranged attacks to prevent enemies trying to attack you from beyond a wall, I also added this feature to the overworld.
    • Dungeon Combat System: The combat works pretty much the same as in the overworld with the exception that you don’t have to pick a direction to attack.
    • Ladders: Added ladders to allow players to climb up and down between dungeon levels.
    • Dungeon Tweaks: Made various refinements to dungeon gameplay, mostly on the rendering side, there are still some objects that render a bit offset than they should, I need to think on a better way to do this.

    Preview

    Managed to escape with 1 hit point

    What’s Next?

    Next week, I’ll continue expanding the dungeon mechanics by:

    • Adding more enemy types to increase variety in combat.
    • Beginning work on puzzles.
    • And hopefully finishing this first dungeon.

    I’m happy with how the game is turning out, I’m thinking if releasing a demo with this dungeon would be a good idea or if I should make more before any public release, what do you think?

  • This week was a bit slower due to life commitments, but progress on Solivium continues! The dungeon mechanics are taking shape, I’m also been thinking and designing on how to make them distinct and not just a buch of caves in the world.

    This Week’s Highlights

    • Dungeon Navigation: The player can now move freely inside dungeons.
    • World Mechanics in Dungeons: Features like the stats screen (Ztats), inventory management, and other core mechanics are now accessible inside dungeons.
    • Treasure & Loot: Treasure chests and loot screen have been added to dungeons.

    Preview

    What’s Next?

    Next week, I’ll be participating in the 7DRL Challenge, so Solivium will be on a short break while I focus on a brand-new roguelike for the jam. Stay tuned for updates on that project!

    Thanks for following along, and I’ll be back soon with more Solivium updates after the challenge!

  • This has been quite the productive week, I worked on more mechanics for the town and finally started working on the dungeons, here’s what I did:

    This Week’s Highlights

    • NPC Dialog System: Players can now talk to NPCs. While it’s not as complex as Ultima IV, NPCs provide hints that may help during the adventure. I’m still wondering on how complex should I do this system, I’m trying no to do the game just following the standards but just what I like to see and do in RPGs.
    • Merchant Interactions: Talking to merchants now opens the store UI, allowing players to buy and sell items.
    • Shops:
      • Added specialized weapon shops and armor shops to towns.
      • Each store offers a selection of items for players to purchase.
    • Item Requirements: Equipment now has stat requirements, meaning players must meet certain conditions to equip specific weapons and armor. I might also add a class requirement down the line, I’m not sure yet.
    • New Command: ‘D’ for Drink:
      • Pressing ‘D’ opens the potion inventory.
      • Healing potions now restore hit points when consumed.
    • Dungeons Begin!
      • Added dungeon tiles to the overworld.
      • Implemented first-person rendering for dungeons, for now the player cannot move in them, but the rendering was the difficult part, now I can focus on all the mechanics in there.
      • The dungeons are going to work like in the early Ultima games or like in Dungeon Master, I have some ideas of how I would make them interesting and unique.

    Screenshots and Previews

    Talking with NPCs
    Buying weapons
    Selling armors
    Drinking potions menu

    What’s Next?

    For next week, I’ll continue expanding the dungeon system by:

    • Implementing movement within dungeons.
    • Adding doors, and interactive elements.
    • Creating dungeon encounters and mechanics.

    The addition of dungeons marks a huge milestone for Solivium, and I’m excited to keep building on this foundation. Stay tuned for next week’s update!

  • I took this week to work on refactoring the game’s memory management. It’s not that it needed it, I’m pretty sure that I could do all the worst practices and the game would still run fine. But I did it as a learning exercise.

    What Changed?

    • The game now minimizes the use of malloc and free, reducing dynamic allocations wherever possible.
    • The only systems that still use dynamic allocation are:
      • Game data loading (loading assets and initial world setup)
      • Saving and loading the game state
      • Managing the game state during runtime

    While this is not visible to the players, it does helps me with development since now I have less allocations to track whenever I find a memory leak or other type of error.

    This week’s video

    What’s Next?

    Next week, I’ll return to working on town mechanics, including:

    • NPC Dialogue System
    • Merchants Buying & Selling Goods
    • Bribing Guards to Remove Bounty

    Thanks for sticking with me through this behind-the-scenes update! Optimizing memory may not be flashy, but I still had a lot of fun working on it. See you next week for more exciting features!

  • This week was a good one, I managed to work on some features that in my opinion are starting to shape the game. I just passed the first month milestone of development. Here’s what I’ve done:

    This Week’s Highlights

    • Character Creation Screen: Players can now create their character by:
      • Entering a custom name.
      • Allocating 50 points between Strength, Defense, Agility, Intelligence, and Charisma (more stats may be added later).
      • Selecting a class: Warrior, Rogue, Mage, Cleric, Ranger, Bard, Chemist, or Monk. Each class provides extra stat points and starting gear.
    • Leveling Up System: A new screen allows players to allocate additional points to their stats upon leveling up.
    • City Tiles and Scene Management: Added a city sprite and laid the groundwork for switching between different game scenes while keeping the world persistent.
    • Bug Fixes & Memory Leaks: Continued improving game stability by fixing memory leaks and addressing various bugs.

    Screenshots and Previews

    Tileset for the first town
    Character creation
    Level up screen

    What’s Next?

    For the upcoming week, I’ll focus on expanding the world and interactions:

    • Designing the First Town: Creating the first explorable town.
    • Entering and Exiting Towns: Implementing scene transitions between the overworld and towns.
    • Adding NPCs: Introducing NPCs with basic movement patterns.
    • Quaffing Potions: Allowing the player to consume potions directly from the inventory.

    Final Thoughts

    Thank you for following along with the development journey! Stay tuned for next week’s update as Solivium continues to evolve!

  • Welcome back to the Solivium development blog! This week marked another productive step forward as I worked on refining core mechanics and expanding the game’s functionality. Let’s dive into what’s new in Week 4.

    This Week’s Highlights

    • Loot UI Improvements: Players can now specify how many items to loot when dealing with stacks larger than five.
    • Enemy Combat Stats: Enemies now have their own combat stats for their damage, defense and damage if they use a ranged weapon.
    • Treasure Chest Logic: If a treasure chest spawns on top of another, the two chests now combine into one.
    • Title Screen: A title screen has been added, with options for starting a new game, loading a saved game, or exiting.
    • Save and Load Functionality: The game can now save and load the player’s data, enemies, and treasures on the map.
    • New Enemy: Shadow Hound: A fearsome enemy that acts twice per turn, but are easier to kill.
    • Bug Fixes: Fixed additional memory leaks.

    Screenshots and Previews

    What’s Next?

    For the upcoming week, I’ll focus on the following features:

    • Character Creation: Allowing players to customize their character at the start of the game.
    • Leveling Up: Introducing a progression system tied to experience points.
    • Entering and Exiting Towns: Expanding the game world with interactive towns.

    Final Thoughts

    This was a busy week, I had several things to attend in my personal life, but I still feel like I did some good progress, working on the saving system was probably the most consuming task, but it seems to be working fine for now.

    Thank you for following along with the development journey! Your support and feedback are always welcome. Stay tuned for next week’s update as we continue building the world of Solivium.

  • Welcome back to the Solivium development blog! Another week has passed, and the game is steadily growing in depth and complexity. This was a productive week, here’s what I accomplished.

    This Week’s Highlights

    • Stats Screen: A new stats screen has been added, activated by pressing “Z” (for “Ztats”). While in this screen, the game is paused, allowing players to review their character stats at any time.
    • Experience System: Players now gain experience points for defeating enemies, bringing us closer to implementing progression and leveling mechanics.
    • Console UI Improvements: The Console UI now supports scrolling, making it easier to review game events.
    • Inventory System:
      • Added player inventory and integrated it with the UI.
      • The inventory displays item names, dice modifiers, and quantities.
      • Equipped weapons and armor now influence the damage dealt and received, adding strategic depth to equipment choices.
    • Ranged Combat: Introduced the bow as a new ranged weapon for the player.
    • Treasure Chests and Looting:
      • Added treasure chests to the game world for looting.
      • Defeated enemies now drop treasure chests with loot tables.
      • Implemented a looting screen (still working on limiting item quantities for looting).
    • Bug Fixes: Fixed memory leaks to improve stability and performance.

    Screenshots and Previews

    Here’s a glimpse at this week’s updates in action:

    Ztats screen
    Ztats screen
    Inventory Screen
    Inventory screen
    Treasure chests in the world, also, I need to initialize the gold variable to 0
    Looting screen

    What’s Next?

    Here’s what I’m planning to tackle in the coming weeks:

    • Add enemy weapon and armor stats to damage calculation
    • Allow to specify how many items to loot
    • Create a simple title screen for testing moving between scenes
    • Saving and loading the game
    • A character creation screen
    • Leveling up system

    Final Thoughts

    I’m happy with the progress this week, specially because the inventory system tends to be one of the tasks I don’t like doing too much, I’m expecting to start working on towns in the next couple of weeks.

    As always, your feedback is invaluable. Let me know what you think, and stay tuned for next week’s update!

  • Welcome back to the Solivium development blog! It’s been an interesting week working on the combat system and learning how to store and play audio next to the sprites in the data file.

    What’s New This Week?

    This week’s focus was on enhancing gameplay mechanics and polishing combat interactions. Here’s what I accomplished:

    • Turn Management: Players can now pass their turn using the ‘P’ key or the spacebar.
    • Character Sheets: I’ve introduced character sheets for both the player and enemies. For now they only have stats for: name, HP, Strength, Defense and Agility.
    • Combat Enhancements:
      • Enemies now attack both at melee and ranged distances, ranged attacks can collide with mountains.
      • The player can now attack enemies, currently limited to melee range.
      • Strength, defense, and agility stats are used to calculate hit chances and damage.
      • Enemies also spawn outside the player’s view every 15 turns, although they might not appear if I can’t find a valid location for spawning them, I’m thinking on changing this to keep searching for a spawn location. I’m not so sure yet.
    • Sound Effects: Added sound effects for key actions like walking, attacking, and missing attacks. I’m using old school chiptunes sounds, I’m not sure if keep them, remove them or change them for more modern sounds, I think it would be weird to have modern sounds with everything else being oldschool.

    Screenshot

    Here’s a glimpse of what’s new in Solivium this week:

    What’s Next?

    This next week, I plan to:

    • Create the inventory system.
    • Allow the player to equip armor and weapons and use their stats during combat.
    • Create ranged weapons to allow the player to attack from a distance.
    • If I have enough time I will create loot and experience when defeating enemies.

    As always, thank you for following along with Solivium’s development. Your feedback and support mean the world to me. Stay tuned for more updates, and don’t forget to share your thoughts in the comments!

  • Welcome to the first development blog for Solivium, my indie game project that seeks to capture the magic of old-school RPGs while shedding the constraints of technical limitations. This project is a personal love letter to the early Ultima series and the games that shaped the golden age of computer RPGs.

    What is Solivium?

    Solivium is a turn-based RPG built in C, leveraging a CGA-inspired palette for that nostalgic retro aesthetic. My goal is to create a game that feels like it belongs to the early 1980s but with the freedom to design without the hardware restrictions of the time. The game combines classic mechanics like grid-based movement, stat-based progression, and turn-based combat with modern refinements to provide an immersive and challenging experience.

    Progress So Far

    Building Solivium has been an exciting journey so far. Here are the key features I’ve implemented:

    • Renderer: I’ve set up a custom renderer using GLFW and glad. This forms the foundation of the game’s visuals, showcasing the CGA-style graphics and maintaining the old-school charm.
    • Map and Console UI: The game now has a working map and console interface, allowing players to navigate the world and receive feedback as they play.
    • Player Mechanics: The player character is functional with movement.
    • Turn-Based Logic: I’ve implemented turn-based mechanics, ensuring that both the player and enemies act in turns.
    • Enemy AI: I’ve begun work on enemies. At this stage, they can follow the player.

    What’s Next?

    Moving forward, I’ll focus on refining enemy behavior, adding combat mechanics, and expanding the game world.

    Thank you for joining me on this journey. I’m excited to share more updates and hear your thoughts as the game develops. Stay tuned for the next post, where I’ll dive deeper into the combat system and showcase more of the world of Solivium!