Giter Site home page Giter Site logo

barony's Introduction

Linux-CI_fmod_steam Linux-CI_fmod_steam_eos

Update - 3rd October 2023

The current 'develop' branch contains in-development features for our latest update. For bugfixes + PRs, open them against 'master'.

Compilation Instructions

The compilation instructions can be found in INSTALL.md

Open-source Announcement Letter

Well here it is, as promised: the open source release of Barony. Keep in mind you still need a purchased copy of Barony to play this. I'd recommend that you thumb through all of the included text files to get a feeling of other things you'll need to build the game and check out the included licenses as well.

Many thanks go to Ciprian Elies for his original contributions to the game code, as well as for the build systems, config files, and support libraries that he developed for the project over the years. In the future, he plans to head up development on some new stuff for Barony, so keep an eye out for that.

This project was a first for both of us in many ways and it shows. Since all of the original code was written in C and hastily converted to C++ in the past few months, experienced C++ programmers may be horrified at some of the kludge we had to write to get some of the more basic systems working properly. There's not a lot of module organization either since I didn't understand how to properly write projects that scale when I started the code three years ago. Prepare to deal with lots of global variables that get used all over the project indiscriminately.

Despite the project's shortcomings, I'm reasonably proud of how the end product turned out. Writing good games is about more than just writing good code, though I guarantee we'll be taking all of the lessons learned from Barony into our next project.

I'm not sure how many people will be interested in working on this, and it may take a while for anything substantial to get going here, but I'd be pleased to see some coordinated efforts take place on this code sometime in the coming years.

Some project ideas:

  • Add an extra hard mode to the game.
  • Add a dungeon with infinite levels.
  • Create a dedicated server.
  • Multithread the packet handler.
  • Multithread the entity logic.
  • Add script support for entities and items.
  • Add persistent levels and servers.
  • Add fully 3D physics and world geometry.
  • Renovate the OpenGL code to a modern standard.

Have fun,

Sheridan June 27th 2016

barony's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

barony's Issues

Invisibility causes the light spell's orb to become jittery/stuck

Using teleportation items multiple times in a row (e.g. placing a blessed mirror on hotbar and holding down the according key) causes the light spell's "ball" to move at increasingly high speeds before finally starting to actively teleport through corners and periodically getting stuck at one spot (supposedly being unable to reach destination because of skipping it). The second looks like as following: https://gfycat.com/UnsightlyAnotherDodobird

Needless to say, the usefulness of the spell is impacted negatively if it's getting stuck every now and then.

Save file: light-spell.zip

Related question: Is it intended that use of mirror may result at teleporting into lava pools or onto spike traps?

Removing dlls from the source tree

First of all thanks for open sourcing your game, that's a great move. I strongly believe that most games could be both open source and commercial, and benefit a lot from building a community of co-developers around their product.

Just a suggestion for good open source software practices, feel free to ignore it if it's too much trouble for your workflow. Having dlls bundled in the source tree is a relatively bad practice, as:

  • git is not made to track binary files, so they clutter the git history.
  • Each update to those dlls mean adding their full size in the git history, as it can't be handled via diffs. Your libraries here are relatively small, but still, on the principle it's something to avoid.
  • It encourages the use of outdated libraries, as in most cases Windows developers will just build with what is included out of the box and not care if it's a 2 year old libpng with tons of security vulnerabilities.

Additionally you seem to have more libraries bundled that you probably need (I guess you're not using libpng3, libpng12, libpng14, libpng15 and libpng16 at the same time for example).

The solution:

  • Delete those DLLs with git rm.
  • Add *.dll and *.exe to .gitignore to ensure such binary files won't be committed in the future.
    :)

The drawback:
Obviously developers tend to bundle such dlls to make it easier to build their engine on Windows, and that's great especially for an open source game which is likely bound to have a lively modding community among Windows users.

A better way to provide such convenience dlls would be to host a zip file with those dlls somewhere on your FTP, and add a simple .bat script in your source repo to download them.

Alternatively, if you really want to keep them in a git repo, you could have a Barony-dlls git repository where you put them, and instance it in the main repo as a git submodule. (This way the default source distribution has no dlls, but they are still easy to get). I'd suggest the FTP variant over using a submodule though.

Tag stable releases

