Code Monkey home page Code Monkey logo

flare-game's Introduction

Flare

Flare is a single-player 2D action RPG with fast-paced action and a dark fantasy style.

It is built on the FLARE engine (Free/Libre Action Roleplaying Engine). Its repo is at https://github.com/flareteam/flare-engine

Flare uses simple file formats (INI style config files) for most of the game data, allowing anyone to easily modify game contents. Open formats are preferred (png, ogg). Maps are edited using Tiled.

For best results, please use the latest version of the FLARE engine with the game data in this repository. Using an older version of the engine could result in some game elements not working correctly.

Flare screenshot

The flare-game content contains depictions of violence, blood, and mild gore.

Copyright and License

Flare (the game) is Copyright ©2010-2013 Clint Bellanger. Contributors retain copyrights to their original contributions.

The Flare Engine is released under GPL version 3 or later.

All of Flare's art and data files are released under CC-BY-SA 3.0. Later versions are permitted.

The Liberation Sans fonts version 2 are released under the SIL Open Font License, Version 1.1.

The Marck Script font is licensed under the SIL Open Font License, Version 1.1.

Links

The Simplest Setup

If you are building and running Flare Game from source, this is the simplest way to get started on all operating systems. Here you build and play Flare in a local folder instead of installing it to a standard OS folder (e.g. /usr/local or Program Files).

  • Clone the flare-engine repo and build the executable.
  • Clone the flare-game repo into your user directory.
  • Copy the flare-engine "default" mod into the flare-game mods folder.
  • Put the flare executable inside the flare-game folder
  • The executable and the "mods" folder should be in the same directory
  • Run Flare

Building and Running (non-Linux)

See the Flare-Engine repo for instructions on how to build/install Flare:

https://github.com/flareteam/flare-engine

The mods folder should be in the same directory as the flare executable when building from source.

Flare Game is installed as a set of mods for Flare Engine. Place the contents of the "mods" folder inside Flare Engine's mods folder.

Then enable these mods in Flare's Configuration screen.

fantasycore
empyrean_campaign

Building and Running on Linux

Clone the repos:

git clone https://github.com/flareteam/flare-engine
git clone https://github.com/flareteam/flare-game

Move to the flare-engine repo and build: For instructions more in detail see the INSTALL file in the flare-engine repo.

cd flare-engine
cmake . && make

From this point we have two options:

Option 1 Install the game system-wide (requires root access):

sudo make install
cd ../flare-game
cmake . && sudo make install
cd ~ #this step is important because we don't want to load mods from the repo folders
flare #alternatively, launch Flare from the desktop application menu

Option 2 Run the game without installing:

cd ../flare-game
ln -s ../flare-engine/flare flare
cd mods
ln -s ../../flare-engine/mods/default default
cd ..
./flare

Settings

Settings are stored in one of these places:

$XDG_CONFIG_HOME/flare
$HOME/.config/flare
./config

Here you can enable fullscreen, change the game resolution, enable mouse-move, and change keybindings. The settings files are created the first time you run Flare.

Save Files

Save files are stored in one of these places:

$XDG_DATA_HOME/flare
$HOME/.local/share/flare
./saves

If permissions are correct, the game is automatically saved when you exit.

Packaging and Distributing

If you are packaging Flare Game for release (e.g. on an operating system's software repo), we suggest creating two packages.

  • flare-engine the package that contains the single engine reused by several games
  • flare-game, a package that requires flare-engine that only contains this game data

When distributing flare-game you may elect to omit these folders which are not used at runtime.

  • art_src contains the raw files (e.g. Blender files) used to generate Flare's art.
  • tiled contains the Tiled-native map files used to export Flare's maps

flare-game'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  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

flare-game's Issues

Low-Quality Textures thoughts

Migrated from clintbellanger/flare#531

dorkster recently added a config toggle for High/Low quality textures. This refers to the transparency of textures -- full alpha (8 bit) vs. magic pink (1 bit).

On some systems there may be a vast performance improvement by using the low-quality textures -- e.g. systems that support hardware blitting but have slow processors to do alpha transparency calculations.

How to arrange all these textures? I suggest a new folder alongside images that mimics its structure, named something like images_noalpha or images_low.

I need to poke around and see which images don't have full alpha versions, even in the art_src folder. I need to check NPCs and flying loot animations, perhaps others.

For power animations we can carefully create no-alpha versions. It's all about the Alpha Threshhold (as it's called in GIMP).

And future thoughts: it might be a lot to ask for every Flare game to supply both full alpha and 1-bit alpha images (especially for projects where full-alpha makes no sense, like most pixel art). Perhaps in config files we can enable/disable this toggle feature and set a default for the project.

Powers utilizing requires_hp

I'd be happy to work some of these into the alphademo if people like them:

1: Kamikaze enemies. sacrifice=true doesn't make any sense for PC powers in a single-player game (unless you want the player to have to manage their HP in that way deliberately), but could be pretty awesome for the enemies.

2: Life-mana exchange. A high level wizard might want to swap a small amount of life for some more mana.

3: Blood speed. A high level warrior might want to trigger haste with his HP, instead of his limited MP.

