Page 1 of 3

AdventureBand

Posted: Wed Dec 30, 2015 5:55 pm
by speeddown
AdventureBand v 0.0.8

- Input (Basic)
q = up-left
w = up
e = up-right
a = left
z = down-left
x = down
c = down-right
d = right
g = pick up item on ground
* To open the inventory just click on Finns image on the right.

Changes:
- UI
- Slight modifications nothing much changed here
- Dungeon
- Added doors
- Did some work on the dungeon generation
- Vision blocked by doors
- Stairs will appear in the dungeon now but for whatever reason they aren't accessible
There's a piece of code somewhere that's preventing them from being walked on
and I'm not really sure what's keeping them off-limits lol. As soon as I have time
I"ll find it and make them accessible.
- Other Stuff
- It may not seem like much has changed but the game is much more stable
- I changed a lot of the code as it was fairly spheghettified due to having only recently
picked up Lua.
- Added a state manager
- Enemies
- Added a new enemy to test the enemy generation and make sure it can spawn
a semi-random pattern of enemies
- Items
- Theres a sword I added for similar reasons to the new enemy, making sure items
can be spawned randomly from a pool
Known Issues:
- Room.lua:117
- This relates to the door placing algorithm. It seems to be a problem when the tile
the algorithm chooses to test as a possible location for a door doesn't exist or
possibly it's coordinates are not even integers as this would cause it to return nil
- That's it! I only see one crash these days!

Update:
- Well it's been a while because school's been taking up almost all my time but I'm glad to
say that I haven't lost the determination to complete this game.

Updates may be farther apart but I AM actively developing it. Things are slowly starting
to come together and it's starting to feel more like a roguelike than a piece of software imitating a roguelike lol.

I think my next focus will be on adding status messages so the player has some feedback as well as visible stats. They're already implemented under the hood somewhat but no where are they visible

Code: Select all

[b]###########################################################################################
AdventureBand v 0.0.7

Changes:
    - UI[/b]
        -Status Panel added
        -Health display changed as well as added Finn portrait which changes based on the amount of
             health the player has left
        -Equipment panel added
        -Inventory implemented

    - Dungeon
        -Dungeon code reworked to allieviate some nasty bugs causing crashes, shouldn't be any crashes
             from the map generation now
        -Lots of code reworking here, much more stable

    -Items
        -Items randomly spawned during map generation
        -Test item added (IceCrown)
        -Items can be picked up and are added to inventory

     -Enemies
        -Lots of internal reworking of the enemy objects making things much more stable
[b]To Do:[/b]
    - Implement item stats(attack, armor, the normal equipment roguelike item stats and more ;) )
    - Timing/Turn system
    - Everything else!

Known Issues/Bugs:
    - Thankfully with the code reworking (hooray for OOP!) there doesn't seem to be any egregious bugs causing
      any sudden crashes. There is one issue I am aware of that causes a crash and it relates to the FOV algorithm 
      but I encounter it very rarely and only during the loading phase. If the game starts then you're golden but 
      9 times out of 10 it will start fine.
    - There are many features that just aren't implemented yet, they aren't bugs just haven't gotten to it just yet.



