About sharpcoder (twitter: @ecmahacker)

I work as a software engineer making web applications, specifically. But my interest in programming spans multiple disciplines. I'm obsessed with neural networks, baremetal programming, genetic algorithms, and space-related stuff.


Ludum Dare 32
Ludum Dare 31
Ludum Dare 30
Ludum Dare 29

sharpcoder's Trophies

sharpcoder's Archive

Probably in!

Posted by (twitter: @ecmahacker)
Monday, April 17th, 2017 11:30 pm

I’m getting married next week, but that is markedly not this week, so I should be able to JAM!

If I can squeeze this in, my poison of choice will probably be my own HTML5 graphics engine which I’ve been using since time immemorial: https://github.com/SharpCoder/ludumdare

Maybe I’ll take this opportunity to rewrite it in ES6 and make a real repo for it.

Full stack includes the usual:

  • Homebrew game engine
  • Atom text editor
  • Ukulele for music (if applicable)

Here’s hoping for a decent theme!

Body is sick but spirits are high! Let the xmas jam begin!

Posted by (twitter: @ecmahacker)
Friday, December 9th, 2016 7:19 pm

I’m in!

I’ll be using HTML5 stuff. Probably will snag a game engine that I wrote on github for a previous LDJAM. Intended tools:

Looking forward to this one. I feel oddly inspired right now, so I hope the jam starts soon before I lose this random clarity haha.

Good luck everyone!

Resistance is futile

Posted by (twitter: @ecmahacker)
Thursday, April 14th, 2016 11:40 am

I haven’t had the pleasure of doing a full commitment in at least a year. Finally, the time has come. All the stars are aligned and I’m ready to “bust a move”. The gravity of this event is simply too much to resist for too long. I won’t have enough time to learn a new framework, so I’ll stick with what I know.

Development stack:
– Pyxel Edit (for sprites)
– Atom (for code)
– Building my own js framework (it’s time I rewrote that monolithic thing I usually use)
– ReactJS (if I have the occasion to)
– TypeScript (if I really want to branch out and try something new)
– Ukulele (for music)

I feel like I’m missing something. I’m sure I’ll figure it out :) everything will be from scratch this time! Maybe I’ll even do a bit of streaming.

Good luck! May the force be with us all.

Lock n’ Load

Posted by (twitter: @ecmahacker)
Friday, August 21st, 2015 10:16 am

I might do the Jam so I can have an extra day, since I’m going to a wedding on Sunday. Either way, I’m planning to participate as much as I can!

There are two primary goals this time. I think I’m going to try and use Dart instead of pure JavaScript. Because why not? Secondly, I am probably not going to make an actual canvas-based game. Perhaps something that is just HTML with a clever back-end. We’ll see. As long as I can learn some Dart, I’ll be happy!

Another minor goal is to write a complete song for the Ukulele and use that in my game.

Tentative Stack:
nodejs, Dart
Pyxel for art
Ukulele for music

Good luck everyone!

Not-so-subtle combat effects!

Posted by (twitter: @ecmahacker)
Sunday, April 19th, 2015 10:58 am

I’ll admit, my game is starting to LOOK pretty sweet. But with only 9 hours left I’m starting to get worried about small details… like gameplay and overarching plot! Oh well, COMBAT WITH BULLET TIME!

Combat with bullet time!

Stopping for tonight

Posted by (twitter: @ecmahacker)
Saturday, April 18th, 2015 10:50 pm

Here’s my unconventional weapon. The Skyblade. It is written that Skyblade challenges the very fabric of space and time. No humanoid should ever wield such terrible power. Yet here it is!

End of Frist Day


Posted by (twitter: @ecmahacker)
Friday, April 17th, 2015 6:33 pm

Obligatory setup picture. I have no idea what I’m making, but I’ll be ready for anything! Also, I know it’s a travesty that I only have one monitor, don’t remind me. BUT LETS DO THIS! GOOD LUCK EVERYONE!


May the JavaScript gods guide me on this quest…

Posted by (twitter: @ecmahacker)
Tuesday, April 14th, 2015 9:47 am

