GithubHelp home page GithubHelp logo

freezingmoon / ancientbeast Goto Github PK

View Code? Open in Web Editor NEW
1.6K 47.0 545.0 246.84 MB

Turn Based Strategy Game. Master your beasts! ๐Ÿบ

Home Page: https://AncientBeast.com

License: GNU Affero General Public License v3.0

JavaScript 23.77% HTML 0.07% Less 7.50% EJS 4.21% TypeScript 64.15% Dockerfile 0.02% CSS 0.24% Shell 0.04%
game javascript strategy-game strategy nodejs multiplayer multiplayer-browser-game multiplayer-game chess pokemon

ancientbeast's Introduction

Play Ancient Beast Setup Gitpod Code Triagers Badge OpenCollective Badge Discord

1vs1 Dark Forest "We all die. The goal isn't to live forever. The goal is to create something that will." Chuck Palahniuk

Intro

Ancient Beast is a turn based strategy indie game project played online against other people featuring a wide variety of creatures to acquire, putting them to use in order to defeat your opponents. This project was carefully designed to be easy to learn, fun to play and hard to master. We hope you'll enjoy it!

We're working hard on the next version - 0.4, codenamed Bounty Hunter. What we're aiming for are the following:

  • 3 new playable creatures
  • 3 new epic sound tracks
  • one new combat location
  • revamping some abilities
  • balancing creatures stats
  • sound effects for actions
  • sprites for ranged attacks
  • many user interface tweaks
  • lots of usability enhancements
  • a ton of bug fixes all around
  • partial code base restructuring
  • development workflow improvements
  • more project lore & documentation

You can help out the project by hitting that โ˜… from the upper right corner & you can also pin it to your profile.
Here's a chart showing the project's growing popularity over time compared to some of the main competition:

Star History

Star History Chart

If you wish to set-up a local copy of the game for your pleasure, read our repository "CONTRIBUTING.md" file.
Or dive right into development from your browser by using this button to set up the project: Setup Automated
There are more ways you can help out this project, check out the "Make Your Contribution" guide & help out!

Contributors

Sponsors

To get your brand featured in-game as well, become a sponsor to greatly support this game project!

Backers

Backers

You can become a backer, supporting the development of this project financially on a monthly basis.

Backers

Helpers

It's easy to become a helper, pitching every month just a little bit of your money.

Helpers

License

Freezing Moon Ancient Beast name and logo are trademarks of Freezing Moon.
Respect the developers and their work!
CC-BY-SA 4.0 CC-BY-SA 4.0: Artwork and audio can be remixed and shared under the same license,
provided you credit and link the project, as well as the author(s) of the respective works.
AGPL 3.0 AGPL 3.0: The codebase or parts of it can be remixed and shared under the same license, provided you credit and link the project.

ancientbeast's People

Contributors

allmtz avatar andretchen0 avatar archiboldian avatar blblbi avatar c3ho avatar calebj0seph avatar cxong avatar cybulix avatar denniswong1225 avatar dependabot[bot] avatar dreadknight avatar hypersomniac avatar isthatray avatar ktiedt avatar leopoldwe avatar max0nyshchenko avatar mxnemu avatar nandastone avatar pamons12 avatar raynathanlow avatar robinvdbroeck avatar ryancperficient avatar seand88 avatar shanewalsh avatar slimetp avatar slugo avatar theseally avatar tristanmkernan avatar xtammaro avatar yoel123 avatar

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

ancientbeast's Issues

Credits page

Right now there's no page showing contributors and donors. Not even a link to the Freezing Moon team.

linkable gallery images

There's currently no way to link to a specific image from like gallery in the same way of being able to link to a specific creature from the bestiary or to a specific item, unless copying the image's own link address, which is not that cool.
Would be nice if when clicking on an image, the URL would change, so that when copying such an URL and opening in a new tab, the same image from the gallery would be opened.
If the image would be missing, then it should just redirect to the gallery itself.

Replace Inventory stat with Movement

