Browsed by
Tag: Shadows of Adam

Weekly Content Blog #37: Every New Beginning Comes From Some Other Beginning’s End

Weekly Content Blog #37: Every New Beginning Comes From Some Other Beginning’s End

Sometimes as a member of a team you make compromises. And sometimes you and everyone else on the team later comes to regret it.

In late 2013, when I was creating a complete script for Shadows of Adam, the very first dungeon of the game was already mostly finished, cutscenes and all. My script was a significant departure from the original ideas, but no one really wanted to make major changes to the first dungeon, so I did my best to meld the new ideas into the context of that dungeon and the existing scenes.

The result was not great. In fact, I had the sinking feeling that what we had was borderline terrible, and overtime this feeling became stronger and stronger.

Other members of the team felt it too. The beginning of the game just didn’t work! The team began to discuss small changes that might help, but I was now convinced that a full face-lift was required.

Finally, I fired off this e-mail:

Hey Tyler, I read through your ideas, and I do agree that some mention of the [REDACTED] at the beginning might be warranted. 

However, as I’ve thought more about the intro, I feel like we should take it a lot farther.  Honestly, I think we should seriously consider doing some major re-work on it.  I’m probably super biased in this, but I would sacrifice [REDACTED] to have a better beginning.  It’s a hugely important part and we really need to impress and get people on board. 
 
In the current opening, all the characters and their purposes are so weakly defined and the [REDACTED] is just there…  It’s too chaotic and confusing to be satisfying.  There is very little character development.  We don’t come to understand the relationships and motivations till afterwards.  So we are really hurting with the current opening. It should be a major launchpad from which we blast off, but it  feels like a mini-tramp.
 
I’d really like to better establish the characters and give the first dungeon much more intrigue.  Also, I’d like to establish the [REDACTED] as a force to be reckoned with.  Give it some umph!  Blast off!
 
Below I have sketched out what I believe would be a much stronger opening that would not require a massive overhaul of the rest of the story.

 
This led to the creation of a new beginning with a new dungeon: the Tangle. It’s a beginning the whole team is proud of and we can wait to show it off in the demo. For now, you can see a brief preview here.

Till next time.

Luke

Weekly Content Blog #31: U and I can make a good “UI”

Weekly Content Blog #31: U and I can make a good “UI”

Hi everyone!

This is Tyler from Something Classic HQ, located in a bunker somewhere in the mountains of South America. This month has been exciting as we are finalizing our design choices on our new Battle UI. As the game’s composer, I have also seen myself evolve into a sort of “all purpose” guy for the team. I do minor map making, scene design, and lots of micro edits. This has led me to do some battle system testing and UI adjustment.

The game’s battle system has gone through a lot of changes as the game’s scope evolved. Originally when it was a two person team, Josh whipped up a quick and easy turn based battle system. This system ran smoothly, worked well, but lacked a lot of options.

First Battle Design

Somewhere along the way we decided to update graphics and add more options to the battle system, such as counters and flashier attack animations.

Battle 2

Eventually after months of fierce debate, chairs thrown through windows, and decisive arm wrestling matches we decided to completely redo the battle system from the bottom up to allow more flexibility, smoother UI, and easier customization.

Battle Current

We also moved towards a % based AP system. This system sets each character with a finite pool of AP which does not change. Skills and Magic have fixed % costs, but the skills scale throughout the game. No Fire 1, Fire 2, Fire 3 – but rather a dynamic set of unique skills with morph and grow with your character. This opens up many possibilities for the player to customize how your characters grow. Possibilities we will share in a later post.

In general though, a good UI design must balance:
1. Functionality
2. Ease of use
3. Visual aesthetics

We can all think of our favorite menus that do all of the above. Older retro rpg games are known for their clunky UIs. Final Fantasy 1, Pokemon and Earthbound are the most notable examples. The games that stand out to me as having exceptional UI design are Chrono Trigger, Final Fantasy 7, and Super Mario RPG. What do you guys think?

I’ll leave with a great article written by Pat Holleman, who runs The Game Design Forum, an incredible resource for any potential game makers. This is his article discussing UI and Menu Designs.

Thanks for reading this and stay tuned for next week where we will reveal our final character, Talon!

Weekly Content Blog #26: Asrael Character Teaser

Weekly Content Blog #26: Asrael Character Teaser

Wow, week 26! It sure has been a ride in Something Classic land, we are bustin’ our butts to get you this demo. We are taking time to make sure no corner is cut and no stone is left unturned. We want to put the highest quality product we possibly can into your hands! On that note, I will use this post to continue with our character teasers. So without further ado, let me introduce you to our main heroine, Asrael!

asrael_charactercard

As the composer I was tasked with composing a theme for her character. You may recognize thematic material from the Main Theme and Curtis’ Theme. What do you think?

Farewell for now!
-Tyler

Weekly Content Blog #9: Tools of the Trade

Weekly Content Blog #9: Tools of the Trade

solum6

Hello again from Canadia! Another exciting week has passed and lots of work was completed by the Something Classic team! Our current goal is to reach an alpha state, meaning the game is playable from beginning to end, complete with a credit roll, before doing a final polish pass on the game and adding any extra effects or art to make the areas really radiate. With Luke hammering out some marvelous maps at a super-human pace and Tyler converting our game script into interactive game scenes right-after, our alpha-goal feels like a stepping stone away!