I’m in, naturally. This’ll be my fourth (1 year anniversary!) and also my birthday month. As a little preset to myself, I shall call upon the JavaScript gods to guide me on this quest. May they lend my fingers the strength to type faster as I utilize the tools of my trade.

Speaking of, I’ll be using the following stack:

  • NodeJS (To control things)
  • Browserify (Makes pretty JS libraries)
  • Gulp (Build tool)
  • HTML5 (Everything else)
  • Pyxel (Art)
  • Ukulele (Music)
  • Atom (Editor)

As always, I plan to write my framework during the Compo.
Here’s hoping to a good theme!

Snowman Simulator 2014 Update 2

Posted by (twitter: @ecmahacker)
Saturday, December 6th, 2014 2:48 pm

After much ado about nothing, we’ve come up with this gem of a game. It’s coming along nicely.

Gif snowman

Game Idea Decided!

Posted by (twitter: @ecmahacker)
Friday, December 5th, 2014 8:57 pm

My team has decided to go ahead with the snowman theme, but try and constrain our game within the confines of our interpretation of “Single Screen”. Here’s our progress so far!

Screenshot of our game

Declaration of intent to participate!

Posted by (twitter: @ecmahacker)
Tuesday, December 2nd, 2014 1:04 pm

I am planning on participating during the Jam this go-round. I will be teamed up with my friend, KevinEvans. We are both programmers, so that should be fun!

IDE: Atom
Frameworks: My Ludum Dare Frameowrk (Gamework)
Languages: JavaScript, NodeJS (maybe), Gulp/Uglify/Concat
Art: Paint.NET
Music: Audacity

The framework I am providing was created from scratch during the last Ludum Dare and it is very simple. I may add a readme before the compo in case anyone is interested in using it. I look forward to the event though, good luck everyone and happy holidays!

Space Vikings – Post Mortem

Posted by (twitter: @ecmahacker)
Monday, August 25th, 2014 9:00 am

Space Vikings

I completed my game Space Vikings. The journey was interesting and started off pretty terribly. This is my second Ludum Dare and I was pretty psyched for it initially, but when the theme was announced I had a stint of writers block… Which lasted 15 hours! That being said, I started with a viking and just ran with it.

What Went Right
This Ludum Dare turned out pretty great! I loved how everything came together in those last few hours. I wrote my framework from scratch (just like last time) but I made few modifications: specifically with event handling. That was a great design decision, having most everything be driven by events. In the end, my framework (JavaScript/HTML5) was just over 300 lines of code – which is pretty small, all things considered! By making everything in the game a “Drawable”, it was very extensible and easy to use. This contrasts with my last attempt where I had separate classes for the “Scene” and the “Sprite”.

I decided to have a bit of fun and add some music. It turned out to be way easier than I thought it would be. With the power of audacity, my terribly untrained vocals, and a shoddy job at playing the Ukulele, I was able to actually piece together a pretty full presentation auditorally speaking. The music and effects added a je ne se quois to my game and made it seem way more complete. This is something I will definitely be focusing on in future ludum dares.

What Went Wrong
Next time, I hope I can be in a more productive state of mind. My initial faltering led to a less polished game than I hoped for, but despite that I was pretty happy with how it turned out. In the future, even if I am struggling with a concept, I think it would be wise to at least use my time in a more productive manner. I wish I would have added some more features to my game engine or produced music during those first few hours.

Additionally, I realized all the sounds I added to my game were incredibly quiet. Maybe I just had my volume up really loud when testing it, but I think I stifled the presentation by programmatically lowering the volume of everything and just doing a generally sub-par job with recording.

I am happy with how this turned out and, although I actually considered quitting during the first half of the competition, once I had an idea everything seemed to fall into place.

If you’re interested, you can play my game here: Space Vikings

My turn! Space vikings in action!

Posted by (twitter: @ecmahacker)
Saturday, August 23rd, 2014 6:03 pm

I admit there doesn’t appear to be much, but soon my game will… well, realistically expectations will be lowered and features will be cut in order to make the deadline. But let’s not talk about that yet :)

Soon you will be able to upgrade your ship, manage resources, and conquer whole planets!

Space Vikings in Action!

Don’t give up hope!