Inventory stat should get replaced by a stat called Movement, there are several reasons:

  • simplify inventory management
  • make items more useful
  • make some creatures less scalable with items
  • limit movement of creatures, even if they have plenty of energy (so basically considering a "speed" factor)

Would require new svg/png/gif for "Movement" following the style of the other stats.

It is still debatable if movement would require energy, depending on that, creatures will get bonus movement or will require less energy when walking on native grounds.

donations page

Paypal's donate button is crappy. People with js turned off don't even see it.
There needs to be a donation page that will be linked with some sort of flashy-animated button, so that it shows up no matter if js is disabled.

The page should contain

  • paypal donation button
  • monthly subscription option
  • why we need money for
  • list of donations

(we do wanna be transparent about funding and encourage others to donate as well)

Cursor issues

In chromium it's kinda random on showing up, while in firefox it doesn't shows up over the tileable background.

Image lighten not working in Opera

Got a few complains about this already from Opera users.
While I don't care much about Opera, since it's not open source and doesn't uses webkit, somebody else could patch this up.

We have a function (that we mainly use for the header menu navigation icons): while you hover over an image that has the class "lighten", it gets brighter.

It uses pixastic javascript library and the "only brighten while hovering cursor" part was written by Dobz, which is located in the header.php file, right after lighten.js is included.

Besides the graphical effect not working in Opera, it also makes the images unclickable, making navigation harder.

The fixed code will also be used on FreezingMoon.org

bestiary upgrade

Bestiary needs to show all creatures available (using their avatars) in the database (up to 49 per set) in a 7 by 7 grid (could be just divs, no spacing in between).
Columns are meant for sins (alphabetically) and rows are meant for levels (from 1 to 7, higher levels at the bottom).

When clicking on a portrait that's populated should show a pop-up using tinybox with the creature's cards and progress dialog (using a details.php file, somewhat similar to the items page: creatures being link-able, but pressing outside the pop-up would close it).

The "creatures" folder should have folders named by creature name instead of id.

card backgrounds for each sin

The cards in bestiary should display a different background in order to easier suggest the sin of the creature in a visual manner.

The landscapes from the realms folder could be used as a starting point for that.
Margins should be the same for all cards.

Current card could be considered the one for lust creatures (but kinda lacks lava) or it could be used for pride or even spells.

monochrome hex grid

The hex grid should be monochrome (same color for outlines and fills), using an average color of the location's background, similar to how Ubuntu's panel picks a background color for icons by sampling the icons themselves.

no e-mail provided

There's no intuitive way of getting in touch with the developers via e-mail besides going to FM website's contact page.

cards.php needs love

There are several things bad with bestiary/cards.php

  • creature artwork and ability links are broken due to moving creatures into bestiary
  • $ICON_LIST must be automatically generated
  • bad approach of splitting stats in 2 rows by using $ab_stats and $ab_stats2 (should have been first 9 and last 9)
  • formatting is crappy most of the time when tiny amounts of html is excluded from php echos (not worth it imo)

gauntlet cursor

Since we no longer use skeletons to represent the players, the skeleton hand cursor should be changed to a summoner hand (Dark Priest) instead.
The gem on the back of the hand could change its color in order to represent the current player (blue, red, green or orange). Could use a single sprite sheet, only HUE being change to match the active player.

Development stage

Need to show somewhere the current development stage of the project since many visitors are confused about not being able to play the game.

Pathfinding

When doing pathfinding, several things need to be taken into consideration:

  • size of creatures (usually 1, 2 or 3 hexes, horizontally)
  • the creature's movement stat, which allows the creature to move a number of hexes in a direction
  • combat field obstacles, which can obstruct movement if the creature is unable to remove the obstacle or avoid it
  • other creatures, either foe or allied, which occupy combat field space as well
  • some abilities allow the creature to move in certain ways (like charging forward or jumping to a new location)

Game modes

Sinner

Each player picks a faction by summoning a creature from it when the turn comes. Requires at least 2 nearly complete sets for 1vs1 and 4 out of 7 for 2vs2. Players turn into the color of the sin as the pick one. Does not require account.
All creatures being summoned at the beginning is optional. Materialize button would display "Choose your sin" and name of the sin when picking a row.