[abrt] flare-0.17.1-8.fc17: WidgetScrollBar::set: Process /usr/bin/flare was killed by signal 8 (SIGFPE)

Version-Release number of selected component:
flare-0.17.1-8.fc17

Additional info:
backtrace_rating: 4
cmdline: /usr/bin/flare
crash_function: WidgetScrollBar::set
executable: /usr/bin/flare
kernel: 3.6.10-2.fc17.i686
uid: 1003
xsession_errors: Unable to open /home/zangpo/.local/share/flare/stash.txt!

Truncated backtrace:
Thread no. 1 (7 frames)
#0 WidgetScrollBar::set at /usr/src/debug/flare_v017_1/src/WidgetScrollBar.cpp:132
#1 WidgetScrollBox::refresh at /usr/src/debug/flare_v017_1/src/WidgetScrollBox.cpp:126
#2 MenuLog::add at /usr/src/debug/flare_v017_1/src/MenuLog.cpp:219
#3 GameStatePlay::checkLog at /usr/src/debug/flare_v017_1/src/GameStatePlay.cpp:306
#4 GameStatePlay::logic at /usr/src/debug/flare_v017_1/src/GameStatePlay.cpp:577
#5 GameSwitcher::logic at /usr/src/debug/flare_v017_1/src/GameSwitcher.cpp:84
#6 mainLoop at /usr/src/debug/flare_v017_1/src/main.cpp:145

Further detailed info: https://bugzilla.redhat.com/show_bug.cgi?id=891001

Refresh data.pot files

The following data.pot files need to be refreshed to reflect the v0.18 string freeze.

mods/fantasycore/languages/data.pot
mods/alpha_demo/languages/data.pot

For now we'll ignore the newly-created devlab when it comes to translations. Do not generate a data.pot for it, so that translators will not be tempted to update it prematurely.

Suggestions for release tar name

The latest release 0.17.1 had a mismatching archive and folder name.
tar.gz file was: flare_linux_v017_1.tar.gz
folder in the file: flare_v017_1

I would suggest to use flare-0.17.1.tar.gz as archive name and flare-0.17.1 as folder name inside.
This would also simplify makro use in rpm packages for eg.

Fire sound at fire basket too strong?

In my opinion the sound is too loud for such a small fire basket in comparison to other environmental spot sounds such as the smith or water flows.

Flare: The Game (Preproduction)

Migrated from clintbellanger/flare#543 (Edit by @stefanbeller: I copied the text as you get it when clicking on the edit button, so the format is kept.)

We're at the point where Flare has at least the first version of MOST major features required to make a game. Much of the remaining work we havea planned for the engine is refactoring for modders.

This means it's time to take a serious look at Flare: The Game. Taking the current assets, putting a bit of polish on them, and turning out a satisfying full game with it.

Engine Features

First thing to discuss: what missing engine features are absolutely necessary to making a complete game?

The main thing that comes to mind is a "Cinematic" game state to display cut scenes (most likely slides of images + text + music). But that's a feature that can be implemented really late into the game-making process.

Second: what current engine features absolutely must change to make an interesting game? The Powers menu is the most likely. On paper it seemed fun to unlock powers that way, but in practice it really isn't satisfying. Thus our planned Powers menu rewrite.

Data Features

