Skip to content

Ziggyware

Simon (darkside) Jackson edited this page Aug 21, 2020 · 2 revisions

Ziggyware Archived Articles

From the awesome Ziggyware site that was a long supporter of game developers, and especially XNA devs.

You can still revisit Ziggy using the WayBack machine here: https://web.archive.org/web/20090123020842/http://ziggyware.com/articles.php

Just be aware the way back machine doesn't remember downloads!

XNA Articles

Title Description
XNA-2DPerPixelCollisionDetection 2D Sprite Collision Detection
XNA-CustomVertices Creating a Custom Vertex in XNA
XNA-DrawingTextinXNA Drawing Text in MonoGame
XNA-ParallaxMapping Parallax Mapping in XNA
XNA-PlayingAudioinXNA Playing Audio in XNA
XNA-Rendering2DTextures Rendering a Texture in XNA
XNA-RotatedSpritePerPixelCollisionDetection Rotated Sprite Per Pixel Collision Detection
XNA-RotatingaSprite XNA - Rotating a Sprite
XNA-SimpleOverheadShoot-em-up XNA - Simple Overhead Shoot-em-up
XNA-SimpleSampleGame XNA - Simple Sample Game
XNA-UsingEffect(FX)Files Using Effect Files in XNA
XNA-UsingtheMouse Using the Mouse
XNA-WritingtoTextureSurface Writing to a Texture in MonoGame
A* Path Finding in C# Here is a port of my path finding algorithm from C++ to C# and XNA

C++ Articles

Title Description
Advanced Polygon Clipping Some times you need to split a polygon across a plane boundary. This is useful when doing a splitting OCTree or BSP tree
Calculating CRC 32 Here is source code for calculating the CRC 32 (32 bit Cyclic Redundancy Check) value of a given 32 bit number
Calculating Tangents and Binormals/Bitangents Tangents and binormals are used in advanced shaders like parallax mapping.
Check out the source below to see how you can calculate these values given a vertex buffer and vertex declaration (DX9)
Converting Vertex Buffer Formats Converting vertex buffers from one format to another is useful when you need to add more UV coordinates or tangent and binormals to a vertex buffer
Critical Sections (Multithreading) Here is a simple implementation of a locked variable that can be used between two threads without worrying about the memory being garbaged up with simultaneous writes
Data Vector Here is a simple data vector template that can be used to store a chunk of memory
Decomposing a matrix Matrix decomposition is very useful when you would like to get the translation, scale or rotation from a matrix. This should not be done very often however since it is an expensive operation
Delegates in C++ Delegates are function pointer containers that are used as a generic form of holding function pointers
Easy XML Editing in C++ By using your own XML classes instead of those provided by MSXML you can get more readable code and reliability when manipulating complex XML data
Faster Matrix Identity By using MMX we can increase the speed of a matrix identity operation
Faster new and delete Below is a way you can get alot more bang for your buck when using new and delete
Finite State Machines Finite State Machines are used to keep the state of a system of objects. In game development they can be used to make your engine event driven
Frustum Culling In order to speed up the rendering of your game you need to use frustum culling.
Frustum culling is just a fancy word for making your game engine not render objects that are not visible to the camera
Linked List template class Here is an implementation of a list class
Oriented Bounding Box (OBB) Collision Here is my implementation of OBB collision between two oriented bounding boxes
Point Inside Polygon Detecting when a point is inside a triangle is one of the base steps in a collision system
Queue template class A queue is a first in - last out container
Reference Counting Here is an implementation of a reference counting system
Simple MP3 Player Playing an MP3 file with DirectX
Skip List Template Skip lists are used to store large amounts of data in a sorted collection of lists. There is a very low cost for inserting and removing nodes from the skip list
TCP Socket Implementation Simple walk-though creating TCP sockets

C# Articles

Title Description
C# Introduction A simple introduction to programming in C#
Advanced Sockets Implementation in C# Socket programming in C# is much easier than it is in c/c++. Here we use attributes and reflection to re-create and populate incoming packets
Counting Words in a String in C# In this example we use a sorted list to count the number of distinct words and total character count of a string in C#
Cryptography in C# Here is a simple example of Rijndael Symmetric Encryption and Decryption using C#
Event Handlers Here is a small example on adding your own events to the events list of a user control
Extender Controls Ever wondered how that tool tip control adds properties to all of your controls on a windows form? We can achieve this with a user control by implementing the IExtenderProvider interface
High Performance Counters in C# We need to use hi performance counters when calculating time intervals since the standard timer is only accurate up to one millisecond. The QueryPerformanceCounter function returns a much more accurate time accurate to 64 bits!
Implementing IComparable IComparable is used when sorting elements in a HashTable or ArrayList
Simple Time Server using Sockets in C# Here is a basic implementation of a socket client and server
SQL Server, ODBC, OleDB All in One Here is a wrapper that uses Odbc, SqlClient (for SQL Server) AND OleDb
Streaming an Image from a URL Streaming an image from the internet is extremely easy in C#
Streaming HTTP Data Downloading HTML from the internet is a breeze with C#
Using the WebBrowser COM Object The WebBrowser COM object is a valuable tool when you need rich dynamic content in your application or would just like to display web based content
Validating XML with an XSD Validating an XML File vs a schema file (XSD) in C#
XPath Queries in C# simple tutorial on using XPath Queries in C#
Clone this wiki locally