Casual

All the creatures are available, once, on a first come, first served basis. There are no player tabs. Does not require account.

Ladder

A game account is mandatory in order to play this mode. You start from level one, battles gain you experience and gold, which you use to unlock new creatures and buy items.
Statistics are saved to profile and all players compete for higher ranks and awards.

Tournament

In order to participate in the tournament, an account over level 50 is required, as well as a 10$ entry fee.
The tournament is in 1 versus 1 style and takes place every month, provided at least 8 players participate.
The sign-up period is limited to the first 2 weeks of the month, during which up to 128 participants can entry.
Participants will have to fight up to 7 battles in order to become the champion and win the grand prize in money.
For odd number of participants, a "bye" will be allocated, advancing a random participant to next round without a fight.

stats editor

An editor will come in handy in order to balance the game easier.
Using phpmyadmin for this kind of stuff is a bit daunting overall.
Editor will require administrative database privileges and should allow the following tasks:

  • edit creature progress
  • edit creature stats
  • edit item stats
  • edit item price

improved home page

The current homepage is not very useful overall.
The manual should be included into it, making room for the spell system.

combat grid tweaks

The current size of the hex grid is 18x12.
It should get mirrored, so that the P1 will be displayed upper than P2 (more logical).
The hex grid should be reduced to 16x10 hexagons, while scaled up to fill the same space.

There are several reasons for this change:

  • better sizes for creatures
  • better view
  • easier movement
  • easier to play on smaller screens
  • less error prone

change link back

In the items system, when clicking on an item, a pop-up shows up and displays details about it and also, the navigation url is changed to point to that item. But when closing the info pop-up, the link isn't changed back.
Would be nice to have the link change back to "http://ancientbeast.com/items/" when closing the pop-up. This patch could probably also apply to the bestiary after it will get it's improvements.

css3 div border image

Main divs should be able to have fluid horizontal rescaling, which would make them more suitable to be used for the game.

The website main divs should be styled using just one image (images/div.png) using CSS3 technique instead of the following:
main_upper, main_middle, main_lower.

This would allow for better compression, less files and faster download.

More about this kind of stuff:
http://www.w3.org/TR/css3-background/
http://cssglobe.com/post/3714/css-sprites-rounded-corners

item filters

In the items page, when clicking over the stats/masteries icons, only the items affecting that stat/mastery should be displayed.

Bonus points if the page is not reloaded when activating a filter and it's still up for debate if multiple filters could be activated at the same time to find more specific items.

game launcher

The game could benefit by being integrated with some of the game portals out there that allow visitors to browse and play games right from the browser. There's a list of such game portals that's being compiled in another issue, see #492 for it.
The problem is that their canvases or iframes for the games themselves are overall too small to properly enjoy the game.

The project should have a launcher that could include:

  • link to website (open in new tab)
  • play the game (open in new tab)
  • toggle browser fullscreen mode
  • a game related ad for merchandise
  • latest project news or blog entries

To keep it very simple, there could be another frame with website link and fullscreen toggle at the top, containing the game.

Some helpful code might be found here https://github.com/toji/game-shim

link to specific creature

When opening a link to a specific creature from the bestiary, the pop-up with it's details doesn't gets opened automatically.

list view for items

This view mode for items (alternate to grid mode) implies less clicks and more scrolling.

click and drag

While clicking and dragging the cursor, it gets changed into a text cursor. We don't really need that.

combat panning effects

The backgrounds should be a bit bigger than 1920x1080 in order to allow several panning effects (camera shaking), such as rebound or earth-quake.

It should support the following parameters:

  • distance
  • direction (or random)
  • duration
  • trigger

forest ground

It was suggested to me that the ground of the forest combat screen needs to be improved.

Spell system

Spells could by cast my players once per round, another way to spend mana points instead of summoning a creature.
There could be various spells used to buff/debuff/damage/heal/move creatures on the combat field.
There should be a new page listing all the spells, which will be listed in the website's navigation menu after issue #25 will get fixed.

