Demo Eysir: Return of the Dungeon Emperor (80's style CRPG) [+Devlog]

Discussion in 'Work in Progress' started by nacho_chicken, Nov 20, 2017.

  1. nacho_chicken

    nacho_chicken Member

    Joined:
    Jun 21, 2016
    Posts:
    222
    I've been bedridden the past couple of days and thus unable to use my computer, but now that I can I want to talk a bit about customization and settings. First, a brief story. I promise it's related to the rest of this post.

    I bought a game on Steam, and it looked right up my alley. Fast-paced action with deep mechanics. However, there was a major issue. The game ran far too fast. Everything was in hyper-speed. Movement, timers, gravity, everything. Upon looking it up, I discovered it was due to the game tying logic to the display's refresh rate. The settings menu was barebones, with no options for refresh rate. I could forgive it if this was an older game and the dev was several projects beyond it, but this was their only product and they were otherwise still supporting it. In support forums, the dev would dismiss complaints about this issue with the response "just change your display's refresh rate". To me, that was a slap in the face. I understand untying a game's logic from framerate on a finished product can be more trouble than it's worth, but not even putting in the minimal effort it would take to cap the framerate? Unacceptable, especially when you're charging good money for your game.

    It was that experience that steeled my resolve to support players being able to play my game hassle-free regardless of their setup. To accommodate this, I've made plenty of display options available for the end-user to modify. Support for things like:
    • Fullscreen mode w/ stretching options (Fullscreen, Aspect ratio matching, Integer scaling)
    • Arbitrary resolutions and aspect ratios that are not 16:9
    • Framerate selection (game logic is separated from framerate)
    • High quality text font, for any who may have issues reading the default 4x8 font
    • Vsync toggle
    If you want to mess with some of these things, most of them are already functional in the latest demo release (Alpha 0.1) inside "SETTINGS.INI". With the help of others' fine work writing extensions, I also hope to add borderless windowed support in the future. Whether you have a beaten-up old laptop or a top-of-the-line gaming PC, you will be able to benefit from the breadth of options available.
     
    DirectShift and stainedofmind like this.
  2. AegisNinja

    AegisNinja Member

    Joined:
    Oct 8, 2016
    Posts:
    6
    This looks awesome! Good to see people making rpg's like this again.
     
    nacho_chicken likes this.
  3. busterwbond

    busterwbond Member

    Joined:
    Apr 19, 2018
    Posts:
    11
    great art and aesthetic!
    rlly wanna try this
     
    nacho_chicken likes this.
  4. nacho_chicken

    nacho_chicken Member

    Joined:
    Jun 21, 2016
    Posts:
    222
    @busterwbond Thank you for the kind words. Hopefully I'm able to get the battle system done soon. I'm sure you'll enjoy the next demo!

    After getting (mostly) over my previously mentioned slump, I've gotten some work done on the battle system, by figuring out the best way to load data. Just now, I've finished a script to load enemy stats into memory. I wanted something I could edit easily inside my preferred text editor, notepad++. I decided on JSON, for its flexibility, readability, and because GM has functions for it already. I did a bit of research to learn syntax, did a lot of experimenting with how GM deals with JSON, and out popped something I'm pretty proud of! Here's the process of adding a new simple enemy.

    Code:
    //In "enemyDataInit()":
    {
      enum enemy {
        dummy //ADD THIS
      }
    }
    
    //In "enemy_data.json":
    {
      "dummy": { //ADD THESE
        "name": "DUMMY",
        "namePlural": "DUMMIES",
        "xp": 5,
        "money": 3,
        "hp": 30,
        "ac": 10,
      },
    }
    
    Yes, that's really all there is to it. This works because there's a huge "base" enemy stat map in the JSON file that holds default values for every stat. If something doesn't need to be changed, it just takes values from the default. This saves a LOT of space because most enemies don't do things like exude an aura of destruction from their bodies or cause instant death with standard attacks. This means I can set the default values to 0 and ignore anything that doesn't need changing. I'm still hard-coding things like correct enemy sprites and specific enemy flavor text in scripts because they're easier to do that way. Even so, this simple method of dealing with enemy stat data will reduce time spent needlessly fiddling with code by a significant amount.
     
    DirectShift likes this.
  5. nacho_chicken

    nacho_chicken Member

    Joined:
    Jun 21, 2016
    Posts:
    222
    Battle Screen & Cheating

    Recently, I began work on the battle system proper. It took a couple of days to get to the design I think suited the game best, graphically. My first idea was to have a separate isometric battlefield. It was to look similar to the combat screen from Ogre Battle: March of the Black Queen.
    [​IMG][​IMG]
    Combat screen from Ogre Battle vs. my first battle screen concept

    Player units are displayed on the lower 3x5 section, and enemies on the upper 5x5 section. You'll note the use of placeholder sprites, as this never got to the point in development where I needed to draw enemy/player sprites. I have next to zero experience working with isometric graphics, so I wouldn't be comfortable with all the sprites I'd need to make - especially at such a relatively low resolution for isometric graphics. To illustrate, the size of the character/enemy sprites in Eysir would have to be about as small as the unit icons in the menus from that Ogre Battle screenshot. I eventually settled with a style more typical to the genre I'm working in, and consistent with established visual cues: First Person.
    [​IMG]
    The current battle screen

    This type of display comes with a few caveats. There's a maximum of 4 different groups of enemies in any given battle solely due to screen real estate. 2 groups in the front, and 2 groups in the back. Enemies in the back row appear to be one space ahead of where you're facing, so the maximum groups available while you're facing a wall without the game looking buggy is 2. This actually benefits the game's "realism" a little because I can't stuff an unrealistic amount of enemies in a 1x1 room.

    This brings me to my second point of conversation.

    Up until this point, I have been extremely strict about use of color. As a general rule, the game display is divided into 8x8 tiles, and any given tile can contain no more than 4 colors including black. Transparency is not allowed. I decided to cheat and loosen these rules for enemy sprites. As is fairly obvious from the above screenshot, enemy sprites have transparent portions. If I didn't allow transparency, I feel it would take away significantly from the graphical presentation. There are also some spots where more than 4 colors are used. This is mostly because I'm reusing an old sprite of mine that didn't have these limits, but if I feel that a sprite will be significantly enhanced visually by breaking the rules, I'm going to do it. I'll only go so far, though. I still have an aesthetic I want to uphold. I plan on sticking to my rules as much as possible.
     
    RichHopefulComposer likes this.
  6. nacho_chicken

    nacho_chicken Member

    Joined:
    Jun 21, 2016
    Posts:
    222
    Hey everyone! Not much interesting to talk about at the moment, but things are getting done. Work on the battle system is progressing smoother than expected. Should be done by next week. Here's a screenshot of my current progress:
    [​IMG]
    One thing you'll likely notice is the new UI. Since I'm sure you care enough about it that you noticed that first and not the bright red debug enemy sprites: no, I'm not changing the way the default menu "square pipes" UI looks. Rather, I'm giving users the option to pick a style from one of several options that are available! If you've played any 2nd generation Pokemon games, it's exactly like the "Frame" options there. I think some newer ones had the option to change styles, but 2nd and maybe 3rd gen changed the entire look of the menus while future games just changed colors. Anyway, no more Pokemon. Back to my game.

    Another thing you'll notice is the cursor selecting an enemy. Normally, I'd have the option to select an attack, then you'd select an enemy using a number key. I am making a tiny concession here in order to make any future possible ports to consoles easier. You're also able to select a target and then hit attack. Since "attack" will be a common option, I think things flow far smoother this way. Each option is also mapped to a separate key, as is standard throughout the rest of the game. However, when I port to consoles or if I implement gamepad support, each option will remain mapped to its own button, keeping the game just as simple. Before seeing how Persona 5 handled menuing, I didn't think there was much more you could improve on menus in a turn-based RPG controlled without a keyboard. I hope more RPGs begin to handle controls like this in the future.
    [​IMG]
    Maybe I shouldn't have put this screenshot of a fantastic-looking modern 3D game next to my lowly 2D one

    Next I'll be working on some attack animations and accuracy/damage scripts. See you next time!
     
  7. nacho_chicken

    nacho_chicken Member

    Joined:
    Jun 21, 2016
    Posts:
    222
    Hello everyone!

    I've been very busy recently with things in real life, so I haven't had much time to work on Eysir. I have put some work into the optional HQ 8x16 font. It looks pretty good so far. It's not completely done or fully implemented yet, but I like it a lot so far. It's a very clean, thin, sans-serif font.

    05-29-18-2317.png

    The reason I'm putting this much work into this is because I know I'll get plenty of people down the line complaining about my 4x8 font. It doesn't hurt to fix it before it's a real problem. It'll also make it easier to add other languages if I ever decide to do that in the future -- especially those with more complex glyphs.

    I probably won't be able to update for the next couple of weeks, but hopefully life has settled down a bit by then. Until next time, stay cool!
     
    hamdrax24 likes this.
  8. nacho_chicken

    nacho_chicken Member

    Joined:
    Jun 21, 2016
    Posts:
    222
    Good news: I'm back to major development! I really needed a break. I'm currently chipping away at the battle system. Attack animations are implemented. I must admit, I'm a terrible animator. Any battle animations I'll show will be placeholder unless I specifically mention it. I've got accuracy checking, damage calculation, and animation handling scripts all in place! Here's what it looks like at the moment:
    [​IMG]
    Placeholders make substantial work fast

    During the break, I've been thinking about what kinds of things I've talked about previously are feasible. I do still want substantial subquests with varying results, but I doubt they will be as extensive as I may have made them out to be in the past. In-game-calendar exclusive content will also likely be kept to a minimum, as it'll be pretty tough to account for balance. Despite my overreaching by promising things that are beyond my capabilities, I'm still working hard to deliver a great game!
     
  9. nacho_chicken

    nacho_chicken Member

    Joined:
    Jun 21, 2016
    Posts:
    222
    Hi all! First update in a while. Eysir has not been abandoned. Work on the game engine itself is very slow. Typing a lot hurts my hands so my wpm has slowed significantly. The good news there being that I haven't really been focusing on the programming side of things. More so on the story, map design, and polishing underlying game mechanics. Quite frankly, talking about specifics in game mechanics is probably very boring for most of you, so that leaves story and map design to talk about. Those are things I'd rather keep under wraps until the game is done. With that out of the way, that leaves me flat out of things to leave updates about.

    As much as I hate to admit it, it's looking less and less like I'll be able to finish this game completely on my own. I'll probably end up having to team up with or hire someone to do coding for menus, the battle system, and the like. For some reason, those things in particular give me a lot of issues programming for them.

    I hope to make a few updates in the near future that are less bleak and depressing.
     
  10. Geoff Jones

    Geoff Jones Member

    Joined:
    Aug 20, 2016
    Posts:
    482
    I had a quick play of the demo. The first thing I noticed was that I can't hold the move button down to move, and have to keep tapping it each step... that becomes really tedious after a while.

    It's obviously lacking in content at the moment, but the game has a very nice feel to it.
     
    nacho_chicken likes this.
  11. nacho_chicken

    nacho_chicken Member

    Joined:
    Jun 21, 2016
    Posts:
    222
    Thank you very much for your feedback! The good news is that I've already fixed that button holding problem a while back. The demo is a bit outdated, but I've not added enough new playable content for me to consider releasing a new demo.
     
    Geoff Jones likes this.
  12. nacho_chicken

    nacho_chicken Member

    Joined:
    Jun 21, 2016
    Posts:
    222
    I said something the other day about game mechanics being boring to read about, but I'm going to share the more interesting bits anyway. I'm sure someone will appreciate it. This might even be useful to someone else making their game!

    Weapons in Eysir each belong to a specific category with unique strengths. The difference between a Sword and a Gun is more than just attack power and effective range; you also have to consider much more than that. Weapon type will affect aspects such as:

    - Damage type
    Each weapon will do either Cutting, Stabbing, or Bashing damage. Certain enemies resist specific damage types.

    - Attack speed
    Something small like a dagger is going to let you attack a lot more often than a giant club.

    - Weapon handedness
    Weapons like Polearms require two hands to wield and therefore require foregoing the use of a shield.

    - Unique abilities
    I had a lot of fun coming up with these. Daggers and Thrusting Swords let you Parry, increasing your defense even more while also letting you act sooner afterwards. Hammers can flinch enemies, delaying their attacks. Axes ignore Defending and Parrying enemies. Firearms generally ignore elemental defense.

    I also hope to balance out weapons so you're not constantly throwing out old gear for new, 100% statistically better equipment. I would like for as many combinations of party and equipment composition to be viable as possible. Differentiating weapon types to such an extreme degree won't necessarily make in-combat decisions more complicated, but it should make preparation and gearing up more interesting and involved.
     
    HayManMarc likes this.
  13. nacho_chicken

    nacho_chicken Member

    Joined:
    Jun 21, 2016
    Posts:
    222
    A while back, I talked about an optional HQ font. Well, now it's complete! I've hand-crafted an entire 8x16 font -- that's 2x the resolution -- with every character available in code page 437. If you play Dwarf Fortress, you may recognize code page 437 as the default tileset. As that game is very text-based, I often use it to test how legible my fonts are. As it turns out, the font is very nice, and even though it's monospaced, I feel I got the spacing of glyphs like i and l to look good despite that.

    [​IMG]
    [​IMG]
    Default vs HQ font comparison

    Unless I get a ton of feedback about the original 4x8 font, I'm not going to make the HQ font the default. While it does look very niceā„¢, it also throws off the authenticity of the pixel art a bit. Indie games having pixels be 2 completely different sizes always looked a bit tacky to me. It feels like the artist went with 8-bit because of lack of artistic ability rather than having an aesthetic and trying to adhere to it.
     
    Last edited: Jan 24, 2019
    DirectShift and HayManMarc like this.
  14. DirectShift

    DirectShift Member

    Joined:
    Jan 5, 2018
    Posts:
    99
    Yessss, working on the font is so much fun. Did you enjoy it?

    What tool did you use? I used online bitfontmaker2, pretty cool.

    Keep on it!
     
    nacho_chicken likes this.
  15. nacho_chicken

    nacho_chicken Member

    Joined:
    Jun 21, 2016
    Posts:
    222
    Thanks! Yes, I love working on fonts. It's actually one of my favorite parts of my game projects. I use Paint.NET for all my fonts. No special font program, I just make a spritesheet and load it into GM. One sprite_add_font later and it's ready to go.
     
  16. nacho_chicken

    nacho_chicken Member

    Joined:
    Jun 21, 2016
    Posts:
    222
    I didn't like the old look of the overworld mountain tile so I redid it. Here's a screenshot!
    [​IMG]
    You can see it on the left
    The old one was far too bright and looked too similar to the tree tile. This looks better, especially with the FOV-blocking qualities of mountain tiles. I also did work on some autotile graphics.

    [​IMG]
    The squirming fleshy fibers look delightfully disgusting

    This turned out absolutely fantastic. Any time you see this in-game, you're in for a rough time.
     
    RujiK likes this.

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice