Skip to main content

Stardust (HTML5)

I always hated the javascript because of the browser incompatibility issues and so never bothered to do anything much with it other than making a silly menu navigation demo for a tutorial class.

Lately iv'e got interested in the whole WebGL movement with things like mozilla labs starting a gaming initiative and a game dev contest. Later i came across this website and realized i could probably make a resonable 2D game using the canvas element and javascript. Then i came across another gem, a whole freaking 2D game engine built around javascript and html5.

This gave me hope that i would actually be able to make a reasonable game using javascript. And guess what i wanted to port? .. My Pyweek11 entry stardust. I started reading about implementing classes in javascript and a little details here and there and finally go to writing the code. It was quite frustrating at first as some of the things like callbacks didn't quite work as i expected with member fucntions so i ended up using a lot of global variables. Any way i hacked and slashed my way through the random errors i was getting (mostly because i didn't bother to read into the details of javascript docs) and got the game up and running. It was an Interesting experience.
Here are the few Lessons I learnt:
  • Drawing filled shapes using ctx.* functions was more time consuming than just drawing images.
  • The callback functions apparently can't handle scoping well. So no member functions as call backs.
  • For some weird reason assigning a float value to variable and deducting it from another float made it into a NaN. (may be i messed bad but this is what i concluded).
  • Chrome has excellent debugging tools for javascript (breakpoints, profiling, stepin, etc) just amazing.
  • Use firefox to ensure that your code is right. Chrome was somehow ok with some errors in code.FireFox was the only way I could find them.
  • For max browser coverage use ".ogg" files instead of ".wav" for audio in your game/application (chrome doesn't support them).
  • There are extensive set of javascript libraries and tutorials available for just about any problem you might encounter at this stage.
So as you might expect i did run into some performance issues. I reduced/restricted the amount of particles that i created so that it would be good too look at yet have that flair. The blending functionality kinda requires you draw a rect and then the image for effect so i skipped different powerups and made just one powerup to blow all the enemies (this might change though).

Any way you can now.. "LAUNCH GAME" in your browser. enjoy.

Comments

Popular posts from this blog

Epic Games Store on Steam Deck

EGS ( Epic Games Store ) like it or hate it, has been giving away free games and if you like free games you would have picked up atleast a couple of them. So given that some of those games are Deck Verified / Playable, its fair to assume you would like to install the EGS on the Deck.  Installing EGS on Steam Deck Switch to Desktop Mode on your Steam Deck Download the EGS installer for windows from the Epic Store website: https://store.epicgames.com/en-US/download (using your web browser of choice)      Open Steam in the desktop mode and add the installer as a non-steam game                                In the browse window, switch from .desktop files to All files. Select EpicInstaller-xxx.msi and add it to steam library. Find EpicInstaller in your steam library and open its' properties by hitting the "Gear" icon on the right ...

Flash animations in GoDot Engine

If you have not heard about GoDot game engine,.. you should check it out right away.. godotengine.org Last time, i wrote a blog post about my experience making a simple physics game to GoDot Engine. Though there are a bunch of free options announced during the GDC this year, i thought ill' contribute to the engine. The one piece that is most important for game dev is the pipeline for the engine. One of the most common tools used for 2D animations is Flash. I have been using a library called Super Animation for almost all the games we've made for android at TMG. It's  a  free tool which lets you convert swf files to .sam files. This file can then be loaded in Cocos2Dx using the Open source loader library  https://github.com/raymondlu/super-animation-samples I thought it would be a good idea to port this cpp library to GoDot so that i understand how to write custom modules for the engine. This is the video of the module in action. I have expos...

Vehicle Physics (Godot 2D)

I've always been fascinated with the vehicle physics used in games. I played so many racing games / the hill climb games and every single time i would wonder wow that must be really hard to do. Thanks to the new generation of game development tools, developing physics based games has become almost a second nature to most people. I didn't want to be left out so i gave it a shot.. I tried setting up vehicle physics in GoDot Engine for a 2D vehicle. Here is what the vehicle scene looks like.. 2D vehicle setup in GoDot As you can see the body collision shape is not right but the rest of the stuff just works. The idea is simple think of what parts move along with the body vs what doesn't. I was kinda stuck setting up the pinJoint2D in GoDot, it actually clearly takes two nodes under the properties. This makes sure that the wheels are hinged to the DampingSpring2D. The Damping Spring2D takes two physics bodies(Body and the PinJoint2D) and makes it work like shock ab...