no gaps in combat hex grid

Got several complains, questions, arguments regarding the vertical gaps in between the combat hex grid rows.
We should get rid of those gaps since it would make the grid seem less busy and less blurry when viewed from a distance or on a small screen.

Summoning effect

Summoners (Dark Priests) will be able to summon each round a creature on the combat field, provided they have plasma and free space around that's not obstructed by another creature.
Creatures summoned use an amount of plasma equal with their level and require one or several free hexagons nearby the summoner.

Dark Priests able to summon by using the RepRap 3d printers embedded in their gloves.

We'll require a light effect to be coded, which will be able to change color based on the sin/realm of the creature summoned. The RepRap gloves will also have a light indicator that will change color accordingly. The lights will be rendered as a different sprite sheet which will be overlapped with the summoner and have it's HUE adjusted.
The colors for each sins/realms are displayed over here http://ancientbeast.com/#realms

A light/laser show will start from the summoner's hands (having the same color as the glove's light), spreading to the whole height of the nearby summoned creature, which will begin to materialize, fading into existence.

Linkable Matches, Match Replays and Video Output

Just doing a bit of brainstorming and feature planning.

It would be great to be able to link people to your match so that they can spectate it.

Also, after a match is finished, the linked page would offer the visitor to watch the replay. Being able to save the replay in a video format would be a plus, as well as uploading it straight to youtube. A list of recent matches should be displayed in each player's profile.

As the game gets updated and tweaked on a regular basis, it's very likely that replays will struggle with not being backwards compatible. There are 2 factors to be taken into consideration:

  • database tables, which can be solved by storing some of the tables under a different name that contains version
  • game files, this issue is more complex, an idea would be for the game to have the ability to access certain patches from github or just store different versions of various files required for gameplay

Bestiary navigation improvements

There is no easy way to view details of multiple creatures one after another.
The current flow is:

  • you click on a creature
  • you see the tinybox pop-up
  • you click close or off the pop-up to close it
  • you start all over again

Tinybox could get patched for bestiary in order to display a bar at the bottom which would show all the creature portraits, making it easier to just to go another creature without having to close the pop-up. Also, it would be nice if left/right arrows could be used for navigation as well.
Keep in mind that tinybox is used for the item system as well, which doesn't actually require this functionality.
As a bonus, navigation using the scroll wheel could be implemented, just like how the gallery has this functionality.

animated cursor

We need to replace "/images/cursor/" with "/images/cursor.png", which is a sprite sheet with 5 frames, going from normal cursor to a hover state cursor, using js there should be a "smooth" animation between the two states, ping-pong style, up to 1 second length, meaning each frame should last 200ms.

Keep in mind the current offset of the cursor, as the finger is not placed in the top-left corner.

Optimized header

Current header image is somewhat not optimized, as it's a single image consisting of:

  • gargoyle
  • mirrored gargoyle
  • transparent grey rectangle
  • chain

It's size could be greatly reduced by using just a gargoyle and positioning him on both sides and mirroring him using CSS3 on one of the sides.
The transparent grey rectangle could be just a div with a rgba css color.

Partial database access made public

config.php should contain a real MySQL user that has read-only access to certain tables that don't contain sensitive data (for example no access to something like ab_users, which could contain passwords).

On the other hand, a full permission MySQL user will be used when needing sensitive information or when tables have to be updated. This user won't have it's details made public.

trailer

I'm doing a LOT of research on what makes a good trailer, since this project needs one pretty soon.

What I've learned so far:

  • trailer must be under 2 minutes
  • should start with the project's title
  • should mainly contain gameplay footage
  • music needs to fit the gameplay
  • should show what the game is about
  • should teach the main mechanics
  • it shouldn't show everything
  • ending should show release date, platforms, website and developer

http://indiegames.com/2012/04/ask_indiegames_what_makes_an_e.html

template.blend

We need a proper template file in order to facilitate the creation of new combat locations using blender.

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.