Friday, November 4, 2011

XNA 4 In Visual Basic 2010 - Part 2 - SpriteFonts & Tile Mapping With The SpriteBatch



This beginner Visual Basic Game Programming tutorial is designed to help you get started with XNA 4.

In this VB video we'll be covering:
Adding a SpriteFont to our project
Creating a frame counter and drawing it to the screen with the SpriteBatch
Adding a tileset to our game content
Drawing a basic tile map with the SpriteBatch

Tuesday, November 1, 2011

Visual Basic Beginner Game Programming Tutorial ~ Music and Sound with mciSendString

This video will teach you how to play multiple sounds, simultaneously, by creating a sound class and employing MCISendString in Visual Basic 2010. This can be very useful for apps or games. :-)

We'll be covering how to play sounds, volume control, and how to kill running sounds.



Friday, October 28, 2011

XNA 4 In Visual Basic 2010 - Part 1 - Project Creation & Graphics Initialization



This beginner Visual Basic Game Programming tutorial is designed to help you get started with XNA 4.

In this VB video we'll be covering:
XNA Project Creation
Graphics Initialization
Preparing The Game Screen

clsContent Code: http://www.xnatutor.com

You must have XNA 4 (contained in the Windows Phone SDK 7.1) Installed to follow this video.

Download the Windows Phone SDK 7.1:
http://www.microsoft.com/download/en/details.aspx?id=27570

System Requirements:
Windows 7, Windows Vista
Windows® Vista® (x86 and x64) with Service Pack 2 -- all editions except Starter Edition
Windows 7 (x86 and x64) -- all editions except Starter Edition
Installation requires 4 GB of free disk space on the system drive.
3 GB RAM
Visual Basic (Visual Studio 2010) (SP1 Recommended)

Wednesday, September 28, 2011

Connecting to a MySQL Database with VB.NET Using ADO.NET



In this Visual Basic 2010 programming tutorial, we'll be connecting to and pulling data from a MySQL database, utilizing the ADO.NET connector provided at http://www.mysql.com/products/connector/

In this video, we will perform the following tasks:
1.) Creating the Connection Objects, a Connection String, and a Query String
2.) Connecting to our MySQL Database
3.) Drawing Data from our Database to our Windows Form
4.) Filtering our query results, and sorting the data
5.) Creating a Table Relationship to pull data from multiple tables
6.) Disconnecting from the Database

This tutorial assumes that you already have an operable MySQL database, access to the database, and a basic working knowledge of your database.

Tuesday, September 27, 2011

Trying to stay on task...

Wow... So many new goodies to play with and so very little time.

Sorry, if the updates are coming a bit slowly. The four dollars I've made via Google over the past few years just isn't quite enough to allow me to quit my day job. ;-)

So, work has had me really busy, and in my little bit of spare time I've been trying to diversify my talents by learning PHP with MySQL, exploring XNA with VB and trying to memorize the basic configuration, trying to support old tutorials, and considering ideas for new tutorials.

I know, I know... Just more excuses, right? :-P

Well, I have been working on another tutorial, though it's not quite as "game-centric" as the others. Actually, it is - but it isn't. I'll be outlining the very, very basics of employing a database (MySQL) for things like user account storage. While it promises to be a very elementary video, I will not be outlining MySQL configuration, and will expect that you already have an operable database and know how to create and manage your own tables. All I will be demonstrating is how you can connect to it with VB.NET using the ADO.NET driver.

In the first video we'll focus on:
1.) Establishing a connection to a MySQL database with Visual Basic 2010
2.) Accessing table data
3.) Joining two tables with SQL to access relational data (TOONS by USER ACCOUNT)
4.) Closing the connection

Depending upon how this tutorial is received, future videos may go a bit deeper and may include record insertion and whatnot.

Sooo, that's where I'm at, right now.

Take care, and thank you for stopping by! :-)

Aardaerimus

Saturday, September 24, 2011

XNA is on the way!!! *HAPPY HAPPY, JOY JOY*

The XNA over VB barrier has finally been shattered - many thanks to Kalamus1 for his demonstration and for pointing me to a tremendous new resource by rm2kdev: http://www.xnatutor.com/


I still have a long road of learning ahead of me to fully understand and transition my older works to XNA, but I'm thinking that it will be a huge benefit to us all.

With GDI+ I was putting up with frame rates of around 22FPS - at super low resolution even - and many users were bogging down to around 1FPS... When Kalamus1 sent me my own tutorial source adapted to XNA, I totally freaked! My shoddy 22 FPS had exploded to nearly 4000FPS!

