Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
17. June 2013

Dreemchest, the Lua based cross platform 2D game engine (and GFS sponsor!) have just released RC147.  The biggest new feature has to be the ability to publish your game to the Flash player.  That said, there were a number of additional improvements including support for ads and in-app purchases, two features that are basically a game engine must have these days.  The complete list of announced new features is:

  • Composer preferences dialog
  • Built-in updater
  • Properties of type StageObject
  • Exporting iOS apps to IPA
  • iOS small icon inside project settings
  • InApp purchases
  • iAds advertisements
  • GameCenter
  • Cryptography
  • HTTP requests
  • Samples for Ads, GameNetwork, InAppStore, Swipe
  • Compressed bundle option for command line packager
  • Asset browser filters
  • OTF font extension
  • Breakout sample game
  • URLRequest sample project
  • Crypto sample project

Dreemchest is currently available as a free download for MacOS and Windows.  You can download RC147 right here.

News


14. June 2013

Kids these days with their free 3D game engines have no idea what life you used to be like!  In addition to walking 5 miles up hill in the snow, both ways, to get and from school, if we wanted to render a polygon on screen, we needed to create a polygon first!

 

I'm not really kidding either.  In the DOS and early Windows 95 days, OpenGL was only available on high end SGI workstations.  There was no 3D accelerations, there were very few game engines and those that were available were insanely expensive.  If you were creating a 3D game engine, you really needed to roll everything yourself… line drawing routines, triangle rasterizing routines ( the act of turning shapes into pixels ), everything was created from scratch and you had no hardware to help you out.  Looking back, its rather amazing how far things have come in such a short period of time!  I don't think anyone could have even fathomed the existence of the Unity game engine back in those days.  If you ever felt that OpenGL or DX11 programming was low level, you should have been programming in those days!

 

Truth told though, it was a lot of fun too.  You opened up your copy of Michael Abrash's Zen of Graphics Programming (still an amazing book!) and got to work. Perhaps most importantly, you also had a better understanding of what was going on than you do now.  Strangely enough, I struggle more now with modern shader programming than I ever did back in those days.  So, while you had to do a great deal more it was also a great deal more simple.  You were always in control of your code, something that has become less and less true.

 

So, why am I talking about this… am I having an old person moment?  No, not at all!  Or at least, I don't think so… do you recognize if you have an old person moment anyways?

 

Ok, back on track… I mention this, because oddly enough David Rousset over at MSDN is creating exactly such a tutorial series.  In his words:

So why building a 3D soft engine? Well, it’s simply because it really helps understanding how modern 3D works with our GPUs. Indeed, I’m currently learning the basics of 3D thanks to internal workshops delivered within Microsoft by the awesome David Catuhe. He’s been mastering 3D for many years now and matrices operations is hard-coded in his brain. When I was young, I was dreaming to be able to write such engines but I had the feeling it was too complex for me. Finally, you’ll see that this is not – that - complex. You simply need someone that will help you understanding the underlying principles in a simple way.

Through this series, you will learn how to project some 3D coordinates (X, Y, Z) associated to a point (a vertex) on a 2D screen, how to draw lines between each point, how to fill some triangles, to handle lights, materials and so on. This first tutorial will simply show you how to display 8 points associated to a cube and how to move them in a virtual 3D world.

