585 lines
33 KiB
HTML
585 lines
33 KiB
HTML
<!DOCTYPE html>
|
|
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<!--stackoverflow.com/questions/18500836/should-i-use-max-device-width-or-max-width-->
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<link type="text/css" rel="stylesheet" href="style.css"/>
|
|
<title>Doyle T. | Resume</title>
|
|
</head>
|
|
|
|
<body id="index_wrapper">
|
|
<main>
|
|
|
|
<div class="index_header">
|
|
<div>
|
|
<h1>DOYLE T.</h1>
|
|
</div>
|
|
<div id="index_header_subtitle">
|
|
Print Friendly Summary: <a href="doylet_resume_summary.pdf">doy-lee.github.io/doylet_resume_summary.pdf</a></li>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="index_divider_no_top_margin"></div>
|
|
|
|
<div id="index_overview">
|
|
<div class="index_overview_section">
|
|
<h2>DETAIL</h2>
|
|
<ul>
|
|
<li>This Resume: <a href="http://doy-lee.github.io">doy-lee.github.io</a></li>
|
|
<li>Email: <a href="mailto:cv.doylet.2380i@simplelogin.com">cv.doylet.2380i@simplelogin.com</a></li>
|
|
<li>Github: <a href="http://github.com/doy-lee">github.com/doy-lee</a></li>
|
|
<li>Flickr: <a href="http://flickr.com/doy-lee">flickr.com/doy-lee</a></li>
|
|
</ul>
|
|
</div> <!-- index_overview_section -->
|
|
|
|
<!-- QR Code generated by Google -->
|
|
<!-- http://chart.googleapis.com/chart?cht=qr&chs=150x150&choe=UTF-8&chld=H&chl=doy-lee.github.io -->
|
|
<div class="index_overview_section" id="index_overview_section_qr_code">
|
|
<h2>RESUME QR CODE</h2>
|
|
<img style="max-width: 100, height: auto" src="img/qr_code.png">
|
|
</div>
|
|
</div> <!-- index_overview -->
|
|
|
|
<div class="index_divider"></div>
|
|
|
|
<div class="index_wrapper">
|
|
<h2>WORK EXPERIENCE</h2>
|
|
|
|
<div class="index_table">
|
|
<ul class="index_table_row">
|
|
<li class="index_table_cell_year">
|
|
<p>CURRENT</p>
|
|
<p>2020 OCT</p>
|
|
</li>
|
|
|
|
<li class="index_table_cell_name">
|
|
<h3>AOS Group</h3>
|
|
<p>Software Engineer</p>
|
|
</li>
|
|
|
|
<li class="index_table_cell">
|
|
<p class="index_table_cell_role">
|
|
AI Toolchain/Planning Engine Team:
|
|
<a href="https://aosgrp.com">(aosgrp.com)</a>
|
|
</p>
|
|
<p>
|
|
AOS creates tools to model real-world systems via reasoning agents
|
|
running in AOS's real-time BDI (Beliefs, Desires, Intentions)
|
|
planning engine providing fault-tolerant, traceable and
|
|
explainable autonomous real-world systems.
|
|
</p>
|
|
<ul>
|
|
<li>C++11, Kafka, RTI DDS, SFML, Dear ImGui, BDI/Multi-Agent Protocols, Windows/Linux</li>
|
|
<li>
|
|
Write a 2D simulation engine w/ ECS for tests and
|
|
demonstration of interactive agent models.
|
|
</li>
|
|
<li>
|
|
Converting real-world system specs to a multi-agent
|
|
paradigm to highlight deficiencies in the development
|
|
methodology leading to new protocols such as how to share
|
|
beliefs between teams of agents and interactive human
|
|
contribution into agent decision making.
|
|
</li>
|
|
<li>
|
|
Co-implement a distribution protocol for the planning engine
|
|
allowing the synchronisation of other engine instances for
|
|
fault-tolerance and cross-engine agent collaboration.
|
|
</li>
|
|
<li>
|
|
Documenting best practices and tutorials for designing effective
|
|
multi-agent systems.
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
<ul class="index_table_row">
|
|
<li class="index_table_cell_year">
|
|
<p>2020 OCT</p>
|
|
<p>2018 FEB</p>
|
|
</li>
|
|
|
|
<li class="index_table_cell_name">
|
|
<h3><a href="index.html#index_projects_oxen">Oxen (prev. Loki)</a></h3>
|
|
<p>Software Engineer</p>
|
|
</li>
|
|
|
|
<li class="index_table_cell">
|
|
<p class="index_table_cell_role">
|
|
Blockchain Team
|
|
<a href="https://github.com/oxen-io/oxen/commits?author=Doy-lee">(github.com/oxen-io/oxen/commits?author=Doy-lee)</a>
|
|
</p>
|
|
<p>
|
|
Oxen is a blockchain company that creates privacy tools that enable
|
|
untraceable, secure and anonymous money, onion routed messaging and
|
|
networks powered by a masternode network on-top of the blockchain.
|
|
</p>
|
|
<ul>
|
|
<li>C++14, Boost, Docker, CMake, Libsodium, Monero/Cryptonote, Windows/OSX/Linux/Android</li>
|
|
<li>
|
|
Implement layer 2 masternodes which are quorums of
|
|
permissioned nodes via new chain protocols: de/registration and
|
|
payout transactions and self-regulating consensus with
|
|
reliability metrics and voting via a P2P gossip network.
|
|
</li>
|
|
<li>
|
|
Improve chain resilience by securing blocks using checkpoints
|
|
formed by masternode consensus providing faster settlement and
|
|
finalization of transactions on the network.
|
|
</li>
|
|
<li>
|
|
Implement an on-chain DNS registry for named records for
|
|
wallets, messaging aliases and domains on the onion routed
|
|
networks.
|
|
</li>
|
|
<li>
|
|
Transition from Proof of Work to Proof of Stake
|
|
on a decentralized network using a commit-reveal scheme for
|
|
generating non-exploitable entropy for block generation.
|
|
</li>
|
|
<li>
|
|
Responsible for building, packaging and distribution of
|
|
releases. Patching vulnerability disclosures and fixing
|
|
network stalls on an in production network.
|
|
</li>
|
|
<li>
|
|
Fix/improve/create test tooling for the Service Node network
|
|
including a re-write of the Monero testing framework and
|
|
integration tests using IPC named pipes over multi-process.
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
<ul class="index_table_row">
|
|
<li class="index_table_cell_year">
|
|
<p>2017 NOV</p>
|
|
<p>2017 AUG</p>
|
|
</li>
|
|
|
|
<li class="index_table_cell_name">
|
|
<h3>Wargaming</h3>
|
|
<p>Intern SWE</p>
|
|
</li>
|
|
|
|
<li class="index_table_cell">
|
|
<ul>
|
|
<p class="index_table_cell_role">
|
|
Client Tools Team
|
|
<a href="https://wargaming.com/en/about">(wargaming.com/en/about/)</a>
|
|
</p>
|
|
<li>Assisting with the game editor for the asset pipeline involving C++11, Qt, Jira, Perforce, Plastic</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
</div> <!-- index_table -->
|
|
</div> <!-- index_wrapper -->
|
|
|
|
<div class="index_divider"></div>
|
|
|
|
<div id="index_wrapper">
|
|
<h2>SIDE PROJECTS</h2>
|
|
|
|
<div class="index_table">
|
|
|
|
<ul class="index_table_row">
|
|
<li class="index_table_cell_year">
|
|
<p>ONGOING</p>
|
|
</li>
|
|
|
|
<li class="index_table_cell_name">
|
|
<h3>Dqn Library</h3>
|
|
</li>
|
|
|
|
<li class="index_table_cell">
|
|
<p class="index_table_cell_role">
|
|
Personal Utility Library C++
|
|
<a href="http://github.com/doy-lee/dqn">(github.com/doy-lee/dqn)</a>
|
|
</p>
|
|
<ul>
|
|
<li>Helpers to bootstrap projects quickly and improving my API design by experience</li>
|
|
<li>Cache friendly stack based containers for data that has a low upper-bound</li>
|
|
<li>Arena based allocators for manual, cheap heap allocation and freeing</li>
|
|
<li>For learning, SHA3-256, unit test, C/C++ metaprogram generator library</li>
|
|
</ul>
|
|
</li>
|
|
</ul> <!-- index_table_row -->
|
|
|
|
<ul class="index_table_row">
|
|
<li class="index_table_cell_year">
|
|
<p>2020</p>
|
|
<p>2017</p>
|
|
<p>.</p>
|
|
<p>.</p>
|
|
<p>2016</p>
|
|
</li>
|
|
|
|
<li class="index_table_cell_name">
|
|
<h3 style="font-size: 0.85em">RaylibSIMD</h3>
|
|
<h3><a style="font-size: 0.85em" href="index.html#index_projects_dtrenderer">DTRenderer</a></h3>
|
|
<h3><a style="font-size: 0.85em" href="index.html#index_projects_dchip8">DChip8</a></h3>
|
|
<h3><a style="font-size: 0.85em" href="index.html#index_projects_math_masher">Math Mash</a></h3>
|
|
<h3><a style="font-size: 0.85em" href="index.html#index_projects_dengine">Dengine</a></h3>
|
|
</li>
|
|
|
|
<li class="index_table_cell">
|
|
<p class="index_table_cell_role">
|
|
SIMD Software Rendering (SSE, 4x faster)
|
|
<a href="http://github.com/doy-lee/RaylibSIMD">(github.com/doy-lee/RaylibSIMD)</a>
|
|
</p>
|
|
<p class="index_table_cell_role">
|
|
3D Software Renderer from First Principles
|
|
<a href="http://github.com/doy-lee/DTRenderer">(github.com/doy-lee/DTRenderer)</a>
|
|
</p>
|
|
<p class="index_table_cell_role">
|
|
CHIP8 Interpreter (C/C++, Win32)
|
|
<a href="http://github.com/doy-lee/dchip-8">(github.com/doy-lee/dchip-8)</a>
|
|
</p>
|
|
<p class="index_table_cell_role">
|
|
Mobile Game (C++, Photoshop, Cocos2dx) <a href="http://doy-lee.github.io/luneaustralia">(doy-lee.github.io/luneaustralia)</a>
|
|
</p>
|
|
<p class="index_table_cell_role">
|
|
Basic 2D Engine (C++, OpenGL, GLFW, STB, OpenAL)
|
|
<a href="http://github.com/doy-lee/dengine">(github.com/doy-lee/dengine)</a>
|
|
</p>
|
|
</li>
|
|
</ul> <!-- index_table_row -->
|
|
|
|
</div>
|
|
</div> <!-- index_project_wrapper -->
|
|
|
|
<div class="index_divider"></div>
|
|
<div id="index_education_wrapper">
|
|
<h2>EDUCATION</h2>
|
|
|
|
<div id="index_education_table">
|
|
<ul class="index_education_table_row">
|
|
<li class="index_education_table_cell_year">
|
|
<p>2014-2017</p>
|
|
</li>
|
|
|
|
<li class="index_education_table_cell_place">
|
|
<h3>UNIVERSITY OF NEW SOUTH WALES</h3>
|
|
</li>
|
|
|
|
<li class="index_education_table_cell">
|
|
<p>Bachelor of Science (Computer Science)</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div> <!-- index_education_wrapper -->
|
|
|
|
<!-- IMPORTANT: This divider has a page break that pushes away
|
|
the content below to the next page in printing mode -->
|
|
<div class="index_divider" id="index_divider_last_before_optional_content"></div>
|
|
|
|
<div id="index_projects_oxen">
|
|
<div class="index_projects_header">
|
|
<h2>OXEN (formerly Loki) - Privacy tools for untraceable, secure and anonymous communications</h2>
|
|
</div>
|
|
|
|
<div class="index_projects_content">
|
|
<div class="index_projects_content_section">
|
|
<div class="index_projects_preview" id="index_projects_preview_images_loki">
|
|
<img src="img/projects_loki_screen_1.png">
|
|
</div>
|
|
|
|
<div class="index_projects_content_section">
|
|
<h3>SUMMARY</h3>
|
|
<p>
|
|
Oxen is a blockchain company that creates privacy tools that enable
|
|
untraceable, secure and anonymous money, onion routed messaging and
|
|
networks powered by a masternode network on-top of the blockchain.
|
|
</p>
|
|
|
|
<p>
|
|
They are an open-source, non-for profit company that is responsible for
|
|
developing the Oxen blockchain, Session a private messenger and Lokinet
|
|
an onion routing network.
|
|
</p>
|
|
|
|
<p>
|
|
As the primary blockchain engineer, I worked towards developing a
|
|
masternode network and auxiliary features that protects the network from
|
|
malicious activity, tampering and allow nodes to enter and leave the
|
|
permissioned network to maintain a sybil resistant network that is
|
|
suitable for onion routing of the services provided on-top.
|
|
</p>
|
|
</div>
|
|
|
|
<div class="index_projects_content_section">
|
|
<h3>MILESTONES</h3>
|
|
<h4>Service Node Network (Masternode Layer)</h4>
|
|
<a style="font-size: 0.85em" href="https://docs.oxen.io/about-the-oxen-blockchain/oxen-service-nodes">https://docs.oxen.io/about-the-oxen-blockchain/oxen-service-nodes</a>
|
|
<ul>
|
|
<li>Implement layer 2 masternodes which are quorums of permissioned nodes via new chain protocols: de/registration and payout transactions and self-regulating consensus with reliability metrics and voting via a P2P gossip network.</li>
|
|
<li>Design new cryptographic transactions for Service Node registration/blacklisting/unlocking/voting</li>
|
|
<li>Penalizing misbehaving Service Nodes by temporary locking of registered funds and rewarding behaving Service Nodes with automatic on-chain</li>
|
|
<li>Keep the network consistent against malicious Service Nodes by gracefully rolling back state and banning.</li>
|
|
<li>Develop a node grouping system aka. quorums to self-regulate the network by collecting metrics and coming to consensus to deregister nodes off the network</li>
|
|
<li>JSON RPC API for statistics used by external services for metrics (i.e. CoinMarketCap, Masternodes Pro, <a href="https://lokidashboard.com">lokidashboard.com</a>) </li>
|
|
</ul>
|
|
|
|
<h4>Service Node Checkpointing</h4>
|
|
<a style="font-size: 0.85em" href="https://github.com/oxen-io/oxen-improvement-proposals/blob/master/LIPS/LIP-3.md">https://github.com/oxen-io/oxen-improvement-proposals/blob/master/LIPS/LIP-3.md</a>
|
|
<ul>
|
|
<li>Improve chain resilience by securing blocks using checkpoints formed by masternode consensus providing faster settlement and finalization of transactions on the network.</li>
|
|
<li>Defend against 51% attacks on the blockchain and mitigate double spends</li>
|
|
<li>Additional consensus rules to lock in blocks autonomously by Service Nodes</li>
|
|
<li>Improves the previous manual system of updating hardcoded lists per release to passively locking the chain as it progresses.</li>
|
|
</ul>
|
|
|
|
<h4>Oxen Name System</h4>
|
|
<a style="font-size: 0.85em" href="https://docs.oxen.io/using-the-oxen-blockchain/overview#oxen-name-system-ons-human-readable-names-for-session-lokinet-and-more">https://docs.oxen.io/using-the-oxen-blockchain/overview#oxen-name-system-ons-human-readable-names-for-session-lokinet-and-more</a>
|
|
<ul>
|
|
<li>Implement an on-chain DNS registry for named records for wallets, messaging aliases and domains on the onion routed networks. </li>
|
|
<li>New transactions to burn funds and record temporarily owned name entries into the blockchain</li>
|
|
<li>Interop with Libsodium and Monero cryptography for encryption/decryption of records</li>
|
|
<li>End User API for integration across external services such as Session, wallet software and Lokinet</li>
|
|
</ul>
|
|
|
|
<h4>Pulse (Proof of Stake)</h4>
|
|
<a style="font-size: 0.85em" href="https://github.com/oxen-io/oxen-improvement-proposals/blob/master/LIPS/LIP-5.md">https://github.com/oxen-io/oxen-improvement-proposals/blob/master/LIPS/LIP-5.md</a>
|
|
<ul>
|
|
<li>Transition from Proof of Work to Proof of Stake on a decentralized network using a commit-reveal scheme for generating non-exploitable entropy for block generation.</li>
|
|
<li>Coordinate a commit reveal scheme to generate and collect entropy from a quorum of nodes within an time-limited epoch for block generation</li>
|
|
<li>Multi-round process to synchronise data, prevent leaking of random entropy and ensure no biasing of results</li>
|
|
<li>Fail safe mechanisms to support round failure, and network failure, i.e. falling back to Proof of Work when the Service Nodes are unable to coordinate the quorum</li>
|
|
</ul>
|
|
|
|
<h4>Other</h4>
|
|
<ul>
|
|
<li>Loki Onion Blockchain Explorer - Forked and repurposed for additional Service Node information</li>
|
|
<li>Loki Integration Tests - Multi-process IPC to blockchain daemons to simulate user interaction</li>
|
|
<li>Loki RPC Doc Generator - Custom Recursive Descent Parser for generating documentation</li>
|
|
<li>Rewriting core testing framework to extensively test new Service Node features</li>
|
|
<li>Handling cross platform builds, CI and distribution (Windows, Linux, OSX, Android)</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="index_projects_content_section">
|
|
<h3>LINKS</h3>
|
|
<ul>
|
|
<li> <a href="https://oxen.io">Oxen Homepage</a> (oxen.io)</li>
|
|
<li> <a href="https://github.com/oxen-io/oxen-core">Main Github</a> (github.com/oxen-io/oxen-core)</li>
|
|
<li> <a href="https://github.com/oxen-io/oxen-core/commits?author=Doy-lee">Main Commits</a> (github.com/oxen-io/oxen-core/commits?author=Doy-lee)</li>
|
|
<li> <a href="https://github.com/oxen-io/loki-onion-blockchain-explorer">Block Explorer</a> (github.com/oxen-io/loki-onion-blockchain-explorer)</li>
|
|
<li> <a href="https://github.com/doy-lee/loki-rpc-doc-generator">RPC Doc Generator</a> (github.com/doy-lee/loki-rpc-doc-generator) </li>
|
|
<li> <a href="https://github.com/doy-lee/loki-integration-testing">Integration Testing</a> (github.com/doy-lee/loki-integration-testing) </li>
|
|
</ul>
|
|
</div> <!-- index_projects_content_section -->
|
|
|
|
</div> <!-- index_projects_content_section -->
|
|
</div>
|
|
</div>
|
|
<div class="index_divider"></div>
|
|
|
|
<div id="index_projects_dtrenderer">
|
|
<div class="index_projects_header" id="index_projects_dtrenderer_header">
|
|
<h2>DTRENDERER (2017) - 3D Software Renderer from First Principles</h2>
|
|
</div>
|
|
|
|
<div class="index_projects_preview_images" id="index_projects_preview_images_dtrenderer">
|
|
<img src="img/projects_dtrenderer.gif">
|
|
</div>
|
|
|
|
<div class="index_projects_content">
|
|
<div class="index_projects_content_section">
|
|
<h3>SUMMARY</h3>
|
|
<p>
|
|
DTRenderer is an attempt to build a simple software renderer from the ground up.
|
|
The main goal is to build an intuitive understanding of graphics mathematics,
|
|
rendering pipeline and core concepts. It runs as a Win32 program with minimal
|
|
dependencies.
|
|
</p>
|
|
</div> <!-- index_projects_content_section -->
|
|
|
|
<div class="index_projects_content_section">
|
|
<h3>MILESTONES</h3>
|
|
<h4>2D Software Rendering</h4>
|
|
<ul>
|
|
<li>Alpha Blending</li>
|
|
<li>Bilinear Filtering</li>
|
|
<li>Correct Color Space Pipeline (SRGB <-> Linear)</li>
|
|
<li>Rasterisation</li>
|
|
<li>Texture Mapping</li>
|
|
<li>Translation, Rotation, Scale</li>
|
|
</ul>
|
|
<h4>3D Software Rendering</h4>
|
|
<ul>
|
|
<li>Full Bright, Flat, Gouraud Shading</li>
|
|
<li>Orthogaphic, Perspective Projections</li>
|
|
<li>Translation Rotation Scale</li>
|
|
</ul>
|
|
<h4>Misc.</h4>
|
|
<ul>
|
|
<li>Custom Wavefront Obj Loader (minimal subset)</li>
|
|
<li>Hot Reloadable DLL for Renderer Code (taken from Handmade Hero)</li>
|
|
<li>SIMD "Optimisation" (with a grain of salt, tried to with some % improvement)</li>
|
|
</ul>
|
|
</div> <!-- index_projects_content_section -->
|
|
|
|
<div class="index_projects_content_section">
|
|
<h3>LINKS</h3>
|
|
<ul>
|
|
<li> <a href="http://github.com/doy-lee/DTRenderer">Github</a> (github.com/Doy-lee/DTRenderer) </li>
|
|
</ul>
|
|
</div>
|
|
|
|
</div>
|
|
</div> <!-- index_projects_dtrenderer -->
|
|
|
|
<div class="index_divider"></div>
|
|
|
|
<div id="index_projects_math_masher">
|
|
<div class="index_projects_header" id="index_projects_math_masher_header">
|
|
<h2>MATH MASHER (2017) - Educational Mobile Math Game</h2>
|
|
</div>
|
|
|
|
<div class="index_projects_preview_images" id="index_projects_preview_images_math_masher">
|
|
<img src="img/projects_math_masher_screen_1.jpg">
|
|
<img src="img/projects_math_masher_screen_2.jpg">
|
|
<img src="img/projects_math_masher_screen_3.jpg">
|
|
</div>
|
|
|
|
<div class="index_projects_content">
|
|
<div class="index_projects_content_section">
|
|
<h3>SUMMARY</h3>
|
|
<p>Math Masher is a cross-platform mobile app that aims to teach
|
|
basic arithmetic skills including addition, subtraction and
|
|
multiplication by gamifying the learning experience. The app is
|
|
developed with a team using the Cocos2dx framework in
|
|
C++.</p>
|
|
|
|
<p>My role in the project is as the lead developer and
|
|
assisting role with asset design.</p>
|
|
</div> <!-- index_projects_content_section -->
|
|
|
|
<div class="index_projects_content_section">
|
|
<h3>MILESTONES/RESEARCH</h3>
|
|
<p>Features that have been implemented at one point or tasks responsible for.</p>
|
|
<ul>
|
|
<li>Project Management (Trello, Minutes Meeting, Code Review etc.)</li>
|
|
<li>Game Engine Architecture (Gameplay, UI, Shop, Debug)</li>
|
|
<li>Basic Sound Editing (Compressor, EQuing, Normalisation)</li>
|
|
<li>Asset Designs (Assisting with graphical asset creation)</li>
|
|
</ul>
|
|
</div> <!-- index_projects_content_section -->
|
|
|
|
<div class="index_projects_content_section">
|
|
<h3>LINKS</h3>
|
|
<ul>
|
|
<li> <a href="luneaustralia/index.html">Official Website (deprecated, archive only)</a> (doy-lee.github.io/luneaustralia) </li>
|
|
<li> <a href="https://www.youtube.com/watch?v=AUozUZ8aY7g">Trailer</a> (youtube.com/watch?v=AUozUZ8aY7g) </li>
|
|
</ul>
|
|
</div>
|
|
|
|
</div>
|
|
</div> <!-- index_projects_math_masher -->
|
|
|
|
<div class="index_divider"></div>
|
|
|
|
<div id="index_projects_dchip8">
|
|
<div class="index_projects_header">
|
|
<h2>DCHIP8 (2017) - CHIP8 Interpreter</h2>
|
|
</div>
|
|
|
|
<div class="index_projects_preview_images" id="index_projects_preview_images_dchip8">
|
|
<img src="img/projects_dchip8_screen_1.png">
|
|
<img src="img/projects_dchip8_screen_2.png">
|
|
</div>
|
|
|
|
<div class="index_projects_content">
|
|
<div class="index_projects_content_section">
|
|
<h3>SUMMARY</h3>
|
|
<p>DCHIP8 aims to emulate the CHIP8 architecture to
|
|
better understand at a lower level operations between
|
|
memory, cpu, input and output.</p>
|
|
</div> <!-- index_projects_content_section -->
|
|
|
|
<div class="index_projects_content_section">
|
|
<h3>MILESTONES/RESEARCH</h3>
|
|
<ul>
|
|
<li>Fetch, Decode, Execute Opcodes</li>
|
|
<li>Modelling memory, registers and basic CPU architecture</li>
|
|
<li>Software Rendering and interaction with Win32</li>
|
|
<li>Minimal dependencies, single file executable</li>
|
|
</ul>
|
|
</div> <!-- index_projects_content_section -->
|
|
|
|
<div class="index_projects_content_section">
|
|
<h3>LINKS</h3>
|
|
<ul>
|
|
<li> <a href="https://github.com/Doy-lee/dchip-8">Github</a> (github.com/Doy-lee/dchip-8) </li>
|
|
<li> <a href="http://devernay.free.fr/hacks/chip8/C8TECH10.HTM">Specification Sheet</a> (devernay.free.fr/hacks/chip8/C8TECH10.htm) </li>
|
|
</ul>
|
|
</div>
|
|
|
|
</div>
|
|
</div> <!-- index_projects_math_masher -->
|
|
|
|
<div class="index_divider"></div>
|
|
|
|
<div id="index_projects_dengine">
|
|
<div class="index_projects_header" id="index_projects_dengine_header">
|
|
<h2>DENGINE (2016) - Basic 2D Engine</h2>
|
|
</div>
|
|
|
|
<div class="index_projects_preview_images" id="index_projects_preview_images_dengine">
|
|
<img src="img/projects_dengine_screen_1.png">
|
|
<img src="img/projects_dengine_demo.gif">
|
|
</div>
|
|
|
|
<div class="index_projects_content">
|
|
<div class="index_projects_content_section">
|
|
<h3>SUMMARY</h3>
|
|
<p>Dengine is a solo project, 2D game engine developed
|
|
with OpenGL and low-level libraries in C. The main goal
|
|
of Dengine is to facilitate learning from many aspects
|
|
of Computer Science. Alongside Dengine, Asteroids is
|
|
being built which guides the development of features for
|
|
the game. Dengine is inspired by Handmade Hero, with
|
|
a focus on developing as many features with minimal
|
|
libraries, such that it is not too time-consuming and
|
|
counter-productive to do so.</p>
|
|
</div>
|
|
|
|
<div class="index_projects_content_section">
|
|
<h3>MILESTONES/RESEARCH</h3>
|
|
<p>Features/research that have been implemented at one point in the making of the engine.</p>
|
|
<ul>
|
|
<li>Asset Management (load data into intermediate representations)</li>
|
|
<li>Audio API from OpenAL</li>
|
|
<li>Basic 2D Game Mathematics/Physics (Vector, Trig, Explicit Euler)</li>
|
|
<li>Collision Detection (Single Axis Theorem, Minkowski Sum/Diff, AABB)</li>
|
|
<li>Debug Services & Displays</li>
|
|
<li>Entity Component Systems</li>
|
|
<li>IMGUI Systems</li>
|
|
<li>Input Parsing</li>
|
|
<li>Push-Buffer Memory Systems</li>
|
|
<li>Small Size Array Optimisations</li>
|
|
<li>Standard Library Replacements (e.g. atoi, strlen, itoa, string)</li>
|
|
<li>Texture Atlas Support, Runtime Font Packing</li>
|
|
<li>OpenGL 2D Rendering Pipeline & Batching Render Calls</li>
|
|
</ul>
|
|
</div> <!-- index_projects_content_section -->
|
|
|
|
<div class="index_projects_content_section">
|
|
<h3>LINKS</h3>
|
|
<ul>
|
|
<li> <a href="https://github.com/Doy-lee/Dengine">Github</a> (github.com/Doy-lee/Dengine) </li>
|
|
</ul>
|
|
</div>
|
|
|
|
</div> <!-- index_projects_content -->
|
|
</div> <!-- index_projects_dengine -->
|
|
<div class="index_divider"></div>
|
|
<footer id="index_footer">
|
|
</footer>
|
|
</body> <!-- index_wrapper -->
|
|
</html>
|