Richards Software Ramblings

Profile
Southern New Hampshire
45 comments
4 followers
64 entries
Advertisement
ericrrichards22
May 16, 2017
Mazes in C# - Part 2 - Dijkstra's Algorithm

Last time, I had started working through Jamis Buck's Mazes for Programmers. I've made quite a lot of progress in the meantime, but haven't managed to keep up with posting about that progress. Today, we're going to work through the meat of Chapter 3, where we'll implement a simplified version of Di…

2,995 views
ericrrichards22
April 09, 2017
Mazes in C# - Part 1

A few weeks back, I picked up a copy of James Buck's Mazes for Programmers: Code Your Own Twisty Little Passages. (The title is, of course, an homage to one of the original text adventure games, Colossal Cave Adventure, or Adventure for short, which featured a maze puzzle where every room was descr…

3,201 views
ericrrichards22
August 26, 2016
Voronoi Diagrams

A little over two years ago, I first saw Amit Patel's article on Polygonal Map Generation, and thought it was incredibly cool. The use of Voronoi regions created a very nice, slightly irregular look, compared to grid-based terrains. At the time, I had just finished up working on my DX11 random terr…

5,247 views
ericrrichards22
April 11, 2016
Ray Tracing #3: Let's Get Some Actual Rays!

Alright, ready for the third installment of this ray tracing series? This time, we'll get some actual rays, and start tracing them through a scene. Our scene is still going to be empty, but we're starting to get somewhere. Although the book I'm working from is titled Ray Tracing in One Weekend, it'…

2,260 views
ericrrichards22
April 11, 2016
Ray Tracing #2: Abstractions

It's going to take me considerably longer than one weekend to build out a ray tracer...

Last time, I laid the groundwork to construct a PPM image and output a simple gradient image, like the one below.

This time around, I'm going to focus on building some useful abstractions that will make work goin…

2,257 views
ericrrichards22
February 18, 2016
Hello Raytracing

Whew, it's been a while...

A few weeks ago, I happened across a new book by Peter Shirley, Ray Tracing in One Weekend. Longer ago than I like to remember, I took a computer graphics course in college, and the bulk of our project work revolved around writing a simple ray tracer in Java. It was one o…

2,263 views
ericrrichards22
August 02, 2015
Finite State Machines, Part 1
One of my favorite books on AI programming for games is Matt Buckland's Programming Game AI By Example. Many AI programming books lean more towards presenting topics and theories, leaving the dirty work of implementing the techniques and algorithms up to the reader. This book takes a very different…
3,068 views
ericrrichards22
May 20, 2015
Setting up Chocolate Wolfenstein 3D in Visual Studio 2013
For the past few weeks, I've been once again noodling on the idea of starting a .NET port of a classic Id FPS. As a kid on my first computer, an off-brand 486 with DOS, I just hit the tail end of the good old days of shareware. And amongst all the floppy disks of kiddy and educational software and …
4,456 views
ericrrichards22
February 11, 2015
Model Loading Code Updated to AssimpNet 3.3.1
Just a quick update today. I've updated the 3D model loading code to use the latest version of AssimpNet that is on Nuget now. The latest code is updated on GitHub.

The biggest changes appear to be that the AssimpImporter/Exporter classes have been merged into a single AssimpContext class that can d…
3,200 views
ericrrichards22
January 17, 2015
Serving HTML5 Video using Nancy
Not really game related, but something I've been working on lately.

Recently, I have been using OWIN a good deal for developing internal web applications. One of the chief benefits of this is that OWIN offers the ability to host its own HTTP server, which allows me to get out of the business of inst…
2,837 views
ericrrichards22
December 21, 2014
Geodesic Sphere Tessellation
A couple of weeks ago as I was browsing HackerNews, I stumbled onto an article about creating spherical procedural maps by Andy Gainey. Procedural terrain/map generation is always something I find interesting, having grown up slightly obsessed with Civilization and its successors. Various methods o…
4,056 views
ericrrichards22
November 24, 2014
HLSL Cookbook: Directional Lighting
Moving along with Chapter 1 of the HLSL Development Cookbook, we're on to handling directional lighting. I've covered most of the theory behind directional lighting previously, so this is going to be quite brief.

To recap, in case anyone is unfamiliar with the term, a directional light is a light wh…
2,536 views
ericrrichards22
November 14, 2014
Hemispherical Ambient Lighting
Well, it's been two rough months since the last post. Work has been crazy, and I've been wrestling with finishing up my never-ending Voronoi mapping project. So I decided to switch gears and return to the HLSL Development Cookbook. Now that I've got code in place to handle loading the .sdkmesh mode…
2,416 views
ericrrichards22
September 11, 2014
Loading an SDKMESH Model file with SlimDX
Many moons ago now, I picked up a copy of HLSL Development Cookbook by Doron Feinstein. I had intended to work my way through it after I finished up Luna's Introduction to 3D Game Programming with Direct3D 11.0, but winter and life kind of got in the way...

