VISIONPOL http://visionpol.org Methodical Amelioration posterous.com Mon, 30 Jan 2012 11:26:00 -0800 Allegro Sprite Editor http://visionpol.org/allegro-sprite-editor http://visionpol.org/allegro-sprite-editor

Making pixel art and animated sprite sheets can easily become tedious with cumbersome tools.  Fortunately, the Allegro Sprite Editor (also known as ASESPRITE) is a free and open-source program that makes working a pleasure.  My favorite feature is the support for onion skinning, which is a godsend for quick animation.

Binaries are available for both Windows and Mac OS X.  You can also compile the source if you are on Linux.

You can get ASE at http://www.aseprite.org/.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1766629/logo_large.png http://posterous.com/users/egPBAbKyJpgNA Vincent Nguyen visionpol Vincent Nguyen
Sat, 21 Jan 2012 13:33:24 -0800 Astrometry and Screen Resolution http://visionpol.org/astrometry-and-screen-resolution http://visionpol.org/astrometry-and-screen-resolution I have decided to invoke martial law and poetic license on present and future posts, because my grammar is admittedly awful and I love colons and parentheses.  This post will detail distance scaling, and is intended for novice game developers.

I haven't yet mentioned my other project, codenamed "Inquisitor," on this site.  It is intended to be a Love2D-based framework that allows for easy creation of visual novels and point-and-click adventure games.

One of the speed bumps I have encountered during coding is addressing the myriad screen resolutions offered on desktop and laptop computers.  I recently souped up a solution to provide letterboxes for screen resolutions that were not of a 16:9 ratio.  The letterboxes can also orient themselves on the left and right sides of the screen if you played the game on a ridiculously wide screen.

The letterbox fix still doesn't solve the issue of where characters would be positioned on screen.  While scaling and placing the background image would be incredibly easy for all scenarios, using pixels to designate where character images will be located in not as simple a task.  As you may imagine, specifying a set pixel distance for the characters will look very different on many screens.  Characters could end up being extremely close or far away from each other depending on your resolution.  Directly using the coordinate system as-is with absolute pixel positions will cause you to lose every time.

My favorite thing to do when tackling a problem like this is to lie down on my bed and meditate on the problem at hand.  I observed the bumps on my ceiling and pretended they were stars in the night sky; then, I had a sudden realization.  I may not be able to solve the issue by translating the coordinate system as a whole, but I could implement a system for relative positions.

To elaborate, I thought of the way the Earth and Sun are positioned in the universe.  Centering my coordinate system on the Sun and specifying 93 million pixel "miles" would be great for getting the distance between the two bodies correct, but I would still have a bunch of weird-looking darkness around the two bodies.  Instead, I'm going to have my own astronomical unit for my project.

The astronomical unit is fantastic when measuring distances between bodies in areas of cosmic scale.  The distance between the Earth and the Sun is 1 A.U., and not 93,000,000 miles.  For the purposes of Inquisitor, I'm not dealing with monitors of cosmic scale, but I do have to scale the distance between my game elements to make the experience uniform across different setups.  In other words, after translating my coordinate system such that the origin (where x = 0 and y = 0) is at the center of the screen, I will make the distance between the origin and the left side of the screen equal one "astronomical unit."  In this case, I can ensure that the position of characters on the screen will be consistent with respect to other characters and the screen's borders.

This problem is nominally more interesting than the letterbox problem, and can be fixed if you have basic knowledge of fractions and algebra.  If you are currently trying to solve this problem, or have some tips you'd like to swap, feel free to comment and/or follow my feed.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1766629/logo_large.png http://posterous.com/users/egPBAbKyJpgNA Vincent Nguyen visionpol Vincent Nguyen
Thu, 19 Jan 2012 15:42:00 -0800 Piracy: Learn How to Bake Your Cake http://visionpol.org/piracy-learn-how-to-bake-your-cake http://visionpol.org/piracy-learn-how-to-bake-your-cake

I was browsing Hacker News earlier today and (finally) noticed a post speaking out against some earlier posts advocating piracy to react to inconvenient DRM measures.  I felt some massive vindication after reading it, because I haven't really met anyone who doesn't regularly pirate media (be it music, movies, games, and other software).

