Game Downloads
Game Design


Newer Tutorials:

MonoGame (or xna) Dynamic Water Pixel Shader (Nov 2016)

MonoGame Version Dynamic Grass - Vertex Shader Animation(Sept 2016)

MonoGame Bloom Space Ship Game Tutorial
(Aug 2015)

MonoGame (or xna) MeoMotion Character Animation Tutorial Bones and Distortions (June 2015)

XNA(or Monogame) Tile Map Editor Tutorial (Nov 2014)

XNA(or Monogame) Lens Flare Lighting Tutorial (Oct 2014)

Part 2: XNA Lens Flare Occlusion (Part 2... now with Fade)

XNA Dynamic Grass Tutorial (principle applies to non-XNA as well) (Oct 2014)


Older Tutorials:

    Originally, I made these tutorials that shows you how to program a 2d tilemap based engine using C/C++ (with Visual Studio) using the downloadable DirectX SDK. It shows you how to set everything up to begin making a 2D(or 3D game) - and the remainder of the first tutorial focuses on making a 2D(some 3D) side-scrolling parallax platform style game - including how to quickly make nice graphics with photoshop. Eventually if I find time, I'd like to add some c# game development tutorials using xna or monogame (adding some extentions).

To begin>>              Game Programming Tutorial Page 1,  Page 2

Graphics Section>>  Page 3

Scrolling>>              Page 4

2D/3D Scrolling and Tile Graphics>> Page 5, Page 6

TileMap / GameMap Editor coding>> Page 7 (now with source code)


Game Design Blog:

Sept 2016

Notes about transparency problems and how to fix them:
If you are using png's and experiencing poor alpha results... you may want to change your settings in rendering and/or in the pipeline settings.
Set Premultiply alpha as false when using BlendMode.NonPremultiplied ... and note that MonoGame defaults to premultiplied alpha (which may mess up code which used to depend on non-premultiplied alpha info [ie: for generating fonts]) ... it is possible to change the map format if need-be in the software.... so just keeo in mind - both must be set to NonPremultiplied or... both must be set to premultiply (which will mean that you may need to premultiply alpha values before applying them to images that will have alpha adjustment during animation)... ie:
Color premult_color = Color.FromNonPremultiplied(150, 0, 0, 90);

Jan 2015

Discovered this problem (which has never happened until now):


The original (white background) has perfect transparency (in photoshop), but when used in the XNA program, a stubborn gray edge appears... (O__O)' ...Changing to AlphaBlend(instead of nonpremultiplied) mostly fixed the problem, however there's still something not quite 100% right with some edges. Note to others with this problem - make sure if the texture properties in the pipeline are set to premultiplied, to use alphablend - otherwise set use nonpremultiplied to avoid other artifacts (in other words match them up).


Sept 2014

HUD - Starting to realize that I enjoy games better that have less visible HUD. So if interface elements like this are essential to a game, I'm thinking they should self-hide parts that aren't immediately pertinant to gameplay and can be viewed alternatively with a keypress or something... (not always the case though - depends on the game)

Speed - The ability to gain speed or have speed-boosts somehow seem to make the game more fun. Slow and clumsy gameplay is boring and frustrating.

Dynamic mechanics - basically the idea is having different abilities that can be upgraded and each of which help you to more effectively do certain tasks that enhance your ability to progress... caution is needed to prevent it from being too confusing but also not too obvious -- also it must be interesting/entertaining... ie: puzzle-type mechanics

Power - the ability to enhance your character's power both or either through immediate reward for attaining some kind of powerup or also through upgrades to the character's properties as a reward for hard work and risk-taking.

Timing and Spacial mechanix - these are a bit straight-forward and fun, however delaying the player too long can build frustration so proceed with caution

Story/Emotion/Music - one should not underestimate the power of curiousity, emotion, and music to drive a player onward - even if the game lacks good gameplay...

Eye-Candy - while not necessary for a fun game, it makes a big impact on how you feel while you play -- adding to the enjoyment of the experience... so don't overlook...

Traversal - sometimes open-ended worlds are fun to explore... but sometimes they can become confusion itself. Direct the player or they will totally lose interest. Backtracking over and over again becomes tedious and boring even if you add lots of interactions along the way.

Constant potential reward - I note however that rewarding the player with useless point items or things they don't need too often, can end up having the opposite effect of reward experience... Smashing stuff can be fun however, and offering the occassional random drop(and even more rare more useful trinket or portal or whatever) gives players more motive to get involved with the discovery experience.

Bosses? - Do games need these? For some reason I always like strange encounters with overwhelming creatures which require a strategy to conquer (just don't make it too hard to figure out).

Cutscenes/Ending - Don't overlook creating a good ending or even more than one possible ending. An interesting(or crappy) ending can make or break how a player decides to feel about a game after all is said and done regardless of how much they liked playing it originally.