NewsProjectsTutorialsGalleryContactForum

Welcome to Nitrogen - Delphi and OpenGL Programming

Welcome To Nitrogen! Activities:
A place where I've put up all my programming projects, most with full source code included.

I have a particular interest in Game and Graphics Programming, so you'll see projects and tutorials geared towards game programming, design, tools, and graphics. Delphi is my language of choice and I use the OpenGL graphics API mostly, but I have been known to use other languages and tools from time to time.
Subscribe to my RSS feed
View my Projects
View my Picture Gallery
Read my Tutorials
Contact Me
Most Recent Projects:
Mscript - Thursday, January 31, 2008
Font Studio - Sunday, September 02, 2007
Heightmap Terrain - Wednesday, July 18, 2007
Font Testbed - Sunday, May 06, 2007
Plugin DLL Demo - Friday, January 12, 2007

:: Your Own Programming Language ::

Thursday, January 31, 2008

Well, I havent updated the site in a while (work work work) but I think you'll like this one:

I've been working on a full scripting language built in Delphi from the ground up. Fully customisable, compact, class-based.. And very fun to mess around with too! (source code included as usual)
It's got dynamically typed variables, a full order of preference, it understands If statements, While statements and 16 different operators.
Try it out with the test bed program included in the source! If you get it to do some neat calculation or something, mail me the script file!



 MScript Demo


:: Font Studio 4.1 Released ::

Sunday, September 02, 2007

I've added the final piece to my Font Studio project: Plugins! That’s right, now you can develop your own export plugins to save fonts generated with Font Studio any way you want. There are examples of the Plugin API avaliable for download too, and if you make plugins that you think other people can use, send them in! I'll put them up in the Font Studio project page.



 Font Studio 4.1


:: Foundry Texturing Tool ::

Saturday, August 18, 2007

By request, I've uploaded the texturing tool and camera path editor all-in-one utility I created for The Foundry (2002 demo project). You can get the texturing tool on the Foundry information page.



 Foundry information page


:: Heightmap Terrain ::

Wednesday, July 18, 2007

I've made a quick demo which shows how to load and display a heightmap terrain with normals and a texture. Click below to jump to the project.



 Heightmap Terrain


:: Bitmask Tutorial ::

Monday, June 25, 2007

I've written up a short tutorial on binary flags and bitmasks. Showing how to store multiple boolean values inside a single integer variable, complete with cheezy example…



 Bitmask Tutorial


:: New Tutorial Added ::

Sunday, May 20, 2007

I've added a simple tutorial on the glVertex command and how the different glBegin modes work to draw triangles, lines and points to the screen.



 Tutorials


:: Font Testbed ::

Sunday, May 06, 2007

I've uploaded an updated version of the the Font Testbed which shows how to load fonts made in Font Studio with your own OpenGL programs.



 Font Testbed


:: More updates to Font Studio ::

Thursday, May 03, 2007

I've released another quick patch for Font Studio.

This time it writes proper XML files into both it's own format, and the same format used by XNA studio. I havent been able to test this, but hopefully it'll work. Email me if you are able to see if it's working.


:: Small Update to Font Studio ::

Thursday, May 03, 2007

I added a small update to Font Studio since people nagged about some lacking features :P 4.01 has better small font handling, better cleartype handling and no texture size constraints.


:: Font Studio 4.0 is HERE! ::

Tuesday, May 01, 2007

It's taken more time than I care to think about, but I've finally finished Font Studio 4.0. It's better in every way, and I'm pretty safe in saying that it's one of the best bitmap-font generators out there.

Want to know the best part? It's avaliable to download here!



 Font Studio 4.0


:: Font Studio Update ::

Sunday, April 08, 2007

Well, I'm still busy with it…
And this time I've completed the Drop Shadow and Outline effects, the alpha channel and the preview… It's shaping up nicely!


:: Normal Mapper Updated ::

Friday, March 30, 2007

I got an email regarding the Normal Mapper I wrote a while back, and decided to add a preview function to it. The new function shows how to read the normals back out of the the normal map (without converting to tangent space though) and produce a diffuse shaded preview image.



 Normal Mapper


:: More Font Studio ::

Saturday, March 17, 2007

Well, I've taken a big hit over the last few weeks. It's called real life and it messes with everything you try to do..

At any rate, I've never been busier but I did just manage to get a small update to the Font Studio program working. We now have outlines! And proper antialiasing.


:: Font Studio Progress ::

Saturday, February 17, 2007

I've been working on an improved version of Font Studio..



This shot shows the custom-drawn font combobox, which looks just like the professional one seen in applications such as MS Word or Photoshop. It also shows the binary space partioning algorithm which packs the characters into the texture, and finally it indirectly shows the multithreaded nature of the program. It uses a separate rendering thread to generate the font texture.


:: DLL Plugin Demo ::

Friday, January 12, 2007

I've had this small demo knocking around on my harddrive and I've overlooked it until someone asked how to load DLL files during runtime on the forums...
You can get it below.



 Plugin DLL Demo


