diff --git a/archetypes/default.md b/archetypes/default.md index d0bdf42..4316d7c 100644 --- a/archetypes/default.md +++ b/archetypes/default.md @@ -1,6 +1,7 @@ --- title: "{{ replace .Name "-" " " | title }}" date: {{ .Date }} -tags: draft +thumbnail: /img/fof.png +tags: ["draft"] --- diff --git a/assets/thumbnails/uni-graphics.png b/assets/thumbnails/uni-graphics.png new file mode 100644 index 0000000..6950520 Binary files /dev/null and b/assets/thumbnails/uni-graphics.png differ diff --git a/content/projects/monq.md b/content/projects/monq.md new file mode 100644 index 0000000..fd9674a --- /dev/null +++ b/content/projects/monq.md @@ -0,0 +1,46 @@ +--- +title: "Monq" +date: 2023-10-25T14:44:18+01:00 +thumbnail: /img/fof.png +tags: ["unreal","c++"] +--- +Monq is my most complete game project. I made it in my second year of +university with some friends, and we were going to use it to form a successful +startup. I learned a lot about how a multidisciplinary team works and tinkered +with creating frameworks in C++ with inheritance both to blueprints and further +C++ sub-classes, covering concepts such as all the AI using unreal's tools, +puzzle implementation, shader implementation using noise and more. Most of the +mechanics for which I was responsible, used a variety of vector and positional +mathematics to implement. + +## Trailer +{{< youtube fRSD64D0LUw >}} +insert youtube vid here + +## Team +**Programming:** Warwick New, James Hellman + +**Designers:** James Hellman, Nicholas Stankowski + +**Art:** Harri Slee, Robert Adolfson + +**Music:** Jason Read + +**Writing:** Michael Wheatley + +**Animation:** George Evans, Ross Everson + +## Main Contributions +### Tiger AI +Here I created an AI that guards an arena. The puzzle part of this boss was based on trying to get the ai to get a chain stuck on pillars left around the arena reducing the range it could navigate. I did this by calculating the distance between the previous attachment point and the next and reducing the available navigatable circumference of the tiger appropriately. Since this was my first more complicated AI, I now know that It would have been far easier to restrict the AI's movement through the use of a more complex steering system rather than calculating where the actor should target moving towards. + +![Tiger AI](/projects/monq/TigerAI.png) + +![Tiger Diagram](/projects/monq/TigerDiagram.png) + +### Mirror Reflections +Here is an example of me simulating reflections in monq to create a light bounce puzzle. Each mirror triggers the next to recursively make light reflection beams. Here I had to work out angles of reflection before creating a new cast to attach a beam particle. + +I also worked on the sand texture in this image mixing various forms of noise to create the ripples based on changes in topography. + +![Mirror Reflections](/projects/monq/MirrorReflection.png) diff --git a/content/projects/university-graphics-project.md b/content/projects/university-graphics-project.md new file mode 100644 index 0000000..2140924 --- /dev/null +++ b/content/projects/university-graphics-project.md @@ -0,0 +1,18 @@ +--- +title: "University Graphics Project" +date: 2023-10-25T11:56:20+01:00 +thumbnail: /thumbnails/uni-graphics.png +tags: ["c++", "opengl", "glsl","cmake", "3d maths"] +--- + +{{< video "/projects/videos/uni-graphics.mp4" >}} + +I made this project for a module at uni. It's a terrain map based on perlin +noise with flat face lighting, It was the first project where I picked up a lot +of the 3D maths used in games and learned about simulation. It was my first +project using GLSL with C++ and also the project I optimised for an +optimisation module in my final year. Getting deep into learning more about +memory management and Object-Oriented design. + +#### Build +- [Win64 Build](/builds/UniGraphics-Win64.zip) diff --git a/static/builds/UniGraphics-Win64.zip b/static/builds/UniGraphics-Win64.zip new file mode 100644 index 0000000..ecde50c Binary files /dev/null and b/static/builds/UniGraphics-Win64.zip differ diff --git a/static/projects/monq/MirrorReflection.png b/static/projects/monq/MirrorReflection.png new file mode 100644 index 0000000..86b8446 Binary files /dev/null and b/static/projects/monq/MirrorReflection.png differ diff --git a/static/projects/monq/TigerAI.png b/static/projects/monq/TigerAI.png new file mode 100644 index 0000000..dd9415b Binary files /dev/null and b/static/projects/monq/TigerAI.png differ diff --git a/static/projects/monq/TigerDiagram.png b/static/projects/monq/TigerDiagram.png new file mode 100644 index 0000000..0a1c07e Binary files /dev/null and b/static/projects/monq/TigerDiagram.png differ diff --git a/static/projects/videos/uni-graphics.mp4 b/static/projects/videos/uni-graphics.mp4 new file mode 100644 index 0000000..8e7773a Binary files /dev/null and b/static/projects/videos/uni-graphics.mp4 differ diff --git a/themes/warwick_portfolio/assets/css/main.css b/themes/warwick_portfolio/assets/css/main.css index a94b85d..868eb02 100644 --- a/themes/warwick_portfolio/assets/css/main.css +++ b/themes/warwick_portfolio/assets/css/main.css @@ -76,8 +76,13 @@ a:visited { margin: 10px auto; } +.flex-wrap-container .container { + max-width: 800px; +} + .flex-wrap-container { display: flex; + align-items: flex-start; flex-direction: row; flex-wrap: wrap; } diff --git a/themes/warwick_portfolio/layouts/_default/list.html b/themes/warwick_portfolio/layouts/_default/list.html index e69de29..d35ee96 100644 --- a/themes/warwick_portfolio/layouts/_default/list.html +++ b/themes/warwick_portfolio/layouts/_default/list.html @@ -0,0 +1,11 @@ +{{ define "main" -}} +
+