What's Working:
    - Dungeon generation
    - Input (Basic)
        q  = up-left
        w = up
        e = up-right
        a = left
        z = down-left
        x = down
        c = down-right
        d = right
        g = get item off ground

    - Player FOV (Fog/concealed distinguishing isn't fully implemented yet)
    - Enemy and very basic AI (Idle movements, recognizes, chases, and attacks the player, enemies can be destroyed)
    - Player Health (currently no consequence to dying, you're health will go negative), Attacking, Movement
    - Probably some other simple/basic stuff I'm not remembering ATM
    - Ability to pick up items off the ground
    - Picked up items are placed into inventory
    - Operational(but not FULLY functional) inventory system

Update:
    - For anyone who cares sorry this has taken a while. I kinda undersold how long it would take to get this all done. To
      my credit I've also had to deal with spring semester starting up and school has to come first. I love making games
      and I have to be careful to remember that I won't be able to keep making them if I screw up school. I'm almost done
      so focus is key.

      As far as progress is concerned, oh man did I put my brain through the ringer for this phase of development. Getting 
      the UI working actually wasn't all that difficult and probably the smoothest cycle so far. I credit that to the wonderful
      UI library I'm utilizing, loveframes. I can not overstate how useful this library has been and how well it works. Also,
      the library developer answers questions in the library thread which is really, truly, helpful and appreciated.

      So I've added some cool stuff that I'll explain here in detail:
           - I created a status panel that shows the player name and current/max health.
           - The status panel contains a portrait of Finn and as his health goes down, his portrait 
             changes to reflect the amount of damage he's experienced. Love it. Doom homage anyone? lol
          - There's now an equipment panel under the status panel. Clicking on the respective piece of Finn's wardrobe
            will open the appropriate inventory screen. Only the armor screen is populated with picked up items at the
            moment but I'll get the others workings VERY soon. I don't actually have to write more code to get this working
            just create new objects and some referencing/function calling (OOP ftw).
          - I went back and restructured a lot of the prototyping code that was used to get the foundation of the game in place.
            The result being that there are essentially 0 random crashes during game play. There is still 1 bug somewhere that
            can cause a crash but it only happens during the initial load and is fairly rare.
      
      My next target is to flesh out the items and make them actually do something when the player equips them. I'm excited
      to get to the end of the concrete development and to enter a sort of content development stage where I'm more focused
      on how the systems work together rather than trying to decide how to store item definitions and implement an OOP based
      infrastructure.

     One thing I've been thinking about is when does a game start to feel like a game? Or rather when does a roguelike feel like a
     roguelike? I seemingly have many of the basics implemented already, random dungeon, player character, enemies, items,
     exploration of said dungeon. However, it still seems to not be shaping into a game yet. I wonder if it's because I'm so close to
     the actual nuts and bolts that all I can see are the features yet to be implemented and have become insensitive to what is
     already there.... whoa lol. Anyway, hope some people try it out. If you do, please leave a comment, seeing people's thoughts
     really helps inspire me to continue...

############################################################################################################
AdventureBand v 0.0.5

Fixes:
    - Implemented rmcode's FOV algorithm, thank you so much for your help
    - Added some helper functions to the tile_map container to make changing visibility a bit more simple

To Do:
    - Get the fog/concealed overlay system working the way it's supposed to
    - Everything else!

Known Issues/Bugs:
    - Player update crashes happen because I need to add a check somewhere to ensure that a tile position passed to update 
      actually exists before trying to draw an image to the tile position. You can avoid the bug I believe by not moving Finn's 
      FOV to the edge of the screen.

    - I believe someone posted a comment about sizing or resizing the window, it's not supposed to be possible so I'll have to 
      figure out why it's even a possibility and correct that. 

    - Enemy idle movement bug may cause crash. The idle movement is based on RNG so I'm going to have to check it out but
      I'm almost certain that the enemy is trying to move onto a tile that is either not traversable or doesn't exist. It's not super
      common but something I'll have to check out.

    - Map generation bug can cause crash before the game even starts. The dungeon is procedurally generated and this bug
      seemed to appear out of nowhere recently. There's a conflict somewhere that causes the game to crash and it happens
      early. The map is generated during loading so once you get into the game it shouldn't be an issue. If you crash before 
      you get to the actual game just try running the game again.

    - I'm new to Love so I also may have screwed up the distribution package. I'm not even sure how that would present itself  
      though. If someone more knowledgable notices something that might indicate a packaging problem please let me know.


What's Working:
    - Dungeon generation
    - Input (Basic)
        q  = up-left
        w = up
        e = up-right
        a = left
        z = down-left
        x = down
        c = down-right
        d = right
    - Player FOV (Fog/concealed distinguishing isn't fully implemented yet)
    - Enemy and very basic AI (Idle movements, recognizes,chases,attacks the player, enemies can be destroyed)
    - Player Health (currently no consequence to dieing, you're health will go negative), Attacking, Movement
    - Probably some other simple/basic stuff I'm not remembering ATM

Update:
I took a break during the holidays mostly because the FOV was being a real pain in the *** but first day back on the saddle and I got it working right out the gate so needless to say I'm feeling inspired to continue at this point.

My immediate concern is finishing the FOV and getting the fog/concealed tiles to display the correct overlay tile. Currently something isn't working right which causes all the tiles to display as if they are discovered but not lit. 

Once I get that figured out I'll probably focus on the player character a bit more which needs to be worked on quite a bit before I can start working on the more elaborate enemy AI and the new combat system I've designed. For fear of being discouraged by comments I'll keep it to myself as to what that will look like but I'm confident I'll have it prototyped in the next week or so.

Oh, also, right now my girlfriend is playing pixel artist but she has zero experience and not an artist to begin with so if any one feels like they might be interested in helping out in the art department I'd be super appreciative. I also wouldn't mind having another designer/developer to bounce ideas off of. Cheers. 

############################################################################################################
AdventureBand v 0.0.6

Fixes:
    - Made some changes to address the FOV bug that was causing game to crash
    - Solved the fog/concealed tile overlay issues, FOV is now 100% implemented
    - The position that the player last saw a visible enemy will now remain as the enemys player perceived position until the  
       enemy comes back into the players view
    - Changed the loading of tile base and overlay images to the tile map instead of each individual tile having it's own image 
      which got rid of the long load time at start

Priority:
    - Player entity implementation to include but not limited to: inventory, various control options, UI integration...
    - Everything else!

Known Issues/Bugs:
    - The FOV bug that was causing a crash when the player moved near the edge of the screen may be fixed but I won't know 
      until I test it out some more or here from someone here.

    - The window resizing is probably still a issue, it shouldn't be possible to resize it. Haven't tackled this yet.

    - Enemy idle bug causing a crash is still a major issue and probably the most common cause of crashes.

    - During load it seems that the RNG can set the player's initial starting point to coordinates that do not exist which will
      cause the game to crash on load. This is tied to some RNG so it does not happen every time the game is started. If it 
      does crash on you then try restarting. It's rare that it does it more than once in a row.

    - Map generation bug can cause crash before the game even starts. The dungeon is procedurally generated and this bug
      seemed to appear out of nowhere recently. There's a conflict somewhere that causes the game to crash and it happens
      early. The map is generated during loading so once you get into the game it shouldn't be an issue. If you crash before 
      you get to the actual game just try running the game again.

    - I'm new to Love so I also may have screwed up the distribution package. I'm not even sure how that would present itself  
      though. If someone more knowledgeable notices something that might indicate a packaging problem please let me know.


What's Working:
    - Dungeon generation
    - Input (Basic)
        q  = up-left
        w = up
        e = up-right
        a = left
        z = down-left
        x = down
        c = down-right
        d = right
    - Player FOV fully implemented including fog and last known enemy positions
    - Enemy and very basic AI (Idle movements, recognizes,chases,attacks the player, enemies can be destroyed)
    - Player Health (currently no consequence to dieing, you're health will go negative), Attacking, Movement
    - Probably some other simple/basic stuff I'm not remembering ATM

Update:
So today was amazingly productive. Not only did I get FOV working, but I managed to get the fog/concealed system up and running as intended. 

I was even able to implement enemys being drawn at the positions last seen by the player. So if the player sees an enemy and then moves somewhere that obscures the enemy from the player, instead of the enemy becoming invisible it will be drawn at the last position the player saw the enemy. The enemy doesn't just sit there, it continues to do it's very simple AI business and is drawn at its actual location upon coming into the players view once more.

Now that the core systems are in place it's time to start making this roguelike feel more like a game so expect new features and mechanics to be added soon. My plan is to shift focus to the player entity since a game usually revolves around said entity. Cheers!

Announcement:
If anyone feels like doing some easy/simple pixel art for the project I would be absolutely grateful to them.






Re: AdventureBand

Posted: Wed Dec 30, 2015 6:54 pm
by NightKawata
Not quite sure if it's LOVE 0.10 specific since the error message looks pretty codebase-specific, but here's what I got from playing:

Image

happens... right after opening the .love, :P

Everything sounds pretty interesting though!

Re: AdventureBand

Posted: Wed Dec 30, 2015 8:22 pm
by Jack5500
Happens to me whenever I want to exceed the screen limits with my view

Re: AdventureBand

Posted: Tue Jan 05, 2016 4:49 pm
by speeddown
Hm weird I'll look at it, it works fine on my end. I apologize for the delay responding, holidays and all. I'll check it out and post a new version.


*EDIT

I'm able to run the game using the packaged version with the .love extension and via ZeroBrane. I updated the original post in an effort to address some of the crashes. Please try running it again, it occurred to me that I had two folders on the ol' desktop so I may have packaged an old version by mistake. In any case, the currently posted package distro is a working/current version and should run as long as you have Love installed on your system.

Re: AdventureBand

Posted: Mon Jan 25, 2016 12:24 am
by speeddown
NightKawata wrote:Not quite sure if it's LOVE 0.10 specific since the error message looks pretty codebase-specific, but here's what I got from playing:

Image

happens... right after opening the .love, :P

Everything sounds pretty interesting though!

The sight_check function handles the player FOV and I have since fixed those issues so you shouldn't be getting that error anymore

Re: AdventureBand

Posted: Mon Jan 25, 2016 1:25 am
by pgimeno
I'm running into a number of case sensitivity problems under Linux. In order of appearance (as I fix them):

Code: Select all

Error: Room.lua:1: module 'Lib.30Log' not found:
Error: UI/Gui.lua:1: module 'Lib.30Log' not found:
Error: UI/Status.lua:1: module 'Lib.30Log' not found:
Error: UI/Status.lua:2: module 'Lib.loveframes' not found:
Error: UI/Equipment.lua:1: module 'Lib.30Log' not found:
Error: UI/Equipment.lua:2: module 'Lib.loveframes' not found:
Error: UI/Inventory.lua:1: module 'Lib.30Log' not found:
Error: UI/Inventory.lua:2: module 'Lib.loveframes' not found:
Error: UI/InventoryPanel.lua:1: module 'Lib.30Log' not found:
Error: UI/InventoryPanel.lua:2: module 'Lib.loveframes' not found:
Error: UI/Debug.lua:1: module 'Lib.30Log' not found:
Error: UI/Debug.lua:2: module 'Lib.loveframes' not found:
Error: MapLoader.lua:1: module 'Lib.30Log' not found:
Error: EnemySpawner.lua:1: module 'Lib.30Log' not found:
Error: EnemyPool.lua:1: module 'Lib.30Log' not found:
Error: ItemGenerator.lua:1: module 'Lib.30Log' not found:
Error: ItemPool.lua:1: module 'Lib.30Log' not found:
Error: Items/Armor.lua:1: module 'Lib.30Log' not found:
Error: Items/Item.lua:1: module 'Lib.30Log' not found:
Error: Items/Weapon.lua:1: module 'Lib.30Log' not found:
If I instead rename Lib/30log.lua to Lib/30Log.lua and Lib/Loveframes to Lib/loveframes, then I get those:

Code: Select all

Error: Player.lua:1: module 'Lib.30log' not found:
Error: Entites/Entity.lua:1: module 'Lib.30log' not found:
Error: Lib/Vector.lua:1: module 'Lib.30log' not found:
Error: Lib/Vision.lua:1: module 'Lib.30log' not found:
Error: MapTile.lua:1: module 'Lib.30log' not found:
Error: Enemy.lua:1: module 'Lib.30log' not found:
Error: Enemies/Slime.lua:1: module 'Lib.30log' not found:
Error: main.lua:7: module 'Lib.30log' not found:
Error: TileMap.lua:1: module 'Lib.30log' not found:
Error: main.lua:9: module 'Lib.Loveframes' not found:

Re: AdventureBand

Posted: Mon Jan 25, 2016 12:32 pm
by speeddown
Yeah its strange because it runs from my IDE. I thought love handled the differences between the way OS access files?

*EDIT
Okay so I can no confirm that this will run if double-clicked on windows. I had to change the way I was importing the library and change a couple of references but the game now runs fine on Windows. Can you try it on Linux? You should download the new version.

Re: AdventureBand

Posted: Mon Jan 25, 2016 1:11 pm
by rmcode
speeddown wrote:Yeah its strange because it runs from my IDE. I thought love handled the differences between the way OS access files?
Unix systems are case sensitive. I don't think the require statement handles that. Just make sure you require the files correctly (i.e. watch the cases).

It's an easy fix.

Re: AdventureBand

Posted: Mon Jan 25, 2016 3:09 pm
by bobbyjones
If the .Löve works on your system then it should work on case sensitive systems.

Re: AdventureBand

Posted: Mon Jan 25, 2016 3:12 pm
by rmcode
bobbyjones wrote:If the .Löve works on your system then it should work on case sensitive systems.
But Windows isn't case sensitive, is it?