:: More Minor Site Upgrades ::

Saturday, January 06, 2007

Nobody told me how ugly the site looks under Internet Explorer… Yuck! Well, I've fixed most of the glaring bugs, there are a few I just cant work out because of the stupid IE rendering engine, but if you still not happy, tell me and I'll try to fix them. If I cant: get Firefox!! :)


:: Minor Site Updates ::

Thursday, January 04, 2007

I've added a few visual changes to this site.
The layout is much the same but now each project shows which version of delphi/c++ it was made in to aid with compatibility issues.

I've also received a lot of suggestions about Font Studio and the JPG output it produces. I'm probably going to add a minor revision onto this release to make it save TGA files aswell. PNG files are still a bit of a hassle because you need to install a PNG decompressor to your project if you want to use the font unit. No good.


:: Font Studio Updated! ::

Tuesday, January 02, 2007

I'm Back! And I've brought some stuff too...

Firstly, I've updated my Font Studio program to version 3.0. It now runs much faster, has a spiffy interface and I think it's one of the easiest-to-use font generators around. Unfortunately the older versions of the font files are not compatible, so I've updated the Font Test program too with a new version of the Font2.pas unit used for loading these fonts. I've also written a C++ translation of the Font class which can be used in C++ programs.

In other news, I've been working on a Particle engine for my upcomming tutorial (stay tuned) and I've decided to release some of the screenshots. Check them out in the gallery.

Apart from that, I've also uploaded a little demo I wrote a few years back. It just demonstrates getting particles to flow down a heightmap in C++. Heightmap Particle Flow



 Font Studio 3.0


:: FMod Spectrum Demo ::

Monday, December 04, 2006

I've finished a small demo which shows how to get the frequency spectrum out of FMod, and use it to display a cool light show! Get it below.



 FMod Spectrum Demo


:: Nitrogen Forums Up ::

Thursday, November 23, 2006

The good folks over at SaGameDev have given me a section of their forums, so if you'd like to post questions or comments about what you see on this site, just click the Forum link on the main title bar, which will take you to the Nitrogen section of the SaGameDev website.

In other news, I'm busy with a new tutorial and hopefully a cool demo to go with it. Should be ready quite soon hopefully.



 Nitrogen Forums


:: South African Game Development Website ::

Wednesday, November 08, 2006

Over the last few months, I've been busy with helping design a new website! It's actually an upgrade of an old community website that we felt needed some new life. I'm proud to say that the new site is online, not fully operational just yet, but it's certainly getting there. I've primarily been responsible for the look of the website, so check it out and see what you think!



 http://www.sagamedev.com


:: Per-Pixel Lighting Techniques Tutorial ::

Tuesday, October 03, 2006

I've finished writing up my longest ever tutorial!
As far as I know, I haven't seen any central accessible source for info of this type anywhere on the net. So here it is:

Per-Pixel Lighting: Shaders and Techniques. The tutorial lists four of the most basic and common shaders around and explained them with sourcecode.


:: New Site - Nitrogen.za.org ::

Tuesday, September 26, 2006

I'm happy to announce that the Nitrogen site has moved to it's own domain!

www.nitrogen.za.org
The old site will continue to work, and redirect traffic here, but only temporarily.
Please update your bookmarks and RSS feeds!

In other news, I've put up my first artwork on the site!
It's a cool desktop background I rendered in 3DSMax called "Cogs". See it in the Gallery.


:: 3DS File Loader Updated ::

Sunday, August 27, 2006

It's been nearly 4 years now since I first started working with 3DS files, and I've used them in a lot of different projects. Each time I'd add something new here, another feature there until the version stored on this site looked horribly out of date. So I've updated the project with my most recent version of the loader which offers new features and functions at faster and more reliable speeds.



 3DS Model Loader


:: Lightmapper 2 ::

Sunday, August 27, 2006

I've released a hugely improved version of my lightmapper!
Capable of generating even more pretty pictures in double-quick time.

It is now much faster and more robust and allows you to save your lightmaps. Get the project here: Lightmapper and I've also written a tutorial on how to read the files it outputs: Lightmapper LUV Format.


:: Normal Mapper ::

Thursday, August 17, 2006

I'm busy improving on my old Lightmapper. It now supports antialiasing and soon it will be able to export the lightmaps. I fixed a large issue with the shadow volume integration and I'm now looking for ways of making it faster.

In other news, I've released my Normal Map generator with source code.



 Normal Map Generator


:: Physics Simulation ::

Thursday, July 20, 2006

I've uploaded my Physics simulator/testbed which I developed a while back. It uses Hooke's Law to drive a system of springs. It's not completely finished but it has enough content to be entertaining for a while…



 Physics Simulator


:: Back in Action ::

Monday, July 10, 2006

Well, I'm back and got a lot of catching up to do…
For the mean time, I've completed a short reference tutorial on the ShellExecute command.



 ShellExecute Tutorial


:: BRB ::

Thursday, June 08, 2006

Well, the I can finally call the site 'finished', although there's still a lot of content to add. But it is no longer under construction...

