Author Topic: Veins of the Earth LOVE2D port - feedback  (Read 9172 times)

Zireael

  • Rogueliker
  • ***
  • Posts: 604
  • Karma: +0/-0
    • View Profile
Veins of the Earth LOVE2D port - feedback
« on: February 11, 2017, 02:37:31 PM »
This is a thread for the LOVE2D port of my roguelike that used to be in T-Engine.

I made a separate thread as the old one was getting quite unwieldy.


Index
(Links lead to the old thread)
1. Humble beginnings
2. Pathfinding
3. Basic FOV
4. Beginnings of inventory screen
5. Visible grid and toggleable labels, Cogmind-style
6. RPG ruleset musings
7. Character creation screen and some musings on ToEE character creation
8. Zooming in and out, and Shockbolt tiles
---
9. Post #1 of current thread

« Last Edit: February 11, 2017, 02:51:30 PM by Zireael »

Zireael

  • Rogueliker
  • ***
  • Posts: 604
  • Karma: +0/-0
    • View Profile
Re: Veins of the Earth LOVE2D port - feedback
« Reply #1 on: February 11, 2017, 02:44:07 PM »
To kick things off, let's have some screenshots of last week's progress:


Inventory screen now displays player money


A torchlight visual effect made without shaders

The LOVE file I uploaded a couple hours ago: https://love2d.org/forums/download/file.php?id=14526
« Last Edit: February 21, 2017, 06:54:17 PM by Zireael »

Zireael

  • Rogueliker
  • ***
  • Posts: 604
  • Karma: +0/-0
    • View Profile
Re: Veins of the Earth LOVE2D port - feedback
« Reply #2 on: February 21, 2017, 06:54:52 PM »
The isometric version is now equal to the orthogonal version. The only thing missing is somehow showing the FOV.


A short clip of the game in action

I also sneaked in a couple of improvements - the visible log above the bottom bar now always shows last 5 messages and a shield shows up instead of damage splash if the target was not hit.

Zireael

  • Rogueliker
  • ***
  • Posts: 604
  • Karma: +0/-0
    • View Profile
Re: Veins of the Earth LOVE2D port - feedback
« Reply #3 on: February 25, 2017, 08:25:52 AM »

Pretty debug item creation screen


Funny bug with outline shader


Visibility overlay that allowed me to find a bug in FOV calculations

Changelog for this week:
    Implement a debug menu
    Implement a debug summon NPC option (creates a selected NPC next to the player, with some caveats - e.g. if we're missing the tile for it, we don't spawn to avoid crashing the game)
    Implement a debug create item option (creates an item on the player's tile)
    Implement "egos" in Angband-speak (item magical properties) - for now only for armors, for test purposes
    Spend the rest of the day making debug item menu look pretty
    The debug create item allows you to add multiple "properties" (see above), provided they don't conflict (e.g. you can only add one "material" or one "bonus"). Yaay for my own code, no more problems with a leather armor +1 +3 or mithril adamantine leather armor lol (speaking of, I should disallow some materials based on whether it's a leather or metal item, too)
    Write a function to spawn an item with a defined property (e.g. "spawn a leather armor +1 at x,y") outside of the debug menu
    Shuffle the treasure table/list to a data file (no need for it to bloat the Treasure class)
    Suddenly remember I forgot the outline shader (funny bug along the way) and the Cogmind-style labels above actors/items
    Discover a bug in FOV calculations thanks to the labels code, write a debugging visibility overlay, five hours later discover I had a typo in the "does this tile let light pass" function >.<
    Draw actors only on visible tiles, items on visible tiles or those that were once visible
    Write a wrapper function for a ROTLove library function to muzzle printing the whole Dijkstra map to console every time it was recalculated
    Comment out/remove or move to log many debugging prints (the game initializes noticeably faster)
    Adjust the label locations to prevent them overlapping

I would have done more if I wasn't busy trying to understand the ECS. I think the components would be a godsend for complex stuff such as the actors. But I'm stuck on how to make ECS work alongside inheritance.

For now, still rolling along with an old T-Engine solution for classes based on an obsolete Lua "module" keyword. Haven't found a LOVE class library that would allow multiple inheritance (many of my classes rely on it). Ran into loops when "requiring" stuff a couple of times so started to look at components (see above)...