News
Progress Towards Playable
Hark not, the lack of updates on the Legends of Aesthir project does not mean progress has halted, only briefly paused (mostly on account of Skyrim). In retrospect, having set a hard deadline for completion of the minimum viable product was unwise, since I had little room to play with either the scope or the timeline (and, as with anything fairly complex, something always has to give).
In any case, these are the items from the roadmap that I managed to complete:
- When a player creates a game, it is asynchronously loaded into other players’ lobbies.
- When the second player enters a game, the game controls are displayed, and the game started.
- When a player enters a game or a lobby, a “Player has entered” message is displayed.
- Two “bases” and two unit cards were designed
- Cards were entered into the database.
- Starter decks were populated with new cards and “bases”.
- When a player creates an account, the starter decks guarantees that a “base” card is present in each deck.
- When the game starts, the players are assigned random positions on the board’s corners, and their bases deployed there.
- When the game starts, a random starting player is selected.
As well as these necessary support items:
- Hide ‘Start Game’.
- Show/hide ‘Start Game’ when switching game tabs for ready games.
- When the second player enters, the game is put into a ready state.
- When the game ready state is broadcast, the client shows the “Start Game” button area.
- Reduced lobby system complexity: only one lobby in the database.
- Added new game state ‘ready’ (ready to start, not yet started).
- When clicking on ‘Start Game’, AJAX message sent to server.
- Server broadcasts the game ready to everyone in room.
- When client receives ready state, client adds to buffer and displays similarly to ‘joined’ message.
- Add ‘ready’ state in the game-players table.
- When server receives start game, it marks the player as ready in the game_players table.
- When second player is ready, begin game start procedures (below).
- Battlefield JavaScript cleanup (mostly comments and spacing).
Currently in the Works
- The start game message includes starting position for each player.
- Ensure the starting position is only sent to the visible player.
- The start game message also includes the base information.
- When the start game command is received, controls are displayed.
- Along with sending the message, the game state is changed to active.
- Along with sending the message, the game’s board is written to the database with the bases’ positions.
- When a player reloads the page, the board positions of their visible cards is revealed.
Remaining Items
- When the game starts, the player will be sent a message that it is his/her turn.
- When a player ends his/her turn, the game will notify the other player of his/her turn.
- Upon turn notification, game controls will be disabled/enabled.
- Upon turn notification, the current player’s name will be highlighted.
- Turn phases will be recorded in the database per player.
- When the turn begins, the player will be placed in the “Draw” phase.
- In the draw phase, players will be allowed to press the “Draw” button, and draw one card from their decks (note, this can be automated later on, but is fine for now).
- When the draw phase ends, the player will be put in the “Exploration” phase, in which he/she may play cards as terrain.
- During the exploration phase, the “End Exploration” button will be active, which, when clicked, will put the player in the “Deploy” phase.
- During the deploy phase, players will be able to deploy cards as units.
- During the deploy phase, players will be able to move units on the board.
- During the deploy phase, players will be able to attack units on the board.
- During the deploy phase, the “End Turn” button will be active, which, when clicked, will send the turn notification message to the opposing player.
- If a player’s “base” reaches 0 HP, that player loses the game.
- Upon game completion, the game is put in a completed state, at which point players may exit the game.
After two weeks of Skyrim sucking up most of my time, I’m beginning to feel the waning of its influence over me, accompanied by the itch to get back to work on game development. I’ll aim, this time slightly more conservatively, to have a playable build by the next Global Games Jam, at the end of January.
The Roadmap Towards Playable
Whereas the focus in the past few weeks has been in tightening up the interface, the focus for the coming weeks will be on getting Legends of Aesthir to a playable state.
I am targeting November 10th for this milestone (which might or might not be related to the release of The Elder Scrolls V: Skyrim on the 11th—hint: it is); this is a departure from the development methodology I employed for Dance of Death, in which I bit off a small set of goals at a time and worked towards them as soon as possible.
The following items are slated for the playable build:
- When a player creates a game, it will be asynchronously loaded into other players’ lobbies.
- When the second player enters a game, the game controls will be displayed, and the game started.
- When a player enters a game or a lobby, a “Player has entered” message will be displayed.
- Two “bases” and two unit cards will be designed
- Cards will be entered into the database.
- Starter decks will be populated with new cards and “bases”.
- When a player creates an account, the starter decks will guarantee that a “base” card is present in each deck.
- When the game starts, the players will be assigned random positions on the board’s corners, and their bases deployed there.
- When the game starts, a random starting player will be selected.
- When the game starts, the player will be sent a message that it is his/her turn.
- When a player ends his/her turn, the game will notify the other player of his/her turn.
- Upon turn notification, game controls will be disabled/enabled.
- Upon turn notification, the current player’s name will be highlighted.
- Turn phases will be recorded in the database per player.
- When the turn begins, the player will be placed in the “Draw” phase.
- In the draw phase, players will be allowed to press the “Draw” button, and draw one card from their decks (note, this can be automated later on, but is fine for now).
- When the draw phase ends, the player will be put in the “Exploration” phase, in which he/she may play cards as terrain.
- During the exploration phase, the “End Exploration” button will be active, which, when clicked, will put the player in the “Deploy” phase.
- During the deploy phase, players will be able to deploy cards as units.
- During the deploy phase, players will be able to move units on the board.
- During the deploy phase, players will be able to attack units on the board.
- During the deploy phase, the “End Turn” button will be active, which, when clicked, will send the turn notification message to the opposing player.
- If a player’s “base” reaches 0 HP, that player loses the game.
- Upon game completion, the game is put in a completed state, at which point players may exit the game.
As you can see, most of the game remains to be built, which is what the core focus of this 20-day sprint will be. These are a good number of tasks to accomplish in a fairly short period of time, but it is necessary to restart the momentum on this project, after spending much time on preliminary UI polish.
I’ve hinted a bit at the basic mechanics of the game here, which will be solidified much more in the coming weeks. I will be reassessing the state of the game after this milestone, including the feasibility of opening it up to alpha testers to get some feedback.
Wish me luck!
Basic UI and Registration
With the latest design and UI update to Legends of Aesthir comes the opening of registrations for the playable game. The registration is, at the moment, a means of collecting the information of prospective alpha testers, but, as you can see by the presence of the login area, development continues steadily!
This update includes:
- New UI and design.
- News pulled from nolithius.com RSS.
- Registration for prospective alpha testers.
- Login.
The login currently ensures that your account has been accepted, so it only works for developer accounts.
Next up I will be adding “forgot password” functionality as well as getting to work on revamping the core of the game system, which, as simple as it is in the moment, needs a bit of work to get it to work nicely with the new AJAX-based system I have in mind.
Let me know how it’s looking so far!
Coming Soon: Legends of Aesthir
Legends of Aesthir is a web-based, collectible-card game I’ve been working on for the past few months. Development progress has been fairly quiet so far, but that is about to change with the latest interface redesign, with which I am extremely happy!
I’ve set up a placeholder page with the new look at www.aesthir.com, and will keep track of the development progress through this blog, as usual. In truth, I was working with much less open communication that I prefer (both for feedback and motivation purposes), and was not too happy with the original UI and overall design, so taking the time to redesign the logo, look, and UI has breathed much-needed life into the project.
Next up:
- Basic interface update.
- News area in home page, with development news pulled from these posts, most likely.
- Registration for Alpha launch.
- Login and other support for ongoing development.
- Fix the bright yellow glow around the logo, seen in brighter monitors.
- Fix the background blending, noticed in brighter monitors.
After the release of The Color Guessing Game, I’ve been quite busy with non-game-development freelance work as well as non-development-related matters (wedding planning, specifically
), but I am now committed to devote my development time to Legends of Aesthir.
I’ve also marked down Dance of Death for a tentative release of version 0.7 in the 2011 Annual Roguelike Release Party, September 18th. I would like to at least make a small update to get the ball rolling again (and to provide a new version before the 1-year mark hits of 0.6), but we’ll see how feasible that is!