He is working in higher level languages ( C#, JavaScript and TypeScript ) and isn't quite getting as low to the metal as we used to, but creating a soft engine goes a great deal lower level than most programmers ever have to go these days.

If you've ever struggled understanding HOW DX or OpenGL work, as in actually work not how to use them, running through this series would be a very good idea.  Currently part one and part two are online.  Here is the end result of part two:

 

Of course, this is all for educational purposes only!  Creating a software based 3D engine in this day and age makes about as much sense as buying a horse and buggy instead of a car.  So if you ever wanted a peek behind the curtains, you may want to keep an eye on this tutorial series.

Programming


10. June 2013

 

The Apple World Wide Developer conference is currently going on and generally there isn’t all that much of interest to game developers.  This year is a bit of an exception as they added SpriteKit to OSX Maverick (10.9) as well as an upcoming release of iOS.  SpriteKit seems to be a combination of sprite library and physics engine.  In their own words:

Sprite Kit provides a graphics rendering and animation infrastructure that you can use to animate arbitrary textured images—sprites. Sprite Kit uses a traditional rendering loop that allows processing on the contents of each frame before it is rendered. Your game determines the contents of the scene and how those contents change in each frame. Sprite Kit does the work to render frames of animation efficiently using the graphics hardware. Sprite Kit is optimized to allow essentially arbitrary changes to each frame of animation.

Sprite Kit also provides other functionality that is useful for games, including basic sound playback support and physics simulation. In addition, Xcode provides built-in support for Sprite Kit, allowing complex special effects and texture atlases to be easily created and then used in your app. This combination of framework and tools makes Sprite Kit a good choice for games and other apps that require similar kinds of animations. For other kinds of user-interface animation, use Core Animation instead.

Followed by:

Sprite Kit is available on iOS and OS X. It uses the graphics hardware available on the hosting device to efficiently composite 2D images together at high frame rates. Sprite Kit supports many different kinds of content, including:

  • Untextured or untextured rectangles (sprites)

  • Text

  • Arbitrary CGPath-based shapes

  • Video

Sprite Kit also provides support for cropping and other special effects, allowing these effects to be applied to all or a portion of the content. All of these elements can be animated or changed in each frame. You can also attach physics bodies to these elements so that they properly support forces and collisions.

By supporting a rich rendering infrastructure and handling all of the low-level work to submit drawing commands to OpenGL, Sprite Kit allows you to focus your efforts on solving higher-level design problems and creating great gameplay.

So basically it’s a 2D game engine competing with the likes of Cocos2D.  Of course, if you use SpriteKit you will be tied to iOS/OS/X and the newest release at that.  If you are an Apple only shop, this isn’t a big deal, but if you work cross platform or are targeting older hardware, this new library is pretty much useless for now.

 

If you have an Apple ID, you can log in and read the documentation here.

News


7. June 2013

 

This promotion just arrived in my email and I figured a few of you might be interested.marmalade_logo

 

 

How do you get a Free Marmalade SDK Licence?

  1. Sign-up or sign-in below
  2. If you don’t already have a Marmalade SDK, download an evaluation licence
  3. Submit a draft BlackBerry 10 app using your existing Marmalade SDK or evaluation licence within 30 days. You will need a BlackBerry® World™ Vendor ID to do this. You can get one here. Don’t worry if it’s not ready at this stage - draft mode BlackBerry 10 apps are only verified to determine if they have been created with the Marmalade SDK, and thus qualify you for the offer. They are only reviewed for sale after the BlackBerry Vendor changes the app status.
    ***Please make sure you come back and input your BlackBerry® World™ Vendor ID (we only need the email address you use to register on BlackBerry World).***
    The first 300 qualifying Vendors* will receive a free BlackBerry Dev Alpha testing device
  4. Once your app is submitted for final review and approved for sale, you will receive a full Marmalade Indie licence worth $499 (existing Indie licence holders will have their licence extended by a year and new licence holders will convert to a full Marmalade Indie Licence).
  5. Go cross-platform: once your app is approved on BlackBerry World, reap further rewards on other app stores, using the full capabilities of your Marmalade cross-platform licence.

 

I am a little confused about part 3.  From the sounds of it, you can create a simple Hello World application and submit it, so long as it was compiled with Marmalade and you are one of the 300 first people to do it, you then qualify for a free BB Dev Alpha device.  It could be that I am reading that wrong.  Once your application is approved for sale on BB store, you then receive a Marmalade license ($499) enabling you to publish to other environments.  Makes sense in a way, as Blackberry is sponsoring this, so they effectively get the first release, but then you can bring your app to other devices. You can read the entire release right here(PDF Link).

 

For those of you that have never heard of it, Marmalade is a cross platform game development kit that supports just about any device you could think to target.  It is C++ based, although it now ships with Marmalade Quick, a RAD tool built on top of Cocos2D-x and Box2D and scripted using Lua.  Marmalade has been used to publish hundreds of mobile titles including Cut The Rope, Plants vs Zombies, Need for Speed and tons more.  Marmalade has been around for a number of years, starting life as the AirPlay SDK.  Marmalade have both a free (and limited) version available, as well as a 30 day trial of each of their versions.  The version being offered is a single seat for a year of the Indie version, which allows you to target BB, iOS, Android and Windows Phone 8.

 

Blackberry is a Canadian smartphone manufacturer, who outside of the business world were more or less a non-factor.  This is rapidly changing though with their most recent releases.  The recently released Z10 and Q10 smartphones, as well as the Playbook tablet are all powered by the QNX operating system, which RIM acquired a few years back.  After some serious teething pains, Blackberry is back and has a number of great devices for running games.  While the install base is smaller than both Android and iOS, it is said to be a lucrative market and hey… you’ve got nothing to lose, you can still port to iOS, Windows Phone and Android.

 

 

EDIT:  I figure I should point out that the Indie license they are giving away still has some limitations.  You cannot have an annual revenue of more than $500K and you need to give a Marmalade attribution.  Unlike the community version, this doesn’t involve a splashscreen or anything that intrusive.  A “Made with Marmalade” logo in your about or credit screen is sufficient.  Here is the full details regarding attribution:

 

As a technology business we thrive by sharing details of the amazing apps and games that are made with Marmalade.

It is for this reason that we ask licensees to reference Marmalade in one or more of the following ways:

Marmalade Community Licence holders

  • A Made with Marmalade splash screen will be displayed when your app loads. The splash screen will display automatically, and will remain on screen for a short time.

Marmalade Indie and Plus Licences

  • Include the Made with Marmalade logo and our website address www.madewithmarmalade.com within the credits and/or about screen. If possible, this should link to www.madewithmarmalade.com.
  • In the event that technical restrictions prevent the above, the wording “Made with Marmalade” and our website address www.madewithmarmalade.com should be included within the app credits and/or ‘About’ screen of your published app. If possible, this should link to our website www.madewithmarmalade.com.
  • An optional Made with Marmalade splash screen will be displayed when your app loads. The splash screen will display automatically, and will remain on screen for a short time.
  • Assets can be downloaded here.

 

EDIT2: I just did the Blackberry World vendor application, a bit of a warning, this doesn’t appear to be a real-time process!  I created a Blackberry ID, then a vendor account and cannot yet log in.  It appears there is a verification process before your account is created.  If it’s a race for the first 300 people, this disconnect, well, sucks.  Basically it means people with Blackberry World accounts already registered are basically guaranteed to get in first.

News


27. May 2013

 

In this day and age almost all graphics engines are behind the curtain based on 3D.  It's just the way graphics hardware works, so we now deal with textures instead of pixels  SpriteProjectand sprites.  At the end of the day, almost every single 3D game engine get a 2D sprite engine created on top off it, and now jMonkeyEngine is no exception with the release of The Sprite Project.

 

In case you have never heard of it, jMonkeyEngine is a complete Java based 3D engine, that is quite mature ( version 3+, over a decade old! ) and completely open source.  The Sprite Project is a 2D sprite engine built over top of it.  Here is a sample application taken from the documentation(pdf link).

 

package mygame;

import com.jme3.app.SimpleApplication;


public class Main extends SimpleApplication {

static Main app;

public static void main(String[] args) {
  app = new Main();
  app.start();
}

static SpriteEngine engine = new SpriteEngine();

@Override
public void simpleInitApp() {
  Sprite sprite = new Sprite(“Textures / Sprite.png”, “Sprite 1”, assetManager,
    true, true, 9, 1, 0.15f, “Loop”, “Start”);
  SpriteLibrary.l_guiNode = guiNode;
  SpriteLibrary library = new SpriteLibrary(“Library 1”, false);
  library.addSprite(sprite);
  engine.addLibrary(library);
}

@Override
public void simpleUpdate(float tpf) {
  engine.update(tpf);
  }
}

Pretty simple looking eh?

So if you are looking for a 2D sprite library built on top of a great Java 3D engine, you need look no further.


AppGameKit Studio

See More Tutorials on DevGa.me!

Month List