Another difficulty I had with this book wa…
3,259 views
ericrrichards22
July 19, 2014
Site Migration
I've decided to move my blog off of Blogger. Blogger was great for getting started, but it has just become too painful to fight with going forward. I'm sick of fighting the Blogger templating to force it to display my content the way that I want it to. Blogger has a habit of absolutely mangling the…
1,834 views
ericrrichards22
July 14, 2014
Clipping Lines to a Rectangle using the Cohen-Sutherland Algorithm
For the last six or eight months, off and on, I've been trying to write some code that will create a Voronoi diagram from a set of random points, inspired by Amit Patel's Polygonal Map Generation demo. In the last week or so, I had a bit of a break-through, in that I finally managed to get an impl…
4,504 views
ericrrichards22
July 10, 2014
One Year Later
Tuesday was the anniversary of my first real post on this blog. For the most part, I've tried to keep my content here on the technical side of things, but, what the hell, this is a good time to reflect on a year of blogging - what went well, what went poorly, and where I'm going from here.

What I …
2,506 views
ericrrichards22
February 06, 2014
Rendering Text using SlimDX SpriteTextRenderer
Howdy. Today, I'm going to discuss rendering UI text using the SlimDX SpriteTextRenderer library. This is a very nifty and light-weight extension library for SlimDX, hosted on CodePlex. In older versions of DirectX, it used to be possible to easily render sprites and text using the ID3DXSprite a…
2,495 views
ericrrichards22
February 02, 2014
IBM Connect 2014
Yikes! It's been more than two weeks since my last post... It's been a busy two weeks, as my employer has been gearing up for and attending IBM's Connect 2014 conference in Orlando. So I've had less time than usual to work on my side projects here. Because of that, I'm going to go outside of my…
1,944 views
ericrrichards22
January 18, 2014
Simple Particle Physics
As I mentioned last time, I'm going to move on from fiddling with my Terrain class for a little while, and start working on some physics code instead. I bought a copy of Ian Millington's Game Physics Engine Development some months ago and skimmed through it, but was too busy with other things to r…
2,037 views
ericrrichards22
January 11, 2014
Pathfinding III: Putting it All Together
http://www.youtube.com/watch?feature=player_embedded&v=WIOQuEJSpEg
Watch the intrepid red blob wind its way through the mountain slopes!

Last time, we discussed the implementation of our A* pathfinding algorithm, as well as some commonly used heuristics for A*. Now we're going to put all of the …
3,833 views
ericrrichards22
January 02, 2014
Pathfinding II: A* and Heuristics
In our previous installment, we discussed the data structures that we will use to represent the graph which we will use for pathfinding on the terrain, as well as the initial pre-processing that was necessary to populate that graph with the information that our pathfinding algorithm will make use o…
2,321 views
ericrrichards22
December 31, 2013
Pathfinding 1: Map Representation and Preprocessing
This was originally intended to be a single post on pathfinding, but it got too long, and so I am splitting it up into three or four smaller pieces. Today,we're going to look at the data structures that we will use to represent the nodes of our pathfinding graph, and generating that graph from our …
2,806 views
ericrrichards22
December 13, 2013
OutOfMemoryException - Eliminating Temporary Allocations with Static Buffers in Effect Wrapper Code
I came across an interesting bug in the wrapper classes for my HLSL shader effects today. In preparation for creating a class to represent a game unit, for the purposes of demonstrating the terrain pathfinding code that I finished up last night, I had been refactoring my BasicModeland SkinnedModel…
2,220 views
ericrrichards22
December 12, 2013
Refactoring Rendering Code out of the Terrain Class
Howdy, time for an update. I've mostly gotten my terrain pathfinding code first cut completed; I'm creating the navigation graph, and I've got an implementation of A* finished that allows me to create a list of terrain nodes that represents the path between tile A and tile B. I'm going to hold off …
1,765 views
ericrrichards22
December 05, 2013
Terrain Tile Picking in 3D
Typically, in a strategy game, in addition to the triangle mesh that we use to draw the terrain, there is an underlying logical representation, usually dividing the terrain into rectangular or hexagonal tiles. This grid is generally what is used to order units around, construct buildings, select t…
2,131 views
ericrrichards22
November 20, 2013
A Terrain Minimap with SlimDX and DirectX 11
[font=Arial]

Minimaps are a common feature of many different types of games, especially those in which the game world is larger than the area the player can see on screen at once. Generally, a minimap allows the player to keep track of where they are in the larger game world, and in many games, par…
2,146 views
ericrrichards22
November 17, 2013
Adding Shadow-mapping and SSAO to the Terrain
[font=Arial]Now that I'm finished up with everything that I wanted to cover from [/font]Frank Luna's Introduction to 3D Game Programming with Direct3D 11.0[font=Arial], I want to spend some time improving the Terrain class that [/font]we[font=Arial] [/font]introduced[font=Arial] [/font]earlier[font…
2,420 views
ericrrichards22
November 12, 2013
Rendering Water with Displacement Mapping
[font=Arial]

Quite a while back, I presented an example that rendered water waves by computing a wave equation and updating a polygonal mesh each frame. This method produced fairly nice graphical results, but it was very CPU-intensive, and relied on updating a vertex buffer every frame, so it had r…
2,153 views
ericrrichards22
November 07, 2013
SSAO with SlimDX and DirectX11
[font=Arial]
In real-time lighting applications, like games, we usually only calculate direct lighting, i.e. light that originates from a light source and hits an object directly. The Phong lighting model that we have been using thus far is an example of this; we only calculate the direct diffuse a…
2,578 views
Advertisement

Popular Blogs

shawnhar
Generalist
101 Entries
9 Followers
15 Entries
10 Followers
johnhattan
Programmer
1,277 Entries
47 Followers
ApochPiQ
Generalist
628 Entries
44 Followers
dgreen02
Generalist
338 Entries
56 Followers
Advertisement