Alexander JD Conn

Tools & Technologies I Use

6 min read

Behind every successful game developer is a carefully curated toolkit of technologies, frameworks, and applications that enable creativity and productivity. Over the years, I've experimented with various tools and settled on a development stack that serves me well across different types of projects.

Game Development: Unity Engine

Unity has been my go-to game engine for most of my projects, and for good reason. Its versatility, extensive documentation, and robust ecosystem make it an excellent choice for both beginners and experienced developers.

What I love about Unity:

  • Cross-platform deployment: Write once, deploy everywhere
  • Visual scripting options: Great for rapid prototyping
  • Asset Store: Extensive library of tools and assets
  • Community support: Huge community with abundant learning resources

My university projects like Bear Grills (VR) and Battlerots (multiplayer) were both built in Unity, allowing me to explore different aspects of game development while maintaining consistency in my core toolkit.

Application Development: Qt Framework

For non-game applications, I've found Qt to be an incredibly powerful framework. It's what I used to build my collection managers and character creators for various tabletop games.

Why Qt Works for Me

Qt strikes the perfect balance between power and usability. Its widget-based approach makes it easy to create complex interfaces, while its cross-platform nature ensures my applications work seamlessly across different operating systems.

Key Qt features I utilize:

  • QtWidgets: For traditional desktop applications
  • Qt Designer: Visual interface design
  • Qt's Model/View framework: Perfect for data-heavy applications
  • Qt's database classes: Seamless integration with SQL databases

Database Management: MongoDB & SQLite

Data persistence is crucial for most of my applications, and I've become proficient with both MongoDB and SQLite, choosing between them based on project requirements.

SQLite for Local Applications

For my character creators and collection managers, SQLite is the perfect choice:

  • Serverless: No setup required for end users
  • Lightweight: Small footprint, perfect for desktop applications
  • ACID compliant: Reliable data integrity
  • Cross-platform: Works everywhere without configuration

MongoDB for Scalable Solutions

When I need more flexibility or plan for potential scaling, MongoDB is my choice:

  • Document-based: Perfect for complex, nested data structures
  • Flexible schema: Easy to iterate on data models
  • Excellent Qt integration: Works well with my application framework

Development Environment & Tools

IDE & Editors

My development environment varies depending on the project type:

  • Visual Studio (with Unity): For game development
  • Qt Creator: For Qt-based applications
  • VS Code: For web development and scripting

Version Control

Git is essential for any serious development work. I use:

  • GitHub: For open-source projects and portfolio pieces
  • Git LFS: For managing large binary assets in game projects
  • GitKraken: As a visual Git client for complex operations

Design & Art Tools

While I'm primarily a programmer, having basic design skills is valuable:

  • GIMP: For image editing and basic sprite work
  • Inkscape: For vector graphics and logos
  • Audacity: For basic audio editing

Problem-Solving & Learning

LeetCode & Algorithm Practice

I regularly practice on LeetCode to keep my algorithmic thinking sharp. Game development often requires efficient algorithms, especially for:

  • Pathfinding and AI behavior
  • Optimization of game systems
  • Data structure manipulation

Documentation & Reference

Good documentation is crucial for efficient development:

  • Unity Documentation: Comprehensive and well-organized
  • Qt Documentation: Excellent examples and API reference
  • Stack Overflow: For community-driven problem solving
  • GitHub: For examining real-world code examples

Workflow & Productivity

Project Management

For personal projects, I keep things simple but organized:

  • Notion: For project planning and documentation
  • GitHub Issues: For bug tracking and feature requests
  • Simple text files: For quick notes and TODO lists

Testing & Quality Assurance

Quality matters, so I've incorporated testing into my workflow:

  • Unity Test Framework: For automated testing in game projects
  • Qt Test: For unit testing Qt applications
  • Manual testing protocols: Systematic approach to user testing

Continuous Learning

Technology evolves rapidly, so staying current is essential:

  • Unity Learn: For staying up-to-date with Unity features
  • Game Development YouTube channels: For tutorials and inspiration
  • Technical blogs: For industry insights and best practices
  • Game development conferences: For networking and learning about trends

Looking Ahead: Future Technologies

I'm always excited about emerging technologies and how they might impact game development:

  • VR/AR development: Exploring immersive technologies
  • Machine learning in games: AI-driven content and behavior
  • Cloud gaming: New deployment and distribution models
  • Web-based game development: Browser games with WebGL
"The best tool is the one you know how to use well. Master your core toolkit before chasing the latest trends."

This toolkit has served me well throughout my journey from university projects to professional aspirations. While I'm always open to learning new technologies, having a solid foundation in these tools gives me the confidence to tackle any project that comes my way.

The key is not just knowing how to use these tools, but understanding when and why to use each one. Every project has different requirements, and part of being a good developer is choosing the right tool for the job.