{{ .Title | title }}

+ {{ .Content }} +
+ {{range .Pages }} +
+ {{ .Render "summary" }} +
+ {{- end }} +{{- end }} diff --git a/themes/warwick_portfolio/layouts/_default/single.html b/themes/warwick_portfolio/layouts/_default/single.html index d94e531..75a22cb 100644 --- a/themes/warwick_portfolio/layouts/_default/single.html +++ b/themes/warwick_portfolio/layouts/_default/single.html @@ -2,9 +2,11 @@
-

{{.Title}}

-
diff --git a/themes/warwick_portfolio/layouts/_default/summary.html b/themes/warwick_portfolio/layouts/_default/summary.html index 563b502..73caa94 100644 --- a/themes/warwick_portfolio/layouts/_default/summary.html +++ b/themes/warwick_portfolio/layouts/_default/summary.html @@ -1,23 +1,23 @@
-
+
-

{{ .Title }}

+

{{ .Title }}

+ {{- partial "taglist.html" . -}}

{{.Summary}}

{{.Params.date.Format "2 January 2006"}}
-
{{ if .Params.thumbnail }} {{- $image := resources.Get .Params.thumbnail -}} +
- + - {{ end }}
+ {{ end }}
-
diff --git a/themes/warwick_portfolio/layouts/index.html b/themes/warwick_portfolio/layouts/index.html index bd70c79..1aa2bbc 100644 --- a/themes/warwick_portfolio/layouts/index.html +++ b/themes/warwick_portfolio/layouts/index.html @@ -11,33 +11,40 @@

Projects


- {{ range where .Site.RegularPages "Type" "projects" }} + {{- $pageLen := len (where .Site.RegularPages "Type" "projects") -}} + {{- range $i, $element := (where .Site.RegularPages "Type" "projects") }} {{ .Render "summary" }} - {{ end }} + {{- if lt $i (sub $pageLen 1) }}
{{ end -}} + {{- end }}

Blog


- {{ range where .Site.RegularPages "Type" "posts" }} + {{- $pageLen := len (where .Site.RegularPages "Type" "posts") -}} + {{- range $i, $element := (where .Site.RegularPages "Type" "posts") }} {{ .Render "summary" }} - {{ end }} + {{- if lt $i (sub $pageLen 1) }}
{{ end -}} + {{- end }}

Research Papers


- {{ range where .Site.RegularPages "Type" "papers" }} + {{- $pageLen := len (where .Site.RegularPages "Type" "papers") -}} + {{- range $i, $element := (where .Site.RegularPages "Type" "papers") }} {{ .Render "summary" }} - {{ end }} + {{- if lt $i (sub $pageLen 1) }}
{{ end -}} + {{- end }}

Articles

-
- {{ range where .Site.RegularPages "Type" "articles" }} + {{- $pageLen := len (where .Site.RegularPages "Type" "articles") -}} + {{- range $i, $element := (where .Site.RegularPages "Type" "articles") }} {{ .Render "summary" }} - {{ end }} + {{- if lt $i (sub $pageLen 1) }}
{{ end -}} + {{- end }}
diff --git a/themes/warwick_portfolio/layouts/partials/taglist.html b/themes/warwick_portfolio/layouts/partials/taglist.html new file mode 100644 index 0000000..166b0d0 --- /dev/null +++ b/themes/warwick_portfolio/layouts/partials/taglist.html @@ -0,0 +1,14 @@ +{{- if isset .Page.Params "tags" -}} +{{- $tagsLen := len .Params.tags -}} +{{- if gt $tagsLen 0 -}} + +
+ {{- with .Site.Params.relatedtext }}{{ . }}
{{ end -}} + {{- range $k, $v := .Params.tags -}} + {{- $url := printf "tags/%s" (. | urlize | lower) -}} + {{ . | title }} + {{- if lt $k (sub $tagsLen 1) }} · {{ end -}} + {{- end -}} +
+{{- end -}} +{{- end }} diff --git a/themes/warwick_portfolio/layouts/shortcodes/video.html b/themes/warwick_portfolio/layouts/shortcodes/video.html new file mode 100644 index 0000000..804ad47 --- /dev/null +++ b/themes/warwick_portfolio/layouts/shortcodes/video.html @@ -0,0 +1,4 @@ +{{ $link := .Get 0 }} + diff --git a/themes/warwick_portfolio/theme.toml b/themes/warwick_portfolio/theme.toml index 919b6ec..db2c342 100644 --- a/themes/warwick_portfolio/theme.toml +++ b/themes/warwick_portfolio/theme.toml @@ -4,18 +4,16 @@ name = "Warwick_portfolio" license = "MIT" licenselink = "https://github.com/yourname/yourtheme/blob/master/LICENSE" -description = "" +description = "A them I've created to display content in my portfolio." homepage = "http://example.com/" tags = [] features = [] min_version = "0.41.0" [author] - name = "" - homepage = "" + name = "Warwick New" + homepage = "https://warwick-new.co.uk" -# If porting an existing theme -[original] - name = "" - homepage = "" - repo = "" +[taxonomies] + tag = "tags" + category = "categories"