Added Blog to website.
This commit is contained in:
parent
15bdaaa766
commit
a9d688c002
9 changed files with 161 additions and 18 deletions
|
|
@ -13,6 +13,7 @@ import {
|
||||||
} from "@material-ui/core";
|
} from "@material-ui/core";
|
||||||
import Monq from "../static/images/Monq.jpg";
|
import Monq from "../static/images/Monq.jpg";
|
||||||
import Graphics from "../static/images/Graphics.png";
|
import Graphics from "../static/images/Graphics.png";
|
||||||
|
import NewGraphics from "../static/images/NewGraphics.png";
|
||||||
|
|
||||||
class GameProjects extends Component {
|
class GameProjects extends Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
|
|
@ -24,16 +25,30 @@ class GameProjects extends Component {
|
||||||
image: Monq,
|
image: Monq,
|
||||||
imageAltText: "Monq",
|
imageAltText: "Monq",
|
||||||
content: `Technically this was my first attempt at creating a startup with
|
content: `Technically this was my first attempt at creating a startup with
|
||||||
university friends. However we over scoped when it came to having an interesting
|
university friends. However we over scoped when it came to having an
|
||||||
platformer in a single year when it came to our USP of time mechanics and our
|
interesting platformer in a single year. This paired with a lack of design
|
||||||
artist's great work. This paired with a lack of design and writing put too much
|
focus and writing put too much emphasis on the previously mentioned time
|
||||||
emphasis on the previously mentioned time mechanics without adequately designed
|
mechanics without adequately designed levels to show them off nor create a
|
||||||
levels to show that off nor create a hook to keep people interested in the game.`,
|
solid hook to keep people interested in the game.`,
|
||||||
buttonText: "Learn More",
|
buttonText: "Learn More",
|
||||||
buttonLink: "https://d-tail-entertainment.itch.io/monq",
|
buttonLink: "https://d-tail-entertainment.itch.io/monq",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
header: "Graphics",
|
header: "Current Graphics Project",
|
||||||
|
subheader: "Happening alongside Assistent Lecturer - Falmouth University",
|
||||||
|
image: NewGraphics,
|
||||||
|
imageAltText: "Generated terrain",
|
||||||
|
content: `I'm currently working on a another graphics project as this
|
||||||
|
is the area of computing I want to get back into. I plan on
|
||||||
|
implementing much more complex generated terrain and other features
|
||||||
|
such as including a physics engine for a more complex character
|
||||||
|
controller and an entity system so I can implement other methods of
|
||||||
|
terrain traversal.`,
|
||||||
|
buttonText: "Read Blog",
|
||||||
|
buttonLink: "/graphics-blog",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
header: "University Graphics Project",
|
||||||
subheader: "Bsc (hons) Computing for Games - Falmouth University",
|
subheader: "Bsc (hons) Computing for Games - Falmouth University",
|
||||||
image: Graphics,
|
image: Graphics,
|
||||||
imageAltText: "Generated terrain",
|
imageAltText: "Generated terrain",
|
||||||
|
|
|
||||||
112
src/GraphicsBlog.jsx
Normal file
112
src/GraphicsBlog.jsx
Normal file
|
|
@ -0,0 +1,112 @@
|
||||||
|
import { h, render, Component } from "preact";
|
||||||
|
import {
|
||||||
|
Grid,
|
||||||
|
Container,
|
||||||
|
Paper,
|
||||||
|
Card,
|
||||||
|
CardHeader,
|
||||||
|
CardMedia,
|
||||||
|
CardActions,
|
||||||
|
CardContent,
|
||||||
|
Typography,
|
||||||
|
Button,
|
||||||
|
} from "@material-ui/core";
|
||||||
|
import Header from "./Header";
|
||||||
|
|
||||||
|
import Blog1 from "../static/images/GraphicsBlog/blog1.png";
|
||||||
|
const Blog2 = new URL("../static/video/graphics_blog/blog2.webm", import.meta.url);
|
||||||
|
import Blog3 from "../static/images/GraphicsBlog/blog3.png";
|
||||||
|
|
||||||
|
class GraphicsBlog extends Component {
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
|
this.content = [
|
||||||
|
{
|
||||||
|
header: "SDL/OpenGL boilerplate",
|
||||||
|
subheader: "Note: this blog is a copy of a forum thread",
|
||||||
|
mediaType: "img",
|
||||||
|
image: Blog1,
|
||||||
|
imageAltText: "Textured square",
|
||||||
|
content: `Welp, since no one else is using this channel I'ma start posting updates on my game engine project as they come. Today I added textures to my game engine. Next up refactoring... But then camera movement (Or strangely enough world movement around camera).`,
|
||||||
|
buttonText: undefined,
|
||||||
|
buttonLink: undefined,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
header: "Camera Movement",
|
||||||
|
subheader: "Note: this blog is a copy of a forum thread",
|
||||||
|
mediaType: "video",
|
||||||
|
image: Blog2,
|
||||||
|
imageAltText: "Textured square with camera movement",
|
||||||
|
content: `So, after a massive hiatus I got back into working on this
|
||||||
|
project again, and it's now officially 3D, with camera movement. Next
|
||||||
|
is more complex meshes.`,
|
||||||
|
buttonText: undefined,
|
||||||
|
buttonLink: undefined,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
header: "Multiple Meshes",
|
||||||
|
subheader: "Note: this blog is a copy of a forum thread",
|
||||||
|
mediaType: "img",
|
||||||
|
image: Blog3,
|
||||||
|
imageAltText: "2 textured squares",
|
||||||
|
content: `Now I have a mesh class it's pretty easy to make multiple
|
||||||
|
objects reusing textures and indecies 🙃. Next it's giving those meshes
|
||||||
|
their own relative position rather than hard coding every position on
|
||||||
|
every triangle point to move it.`,
|
||||||
|
buttonText: undefined,
|
||||||
|
buttonLink: undefined,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
render = () => {
|
||||||
|
return (
|
||||||
|
<span>
|
||||||
|
<Header />
|
||||||
|
<Container>
|
||||||
|
<p />
|
||||||
|
<Card>
|
||||||
|
<CardHeader title="Graphics Blog" />
|
||||||
|
</Card>
|
||||||
|
<p />
|
||||||
|
<Grid container spacing={3}>
|
||||||
|
{this.content.map((project) => {
|
||||||
|
return (
|
||||||
|
<Grid item xs="12" lg="6">
|
||||||
|
<Card>
|
||||||
|
<CardHeader
|
||||||
|
title={project.header}
|
||||||
|
subheader={project.subheader}
|
||||||
|
/>
|
||||||
|
<CardMedia
|
||||||
|
component={project.mediaType}
|
||||||
|
image={project.image}
|
||||||
|
alt={project.imageAltText}
|
||||||
|
muted
|
||||||
|
loop
|
||||||
|
autoplay
|
||||||
|
controls
|
||||||
|
/>
|
||||||
|
<CardContent>
|
||||||
|
<Typography variant="body1">{project.content}</Typography>
|
||||||
|
</CardContent>
|
||||||
|
<CardActions>
|
||||||
|
<Button
|
||||||
|
target="_blank"
|
||||||
|
href={project.buttonLink}
|
||||||
|
color="primary"
|
||||||
|
>
|
||||||
|
{project.buttonText}
|
||||||
|
</Button>
|
||||||
|
</CardActions>
|
||||||
|
</Card>
|
||||||
|
</Grid>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</Grid>
|
||||||
|
</Container>
|
||||||
|
</span>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
export default GraphicsBlog;
|
||||||
|
|
@ -61,14 +61,17 @@ class Greeting extends Component {
|
||||||
<CardContent>
|
<CardContent>
|
||||||
<Typography variant="h1">Welcome</Typography>
|
<Typography variant="h1">Welcome</Typography>
|
||||||
<Typography variant="body1">
|
<Typography variant="body1">
|
||||||
Hi, My name is Warwick and I'm a Fullstack Web Developer with an
|
Hi, My name is Warwick and I'm a Computing based Associate
|
||||||
|
Lecturer at the Games Academy in Falmouth University with an
|
||||||
academeic background in Computing for Games and
|
academeic background in Computing for Games and
|
||||||
Entrepreneurship.
|
Entrepreneurship.
|
||||||
</Typography>
|
</Typography>
|
||||||
<Typography variant="subtitle1">Availability</Typography>
|
<Typography variant="h5">Availability</Typography>
|
||||||
<Typography variant="body2">
|
<Typography variant="body2">
|
||||||
I'm currently looking for work if you think my skills may be
|
I'm currently looking for an oppertunity to grow my knowledge
|
||||||
relevant to you. My CV and previous projects can be found below.
|
in graphics and simulation. If you think my skills may be
|
||||||
|
relevant to you, my CV and previous projects can be found
|
||||||
|
below.
|
||||||
</Typography>
|
</Typography>
|
||||||
</CardContent>
|
</CardContent>
|
||||||
<CardActions>
|
<CardActions>
|
||||||
|
|
|
||||||
|
|
@ -29,14 +29,23 @@ class Header extends Component {
|
||||||
<Typography style={{ flex: 1 }}>Warwick New</Typography>
|
<Typography style={{ flex: 1 }}>Warwick New</Typography>
|
||||||
</Link>
|
</Link>
|
||||||
<Box />
|
<Box />
|
||||||
|
<span style={{ marginLeft: "auto" }} >
|
||||||
|
<Button
|
||||||
|
variant="contained"
|
||||||
|
href="/graphics-blog"
|
||||||
|
color="secondary"
|
||||||
|
>
|
||||||
|
Graphics Blog
|
||||||
|
</Button>
|
||||||
|
{" "}
|
||||||
<Button
|
<Button
|
||||||
variant="contained"
|
variant="contained"
|
||||||
href="/contact"
|
href="/contact"
|
||||||
color="secondary"
|
color="secondary"
|
||||||
style={{ marginLeft: "auto" }}
|
|
||||||
>
|
>
|
||||||
Contact Me
|
Contact Me
|
||||||
</Button>
|
</Button>
|
||||||
|
</span>
|
||||||
</Toolbar>
|
</Toolbar>
|
||||||
</AppBar>
|
</AppBar>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,10 @@ class App extends Component {
|
||||||
import("./Ramble").then((module) => module.default)
|
import("./Ramble").then((module) => module.default)
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
<AsyncRoute path="/graphics-blog" getComponent={() =>
|
||||||
|
import("./GraphicsBlog").then((module) => module.default)
|
||||||
|
}
|
||||||
|
/>
|
||||||
<AsyncRoute default getComponent={() =>
|
<AsyncRoute default getComponent={() =>
|
||||||
import("./404Page").then((module) => module.default)
|
import("./404Page").then((module) => module.default)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
BIN
static/images/GraphicsBlog/blog1.png
Normal file
BIN
static/images/GraphicsBlog/blog1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 126 KiB |
BIN
static/images/GraphicsBlog/blog3.png
Normal file
BIN
static/images/GraphicsBlog/blog3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 215 KiB |
BIN
static/images/NewGraphics.png
Normal file
BIN
static/images/NewGraphics.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 152 KiB |
BIN
static/video/graphics_blog/blog2.webm
Normal file
BIN
static/video/graphics_blog/blog2.webm
Normal file
Binary file not shown.
Loading…
Reference in a new issue