What near-essential data needs to be created to make a good game? Maximum results for minimal effort (aka we're not creating 10 new tile sets).

Here are my thoughts:

I want to flesh out the current 3 tile sets. Each of them will get new tiles to add interesting options for map designs.

I want to create Teleport Circle art and add it to each tile set. Then I want to create a test "hub map" where you can warp to teleport circles you previously discovered. I'm pretty sure all this is completely doable with the current campaign status system.

I want to at least add 2 new shields and 2 new armors, so that at each tier there is a shield + armor to wear.

Features like More Equipment Slots, 2H Weapons, Dual Wielding might simply not make the cut. We might save those for Flare 2 aka Wandercall.

I want to create a few completely new Test/Dev maps FULL of interesting events.

  • One map will be all about Traps (poison darts, floor spikes, blade pendulums, floor sawblades).
  • Another map will be all about the mapmod feature, showing neat ways to alter the terrain through events.
  • Another map will be for Creature Features: showing patrolling, summoning, and other wacky combos.
  • The goal of these test maps will be to push the current features in interesting directions, and create a suite of tools/ideas so that all new maps are Very Interesting.

We'll also play with the numbers. Example: I want Defense to matter more, so I'm scaling up armor absorption. To do this I will need to scale all the numbers up (e.g. starting health might be 100 instead of 10).

Finally we'll create a game data "style guide". Things to keep in mind for map size and layout. How often to place teleport circles. How to place bosses and chests so they aren't cheaply farmable. etc.

This preproduction phase will happen in parallel to v0.17 development. In the meantime we'll kick around basic story/plot ideas.

Once we have decent progress, we'll start making final game maps in earnest. I expect that ALL of the previous maps will be thrown out. However, with the fun tools/templates from the dev maps and the data style guide, it should be straight-forward and fun.

Scope

If we end up making a solid 10 hour single player campaign, it would be a huge success.

README has very long lines

Some lines in README could get a manual break maybe. Especially when reading on console you do not always see the lines broken to next line automatically. A limit of 80 characters per line could help probably.

Include Mac OSX dependancy and build instructions in Install file

The Install file has good instructions for building flare on various platforms. It would be nice if there was good instructions for building flare and installing build dependencies on Mac OSX as well.

I think it would be good to have easy to follow instructions for all the main platforms flare can run on. That way barriers to contribute can be minimized for those people who are not programmers, but are capable in other areas such as, creating art assets, quests, etc.

Missing sound files (antlion_ment.ogg and wyvern_critdie.ogg)

Whenever I enter "Frontier plains", the following warning messages are printed in the terminal:
EnemyManager mental attack sound: Loading sound ./soundfx/enemies/antlion_ment.ogg failed: Mix_LoadWAV_RW with NULL src
EnemyManager critdeath sound: Loading sound ./soundfx/enemies/wyvern_critdie.ogg failed: Mix_LoadWAV_RW with NULL src

I've also seen the following:
EnemyManager physical attack sound: Loading sound ./soundfx/enemies/human_male_phys.ogg failed: Mix_LoadWAV_RW with NULL src
EnemyManager mental attack sound: Loading sound ./soundfx/enemies/human_male_ment.ogg failed: Mix_LoadWAV_RW with NULL src
EnemyManager critdeath sound: Loading sound ./soundfx/enemies/human_male_critdie.ogg failed: Mix_LoadWAV_RW with NULL src
EnemyManager mental attack sound: Loading sound ./soundfx/enemies/minotaur_ment.ogg failed: Mix_LoadWAV_RW with NULL src

Looking in mods/fantasycore/soundfx these files does indeed seem to be missing. (Then again, they don't seem to be mentioned in git log, so this might be a known issue.)

Edit: with the recent changes, the messages printed was improved a lot. Also found a couple other ones.

Item bonuses not applied when using Stealth

  • Wear an item with a bonus, e.g. +HP
  • Wait until HP is full.
  • Enter stealth
  • The HP bonus is no longer applied
  • Exit stealth
  • That extra HP is gone and must be recovered.

Because of the way Stealth is implemented I'm not sure we can do much about it, but we should consider ways to make this play nicely. E.g. have a transform option where equipped items are still applied, or make this always true for transforms.

Add living_bones NPC animation files

The statues in the Living Bones area are NPCs. Now that NPCs have a separate animation file, we need to add new animations to alpha_demo/animations/npcs

These missing images are currently causing the brothers_lair_sacrifice_room.txt map to hard exit with: Error loading animation definition file: animations/npcs/statue_guardian_ice.txt

Side note, if we can't find the animation for something, just throw a warning and keep playing (let that missing animation object be invisible).

Not able to run the latest git, even with clean config

Hi,

Flare won't start for me with the following error:

*(from the clone root folder)*
$./flare
Mod "default" not found, skipping
Unable to open engine/font_colors.txt!
Unable to determine default font!

I've successfully compiled the game on linux using 'cmake . && make' and I've removed the user configuration files from the locations given in the README.

Is there a step missing?

Regards,

Support for handheld devices (mouse-less devices)

I opened this issue to discuss steps needed to implement in order for Flare to support handheld platforms.

What I understand as a "handheld platform" is a device, which:

  • uses keyboard interface or
  • uses joystick interface
  • has limited number of buttons
  • does not have a pointing device (mouse, touchscreen)

Note that some handheld platforms will have a touchscreen, however I would like to focus here on a situation where keyboard/joystick is the only way of input.

Case study:
GCW Zero - 8 buttons (keyboard interface), d-pad (keyboard interface), analog (joystick interface)
GPH Caanoo - 9 buttons (joystick interface), analog (joystick interface)

Video of the current status of Flare performance on these devices: http://www.youtube.com/watch?v=ymc--9fIAxc
(I encourage to watch it to understand the points I'm raising further on)

== Menu navigation ==

Options menus:

  • Options menus should have easy navigation with keyboard/joystick. Every menu button should be possible to highlight using keyboard/joystick.
  • Joystick buttons and/or axes should be remappable in the options->keybindings to assign them custom game actions.
  • The character creation dialog needs at least one of the following: default name if no name string is entered, random name generation, virtual keyboard to type custom name.

In-game menus:

  • All the menus should have a way to navigate with keyboard/joystick, preferably by using the movement keys. Player character movement should be temporarily ignored when an in-game menu is accessed on a mouse-less device.
  • Inventory menu - one should be able to browse the inventory and equipment slots.
    There needs to be a way to select an item and then move it across the inventory slots to either equip/remove it, change it's order in the inventory, transfer to another Inventory window (merchants, stash chest), move to quick access bar (0-9), or drop to the ground.
  • Power menu - player should be able to select the powers of his interest, unlock them if needed, and then place them on the lmb/rmb bar or quick access bar.

== Picking up items ==

  • I propose a special key to be introduced. I call it an "action" button. Action button would act differently depending on the situation.
    When player is in range of item pickup, the action button should act in the following way:
    1. Player presses AND holds down action button
    2. Nearby items get highlighted
    3. Player uses movement keys to cycle between the highlighted items
    4. Player releases the action button and the selected item gets picked up

== NPC Dialog menus ==

  • The action button mentioned in the previous section would be used to initialize the NPC conversation dialog. NPC dialog would have precedence over item pickup if both are in player's range.
  • Player needs to be able to progress in the dialog by using keyboard/joystick.

== Using the bottom bar ==

  • Now this is tricky. My intention is to easily navigate across the bottom bar (quick access, lmb/rmb and c/i/p/l bar) without resorting to using individual shortcuts for each of the icons.
    We will need to sacrifice 3 keys for it. 2 keys (usually L and R shoulder buttons in gaming handhelds) would be used to change the currently selected icon on the bottom bar, while a 3rd key would activate that given icon.
    This way we can solve both fairly quick access to potions/items in the quick access bar and access to the character, inventory, player, log dialogs. To sum it up, we'd need to highlight one field on the bottom bar and move the highlight from one field to another when player presses the "next/previous field" buttons.

== Loading times ==

Loading times should be optimized to reduce their time.

I believe some of the proposed features should also be merged back with the flare-engine when implemented.

Updated icon art

We'll want to create or commission new icons for the new armor pieces.

They will have to strictly match the current quality. We may find matches in Wesnoth, however any icons we use from there must explicitly be released by the artist under CC-BY-SA for Flare (Wesnoth art is GPL by default, not dual-licensed).

We won't start any commissions until we know the entire set of new icons needed for v0.18.

v0.17 Bug Fixing

We need to address a few bugs in v0.17 before I have time to look at anything past that.

All of these bugs have to do with players using v0.16 settings/saves and running v0.17.

Issues I've heard:

  • I try to play but when I load the screen is black (problem: alpha_demo is not enabled)
  • I try to play but when I load the game crashes (same problem as above plus other possible issues -- e.g. using powers/items/etc that have been removed and we're not properly defending against this)

Ability to set status upon map clear

It'd be cool to be able to trigger an event or set_status when a map has no more enemies on it. This could make, for example, a map which you couldn't leave until you killed everything.

[event]
type=on_clear

?

Filed this issue in the wrong repo....

Retag v0.14, v0.15, and v0.16

We need to look through the old "flare" repo and locate the tags for v0.14, 15, and 16. We'll at least create those here. We won't create branches for those old tags, and we won't worry about recreating the minor bugfixes (e.g. 15.1).

Game development GUI

We could create game development GUI with "built-in" game design system that will simplify game development and avoid the need to read manual(howto) for game creating using Flare engine. The idea is to convert writing config files to GUI interface, so each value you enter will have tip, and you will not care about config file syntax.

This can implement:

  • GUI reskin
  • writing quests
  • creating NPCs
  • creating enemies
  • adding items
  • adding powers
    etc

It could start Tiled if you push "create map" button

Starting point (for ideas) could be CELayout Editor It is crossplatform and allows editing GUI in realtime. We could use WxWidgets as it does.

no loot dropped by enemies until first reload of game?

Yesterday I started a new character and player around 2 hours, killed a lot of enemies, but non of them randomly dropped any items.

Now I reloaded the char and resumed playing and now there is gold dropped. I think this might be a bug somehow.

Picking a specific character portait results in headless character model

Steps to reproduce:

  1. Go to character creation.
  2. Click the right button twice.
  3. Pick this character and start a new game.

For some reason, picking this character portrait leads to a headless character model. I haven't checked with all the other character portraits, but the ones I checked with all had character models with heads.

Flare version: latest master (16add5c)

For an example see
headless

0.17 linker error (libm)

Hello. Where should I add "-libm" when I get such error?
[ 196s] [100%] Building CXX object CMakeFiles/flare.dir/src/main.cpp.o
[ 196s] /usr/bin/c++ -DDATA_INSTALL_DIR="/usr/share/games/flare" -fomit-frame-pointer -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -Wall -Wextra -Wunused -Wshadow -Woverloaded-virtual -Wunreachable-code -fno-math-errno -fno-exceptions -fno-enforce-eh-specs -O2 -g -flto -I/usr/include/SDL -o CMakeFiles/flare.dir/src/main.cpp.o -c /home/abuild/rpmbuild/BUILD/clintbellanger-flare-game-bed9580/src/main.cpp
[ 198s] Linking CXX executable flare
[ 198s] /usr/bin/cmake -E cmake_link_script CMakeFiles/flare.dir/link.txt --verbose=1
[ 198s] /usr/bin/c++ -fomit-frame-pointer -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -Wall -Wextra -Wunused -Wshadow -Woverloaded-virtual -Wunreachable-code -fno-math-errno -fno-exceptions -fno-enforce-eh-specs -O2 -g -flto CMakeFiles/flare.dir/src/Entity.cpp.o CMakeFiles/flare.dir/src/Animation.cpp.o CMakeFiles/flare.dir/src/AnimationManager.cpp.o CMakeFiles/flare.dir/src/AnimationSet.cpp.o CMakeFiles/flare.dir/src/AStarNode.cpp.o CMakeFiles/flare.dir/src/Avatar.cpp.o CMakeFiles/flare.dir/src/BehaviorStandard.cpp.o CMakeFiles/flare.dir/src/CampaignManager.cpp.o CMakeFiles/flare.dir/src/CombatText.cpp.o CMakeFiles/flare.dir/src/Enemy.cpp.o CMakeFiles/flare.dir/src/EnemyBehavior.cpp.o CMakeFiles/flare.dir/src/EnemyGroupManager.cpp.o CMakeFiles/flare.dir/src/EnemyManager.cpp.o CMakeFiles/flare.dir/src/FileParser.cpp.o CMakeFiles/flare.dir/src/FontEngine.cpp.o CMakeFiles/flare.dir/src/GameState.cpp.o CMakeFiles/flare.dir/src/GameStateConfig.cpp.o CMakeFiles/flare.dir/src/GameStateTitle.cpp.o CMakeFiles/flare.dir/src/GameStateLoad.cpp.o CMakeFiles/flare.dir/src/GameStatePlay.cpp.o CMakeFiles/flare.dir/src/GameStateNew.cpp.o CMakeFiles/flare.dir/src/GameSwitcher.cpp.o CMakeFiles/flare.dir/src/GetText.cpp.o CMakeFiles/flare.dir/src/Hazard.cpp.o CMakeFiles/flare.dir/src/HazardManager.cpp.o CMakeFiles/flare.dir/src/InputState.cpp.o CMakeFiles/flare.dir/src/ItemManager.cpp.o CMakeFiles/flare.dir/src/ItemStorage.cpp.o CMakeFiles/flare.dir/src/LootManager.cpp.o CMakeFiles/flare.dir/src/MapCollision.cpp.o CMakeFiles/flare.dir/src/MapRenderer.cpp.o CMakeFiles/flare.dir/src/Menu.cpp.o CMakeFiles/flare.dir/src/MenuActionBar.cpp.o CMakeFiles/flare.dir/src/MenuActiveEffects.cpp.o CMakeFiles/flare.dir/src/MenuCharacter.cpp.o CMakeFiles/flare.dir/src/MenuConfirm.cpp.o CMakeFiles/flare.dir/src/MenuEnemy.cpp.o CMakeFiles/flare.dir/src/MenuExit.cpp.o CMakeFiles/flare.dir/src/MenuHUDLog.cpp.o CMakeFiles/flare.dir/src/MenuInventory.cpp.o CMakeFiles/flare.dir/src/MenuItemStorage.cpp.o CMakeFiles/flare.dir/src/MenuLog.cpp.o CMakeFiles/flare.dir/src/MenuManager.cpp.o CMakeFiles/flare.dir/src/MenuMiniMap.cpp.o CMakeFiles/flare.dir/src/MenuPowers.cpp.o CMakeFiles/flare.dir/src/MenuStash.cpp.o CMakeFiles/flare.dir/src/MenuStatBar.cpp.o CMakeFiles/flare.dir/src/MenuTalker.cpp.o CMakeFiles/flare.dir/src/MenuVendor.cpp.o CMakeFiles/flare.dir/src/MessageEngine.cpp.o CMakeFiles/flare.dir/src/ModManager.cpp.o CMakeFiles/flare.dir/src/NPC.cpp.o CMakeFiles/flare.dir/src/NPCManager.cpp.o CMakeFiles/flare.dir/src/PowerManager.cpp.o CMakeFiles/flare.dir/src/QuestLog.cpp.o CMakeFiles/flare.dir/src/SaveLoad.cpp.o CMakeFiles/flare.dir/src/SDL_gfxBlitFunc.c.o CMakeFiles/flare.dir/src/Settings.cpp.o CMakeFiles/flare.dir/src/SharedResources.cpp.o CMakeFiles/flare.dir/src/StatBlock.cpp.o CMakeFiles/flare.dir/src/TileSet.cpp.o CMakeFiles/flare.dir/src/Utils.cpp.o CMakeFiles/flare.dir/src/UtilsDebug.cpp.o CMakeFiles/flare.dir/src/UtilsFileSystem.cpp.o CMakeFiles/flare.dir/src/UtilsParsing.cpp.o CMakeFiles/flare.dir/src/WidgetCheckBox.cpp.o CMakeFiles/flare.dir/src/WidgetButton.cpp.o CMakeFiles/flare.dir/src/WidgetInput.cpp.o CMakeFiles/flare.dir/src/WidgetLabel.cpp.o CMakeFiles/flare.dir/src/WidgetListBox.cpp.o CMakeFiles/flare.dir/src/WidgetScrollBar.cpp.o CMakeFiles/flare.dir/src/WidgetScrollBox.cpp.o CMakeFiles/flare.dir/src/WidgetSlider.cpp.o CMakeFiles/flare.dir/src/WidgetTabControl.cpp.o CMakeFiles/flare.dir/src/WidgetTooltip.cpp.o CMakeFiles/flare.dir/src/main.cpp.o -o flare -rdynamic -fwhole-program -Wl,-Bstatic -lSDLmain -Wl,-Bdynamic -lSDL -lpthread -lSDL_mixer -lSDL_image -lSDL_ttf -Wl,-Bstatic -lSDLmain -Wl,-Bdynamic -lSDL -lpthread -lSDL_mixer -lSDL_image -lSDL_ttf
[ 250s] /usr/lib/gcc/i586-suse-linux/4.6/../../../../i586-suse-linux/bin/ld: /tmp/cciVcosq.ltrans9.ltrans.o: undefined reference to symbol 'sincosf@@GLIBC_2.1'
[ 250s] /usr/lib/gcc/i586-suse-linux/4.6/../../../../i586-suse-linux/bin/ld: note: 'sincosf@@GLIBC_2.1' is defined in DSO /usr/lib/gcc/i586-suse-linux/4.6/../../../libm.so so try adding it to the linker command line
[ 250s] /usr/lib/gcc/i586-suse-linux/4.6/../../../libm.so: could not read symbols: Invalid operation
[ 250s] collect2: ld returned 1 exit status
[ 250s] make[2]: *** [flare] Error 1
[ 250s] make[2]: Leaving directory /home/abuild/rpmbuild/BUILD/clintbellanger-flare-game-bed9580/build' [ 250s] make[1]: *** [CMakeFiles/flare.dir/all] Error 2 [ 250s] make[1]: Leaving directory/home/abuild/rpmbuild/BUILD/clintbellanger-flare-game-bed9580/build'
[ 250s] make: *** [all] Error 2

Regenerate data.pot files for v0.17

I added the remaining warps to alpha_demo, so (as far as I know) we're done with data strings.

Let's regenerate the data.pot files for fantasycore and alpha_demo.

Separate armor into several slots

What's currently the "body" armor will become four new equipment slots:

  • boots
  • legs
  • gloves
  • chest

Additionally we'll create a new Head slot for wearing helmets.

I've uploaded art_src renders of the 3 main male armor types for us to begin testing these new armor slots.

Note: Let's not worry about packing these images, making the female versions, or making the minicore versions until we get the system worked out on these.

More map transition sounds

I really like the double doors sound effect when passing between dungeon maps.

We could use a couple more:

  • Walking up/down stairs
  • Teleport sound (probably not the same as the teleport spell)

Default Names for Portraits

Today I added default names for each portrait. This helps systems without keyboards.

Please look over these names for ones that should be changed. Examples of what I'm looking for:

  • A real-world name that is assigned to the wrong gender
  • A fantasy name that is actually a common dirty word in some language
  • Any name that just "feels" wrong for the portrait
  • The name implies a root word that isn't very heroic or fantasy
  • Names that are too common (e.g. Esteban?)

If you're one of the people depicted in these portraits and you'd like a different default name, just let us know!

NPCs need dialog topics

Right now, if you try to talk to Martigan, nothing happens because he has no topic key for any of his dialog nodes.

Also, Guill continually offers a reward for defeating Maddox, so it looks like a requires_not is needed there.

Equip Delay

Hi there, I was trying v0.17.1 (from flarerpg.org) and found the following issue:
When clicking to equip a new item (e.g. wand) the game lags for a short time. After that the equip-sound effect is played and everything is alright. I can reproduce this each time I (re-) equip my character. Because I found this problem using my netbook, I asked a friend of mine to check on his machine (actual more powerful but I don't know any exact data) using the same version. He also reproduces the occurence.
We are both using Linux Ubuntu (me 12.04, him 12.10). I'm neither sure about the exact reason nor I have the free time to seek for it. So I'm using the issue-functionality of github to notify you :)

I hope there is not other report about this issue (I was looking in the first place but didn't found something suitable).

Kind regards
Christian

Wrong permissions in release tarball

This is more a reminder for future releases:
The current one (0.17.1) has all files marked as 777.

Inside of the repository permissions are set correctly.

Proposal of quest "Tree of Life"

Tree of Life

Outline story

Is placed in the graveyard where zombies are spawn, its dead but before it glowed and was a greater token of life. Therefor its nearby grounds was used as a graveyard due to the belief of a greater after life.

Something has cursed a gravestone which spawns the zombies and made the ground dead, trees died and the Tree of Life too.

Destroying the cursed gravestone brings back life to the ground and the Tree of Life blooms again as it was before. The tree of life is magical and pollutes the air with seeds that make "Red Flowers", "Blue Flowers" and "Green berry bushes" to grow around the frontier outline. This vegs. can be harvested and brought to Alchemist for potions craftings as a reward.

Questline

Alechemist whines about shortage of components and brings a few topics to discuss: Potion Components which will tell what is required for potions and that they are not grewing like before in frontier plains, raises her speculation about the cursed grounds around "Tree of Life" and it might be the source to the problem, which brings another topic.
A story about the Tree of Life is told and a quest starts were hero should investigate the source to the cursed grounds at graveyard.
When this quest is complete, the Tree of Life starts spawn random components in frontier plains (red / blue flowers and green berry bushes) which the hero can harvest.
The quest reward is just a dialog that informs the hero that if he found any of the components and brings them to her he would be rewarded with potions for the trouble.

Bringing the items to alchemist will present different dialog topics for crafting with the following recipts:

Green Berries = Green berry juice
Red Flower + Green berry juice = Health potion
Blue Flower + Green berry juice = Mana potion

copy of copy

something go wrong with merge i think... and created clintbellanger / flare-game / flare-game

my translation went to the right place

Tile Set Improvements

We're working to add more features to all three core tile sets so that the final maps will really shine.

Dungeons

  • Stairs and exits (done)
  • Doors (done)
  • Random bones (done)
  • Floor rubble
  • Tables, chairs
  • Special larger statues
  • Walls/floors for traps
  • Torture devices
  • Archways and features for pits
  • Slime, pipes, steam, sludge (rejected, too anachronistic for this set)

Caves

  • Pits
  • Wooden walkways
  • Crystals
  • Vines
  • Half height walls
  • Thick webs
  • Egg sacs
  • Collapsed caves
  • Exits
  • Separate floor from rocks/bones (put debris in the object layer).

Grasslands

  • Larger houses
  • Thick twisted trees
  • Larger variety of plants/bushes
  • Tall grass
  • Thorny bushes

Visual Studio Build

Hi,

I compiled this in MSVC2010 and the best method was to download all the SDL libraries as precompiled binaries and to create the project from existing sources. Some minor modifications were needed,

  1. in UtilsFileSystem.cpp for the functions getDirList() and getFileList(). Instead of including dirent.h (MSVC does not know this file) I had to include some windows files, at the moment I have this ...

ifndef _WIN32

include <unistd.h>

else

include < windows.h >

include < tchar.h >

include < stdio.h >

include < strsafe.h >

endif

The method for enumerating directories in MS windows code is shown here:-

http://stackoverflow.com/questions/11515548/how-to-scan-all-files-in-a-folder-including-subfolders-in-vc-2008

more specifically

/**
 * Returns a vector containing all filenames in a given folder with the given extension
 */
int getFileList(std::string dir, std::string ext, std::vector<std::string> &files) {

#ifndef MSVC_BUILD
    DIR *dp;
    struct dirent *dirp;

    if((dp  = opendir(dir.c_str())) == NULL) {
        //cout << "Error(" << errno << ") opening " << dir << endl;
        return errno;
    }

    size_t extlen = ext.length();
    while ((dirp = readdir(dp)) != NULL) {
    //  if(dirp->d_type == 0x8) { //0x4 for directories, 0x8 for files
        std::string filename = std::string(dirp->d_name);
        if(filename.length() > extlen) {
            if(filename.substr(filename.length()-extlen,extlen) == ext) {
                files.push_back(filename);
            }
        }
    }
    closedir(dp);

#else
   WIN32_FIND_DATA wfd;
        HANDLE hf;
        std::string findwhat;

        findwhat = dir + "\\" + ext;  // files

        hf = FindFirstFile(findwhat.c_str(), &wfd);
        while (hf != INVALID_HANDLE_VALUE)
        {
            if (wfd.cFileName[0] != '.' && !(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
            {
                std::string found;

                found = /*path + "\\" +*/ wfd.cFileName;
                files.push_back(found);
            }

            if (!FindNextFile(hf, &wfd))
            {
                FindClose(hf);
                hf = INVALID_HANDLE_VALUE;
            }
        }
#endif
    return 0;
}

/**
 * Returns a vector containing all directory names in a given directory
 */
int getDirList(std::string dir, std::vector<std::string> &dirs) {

#ifndef MSVC_BUILD
    DIR *dp;
    struct dirent *dirp;
    struct stat st;

    if((dp  = opendir(dir.c_str())) == NULL) {
        //cout << "Error(" << errno << ") opening " << dir << endl;
        return errno;
    }

    while ((dirp = readdir(dp)) != NULL) {
    //  do not use dirp->d_type, it's not portable
        std::string directory = std::string(dirp->d_name);
        std::string mod_dir = dir + "/" + directory;
        if ((stat(mod_dir.c_str(), &st) != -1)
            && S_ISDIR(st.st_mode)
            && directory != "."
            && directory != ".."
            )
        {
            dirs.push_back(directory);
        }
    }
    closedir(dp);

#else
WIN32_FIND_DATA wfd;
        HANDLE hf;
        std::string findwhat;


        findwhat = dir + "\\*";  // directory

        hf = FindFirstFile(findwhat.c_str(), &wfd);
        while (hf != INVALID_HANDLE_VALUE)
        {
            if (wfd.cFileName[0] != '.' && (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
            {
                std::string found;

                found = wfd.cFileName;
                dirs.push_back(found);
            }

            if (!FindNextFile(hf, &wfd))
            {
                FindClose(hf);
                hf = INVALID_HANDLE_VALUE;
            }
        }

        FindClose(hf);
#endif
    return 0;
}
  1. I had to change
struct Point

to

class Point

and to add constructors, i.e.

class Point
{
public: // forgot to add that if this is a class the members need to be declared public 
    Point(){ x=y= 0; }
    Point( int X, int Y ){ x=X; y=Y;}
    int x, y;
};

and also for the FPoint class. Then some files have constructed the Point structure in the following way

Point mouse = {x,y};

these are changed to

Point mouse(x,y);
  1. There is also an issue with the debug version is MSVC because when I attempted to enter an "unknown" zone, part of the game that was not unlocked, the game crashed with a message box "vector iterators are incompatible", I traced this to the iteration over the events before a level loads, however the same problem does not occur in the release build. This is a known issue with stl iterators.

Power ideas

With the new Effects structure, I'm pretty sure we can imagine many new cool ideas, using Penalty Costs instead of HP or MP. Imagine some of the following ideas:

[power]
name=Drunken Fighter
description=Take a swig of that johnny jump up, and trade accuracy for crit rate temporarily.
post_effect=<critbuff>,25,300
post_effect=<accuracybuff>,-25,300
[power]
name=Ironclad
description=Slow down your walkspeed and attack in exchange for an impenetrable dfense
post_effect=slow
post_effect=immunity
[power]
name=Starfish Form!
description=You're small but heal fast
post_effect=<maxhpbuff>,-50,300
post_effect=<hpregenbuff>,10,300
[power]
name=Sense Auras
description=Don a blindfold to become more in tune with nature
post_effect=Accuracy -100
post_effect=MP Regen up

Or even chain together powers and effects somehow so that a berserk rage will spike your damage, but as soon as it wears off, you're slow or start bleeding.

New powers/effects and how to implement them

We've done recent refactoring of active powers, passive powers, effects, etc. This opens up a lot of new possibilities.

It makes sense to start with some practical features we want to actually add to the game now. Working on those may reveal code that needs to be added at the engine level.

Ok, some examples.

Player-placed traps

I want to add caltrops and bear traps to the game. These will replace the "Immobilize" power in the Ranger tree. The way these work is: use the power to place the trap on the ground. If an enemy moves over them, the trap triggers and the enemy is slowed (caltrops) or immobilized (bear trap) for a short time.

There will be two visuals: one is the placed unsprung trap, and the second is the sprung trap attached to the victim. I think the unsprung trap can be a fixed hazard with a long lifespan, and the sprung trap can be an effect with its own animation.

Berzerk

I want to add more variety and unique feel to the Minotaurs. Part of what I want to do is give them a Berzerk effect that they gain at half health. Ideally I'd like for it to have multiple status effects. Example:

  • Increased damage
  • Increased speed
  • Decreased avoidance

From what I know about our effect system, each effect only contains one stat right? So to implement this we'd actually need three effects. Maybe one of them (e.g. the increased damage) could come with an animation.

Can active powers (or triggered powers) only create one effect?

Maybe we expand so that either (1) one power can grant multiple effects, (2) one effect can change multiple stats, or (3) both 1 and 2.

Side note: right now effects are kind of like a template, and the actual scalar value is specified elsewhere (e.g. in the activated power). If we expand effects to alter multiple stats it might make the effect interfaces a bit convoluted. I'm actually okay with having effects with fixed scalars. WoW does this with their Spell style effects: there isn't just one Bleeding spell, there are several that represent various bleed damage and durations. But the current system is handy (e.g. where we don't need multiple Bleeds), so if there's a pretty way to expand it then I'd like that.

Averguard Tome not dropping

On a fresh character clicking the bookstand that holds the Averguard Tome doesn't cause the book to appear.

Does the Averguard Tome bookstand event now need an explicit 100% drop chance?

Ctrl-click sells inventory items without shop attached

I'm not sure this is a bug at all, but if it isn't, the interface should be more clear.

  • Open inventory without talking to a merchant, e.g. I
  • Ctrl-click on item will add its value to the gold amount and remove the item

I have no idea, however, where the item went and where/whether i can buy it back.

If this is considered a bug, i'd recommend to have ctrl-click drop items instead of selling them unless there's an actual shop or stash to move the item to.

Leather hood animation files missing.

The missing files result in the avatar's head disappearing when you put on a leather hood, along with this error message:

Error loading animation definition file: animations/avatar/female/leather_hood.txt

Idea: Mark newly picked up / green / blue items

I sometimes want to examine an item i just picked up. But i always have to search the whole inventory to check it. It might be also nice to determine all green / blue items without needing to hover them. Coloring the cell with the item might help.

v0.17 Release

I think we're close to being wrapped up for v0.17. Here's a list of remaining tasks.

Code

  • I don't know of any engine-level work still required for v0.17.

Mod Cleanup

  • I'd like to combine 320x240 into minicore (done)
  • I'd like to combine frontier, averguard, and living_bones into one "alpha_demo" mod (done)
  • remove wipcore and hud_alt (done)

Art/Data

  • Add the teleporter art to the Cave tile set (I'll actually wait and do this after the v0.17 release. Doesn't affect much because we don't have any cave teleporters anyway)
  • Add the stairs art to the Dungeon tile set (done)
  • Add teleporters to Averguard Atrium and Brothers Atrium (done)
  • Update floors and doors on all Dungeon maps (done)

If it sounds reasonable, I'd like to call a String Freeze for Friday, Sept 21.

Then we'll be looking at releasing v0.17 on Friday, Sept 28.

The demo itself won't have much in the way of new content -- just the teleporter map mainly, and a handful of spike traps in one map. That'll be okay -- these last few Alpha releases will not be very exciting for players, as it's mostly about making things mod-friendly.

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.