From c459930526bc06a33271a7be202c7f9fb5d9ed6f Mon Sep 17 00:00:00 2001 From: Warwick Date: Wed, 16 Aug 2023 10:06:45 +0100 Subject: [PATCH] Added urchin as a side project I'm working on --- src/GameProjects.jsx | 18 +++++++++++++++--- static/images/code.png | Bin 0 -> 28601 bytes 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 static/images/code.png diff --git a/src/GameProjects.jsx b/src/GameProjects.jsx index 8f0d13f..45b38c0 100644 --- a/src/GameProjects.jsx +++ b/src/GameProjects.jsx @@ -2,7 +2,6 @@ import { h, render, Component } from "preact"; import { Grid, Container, - Paper, Card, CardHeader, CardMedia, @@ -14,6 +13,7 @@ import { import Monq from "../static/images/Monq.jpg"; import Graphics from "../static/images/Graphics.png"; import NewGraphics from "../static/images/NewGraphics.png"; +import Code from "../static/images/code.png"; class GameProjects extends Component { constructor(props) { @@ -21,8 +21,7 @@ class GameProjects extends Component { this.content = [ { header: "Current Graphics Project", - subheader: `Personal Side Project - Programmer: C++, Opengl, - SDL`, + subheader: `Personal Side Project - Programmer: C++, Opengl, SDL`, image: NewGraphics, imageAltText: "Graphics", content: `I'm currently working on another graphics project as this is @@ -35,6 +34,19 @@ class GameProjects extends Component { buttonLink: "/graphics-blog", newtab: false }, + { + header: "Current Low Level Networking Project", + subheader: `Personal Side Project - Programmer: C, Sockets and Protobuf`, + image: Code, + imageAltText: "Networking Code", + content: `I'm currently working on another low level project as + interested in learning plain C and low level networking. I plan on + creating a mud that can potentially be used in conjunction with my + graphics project to create a multiplayer experience.`, + buttonText: "Visit Repo", + buttonLink: "https://github.com/WarwickNew/urchin", + newtab: false + }, { header: "Monq", subheader: `D-tail Entertainment - Programmer: Unreal Engine 4, C++, diff --git a/static/images/code.png b/static/images/code.png new file mode 100644 index 0000000000000000000000000000000000000000..ddc6ccbe7d9c48269709ef324cd5fb28310c5430 GIT binary patch literal 28601 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