I've seen on Steam that the currently deployed version would be 2.0.3 beta. It would be great to have git tags for the past and current stable releases, to see the evolution of the game.

To make and push tags, it's quite easy:

git checkout <commit_hash_you_want_to_tag>
git tag v2.0.2
// repeat for all tags
git push --tags

HUD scaling to fit high resolutions (HD, FullHD, 2k, 4k, etc)

It was originally mentioned in the comments of this Steam announcement, but I think it would be nice to start putting up GitHub issues with such stuff, so that potential contributors know what are the issues that they could handle.

This one is pretty straightforward: at higher resolutions, the HUD is quite small and it's thus uncomfortable. My native monitor resolution is 1920x1080, and it's too small so I'm playing in 1600x900 (and might consider going further down for a better experience).

HUD scaling should be relatively easy to implement (haven't checked the source for it yet though). It could be exposed as a slider in the options (interpolated), or with a discrete parameter (fixed ratios that ensure that pixel correctness is preserved to some extent).

Crash upon opening a particular chest

This is on the current beta branch build.

Here's savegame and log file (which seems to log the level seed):
Barony.zip
The chest in question is the one over that small abyss\gap in a building.

If there's anything else that should be included, do tell. Seems kind of occasional, considering that I've seen it thrice in 50 hours played.

SDL2_image can not be found on NetBSD

Hello,

First of all, since OpenAL can be used, I'm going to give a new interest to Barony. FMOD is something we won't have on NetBSD but OpenAL, we do.
I have a little issue while "make" the engine. When I use pkgsrc to build barony (by making a package of it), it builds correctly but it's a little annoying to make a package from a git repository instead of a package source to fetch. So for the moment, I'm only doing this for test purpose.

In CMakeCache.txt, there is lines for SDL2, SDL2_ttf and SDL2_net but no for SDL2_image. The thing is that if I can manually change a problem when looking for a library by adding the absolute path to it, I can't for SDL2_image because there is no line for it.

When I try to build, I have this :

[ 14%] Linking CXX executable editor
ld: cannot find -lSDL2
ld: cannot find -lSDL2_image
ld: cannot find -lSDL2
ld: cannot find -lSDL2_image

I mean a line like those :

//Path to a file.
SDL2_NET_INCLUDE_DIR:PATH=/usr/pkg/include/SDL2

//Path to a library.
SDL2_NET_LIBRARY:FILEPATH=/usr/pkg/lib/libSDL2_net.so

//Path to a file.
SDL2_TTF_INCLUDE_DIR:PATH=/usr/pkg/include/SDL2

//Path to a library.
SDL2_TTF_LIBRARY:FILEPATH=/usr/pkg/lib/libSDL2_ttf.so

In case you ask what lib do I have in my OS :

/usr/pkg/lib/libSDL2-2.0.so.0
/usr/pkg/lib/libSDL2-2.0.so.0.4.1
/usr/pkg/lib/libSDL2.so
/usr/pkg/lib/libSDL2_image-2.0.so.0
/usr/pkg/lib/libSDL2_image-2.0.so.0.0.1
/usr/pkg/lib/libSDL2_image.so
/usr/pkg/lib/libSDL2_net-2.0.so.0
/usr/pkg/lib/libSDL2_net-2.0.so.0.0.0
/usr/pkg/lib/libSDL2_net.so
/usr/pkg/lib/libSDL2_ttf-2.0.so.0
/usr/pkg/lib/libSDL2_ttf-2.0.so.0.14.0
/usr/pkg/lib/libSDL2_ttf.so

So actually I'm stuck because of this :(

No install target for NetBSD

Hello,
I'm on NetBSD and I built Barony well but I can't "make install" it because there is lack of install() entries in CMakeLists.txt about NetBSD

===> Installing for Barony-v2.0.4
make: don't know how to make install. Stop

Player Module

Overview

Description: Create a Player class and use it to track all of a player's relevant data.

End-goal: support split-screen couch or console play.

Task list

Preliminary work

  • Convert players array from Entity pointers to the Player class type. Available on the gamepad branch
  • Player instances track their Entity. Available on the gamepad branch

Graphics-related

  • Each Player instance should somehow render itself to the screen (every player gets its own SDL_Surface *screen;?)

Input & Control:

  • keystatus[] and inputPressed() should be integrated into the Player class.
  • Each Player instance keeps track of its keybindings/gamepad bindings
  • Each Player instance has its own input method (controller & keyboard, gamepads, etc)

Misc:

  • Player instances store and retrieve their own settings from a corresponding player<#>.cfg. (Graphics settings, keybindings, etc)
  • All of the required menus and GUI changes this work necessitates.

Note: This list is neither complete nor comprehensive, more is to come. Questions, comments, and suggestions welcome.

The FMOD library might be incompatible with the GPLv3, unless you define an exception

Currently Barony needs the proprietary FMOD library to build. I am not a lawyer, but I think it might be contradictory to the terms of the GPLv3 license, which implies that all linked libraries should be GPL-compatible (with an exception for "System libraries"). See https://www.gnu.org/licenses/gpl-faq.en.html#SystemLibraryException and https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatibleLibs

You can workaround this by adding a GPL exception as mentioned in the second link.

I couldn't find crystal clear information about such a use case though, so I don't know if making FMOD optional instead of required would be enough to satisfy the GPL, or if the GPL exception is really needed.

[macOS] libpng and SDL header paths

I was trying to compile the source on macOS and I ran into two issues:

  • When running cmake CMake was trying to find libpng16.16.dylib under /op/local/, but mine was under /usr/local
  • The header path for the SDL2 libraries (SDL2_Image and similar) is <SDL2_image/SDL_image.h>, but mine were under <SDL2/SDL_image.h>.

Fixing every instance of these two made everything compile without issues. I am using the Homebrew package manager, so maybe that is the issue here. I do know that MacPorts installs its packages under /opt, maybe that is what you were developing with. Is it possible to make the build system work with both?

As for the SDL library headers, wouldn't it be better to use the same include form as for the other systems and add the output of sdl2-config --cflags to the makefile?

Configurable FPS Cap

An FPS cap was set to 60 in a previous patch. This hard limit should be configurable (important for monitors that update at different frequencies).

Using Gamepads in Inventory

Gamepads should be fully useable inside of the inventory.

At a minimum:

  • D-pad to select items f84530d
  • Visual representation of selected inventory slot (gold/yellow border). b9df224
  • Visual representation of an inventory slot for the selected item (blue border). eb1f7cb
  • Tooltips w/ gamepad. Non-issue.
  • Hotbarring 92338be 8375344 01fc24b 90508cb
  • Accessing and using context menu 90508cb
  • Analog stick + d-pad interactions (warp cursor to where d-pad or bumpers select, warp d-pad/bumpers to where cursor hovers over). Same applies to bumpers in hotbar. 92338be
  • Reset selected slots on new game. 2b8679e
  • Cycling between magic/items inventory tabs e9f1e81
    - Grabby hand cursor? No.

Entity Hash Tables

Right now, Entities use a plain old list. Adding a hashtable should have substantial performance boosts since uidToEntity() very frequently occurs throughout all the code.

Crash in miscellaneous menu

When you mouse over any of the flags at the bottom of the miscellaneous menu, the game crashes.

Re-built with code from just before my changes, it still crashes.

Tested with beta 2.0.3 on steam and no crash.

Multithreaded Pathfinding

If possible, multi-threading the pathfinding code would definitely improve performance.

Due to the enormity of this task, I am not planning on tackling this in the near future. It may not even be possible with this codebase, due to such issues as thread safety. As such, I am putting this up for posterity's sake -- populating the "Performance Improvements" milestone with ideas/tasks that should increase performance.

Ambient sounds too loud

A number of ambient sounds in the game are too loud (usually by having too many samples playing at a time, or at too high a volume).

Namely:

Water
Spike traps
Chests

Water is one of the bigger problems and actually can cause the music to stop in the swamps due to too many samples being played simultaneously.

The system that governs how frequently water samples play should also probably be rewritten so that those sounds play on a more predictable basis, as the rate is generally very random right now.

Feature Request: Ultrawide monitor support (21:9)

Hi there! I just got the game and have been enjoying it, but I couldn't figure out a way to get my resolution running (2560x1080). Could we get some more resolution options or maybe a custom resolution setting?

Remove Curse Spell does not work as intended for clients in multiplayer

When playing as a client in multiplayer, the remove curse spell does not function as intended.
It should pop open the Remove Curse GUI. Instead, when a client receives the RCUR packet, it runs the code for the remove curse scroll (which, indeed, also triggers the RCUR packet).

Prescribed remedy:
Create a new packet for this situation.
When that packet is received, pop open the Remove Curse GUI.

Use a portable PRNG like MT instead of rand()

Currently, Barony uses rand() for random number generation. This is fine on Linux (where rand() uses the same algorithm as POSIX random()), but Windows rand() is infamously bad, with very little randomness in the low bits (i.e. the ones you're using most of the time) and obvious patterning.

Switching to random() is a no-go, since Windows doesn't have it available, but it should be possible to replace it with a known good PRNG like Mersenne Twister and use that for all RNG regardless of platform. This has the added advantage that the same seed will produce the same results even on different OSes.

Cleric is invincible in current 2.0.3 beta?

I'm relatively new to the game so I might be missing something, but playing a cleric right now in 2.0.3 beta, it seems I can't take any damage:

[13-36-24] The skeleton hits!
[13-36-24] But their blow bounces off!
[13-36-25] The skeleton hits!
[13-36-25] But their blow bounces off!
[13-36-26] The skeleton hits!
[13-36-26] But their blow bounces off!
[13-36-27] The skeleton hits!
[13-36-27] But their blow bounces off!
[13-36-28] The skeleton hits!
[13-36-28] But their blow bounces off!
[13-36-29] The skeleton hits!
[13-36-29] But their blow bounces off!
[13-36-30] The skeleton hits!
[13-36-30] But their blow bounces off!
[13-36-30] The skeleton hits!
[13-36-30] But their blow bounces off!
etc.

The same seems to happen with much stronger creatures too, like trolls, and even if I drop all my equipment.

Here's my savegame (provided I found the right files, I took savegame{,2}.dat in the Steam folder):
savegames-invincible.zip

Add a "Continue"/"Resume" menu option

In the current 2.0.3-beta (last steam build), when you start the game and want to continue with your current character, you have to click "New game", which is confusing. It then shows a popup to propose you to continue the last saved game or discard it, which against gives a bit a bad UX IMO.

There should be two different entries:

  • Continue (maybe with name and class of the character next to it, e.g. Continue [warrior, John Doe])
  • New game (and this one could still show a popup to warn you that you'd overwrite the current saved game)

New background colors for Unappraised/Blessed items very similar

First of all, I want to say how big of a fan I am of the background colors added to items. It makes finding unappraised stuff in your inventory so much easier!

That being said, I can't really tell the difference between the background color on a blessed item vs that of an unidentified item. I have colorblind mode on (yes, I'm colorblind) and it's still not helping. Would it be possible for someone to turn the blessed color to something else, like a blue of some sort?

contrib/pull requests

I didn't know where else to put this, but I'm very interested in this game and want to see it improved.

I was wondering if there was any overall thing that needed to be done to get pull requests approved or be added as a contributor to the project. I've put quite a bit of work in already helping in the official bug reporter as "bradarnett", and I'd like to continue work first hand if possible.

How to start

I have been able to build it, but it doesn't start.
It doesn't even throw an error in the output.
Also, i couldn't make install, so i don't even know how to package it.

Followers (and other entities?) Block Minotaur

Summon a couple followers around you so that the minotaur can't reach you through a wall of followers. When the minotaur spawns, he just sits there doing absolutely nothing, not even responding to attacks against him.

Open source alternative to FMOD

Partly related to #19, but would have a different resolution so opening a new issue.

To make Barony fully libre, it would be nice to have it support an open source alternative to FMOD. If you use specific FMOD features that you don't want to part with (and additionally, if you don't want to spent too much time porting the sound engine for a game you already have in production), it could be kept alongside the alternative, and the sound engine could be selected at build time via a CMake option.

Possible alternatives would be cAudio (I discovered it recently and heard many good things about it), RtAudio, OpenAL directly, SDL_mixer, SFML Audio, PortAudio, BASS... I don't have experience with most of them, but with a bit of research I'm 100% sure that you can find a great open source library that could be used as a replacement for the proprietary FMOD.

Until an alternative is implemented, it would be nice to have the possibility to disable FMOD via a CMake argument (one would thus likely lose sound support, but at least it would be possible to build without proprietary library).

Auto-Appraise Rock Failure Spam

Auto-appraise a rock. If your perception and appraisal are too low (warrior), it spams your log with "failed to appraise" messages.

Current x86_64 binary needs both libpng12 and libpng16

See:

$ ldd barony.x86_64 
        linux-vdso.so.1 (0x00007ffee279b000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f653b5f3000)
        libSDL2-2.0.so.0 => /media/data/Jeux/SteamApps/common/Barony/libSDL2-2.0.so.0 (0x00007f653b2b9000)
        libSDL2_image-2.0.so.0 => /media/data/Jeux/SteamApps/common/Barony/libSDL2_image-2.0.so.0 (0x00007f653b093000)
        libSDL2_net-2.0.so.0 => /media/data/Jeux/SteamApps/common/Barony/libSDL2_net-2.0.so.0 (0x00007f653ae8e000)
        libSDL2_ttf-2.0.so.0 => /media/data/Jeux/SteamApps/common/Barony/libSDL2_ttf-2.0.so.0 (0x00007f653ac86000)
        libsteam_api.so => /media/data/Jeux/SteamApps/common/Barony/libsteam_api.so (0x00007f653aa62000)
        libGLU.so.1 => /lib64/libGLU.so.1 (0x00007f653a7e3000)
        libGL.so.1 => /lib64/libGL.so.1 (0x00007f653a578000)
        libpng12.so.0 => /lib64/libpng12.so.0 (0x00007f653a34f000)
        libfmodex.so => /media/data/Jeux/SteamApps/common/Barony/libfmodex.so (0x00007f6539f9f000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f6539c9f000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f6539a88000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f65396d5000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f653b970000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f65394d1000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f65392b4000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f65390ac000)
        libfreetype.so.6 => /lib64/libfreetype.so.6 (0x00007f6538e13000)
        libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f6538be9000)
        libxcb-dri3.so.0 => /lib64/libxcb-dri3.so.0 (0x00007f65389e6000)
        libxcb-present.so.0 => /lib64/libxcb-present.so.0 (0x00007f65387e3000)
        libxcb-sync.so.1 => /lib64/libxcb-sync.so.1 (0x00007f65385dc000)
        libxshmfence.so.1 => /lib64/libxshmfence.so.1 (0x00007f65383d9000)
        libglapi.so.0 => /lib64/libglapi.so.0 (0x00007f65381aa000)
        libXext.so.6 => /lib64/libXext.so.6 (0x00007f6537f98000)
        libXdamage.so.1 => /lib64/libXdamage.so.1 (0x00007f6537d95000)
        libXfixes.so.3 => /lib64/libXfixes.so.3 (0x00007f6537b8f000)
        libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x00007f653798d000)
        libX11.so.6 => /lib64/libX11.so.6 (0x00007f6537650000)
        libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f653742a000)
        libxcb-glx.so.0 => /lib64/libxcb-glx.so.0 (0x00007f6537211000)
        libxcb-dri2.so.0 => /lib64/libxcb-dri2.so.0 (0x00007f653700c000)
        libXxf86vm.so.1 => /lib64/libXxf86vm.so.1 (0x00007f6536e06000)
        libdrm.so.2 => /lib64/libdrm.so.2 (0x00007f6536bf7000)
        libz.so.1 => /media/data/Jeux/SteamApps/common/Barony/libz.so.1 (0x00007f65369e1000)
        libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f65367d1000)
        libpng16.so.16 => /media/data/Jeux/SteamApps/common/Barony/libpng16.so.16 (0x00007f653659b000)
        libXau.so.6 => /lib64/libXau.so.6 (0x00007f6536397000)
        libXdmcp.so.6 => /lib64/libXdmcp.so.6 (0x00007f6536191000)

