Hi! My name is Zachary Andrew Carter.

Welcome to my personal website, and thank you for visiting! I'm a software developer, sports fan, animal lover, and gamer. I enjoy working on Free Open Source Software projects in my spare time - especially those related to Video Games and Game Engines. I also develop Web Applications.

Zachary Carter

About

I'm a professional full-stack developer, living and working in Northern Virginia.

Virginia

  • Born in Fairfax, Virginia
  • Graduated from Oakton High School
  • Earned BA in History from Virginia Commonwealth University

Software Development

  • Learned C and C++ in high school
  • Currently codes in: C/C++, Lua, Go, Nim, and Python
  • Learning Zig and Modern C++
  • Also does operations work involving AWS and Kubernetes

Gaming

  • First gaming console was an Atari 2600
  • Favorite gaming platform is PC
  • Favorite genres are Real-Time Strategy, Role-Playing, Roguelike, and MMORPG

Sports

  • Enoys Snowboarding, as well as playing Golf, and Basketball
  • Favorite sports to watch are Hockey and College Basketball
  • Favorite sports teams are the Washington Capitals and the VCU Rams

Game Development

  • First game was a simple Roguelike written in C++
  • Currently writing a game engine using the Nim programming language, named Zeal
  • Spends lots of time reading and learning about 3d Graphics and Game Engine development

Animals

  • Has an Umbrella Cockatoo named Pearl
  • Best buds with a Black Lab Mix named Cooper
  • Eventually wants to adopt a Cat and a Bearded Dragon

Projects

Gimme The Loot Title Screen
Gimme The Loot

Gimme The Loot was a simple roguelike game I created for InsanityJam 2. The game featured an inventory system, consumable items such as potions and spell scrolls, and of course, loot. The more loot the player acquired, the more difficult enemies became. The goal of the game was to progress as deep into the dungeon as possible.

#c++ #gamedev #2d #roguelike #procgen #gamejam
FRAG's spine support
Derelict

Derelict was a science-fiction roguelike game prototype. It featured procedural spaceship generation, procedural generation of zelda-like lock and key puzzles, a 2d tile-based renderer, a minimap, and turn-based gameplay. The project was abandoned when I stopped using Java for game development, in favor of Nim.

#java #libgdx #pcg #gamedev #2d #roguelike #puzzle #procgen
GIF
Lit generated world map
World Map Generator

A tool which uses various Procedural Content Generation techniques to generate wrapping world maps. The generator also features Biome generation, Climate Map generation, Factional Territory generation, and a visualization system with fake lighting using GLSL Shaders, amongst others. I planned on using this map generator in a Roguelike game I was creating with libGDX, however shortly after I completed this prototype, I switched to the Nim programming language for hobby programming.

#java #libgdx #pcg #gamedev #2d
GIF
FRAG's spine support
FRAG

FRAG is a 2d game library that I wrote using the Nim programming language in 2017. FRAG relied on the BGFX rendering library, along with several other third-party dependencies. I built a sample space invaders game using the library, as well as several small example projects which demonstrated various library features. One of the features I'm most proud of, is the integration with Esoteric Software's Spine SDK.

#nim #gamedev #2d #library #bgfx #spine #animation
GIF
zengine's 3D skeletal animaton feature
zengine

zengine is a 2d and 3d game library that I wrote using the Nim programming language in 2017 and 2018. I built several examples with zengine, demonstrating various features, including 3D Skeletal Animation, Tetris, Bitmap and Distance Field Font Rendering, and building for the Web Assembly target. The library featured an API that was similar to XNA and used OpenGL for rendering.

#nim #gamedev #2d #3d #library #animation
Isometric map rendering demo with zengine
Isometric Map Rendering Demo

This screenshot is from an Isometric Map Rendering demo I put together using free assets from the open source RPG FLARE. I used the zengine project I had previously built, to create this demo. The demo featured mouse picking and 2d animated enemies.

#nim #gamedev #2d #isometric #animation
Nim playground
Nim Playground

The Nim playground is a Web Application I created, to allow for compiling snippets of Nim code in the browser. Every request is compiled and run inside of a docker container, with additional network and file system restrictions placed on the container. Compilation logs and program results are rendered in the browser for user convenience. Anonymous Gist support was featured at one point - however due to Github removing support for the feature, the playground no longer supports gist creation presently. Both the frontend and backend were written in Nim. The playground is hosted at play.nim-lang.org

#nim #webdev #app
bearlibterminal Nim bindings
Nim Bindings

I have authored and updated a number of new and already existing Bindings for the Nim programming language. Most of the bindings I have worked on, are bindings for libraries that expose a C API, and are game development related. Some of the libraries I have produced bindings for are BGFX, nuklear, bearlibterminal, and soloud

#nim #gamedev #bindings