Posted by (twitter: @ecmahacker)
Saturday, August 23rd, 2014 10:38 am

I was going to quit earlier because I didn’t have any good ideas. But I decided to sleep on it and, although I lost 15 hours of potential development time – I finally decided what I’m going to do! After some rest, a lot of coffee, and a clear mind I began working. It started with making a few assets and reading some wikipedia articles. But then the idea hit me! And now I have a menu screen (not quite working, but it’s progress!)

I move forward now, with renewed hope and a clearer vision!

Space Viking Tycoon Main Menu

Warp core reaching critical mass…

Posted by (twitter: @ecmahacker)
Monday, August 18th, 2014 8:21 am

I am in! This will be my second Ludum Dare. I am confident that I will finish my game, however, I can’t decide on exactly what technologies I want to use:

Engine: HTML5 in the form of CoffeeScript OR Clojurescript for the language of choice (never used either extensively).
Music: I am rubbish at music, so hopefully I can find a generator.
Art: Pyxel for art.
Source Control: GIT
IDE: Sublime

This time (as is becoming customary), I will be writing my “game engine” from scratch in one of the aforementioned languages during the dare. I’m intending to livestream as well. It may not be quite that entertaining since I plan to use a language I’m not overly familiar with, but I am sure it will pan out.

Good luck everyone! Live long and prosper.

Ludum Dare 29 – Postmortem

Posted by (twitter: @ecmahacker)
Monday, April 28th, 2014 7:37 pm

This was my first Ludum Dare (my first competition ever, really) and I must say that I had more fun during those 48 hours than I have in a long time! I can’t wait for the next Ludum Dare. With that in mind, I’ve learned a lot of things in general about making a game during a time crunch…

Prioritize Prioritize Prioritize!
I am a ScrumMaster at work, so naturally I brought some of my training into the real world! During the competition I maintained a prioritized backlog of items (written on post-it-notes). This turned out to be an exceptional tool that allowed me to easily make big decisions during those precious last hours. Moving forward, I plan to start my backlog much earlier than I did during this “sprint”.

Prioritized Backlog

Polish is good!
I believe my entry turned out quite well, all things considered. But I realized that with every bit of polish I added, things became exponentially more entertaining. Knowing when to start working on polish versus functionality is a very tricky thing to master, but never underestimate its value. Of course my game would not even be playable without a framework, but dedicating those last few hours purely to polish was the best thing I could do.

For web-based games, test on slow connections.
During the upload period, I started allowing my friends to demo what I had made and offer last-minute bug reports. The result was terrifying. More than half of everyone who tried my game couldn’t even load it properly. I quickly realized that it was an image downloading problem due to the scripts “initializing” faster than the content was able to load. The result was a few tragic comments and a very poor initial reveal. Luckily, I was able to quickly fix the catastrophic bug that was causing all my heartache. My advice for fellow web developers – make sure to test your game on slower-than-instant connections! One trick is to pop open fiddler and set the simulation-mode to “dial-up”. Since fiddler automatically hijacks your network traffic, it does wonders for testing this sort of thing.

Testing in general.
I have since found that my entry doesn’t appear compatible with all versions of firefox. Oops! Make sure to test your stuff thoroughly, especially if you’re cooking with home-brew frameworks. I have no doubt my compatibility issues will affect my overall score. Live and learn, I suppose.

Keep a log of progress.
Unfortunately, I did not keep screenshots of my game during the earlier stages of development. I would very much like to see how it compares to even 12 hours prior to release. During the next Ludum Dare, I will definitely be keeping a larger collection of shots and animated gifs that represent my game during various stages of development… On the bright side, I did maintain a microblog of development decisions and random updates during crunch time which was a pretty neat experience. I think it’s good to be able to look back on all the decisions one made over the 48 hours of development.

In Conclusion:
I had a lot of fun during this event and learned a lot about the process. I’m not new to game development, however, working under a 2 day deadline was a whole other ball game. I am very glad that I participated in this Ludum Dare and look forward to many years of consecutive entries!

Ludum Dare 29
Moon Harvest – Embark on a journey to harvest celestial cores throughout the galaxy!

[cache: storing page]