I'm not really sure if the author's post would convince any pirates to stop doing what they are doing, as it is titled "you can't have your cake and eat it."  Well, the pirates probably think to themselves that they are having their cake and eating it.  That is pretty much the definition of what they are doing, so I thought to create a post that may or may not be more convincing.

I recall two particular instances where two of my friends justified piracy for different games.  One of them justified pirating Call of Duty: Modern Warfare 2 for not having dedicated server support.  The other justified pirating Spore for having unforgiving DRM measures.

For those who don't know, a single copy of Spore only allows you to install the game on three distinctly different computers.  If you want to remove an authorized computer for your copy, you have to run a certain tool that required Internet connectivity on that computer.  Of course if you reformatted that computer's hard drive without doing so, you were out of luck and would have to call EA customer support, which requires a moderate investment of time.

My friend justified pirating of Spore because he believed that pirating the game would be the only way to get developers and publishers to do away with DRM.  I replied to him that if you want something like that to happen, you either give them your money or your don't.  He replied, saying that since there was no way to take money away from them, pirating was the best measure that he (as a fanatical gamer) could take since denying them his money was not a strong enough approach.  He even went so far as to say that pirating the game and deleting it afterwards would be appropriate.

This is utterly selfish slacktivism, if it can even be called a subset of activism.

So maybe copying a developer or publisher's game isn't technically "stealing."  If you honestly believe that you can justify pirating a product that you enjoy (or even don't enjoy because a free trial isn't available or adequately representative), then maybe you should try your hand at developing a gameLearn to program, produce music, draw, or make films, and then try to learn just how difficult it is to profit from such a skill, especially in their respective industries.

I am very much a generalist.  At one time or another, I have attempted to produce music, visual art, films, games, and software in general.  I'm young (20 years old), and I have yet to complete a project that I would feel comfortable enough to release into the public.  I had gained a great appreciation for every single kind of craft I have attempted to learn.  I have experienced firsthand just how difficult it is to create and finish a game.

I had ended the practice of piracy long before today, but after working with code, music, and visual arts, I find the thought of piracy to be incredibly criminal.  I'd like to ask you, the reader, to please attempt to create something of the same medium as the product you are pirating, attempt to master that craft (I know that requires a large investment of time, and certainly more so than the convenience of piracy), and then reflect upon that experience to see if you are really willing to pirate someone's work with your current rationalization.

Additional Notes:  I know some of my links lead to things like Lua and other pieces of software instead of alternatives you may prefer.  I invite you to use alternativeTo to explore your options, as I'm not really trying to advocate learning about a particular field or tool.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1766629/logo_large.png http://posterous.com/users/egPBAbKyJpgNA Vincent Nguyen visionpol Vincent Nguyen
Mon, 16 Jan 2012 09:37:00 -0800 Lua Tutorial Status and Changes http://visionpol.org/lua-tutorial-status-and-changes http://visionpol.org/lua-tutorial-status-and-changes

I've migrated my site from Nearly Free Speech to Posterous to cut down on costs (even more) and increase convenience at the cost of freedom (which isn't too high, given the features provided on Posterous).

Anyway, my most recent project was to create an eBook that taught Lua in Zed Shaw's famed Learn Code the Hard Way methodology.  His repository and documentation for creating a book are a very good way to get acquainted with LaTeX and Dexy.  For anyone who is wondering, these two tools are great for creating documents (including PDF's) and syntax highlighting, respectively.

After working on the book for a while, I've realized that my pedagogic style isn't exactly compatible with Zed's style, so I've decided to deviate from his guidelines (slightly) and create my own book under a different title and with a slightly changed subject matter.

My original plan was to create "Learn Lua the Hard Way."  My new plan is to create manuscripts that are oriented towards teaching readers the basics of programming as well as get their feet wet with the basics of video game development.  I find that one of the best ways to teach people is to show them code and the resulting output of that code with a side-by-side comparison.  In addition, I find that a great way to retain their interest is to show a colorful output that can be created with minimal code and knowledge.

The colorful output I intend to present to my readers will be created with the Love2D framework, which already has fantastic documentation and an API that isn't broken (I'm looking at you, Facebook).

I'm still working on other projects, like my Inquisitor game.  I will try to make a future post about that.

Permalink | Leave a comment  »

]]>
http://files.posterous.com/user_profile_pics/1766629/logo_large.png http://posterous.com/users/egPBAbKyJpgNA Vincent Nguyen visionpol Vincent Nguyen