The next test was to run the project at full screen. It scaled up very nicely and was still blazing along at around 3000FPS.

Mind you, this was on my monster quad-core workhorse computer at work. The next test would be to execute the project on my older dual-core laptop, at home. The results were still a screaming 2400 FPS!

Keep in mind that most production games will be ticking along at significantly slower speeds. Playing World of Warcraft, for instance, I'm lucky to be getting between 25-35 FPS, and it's still smooth. People with souped up machines and high-end video cards might be enjoying between 60-120 FPS on modern games.

With that in mind, even 1000 FPS would be ridiculous. Of course, this should decline steeply as the complexity of  our code routines grow, and in some instances we might even be forced to limit the FPS to a fixed rate, but at least we can shed the nagging concern that our apps may well give an abysmal performance on machines that may not have been as gutsy as the primary development environment.

Thursday, September 22, 2011

Another VB Game Programming Tutorial ~ Creating Classes and Managing Object Arrays



This Visual Basic programming tutorial is designed to complement my Visual Basic Game Programming series, but is not limited to game design. It is designed to teach you how to create a custom VB Object Class, store your class to an object array, then create and delete multiple instances of that class on the fly.

In this VB programming video, we will be performing the following tasks:
1.) Building a simple game/application loop
2.) Build a (GDI+) graphical interface for painting objects to the main form
3.) Build a custom class with graphical properties and embedded timer objects and self-contained events
4.) Teach the objects to interface with the form environment while remaining autonomous
5.) Create a class/object array to store a desired number of objects from our class
6.) Use random numbers to dynamically generate new and diverse instances of our custom class
7.) Destroy specific objects by deleting them from our array when certain conditions are met.

PROJECT SOURCE CODE: http://www.aardaerimus.com/downloads/classtutorial/

Tuesday, July 19, 2011

A Suite Symphony Playing in the Key of 'Free' - Part One

I'd wager that most code hobbyists, like myself, lack the resources (read 'cash') to blow on expensive tools for their projects.

For that reason, I just thought I'd pass on a number of awesome - and totally free - goodies to help create your project content. Just because they're free does not mean they aren't powerful. Also, this does not necessarily mean that they're lacking in complexity and have no learning curve.

I'll start with a few of my favorite graphics tools.

GRAPHICS & SPRITING TOOLS:



GIMP - Gnu Image Manipulation Program [http://www.gimp.org]

Gimp is truly a powerhouse among 2D photo editors. Boasting most of the editing capabilities of expensive photo editors, like Adobe's popular Photoshop, Gimp is often the top free choice for spriting and other 2D graphics manipulation. There are numerous free plug-ins and brush packs available to extend its capabilities, as well.

Gimp handles all popular file formats like a champ.


Inkscape - Vector Drawing Program [http://inkscape.org]

Inkscape is a fairly simple, yet powerful vector graphics drawing program. With Inkscape, I found it tremendously easy to generate beautiful images for things like graphical buttons and logos. Of course, this is only scratching the surface of Inkscape's capabilities.

There are some really helpful tutorials and demonstrations of Inkscape's capabilities out on YouTube, and I found them to be very instrumental in getting me started.

GraphicsGale - Pixel Art & Animation Maker [http://www.humanbalance.net/gale/us/]

I only recently discovered this amazing little gem and it has totally altered my approach to pixel art and has dramatically decreased the amount of time it takes me to create sprites, icons, and tile objects for my games!

As a wanna-be game designer, I've found it surprisingly difficult to produce pixel art of any quality, and the more powerful photo-editors tend to only complicate the fine art of pixelcraft by possessing countless functions and menus that are really of little use for such up close and in-your-face artwork.

It really is so simple a seven year old can use it, but in its simplicity it is mighty.

To sweeten the deal even further, it can also be used to generate animations. This is a must-have tool, if you're designing your own 2D game!


Blender - 3D Modeling, Animation, and Game Creator [http://www.blender.org/]

Blender... Wow... Where to even start?? I still can't believe that this magnificent beast of a modeling program is free! Blender is right up there with the top dogs of 3D modeling. Possessing incredible 3D modeling, rendering, and movie production capabilities, countless plug-ins and extensions, scripting capabilities, and even a built-in game design environment, Blender stands in a class of its own.

I could rant and rave about it all day long, but I think I'd best just let the work of the Blender community stand on its own and show you what it can do:




Blender Art Gallery



Sintel



Big Buck Bunny




More Blender Made Movies



Most of these are fairly old. If you Google about a bit you'll find tons of mind-blowing art produced with Blender.

Awesome as it is, one major drawback with any major 3D design suite is the learning curve. Be prepared to invest a great deal of time in conquering this behemoth.

Lucky for us we can stand on the shoulders of the Blender heroes that have come before us and kindly created countless awesome tutorials.

Several Blender masters have produced tutorials that are an invaluable resource to the aspiring designer. Among my favorites are:

Good luck out there! If you know of any other awesome [FREE] graphics tools out there that you'd like to add to the list, then please feel free to share!

Take care, all!

~ Aardaerimus

Monday, July 11, 2011

Your thoughts on mundane items and activities in game?

Many games feature mundane activities, items, or objectives.

A few, for example, might be:
  • Feeding your characters
  • Day/night cycles
  • Resting for character/party recovery
  • Crafting

Numerous games have foregone such things, and have still been wildly successful - games like the Final Fantasy series, for instance. Many others, however, feature systems for time cycles, resource gathering, crafting, and other tasks that could be considered irrelevant to play or the general game objective - yet have found tremendous interest in game communities.

My question to you is:

Do you feel that adding mundane articles to games brings added realism and depth to a game, or do you feel that it's pointless or could possibly even detract from the enjoyment of a game, or simply should not be included unless it somehow adds to the story or is specifically required to complete a game?

Saturday, July 9, 2011

Visual Basic Game Programming Tutorial - Part 7 - Saving and Loading Map Data

[Watch in 720p High Definition]


The 7th installment of my Visual Basic 2010 GDI+ game programming series.

In this video tutorial we're covering how to read and write comma delimited map data from/to a text file.

Tuesday, July 5, 2011

GDI+ Game Programming Series - Part 6 - Terrain Collision

[Watch in 720p High Definition]

GDI+ Game Programming Series - Part 5 - Transparent Brushes and Custom Dialog Boxes

[Watch in 720p High Definition]

GDI+ Game Programming Series - Part 4 UPDATE - Improved Key Input and Character Movement

[Watch in 720p High Definition]

GDI+ Game Programming Series - Part 4 - Key Input and Character Movement

[Watch in 720p High Definition]

GDI+ Game Programming Series - Part 3 - Graphics and Tile Mapping

[Watch in 720p High Definition]

GDI+ Game Programming Series - Part 2 - Handling Mouse Input

[Watch in 720p High Definition]

GDI+ Game Programming Series - Part 1 - Building a Game Loop and Frame Counter

[Watch in 720p High Definition]

GDI+ Game Programming Series - Introduction

I've decided that I'll share my progress with GDI+ game programming in Visual Basic. This series teaches the basic principals of game programming. It's still a work in progress, but should kick-start the young VB game programmer and get you on your way to developing simple classic style, 2D RPGs and such.

You'll learn how to use a tile set for tile-mapping, how to create and move a character around the screen, how to track mouse movement and input, how to create semi-transparent menus, and more.

In terms of performance, GDI+ is horribly inefficient, but should still work for creating games like you might see on the old Nintendo, Super Nintendo, and Sega Genesis consoles. As long as you don't use too many on-screen objects simultaneously and keep the number of drawn tiles down, it should perform fairly well on most modern machines.

If you want to dabble in 3D, arcade style games, I recommend learning XNA or DirectX programming in C#. These environments will make much better use of your graphics hardware and allow you to produce many more rich environmental effects.

At any rate, I hope this helps get you started and feeds the creative fire that all of us aspiring game programmers have burning inside. Good luck with your project, and feel free to share your progress with all of us! It's always encouraging to both share and see other peoples' success stories.


Aardaerimus

Friday, July 1, 2011

Heavy workloads make for slow starts... What happened?

XNA... That was a much bigger mess than I'd anticipated. I dabbled with it for a few hours and found some more information on project conversion, just to make the "content pipeline" work, and it was a rather huge undertaking.

I'm the type of person that wants to understand how it all works, as opposed to simply copying and pasting someone else' code into a project... But - WOW - what a colossal failure. hahah

I'm certainly not giving up, but I was getting a lot of pressure to release another GDI+ game programming tutorial. That is on top of my actual job, which had me pinned down pretty tight, these past few days.

Wednesday, June 22, 2011

XNA 4 on Visual Basic - Time to fill the void?

Drifting about the game development community, I've discovered that XNA seems to be the "cat's meow", of late.

For some time now, I've been learning how to employ Microsoft's horribly inefficient GDI+ to draw my graphics to the screen. I've gone back and forth with other coders who have constantly insisted that I need to put that old dog down - GDI+, that is - and move up to XNA.

After dedicating so many years to learning what I have, the idea of starting all over really kinda freaks me out. Leave Visual Basic for C#? Learn XNA?! Not so fast-... Before I panic, I hit up Google for advice. "Can I use XNA with VB??" The answer - "Heck yeah, you can, but we don't have any support docs for it, so you're on your own... You're probably an idiot for even entertaining the notion."

Further digging reveals that there are very few pioneers on this front! I found one very well constructed tutorial on the subject - but halfway through the first segment, I found that it was for XNA 3 and nothing worked, as there had been many changes to the framework! GRRRrr!

I got as far as tapping into my graphics device and making a window that closely resembled a "Blue Screen of Death". It wasn't though. It was my very own creation. Of course, then I wanted to add a 2D Texture next, but my new world came crashing down around me. I found myself neck deep in unfamiliar code and the tutorial was of no help. "Content pipeline?? What the heck is it, and how the heck do I use it?! Why can't I draw stuff to this sexy blue window I made?!?!?! WHY?!!?!?" After my break down, I continued to Google to no avail.

That brings me to my point... There is a serious need out there for VB over XNA 4 tutorials. If I dedicate enough energy to this, perhaps I can figure it out enough to produce some useable tutorials for the XNA-starved masses. It'll be the blind leading the blind, but hopefully it would spur some of the big boys to say, "Hey! Your code is CRAP. Try it this way, instead."

Just generating interest and a response might kick-start the fledgling VB/XNA community. Of course, more likely is that I finally gain a novice understanding of XNA 4 and XNA 5 is released, plunging me back into the darkness... Blah. Move or die, right?

Let's do this thing! :-D

Aardaerimus

Tuesday, June 21, 2011

A muddy start... The Very Basics of Visual Basic Game Design (video)



I'm not sure why this is the most popular of my tutorials, but it is. This was my first submission and it's low quality. Even so, it's fairly thorough in getting you started at game development.

This video is a simple guide to using tile sets to draw a tile map, and to move a character around the screen.

Again, sadly, the video quality is not even close to high definition, though I do narrate through each step, so you shouldn't get lost.

Monday, June 20, 2011

Introduction

Let's keep this simple, for now...

I have this vision of creating a blog that is both entertaining and beneficial to my fellow aspiring coders. Sounds simple enough, right? Well - truth be told, I've tried this before and failed miserably.

Usually, I start out posting with gusto, only to peter out after a short while. So, what makes me think I can do better this time around? Well, to be honest, my confidence has been dramatically improved by the overwhelmingly positive response to my recent game programming tutorials.

They're certainly nothing epic, but the positive feedback and code-hungry viewers have really driven me to continue in my endeavor to teach both myself, and others.

Mainly, I focus upon laying the foundations for game design in the Visual Studio (specifically VB) environment. Visual Basic is not typically pursued as a viable programming language for game production, but I've always maintained that it is highly underrated. In lazy man's terms: It's what I know, so it's what I do. ;-D

I have a deep fondness for the old, retro RPGs. I grew up playing the old Ultima series, as well as those golden classics, such as Dragon Warrior (NES), and Final Fantasy (NES, SNES). With the arrival of superior 3D environments and flashy game play, I feel that games have lost a great deal of the depth of play and richness of dialog that they once possessed. That's not to say that I don't enjoy, immensely, the all out bloodbath of those good ol' FPS games, like Quake and Unreal, or the arse-kickin'ness of games like the Battlefield series.

Still, when I attempt to make my own games, I pretty much always feel inclined to mimic the design of my favorite classic RPGs.

That said, I'm easily distracted... When it comes to programming, I find it difficult to stick with one thing for any extended period of time. that, or I simply learn a new trick or technique that takes me down so many rabbit trails that I forget what my initial intentions were. I also have a terrible tendency to procrastinate. To make things even worse, I have the memory of a goldfish, and I most always fail to take notes. Boy does that get me into trouble... ;-O

So, here we are... Another blog. :-P

If you find the contents helpful, or even fun, PLEASE OH PLEASE OH PLEASE leave me a note or something to let me know you were here! It's the feedback that drives me forward and will help to keep this blog from becoming yet another stagnant pond in the backwaters of the internet.