In my last blog post ( Weekly Devlog #3: Battle System and Action Queues) I focused on the battle system and revealed how it was designed from a technical point of view. This week I’m going to mix it up a bit and talk about the tools I personally use to program features and to debug my inevitable failures when the game world explodes in miraculous fashion. As always, Click the thumbnails to view full-sized screenshots :).

traceglIf you don’t already know, “Shadows of Adam” is being built using HTML5 APIs, and the game engine we are using is ImpactJS. One of the biggest obstacles we’ve had to deal with because of this web-based tech stack is debugging. Debugging an interpreted language like JavaScript is significantly more tedious than a compiled language. For a long time, we were using console.log() throughout the code in order to determine if everything was working how it should. This is not an efficient way to work, and if you have a small team like us, you want to streamline your development process as much as possible. Work smart, work fast. Thus, in order to help deal with this debugging mess; I ported over the entire game and engine to NodeJS, and then used a wonderful little code oscillator called traceGL to analyze our JavaScript code in real-time as it runs. TraceGL allows me to filter through the entire source code for certain keywords, in the image to the left I search for “font” and receive a list that is updated in real-time with all of the calls to the font class. From there, I can find the “Darkness knows no bounds” text and trace to the exact place where it is being called. In this case, it is in our “dramatic-message” event command code. We can then trace further and load-up the dramatic-message code and analyze the particular function and receive visual color-coded feedback on the state of each variable in that particular function (True/false). These features are an absolute lifesaver because it allows me to see the code running in real-time and helps narrow down potential issues. The GIF image below is one such bug that would have been a pain to fix if not for traceGL. I honestly had no clue what was happening when I saw it for the first time!
infinite-loop1
The cause was because of a bug where the game started processing the next queued action while the previous action was still clearing itself up; but it only occurred when certain actions were performed in a unique sequence. Typically, when an action is complete it fires a signal telling the action queue that it is done, but because of the way the actions were queued up, a timer-based action can end up overlapping a trigger-based action which caused the queues to fail the timer-based check and never terminate while it starts processing the next action. So when the “HealAll” spell was cast, it was trying to tell the queue manager that it’s code was complete. Except the queue manager received a signal from the prior action saying “I’m not done yet” so it continued processing BOTH actions simultaneously until the end of time. Blargh.

webstormOf course, TraceGL isn’t the only tool at my arsenal. The most important one by far is my integrated development environment (IDE), and for that I turn to Webstorm 10. Webstorm is the Visual Studio for the web, and I honestly couldn’t imagine working on SoA without the powerful feature set it offers. It also has some wonderful debugging options (Complete with line breaks!), but typically I rely more on TraceGL for a more in-depth and visually appealing way to see what my code is doing at any point in time. Like Josh mentioned earlier, we use Git as our version control solution and it has saved our asses many times. If you’re working on a project of any size, make sure you use a version control solution. You’ll thank us later! Webstorm has GIT built-in so I typically use either the built-in GUI or the terminal console straight in the IDE. By using Webstorm and TraceGL in tandem, it provides a very powerful platform for code debugging and helps make me a more efficient programmer.

weltmeister
Full list of tools I use: (Every team member may have minor variations of this)

  • IDE: Webstorm 10
  • Development Server: WAMP
  • Version Control: GIT via GitHub
  • Game Engine: ImpactJS
  • Programming Language: JavaScript, PHP
  • Level Editor: Weltmeister
  • Code Debugging: TraceGL / Webstorm
  • Bug Tracking: Git Issues
  • Feature Progress: Axosoft SCRUM
  • Binary Distribution: Electron
  • File Sharing: Dropbox / FTP
  • Game Script / Design Document: Google Docs
  • Game Object Tracking: Trello / Google Sheets
  • Team Communication: Skype / Email
Weekly Content Blog #1: Tyler’s Tunes – Main Theme

Weekly Content Blog #1: Tyler’s Tunes – Main Theme

Hello!

This is Tyler (Mire) here. I handle all music related tasks involving our project “Shadows of Adam”. As the composer for the project, I try to use my craft of musical composition to help express the elements of the story and characters. A good musical score can help augment emotions or even subconsciously make the player feel a certain way.

The plan for these posts is to share with you various themes throughout the development of the game, showing off different stages of the process, from rough sketch, to sheet music, to the final product. In addition I hope to show  how it connects with  Tim’s  visuals and Luke’s script.

For my first post I will share the main theme I have composed for “Shadows of Adam”. Many other pieces will be based on similar melodic and harmonic elements. First, let’s listen:

Main Theme – “Destiny Awaits!”


Now that we’ve gotten a chance to listen, let’s delve into the musical analysis of this piece. (WARNING: Music Theory ahead!)

The main motif in this piece is stated in the opening two bars:

The staple of this melodic phrase is its use of a minor 7th interval in the first bar.

This interval is wide and open, giving it a flexibility to what sorts of tonalities it can be used in. For instance, the Main Theme is in A minor but the game’s Overworld Theme is in C Major. Both open with the same minor 7th interval (with some variation). The player will subconsciously connect the two phrases as the same melody, but the major and minor switch paints the melody with a different mood. What sorts of differences do you hear in the two different keys?

Overworld Theme – “Adventure Awaits”


The last part of the Main Theme I’d like to examine is the final 2 bars. I like to call this the “Adventure Tag”. A tag is a musical device that is used to delay the end of a phrase before returning back to the tonic chord. In the Main Theme, the last section modulates to C Major and ends with these two bars:

Observe how I used the chords Ab (bVI) – Bb (bVII) – Csus (Isus) – C (I):

This bVI – bVII – Isus – I chord sequence has an adventurous sound to my ear and I used it as a cohesive harmonic motif to connect several of the musical pieces. For instance, I use the “Adventure Tag” at the end of the Adam Village theme. Adam is the home village of our heroes Kellan and Asrael and even though it’s a soft, sleepy town nestled in the woods I used this tag at the end to hint at the coming adventure of our party. Listen below:

“Adam – Home Village”


As the player plays through the game, I hope they can pick up (subconsciously) these melodic and harmonic motifs and allow them to help better tell the story.

Musically yours,

-Tyler