In other news, I'm taking a holiday, so no updates for 2-3 weeks! Afk, brb.


:: Genetic Algorithms Tutorial ::

Sunday, June 04, 2006

I've just finished writing up the tutorial on Genetic Algorithms.
It explains basically how they work and the concepts of mutation, populations, chromosomes and survival of the fittest…



 Genetic Algorithms Tutorial


:: Two More Tutorials… ::

Wednesday, May 31, 2006

I've managed to write up two more tutorials:

  • Vector Math - Describing vectors, dot produts, cross products and more…
  • Drawing 3D - The perspective calculation required to transform a point from 2D to 3D.
    As far as I know this is the only version to support the Aspect ratio and Field of View...
Have a look at these at the Tutorials section.
In other news, I've been optimising my Castle Adventure lighting algorithm. When I wrote it I wasn’t concerned about speed so there was a lot of room for optimisation. I'm not sure what it did before, but now it does around 3 million ray-triangle tests per second! :-)
I've also been working on adding models into the game. These are things like doors, levers, switches, hidden panels etc. I've already built the CastleAdventure Model Editor which allows me to import 3DS meshes and hook them up to a hierarchial system of 'bones' - not skinned bones though, each bone has it's own separate mesh - and animate them with different states (so a door has Open and Closed states).

I've now integrated them into the CastleAdventure Level Editor so now each Actor in my level (an Actor is either a Player Start, Level Exit, Item, Treasure or Monster) can now hook itself up with a Model which is visible in the game. Cool stuff!


:: More Tutorials Posted… ::

Tuesday, May 23, 2006

There are three more tutorials in the General and OpenGL tutorial sections:

Finding Angles, Points and Distances
Display Lists
Unprojecting In OpenGL


:: First Tutorial Posted ::

Tuesday, May 23, 2006

I've completed and uploaded the first tutorial:

Camera Facing Billboards

More will be coming slowly over the next few weeks.



 Camera Facing Billboards


:: Castle Adventure is back on the site ::

Tuesday, May 23, 2006

I received an email from the creator of the original Castle Adventure so I had to upload the current unfinished version of Castle Adventure to show him! You can find it on the projects page under the Delphi :: OpenGL projects page.



 Castle Adventure Beta


:: Another Update ::

Monday, May 22, 2006

Another update, this time I've added the mechanisms behind the tutorial section. It has blank tutorials on it at the moment, but I will update them soon.

It was designed not to display complex articles, but simple one line algorithms and tricks of the trade which I have found usefull over the years. As an aside I've added another project to the Commercial category of the projects page.


:: RSS feed is live! ::

Tuesday, May 16, 2006

Well, I've just managed to get back into the swing of things with my pc being formatted for the first time in about 4 years! Anyway, you'll notice the shiny new RSS button at the bottom of the page. It will provide you with a feed of these news posts so you can tell when I've updated the site!

As per usual, more to come…



 Nitrogen RSS Feed


:: New Section ::

Sunday, May 14, 2006

I've added my commercial projects up on my projects page. It will serve as a sort of portfolio of my work up to this point…

More to come…


:: Updated Site ::

Thursday, April 20, 2006

Well, after a long inactivity I've decided that my website needed a facelift…

Unfortunately it turned into much more than a facelift! It became quite a project, and now uses ASP with a database driven backend, lots of CSS and some javascript added in too. At time of writing it's still not finished, and I still have a few more TLA technologies I want to add to the mix…

Please be aware that the site is still under construction


:: Enter 2006 ::

Saturday, February 18, 2006

Yes, it's been a while, and I've finally got something to show:

I've been reluctant to get working on Castle Adventure because I had to rewrite the rendering code. Despite my last post, I hadn't implemented Vertex Buffer Objects yet, just had a proof-of-concept program to show for my efforts... So I sat down today and managed to get it working in a few hours (imagine my suprise when I ran it after a few hours of coding only to have it work flawlessly, that's not how it normally goes!). Before today the main Castle Adventure program was using brute force methods of rendering the level (glVertexf) so framerates were in the blazing 20's. Now a medium size level is clocking upwards of 600fps...

It's now also using a better lighting algorithm which scatters multiple light rays for soft shadow effects. Needs to be a LOT faster though.


:: Castle Adventure ::

Saturday, December 10, 2005

Well, I'm finally finished my contract work, so that means Castle Adventure will get some attention... I havent done much to it except add custom/dynamic textured tiles which are a huge help but I have scraped my old "compiled lists" way of rendering the level and reverted to drawing each tile separately but using Vertex Buffer Objects which yields a huge speed increase..

At the moment I'm still playing around with different lighting setups :-)

In other news, I've uploaded a tutorial on TCP/IP networking. It's the program I made when first learning about networking code, but provides a good base to expand on.. Check it out:



 TCP/IP Networking Example



 
 

 

Site Map: News | Projects | Tutorials | Gallery | Contact

Best Viewed With Mozilla Firefox

:: Nitrogen V3.0 © 2007 Michael Pote ::