Official RPG Codex Discord Server

  1. Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.
    Dismiss Notice

Vapourware Codexian Game Development Thread

Discussion in 'Codex Workshop' started by 20 Eyes, Feb 10, 2012.

  1. The Avatar Pseudodragon Studios Developer

    The Avatar
    Joined:
    Jan 15, 2016
    Messages:
    324
    Location:
    The United States of America
    No, not yet. My project can't be vaporware if it was never officially announced.
     
    • Makes you think... Makes you think... x 3
    • incline incline x 1
    • Balanced Balanced x 1
    ^ Top  
  2. barker_s Cipher Patron

    barker_s
    Joined:
    Mar 1, 2007
    Messages:
    781
    Location:
    Poland
    Codex 2016 - The Age of Grimoire Grab the Codex by the pussy RPG Wokedex
    It's been over a year since I last posted here in this thread. Now that my wife is in the hospital awaiting the birth of my second son and the older one is asleep, I guess it's a good time to give you guys an update.

    For those of you that haven't seen any of my previous posts, I have worked on a 4X strategy game for the past three years. It's basically a mix of Fall from Heaven and Master of Magic, with a little bit of HoMM3 thrown in as well. It fills a niche that I feel has been left empty for way too long - a fantasy 4X that depicts actual progress of your civilization in a non-linear fashion.

    Here's a screenie from a few months back.

    [​IMG]

    Planned features:
    • You play as a Suzerain. A powerful being gifted with immortality. Either as a dragon, lich, demigod, vampire or powerful wizard, you seek to fulfill your ambitions and eventually become a Living God - the supreme ruler of this land.
    • Pick a fantasy race and lead it through the ages. Each race will have a unique, branching, non-linear Culture Tree. Pick and choose the Traditions and shape your people as you see fit. Will they become peaceful forest dwellers, berserker pirates, nomadic beastmasters, seafaring traders or any combination of the above?
    • Use an array of interesting spells and rituals that actually affect the world around you and make for interesting gameplay. Less of a "+20% fire resistance" and more of a "round up 20 pops of a certain religion and sacrifice them in a blasphemous ritual to kill a god" variety.
    • Fight enemy armies in stack-based combat happening on the strategic map, that still allows for some tactical maneuvering. Some design decisions were made to mitigate the infamous stack of doom (e.g. soft cap on stack size - increasing the upkeep of units if they exceed your current stack limit).
    • Employ heroes and send them across the land to perform different tasks - they can lead armies, become province governors, investigate problems in cities, spy on the enemy and go dungeon-delving. Once they level up enough they can be retired in one of your provinces granting huge bonuses. Be aware that they have some limited free will and will plot against you and eventually go into open rebellion if they don't agree with the way you rule.
    • Explore a procedurally generated world full of wonders and monsters. Find unique places providing challenges and loot for your heroes. Learn the hard way that biomes and climate matter when you try to march your army through a desert or frozen wasteland. Each time a new world is generated it might also be assigned one or more World Modifiers making it a unique place. Perhaps this world experienced a dragon war in the past and now dragon bones litter the plains and it's more likely to find dragon-themed artifacts in your dungeon runs. Or maybe the moon orbiting this world is made of magical crystal and its phases decide how powerful magic is at a given time.
    • I'll stop here before this post turns into a design document.


    So what's been done this year? I was able to repurpose my heightmap generation algorithm from my 3D attempts to create varied, procedural coastlines. Thanks to compute shader magic it only takes a few milliseconds to redraw the whole map.

    [​IMG]

    Other than that, nothing flashy nor worth showing in a screenshot form. Mostly I've been working on nuts and bolts that lie in the background and did a lot of refactoring. You see, when I started coding this game I came to it with a very naive mindset - "This is a Hex class. It will do everything related to a hex, return its neighbours, hold data about its features and vegetation, display it and so on". Things I watched along the way like Quill's hex game tutorial lulled me into believing it was the right path. Soon, however, I realized that this approach was becoming unwieldy and I was going to paint myself into a corner unless I come up with some actual code structure and architecture. Thus began my research - I visited forums, dug into any 4X game code I could get my hands on to get some ideas. The only lesson I learned here is that most commercial game projects are monoliths, only maintainable through the sheer number of developers working on them.

    Eventually, I decided to go with good ole' MVC pattern variation as it suited my needs the most. At this point all my game logic is neatly separated from the presentation layer, meaning I can easily go back to 3D or even switch to ASCII if I desired. Another benefit of this approach is that I'm going to be able to create separate 'logger' views and run the game in kind of a 'headless mode' for testing purposes. Definitely going to come in handy when I start implementing AI and decide to pit them against each other.

    Another problem I'm quite proud of solving is the rule/modifier mechanism.

    When I wasn't coding, I was working on the documentation, coming up with mechanics, rules and so on. Eventually, I had to wrap my head around modifiers and how they'll fit into the existing code. So I started coming up with some scenarios:

    1. There's a spell that improves the attack by one - I guess I'll have to keep a list of modifiers on the unit which is accessible to the battle system, easy enough.
    2. Maybe I want there to be a religious tenet that gives your units combat bonus if they're fighting units of another religion - okay, so now battle system and religion system need to be able to communicate somehow.
    3. I came up with an idea for a spell. It summons the Avatar of Motherfucking Destruction. While the avatar is alive all demonic units on the map gain a significant combat bonus, all living units within three tiles of the Avatar receive fire damage every turn and also each turn that is a prime number all rivers turn into blood resulting in population growth maluses - how the fuck am I even going to approach it?

    My main problem was that whenever I came up with an idea and it did something new, I had to pause, scratch my head and think how it fits with the rest of the systems. If there only was something like a Universal Rule System. So I took a break from the game and created just that. Nailed it at the third iteration. It's a separate system that I should be able to use in other games as well. At its core it's just a glorified Command pattern - I have Rule objects which encapsulate some method (which may contain some other Rules). The Rule class also contains all the plumbing that allows me to apply triggers and modifiers. The Rule also keeps track of which Rule it's been fired from, so it's easy to create an effect that, for example, increases the output of DealDamage rule only if it's been fired from CastSpell rule which has a certain spell in its parameters. Finally, the Rule caches its output and is only recalculated when needed. All conditional logic is contained to Modifier classes which query the game model and modify the rules accordingly. All in all, it's a pretty neat system that should allow me to focus on content creation instead of digging into the code. Cons? It requires some boilerplate code, as you can't just create a method that does what you want and call it a day, but the headaches that it will help me avoid in the future should more than make up for it. My only worry is the performance overhead it may cause, but I already took some steps to prevent it and it's promising so far. Below is a screenshot from my stress-test console app.

    [​IMG]

    So that's it folks. Sorry for the wall of text, but I needed a place to vent my thoughts. I'll think of creating a blog once I'm a little closer to completion (I'm thinking three more years until it's somewhat playable).
     
    • Brofist Brofist x 11
    • Merry Christmas! Merry Christmas! x 1
    • nice nice x 1
    • Salute Salute x 1
    ^ Top  
  3. ERYFKRAD Barbarian Patron

    ERYFKRAD
    Joined:
    Sep 25, 2012
    Messages:
    23,691
    Strap Yourselves In Serpent in the Staglands Shadorwun: Hong Kong Pillars of Eternity 2: Deadfire Pathfinder: Kingmaker
    Can I play as barbarian? And does the suzerain get to take part in combat?
     
    • Acknowledge this user's Agenda Acknowledge this user's Agenda x 1
    ^ Top  
  4. barker_s Cipher Patron

    barker_s
    Joined:
    Mar 1, 2007
    Messages:
    781
    Location:
    Poland
    Codex 2016 - The Age of Grimoire Grab the Codex by the pussy RPG Wokedex
    Hey ERYFKRAD,

    1. No plans for barbarians at this time, sorry. The most important characteristic that defines a Suzerain is his immortality, which in turn allows him time to learn magic. You'll be able, however, to lead barbarian inspired nations.
    2. Yup, although some Suzerains are better at combat than others. Take a dragon for example, who's going to be a killing machine and able to solo early armies, but won't regenerate stamina like a normal unit. Instead, he'll have to go into hibernation, becoming very vulnerable and having to rely on standard units for protection. Also, the less stamina he has, the longer his nap will be, so it's going to be a tradeoff you might want to consider.
     
    • Brofist Brofist x 1
    • Interesting Interesting x 1
    ^ Top  
  5. zwanzig_zwoelf Graverobber Foundation Developer

    zwanzig_zwoelf
    Joined:
    Nov 21, 2015
    Messages:
    2,842
    Location:
    デゼニランド
    Made a teaser for my next upcoming release.


    Gonna finish the remaining bits of work and do a proper trailer soon™. :positive:
     
    • Brofist Brofist x 6
    • incline incline x 1
    ^ Top  
  6. ERYFKRAD Barbarian Patron

    ERYFKRAD
    Joined:
    Sep 25, 2012
    Messages:
    23,691
    Strap Yourselves In Serpent in the Staglands Shadorwun: Hong Kong Pillars of Eternity 2: Deadfire Pathfinder: Kingmaker
    I can avoid magic if I want to yes?
     
    ^ Top  
  7. Bad Sector Arcane Patron

    Bad Sector
    Joined:
    Mar 25, 2012
    Messages:
    1,659
    Insert Title Here RPG Wokedex
    The shaking wireframe is a bit distracting/annoying though, maybe fade out the vertices as they approach the screen center so they are visible near the edges but not visible in front of you?
     
    ^ Top  
  8. Tavernking Don't believe his lies Patron Developer

    Tavernking
    Joined:
    Sep 1, 2017
    Messages:
    920
    Location:
    Australia
    • Acknowledge this user's Agenda Acknowledge this user's Agenda x 1
    ^ Top  
  9. zwanzig_zwoelf Graverobber Foundation Developer

    zwanzig_zwoelf
    Joined:
    Nov 21, 2015
    Messages:
    2,842
    Location:
    デゼニランド
    It's a shield effect and it's much less annoying/distracting in the game itself. :smug:
     
    ^ Top  
  10. Prehistorik Scholar

    Prehistorik
    Joined:
    Sep 19, 2015
    Messages:
    116
    Location:
    Bololand
    With what software are you writing music? I like how it sounds, very atmospheric.
     
    ^ Top  
  11. zwanzig_zwoelf Graverobber Foundation Developer

    zwanzig_zwoelf
    Joined:
    Nov 21, 2015
    Messages:
    2,842
    Location:
    デゼニランド
    FL Studio. I usually use NI Massive for synths and random public domain drum samples.
     
    • Brofist Brofist x 2
    ^ Top  
  12. Bad Sector Arcane Patron

    Bad Sector
    Joined:
    Mar 25, 2012
    Messages:
    1,659
    Insert Title Here RPG Wokedex
    It doesn't download, when i click the Download button it shows a popup saying "invalid game".

    FWIW an easy (though a bit time and disk space consuming) way to check compatibility with "fresh" Windows is to download the Windows 10 ISO from Microsoft (use Firefox with the User-Agent Switcher addon to pretend you are using Linux or Mac, otherwise you'll get a downloader instead of the real ISO) and install it in a VirtualBox VM.
     
    ^ Top  
  13. Tavernking Don't believe his lies Patron Developer

    Tavernking
    Joined:
    Sep 1, 2017
    Messages:
    920
    Location:
    Australia
    Can you retry the download please? Apparently that's a problem for files that have recently been uploaded to itch.io. I just tried to download it and it works now
     
    ^ Top  
  14. Nathaniel3W Rockwell Studios Patron Developer

    Nathaniel3W
    Joined:
    Feb 5, 2015
    Messages:
    776
    Location:
    Washington, DC
    Strap Yourselves In
    Once in a while I have to go work on something different so I don't bore myself to death. I figured my armor break ability could use a new effect, so I made this. It was my first time using shatter in After Effects.

    [​IMG]
     
    • Creative Creative x 2
    • Brofist Brofist x 1
    ^ Top  
  15. barker_s Cipher Patron

    barker_s
    Joined:
    Mar 1, 2007
    Messages:
    781
    Location:
    Poland
    Codex 2016 - The Age of Grimoire Grab the Codex by the pussy RPG Wokedex
    Sure man, just as you can avoid magic in Master of Magic, but why would you (sounds like a good idea for an achievement though) :P ? I can see where you're going with this. Don't worry, you'll be able to mod the hell out of this game. Everything I have so far is data-driven, loaded from json files. You'll also be able to create new mechanics by writing your own rules in C#. So yeah, you'll be able to add a barbarian type Suzerain with no access to spells in his progress tree, instead relying on combat abilities, unlockable units and so on.
     
    ^ Top  
  16. Bad Sector Arcane Patron

    Bad Sector
    Joined:
    Mar 25, 2012
    Messages:
    1,659
    Insert Title Here RPG Wokedex
    Still says "invalid game". I also tried from within the VM and still said "invalid game".
     
    ^ Top  
  17. Tavernking Don't believe his lies Patron Developer

    Tavernking
    Joined:
    Sep 1, 2017
    Messages:
    920
    Location:
    Australia

    Alright, I've just published it so it's no longer a secret draft project. It works now even when I'm logged out (which would previously give "invalid game")

    So it should work now. If it doesn't, I'll send itch.io an email.

    https://tavernking.itch.io/test-project
     
    ^ Top  
  18. LESS T_T Prestigious Gentleman Arcane

    LESS T_T
    Joined:
    Oct 5, 2012
    Messages:
    13,313
    Codex 2014
    • Brofist Brofist x 3
    • incline incline x 2
    ^ Top  
  19. ERYFKRAD Barbarian Patron

    ERYFKRAD
    Joined:
    Sep 25, 2012
    Messages:
    23,691
    Strap Yourselves In Serpent in the Staglands Shadorwun: Hong Kong Pillars of Eternity 2: Deadfire Pathfinder: Kingmaker
    [​IMG]
     
    • Acknowledge this user's Agenda Acknowledge this user's Agenda x 1
    • Funny Funny x 1
    • Makes you think... Makes you think... x 1
    ^ Top  
  20. Bad Sector Arcane Patron

    Bad Sector
    Joined:
    Mar 25, 2012
    Messages:
    1,659
    Insert Title Here RPG Wokedex


    I spent some time yesterday writing a simple Christmas themed retro game for IBM PC. I didn't manage to finish it as i added a tiny bit of more features than originally planned and the level design became a bit too much for the "wing it as you go" approach i used. Since it is kinda topical (and after spending a few hours on it i was tired, bored and wanted to play some games :-P) i abandoned it. I might pick it up again in the future, though unless that future is "next year" it wont be that topical anymore.

    The idea was simple: Santa (of course) manages to lose all of his presents while flying over a small forest village, so now you have to pick them up and put them in the socks in each house. The idea would remain simple (and doable in a single afternoon) if i resisted the urge to add keys to unlock doors in the houses that you had to carry around across different houses to open some doors, then added some enemies (dogs) to make your life more miserable and a means to neutralize these enemies (treats/bones) that you also had to carry around across houses. With a persistent 16 screen (15 houses and one overworld) world, this wasn't something doable in an afternoon and without any sort of planning (like what "resources" each house provides and needs - and also taking into account dog placement so they wont maul your face if you need to visit a house more than once), it wasn't something doable at all.

    Feature creep, not even hobby one off games are safe from it :-P

    Well, the video above shows what i did until that point (sprite editor, map editor and game itself) as well as my naive bruteforced level design. I tried to play the game (starts around 3:40) but eventually ran out of keys. I deleted one key in the overworld which i had for debugging (but forgot when i deleted that as you weren't supposed to be able to find resources in the overworld) when i was showing the map, but even with that i'd get stuck a couple of houses later anyway.
     
    • Merry Christmas! Merry Christmas! x 6
    • Brofist Brofist x 4
    ^ Top  
  21. Tavernking Don't believe his lies Patron Developer

    Tavernking
    Joined:
    Sep 1, 2017
    Messages:
    920
    Location:
    Australia
    Got a lot of solid work done over the last few days

     
    • Brofist Brofist x 6
    ^ Top  
  22. The Avatar Pseudodragon Studios Developer

    The Avatar
    Joined:
    Jan 15, 2016
    Messages:
    324
    Location:
    The United States of America
    The dead rise for a random encounter.
    [​IMG]
     
    • Brofist x 8
    • incline x 3
    • nice x 2
    • Agree x 1
    • it is a mystery x 1
    • Excited! x 1
    ^ Top  
  23. Tavernking Don't believe his lies Patron Developer

    Tavernking
    Joined:
    Sep 1, 2017
    Messages:
    920
    Location:
    Australia
    Ladies and gentlemen, we have random world generation!

     
    • Brofist Brofist x 8
    • nice nice x 1
    • decline decline x 1
    • Excited! Excited! x 1
    ^ Top  
  24. zwanzig_zwoelf Graverobber Foundation Developer

    zwanzig_zwoelf
    Joined:
    Nov 21, 2015
    Messages:
    2,842
    Location:
    デゼニランド
    Prepare yourself, boyim.
     
    • incline incline x 6
    • Brofist Brofist x 2
    • Excited! Excited! x 1
    ^ Top  
  25. Viata Arcane

    Viata
    Joined:
    Nov 11, 2014
    Messages:
    8,155
    Location:
    Water Play Catarinense
    So, planning to make a "Das/Der/Die Geister" series?
     
    • Merry Christmas! Merry Christmas! x 1
    ^ Top  

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.