• Docent Battle - Prologue

    If my memory serves me correctly, there are two docents here at Electrophage. From far across the America frontier, Nate, with his powers of ink and quil can be found writing away day and night on subjects no one fully knows. However much closer to home, right here in the heart of Chicago, Armstrong, with his powers of pen is always full of opinions that should be heard.

    I found these gentleman, brought them together and challenged them to become something more. Why this challenge? Why such focus into subjects not yet written? Because all of the mages here at Electrophage like to practice each of our talents. From Code to Canvas, Art to Audio, and finally, now the written word. Our two in house Docents, keepers of words and way of writing, are now summoned to find a game that best defines the challenge that comes before them. They will play or replay this game and write about how that game answers the challenge. Then, they will play each other's game and blog about how it matches up to their original.

    DOCENT BATTLE, FIGHT!

  • The Summoners Speech #1

    It's hard being an Archmage. There are so many things that take up my time each day; work-life, gym-life, family-life, and everything... else-life. When I finally have a moment to put on my robe and get to my work I find my self exhausted. But my role, my abilities are to motivate others and if I can't motivate myself to keep going, what am I to say to the mages? Each day I work a bit harder, I add an additional task, I push a little harder all in knowing this will pay out in the end. Yes it is crazy that I keep adding more onto my plate, but in time it gets easier and my daily life becomes more.. more normal. I push myself to keep going, I stand my ground to not fall, and when I do... I get back up and again and learn from my mistakes.

    So to all of you out there who want more than the norm that life has given you, I say this. Stay diligent each day towards your efforts to being a success. When you get overwhelmed from the stress of each of your lives, you must persevere. Finally when something does bring you down you must be resilient and get back up.  
    If this were Westeros and I had a motto it would be:

    • Diligence
    • Perseverance
    • Resilience

    The crest... well I am not sure yet, some creature or thing that makes sense with those words. Perhaps a Phoenix?
                           

  • Using LibGDX TextureRegion

    After running into issues correctly loading managed Textures in my current LibGDX project when the Android app is backgrounded and foregrounded I refactored the project to use the TextureAtlas class and TextureRegions loaded from it. The transition was surprisingly smooth: the same amount of control with drawing is available on a TextureRegion as on a Sprite. Rotation around an origin and color tinting being my primary concerns. The main difference I found between the two approaches is that drawing happens through the SpriteBatch with a passed in TextureRegion rather than drawing through the Sprite with the SpriteBatch provied as a parameter. All of the transformations that I had been applying to the Sprite are now applied through the SpriteBatch draw method instead.

    As an example of this different approach here is the code for my HealthBar class's render() function before and after the refactor. 

    Before:

           public void render(SpriteBatch spriteBatch){

                    backgroundSprite.setBounds(viewBounds.x, viewBounds.y, viewBounds.width, viewBounds.height);

                    backgroundSprite.setOrigin(viewBounds.width/2f, viewBounds.height/2f);

                    backgroundSprite.setRotation(rotation);

                    backgroundSprite.draw(spriteBatch);

                    barSprite.setBounds(currentHealthBounds.x, currentHealthBounds.y, currentHealthBounds.width, currentHealthBounds.height);

                    barSprite.setRegionWidth((int)(barTexture.getWidth() * (currentHealth/maxHealth)));

                    barSprite.setOrigin(viewBounds.width/2f-viewPadding, viewBounds.height/2f-viewPadding);

                    barSprite.setRotation(rotation);

                    barSprite.draw(spriteBatch);        

    }

    After:

            public void render(SpriteBatch spriteBatch){                float x = viewBounds.x;                float y = viewBounds.y;                float width = viewBounds.width;                float height = viewBounds.height;                float originX = viewBounds.width/2f;                float originY = viewBounds.height/2f;                                spriteBatch.draw(backgroundRegion, x, y, originX, originY, width, height, 1, 1, rotation);
                    x = currentHealthBounds.x;                y = currentHealthBounds.y;                width = currentHealthBounds.width;                height = currentHealthBounds.height;                barRegion.setRegionWidth((int)(barRegion.getTexture().getWidth() * (currentHealth/maxHealth)));                originX = viewBounds.width/2f-viewPadding;                originY = viewBounds.height/2f-viewPadding;
                    spriteBatch.draw(barRegion, x, y, originX, originY, width, height, 1, 1, rotation);        }
  • And it begins

    So here is where a blog post will go, and I'm about to slap down some awesome. 

  • Game stuff to look out for

    We've got two things we're working on that we expect to be released by the end of April. We're wrapping up a significant update to Cosmonuts. Then there's a new game prototpye for Android that we'll be publishing.

    The update to Comonuts will include new nut types, new art, and a selection of levels for your nut gathering pleasure.

    The new game prototype is a two player head to head game that plays on one device. The prototype will be released with very basic art, circles and lines. It is also being released as a two player only game, although planned future versions will have single player modes. We're putting this prototype out to get feedback from players and have plans already to make a more complete version.

Hello World!