libpng16 should be sufficient. I think the barony binary itself was compiled against libpng12, and libpng16 is pulled in by system dependencies like freetype, since:

$ ldd *.so* | grep png
libpng16.so.16:
        libpng16.so.16 => /lib64/libpng16.so.16 (0x00007fd15d9c8000)

no bundled library seems to require it apart from itself :)

Feature request: NPC's can swim

Request that NPC's get the ability to swim. This could be just humans who can swim so friendly party members can keep up. Or maybe Goblins could swim as well but not ghouls, spiders, slime's etc.

Hell's exit can fail to place

Currently, there exists a possibility for hell's exit portal to not be placed -- since the map generation code only places exits in areas accessible from the start room.

There are two ways to fix this:

  • Level design
  • Code

For level design, make sure that no rooms are bordered by lava. Suboptimal.

Codewise, the map generation algorithm should be modified to ignore lava when searching for a tile that is accessible by the start room -- only be careful that the exit portals don't start spawning on top of lava (that would be interesting). Preferred solution.

Retroactively Update Code to Coding Style Guidelines

The codebase is inconsistent in its naming, whitespace, calling conventions, etc. In addition to new code going forward, everything already written should be retroactively updated to conform to the coding style guidelines.

Prefer automated tools where possible.

Breaking down this task:

Whitespace related:

  • Run through the code and make it comply with whitespace and bracket/brace conventions.

Naming conventions:

  • Variable naming (int myVariableName;).
  • Function naming (void myFunctionName();)
  • Class naming (class MyClass;)

Misc:

  • Prefer use of 0 and nullptr to NULL.
  • Prefer const over #define

Also:

  • Peruse the code and finish populating this list with violations that must be remedied.

Somewhat of a stretch goal extending beyond the immediate scope of this venture:

  • Abolish the global state! Too many global variables all over the place.
  • In general, the codebase should transition from C conventions and idioms to C++.

NOTE: Coding style guidelines are linked in CONTRIBUTING.md

Gamepad Menu Navigation

Better menu navigations with the gamepad -- d-pad support and whatnot.

The following menus require visitation:

Additionally, the following should be implemented:

  • Using the d-pad for menu navigation hides the cursors. Using the analog stick or the mouse shows the cursor. WIP 6251a70 Nah. Code isn't particularly friendly to this.
  • Gamepad "key repeat" functionality.
  • "Random player name" button or something. Something to make it easier for gamepad players, because they don't have keyboards. (OR: Take clientnum and stick it + 1 onto the end of "Player " by default.) Random name button: b41b560

Player names in lobby should include steamid

Right now when a player joins the multiplayer lobby, it only displays their character name, which can be whatever the player wants. This can make it difficult to identify friends in the lobby since people usually choose unique names for themselves in every game. I suggest we format the name in the lobby so it looks like this:

character name (steamid)

eg:

Slayer of Trolls (sheridanr)

The name need not necessarily be formatted in the chat or elsewhere in the game.

Some single player bugs(?)

Hello, I've been enjoying Barony (only been playing single player) and I have encountered a few odd things happening ingame:

  1. Sometimes, blood pools can completely cover a small flat item, such as the ring drop from Shelob (unique spider) or gloves from NPCs.
  2. Items dropped from monsters on their death can clip through the hallways in the early game (cheese/meat from rats can clip completely and vanish inside the stone walls).
  3. The light spell beacon goes crazy every time your character goes invisible, and stops tracking properly until you become visible again. At first it twitches between your character location and the usual trailing spot, then it eventually stops following, but still twitching between two adjacent spaces.
  4. Map generation may stick some structures against the outer level walls, preventing entry without dig/levitation. It is more common with some structures that were added December 20th or so. Some large map portions (like 25%) can be completely isolated, only evidence of their existence is random monster noise from the monsters wandering around inside them.
  5. A mail scroll had a completely blank entry, causing only a new line to appear in the message window.
  6. One shopkeeper text had a typo 'mbuy'.
  7. The weird yellow marble/sandstone trapped corridors in the sand labyrinth tend to generate without any visible access, and even the door was inside a wall after digging out an adjacent wall. Some ghouls and their graves can be stuck inside a wall as well.
    20161227105108_1
  8. The random chance minotaur got stuck slightly southeast of the center of the map, and remained there until i walked around the bottom of the map and found the level exit along the east level wall.
    20161226174316_1
  9. This structure in the swamp zone makes a rolling boulder noise and a wall explosion when the lever is thrown, but nothing ever happens.
    20161227140330_1
  10. The game lags a lot in places like the sand labyrinth when I use a pickaxe to make holes towards a portal or when breaking down random walls. I would guess it is rebuilding pathing for monsters. Rarely, the game starts lagging constantly until I move to the next floor.
  11. You can smash yourself with a boulder if you move against it while pushing it into a wall.

Unconfirmed stuff:

  1. I recruited a NPC in Minetown, which was attacked and killed by another NPC offscreen while I was shopping. I'm not sure what triggered the attack to happen.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.