2025-03-31 23:07:29 +02:00
< script lang = "ts" >
2025-04-01 13:55:54 +02:00
import BannerTitle from "$lib/banner-title.svelte";
2025-04-04 10:37:25 +02:00
import type { DevlogPost } from "$lib/devlog-posts";
import { posts } from "$lib/devlog-posts";
2025-03-31 23:07:29 +02:00
< / script >
2025-04-04 10:37:25 +02:00
< svelte:head >
< title > Project N5 Devlog | denizk0461< / title >
< / svelte:head >
2025-04-01 13:55:54 +02:00
2025-04-04 18:05:05 +02:00
< BannerTitle title = "Project N5; Development Log" banner = "/projects/projectn5/devlog/20240323/unity_overview.webp" / >
2025-04-04 10:37:25 +02:00
< p > This is the development log for my game < strong > Project N5< / strong > ! It's an action-adventure jump-and-run game heavily inspired by games such as Ratchet & Clank. Development started on < b > 2023-09-16< / b > .< / p >
< p > 2023 progress updates summarise an entire month's work, respectively. Progress updates thereafter denote noteworthy achievements in a more collected format.< / p >
< div class = "post-container" >
{ #each posts as post }
{ @render devlogPost ({ post })}
{ /each }
< / div >
{ # snippet devlogPost ({ post } : { post : DevlogPost })}
2025-04-04 20:28:38 +02:00
< a href = "/projects/projectn5/devlog/ { post . date } /" class = "post" >
2025-04-04 10:37:25 +02:00
{ #if post . banner }
< img class = "post-img notched" src = "/projects/projectn5/devlog/ { post . date } / { post . banner } " >
{ : else }
< img class = "post-img notched" src = "/projects/projectn5/devlog/previews/ { post . date } .webp" >
{ /if }
< div class = "post-text-container" >
< p class = "post-date" > { post . subtitle } </ p >
< p class = "post-title" > { post . title } </ p >
< / div >
< / a >
{ /snippet }
< style >
.post-container {
max-width: 1200px;
margin-left: auto;
margin-right: auto;
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.post {
width: 40%;
text-decoration: none;
background-color: #00000044;
display: flex;
flex-direction: row;
justify-content: flex-start;
padding: 16px;
transition: background-color 0.16s ease-in-out;
margin: 4px;
--notch-size-devlog: 40px;
clip-path: polygon(
0% var(--notch-size-devlog),
var(--notch-size-devlog) 0%,
calc(100% - var(--notch-size-devlog)) 0%,
100% var(--notch-size-devlog),
100% calc(100% - var(--notch-size-devlog)),
calc(100% - var(--notch-size-devlog)) 100%,
var(--notch-size-devlog) 100%,
0% calc(100% - var(--notch-size-devlog))
);
}
.post:hover {
background-color: var(--color-background-highlight-hover);
}
.post:hover .post-title, .post:hover .post-date {
color: var(--color-text-dark);
}
.post-img {
width: 150px;
height: 120px;
margin: 0;
object-fit: cover;
}
.post-text-container {
display: flex;
flex-direction: column;
padding-left: 24px;
justify-content: center;
}
.post-date, .post-title {
font-family: 'Space Mono', monospace;
margin: 4px 0;
transition: color 0.16s ease-in-out;
}
.post-date {
font-size: 1.1rem;
font-weight: 500;
}
.post-title {
font-size: 1.3rem;
font-weight: 700;
}
< / style >