diff --git a/Tuprules.tup b/Tuprules.tup index bfe80e7..3b04c90 100644 --- a/Tuprules.tup +++ b/Tuprules.tup @@ -13,6 +13,11 @@ HTML_TEMPLATE = main.html %f | sed 's|%%webRoot%%|&(root)|g' > %o \ |> %B.html +# Images +!png = |> convert %f %o |> %B.png !compress_png = |> zopflipng %f %o |> !compress_jpg = |> cjpeg -quality 80 -progressive -outfile %o %f |> -!thumbnail = |> convert %f -resize 400x400 -blur 0x8 %o |> + +JPG_OPT = -quality 80 -strip -interlace Plane +!blur_mini = |> convert %f -resize 400x400 -blur 0x8 $(JPG_OPT) %o |> blur_mini.jpg +!thumbnail = |> convert %f -resize 200x200 $(JPG_OPT) %o |> diff --git a/css/style.css b/css/style.css index 2787894..51ae39d 100644 --- a/css/style.css +++ b/css/style.css @@ -77,27 +77,6 @@ code { background-color: var(--code-color); } -div.projects { - display: grid; - grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); - grid-auto-rows: minmax(100px, auto); - gap: 10px; - grid-gap: var(gap); /* fallback */ - - list-style: none; - padding-left: 0; - font-size: 14pt; -} - -div.item { - display: grid; - text-align: center; - align-items: center; - border: 1pt solid #ddd; - height: 100%; - text-transform: uppercase; -} - ul.projects { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); @@ -126,6 +105,26 @@ ul.projects a { background-position: center; } +ul.screenshots { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); + grid-auto-rows: minmax(150px, auto); + gap: 10px; + + list-style: none; + padding-left: 0; +} + +ul.screenshots a { + display: grid; + align-items: center; + border: 1pt solid #ddd; + height: 100%; + + background-size: cover; + background-position: center; +} + #footer { max-width: 800px; margin: 0 auto; diff --git a/projects.md b/projects.md index 083294b..59c72b3 100644 --- a/projects.md +++ b/projects.md @@ -8,5 +8,5 @@ title: Projects
  • Trailr
  • Where is my car?
  • Maestro
  • -
  • Dawn of Chaos
  • +
  • Dawn of Chaos
  • diff --git a/projects/dawnchaos/Tupfile b/projects/dawnchaos/Tupfile index 015e3ae..94e34d2 100644 --- a/projects/dawnchaos/Tupfile +++ b/projects/dawnchaos/Tupfile @@ -1,6 +1,8 @@ include_rules : index.md |> !html |> -: shot_01.png |> !thumbnail |> thumb_temp.jpg -: thumb_temp.jpg |> !compress_jpg |> thumb.jpg -: foreach *.png |> !compress_png |> %g_opt.png + +: dawnchaos_03.png |> !blur_mini |> + +: foreach dawnchaos_*.png |> cp %f %o |> img/%g.png +: foreach dawnchaos_*.png |> !thumbnail |> img/%g_thumb.jpg diff --git a/projects/dawnchaos/dawnchaos_01.png b/projects/dawnchaos/dawnchaos_01.png new file mode 100644 index 0000000..2178218 Binary files /dev/null and b/projects/dawnchaos/dawnchaos_01.png differ diff --git a/projects/dawnchaos/dawnchaos_02.png b/projects/dawnchaos/dawnchaos_02.png new file mode 100644 index 0000000..5c78740 Binary files /dev/null and b/projects/dawnchaos/dawnchaos_02.png differ diff --git a/projects/dawnchaos/dawnchaos_03.png b/projects/dawnchaos/dawnchaos_03.png new file mode 100644 index 0000000..0ed8172 Binary files /dev/null and b/projects/dawnchaos/dawnchaos_03.png differ diff --git a/projects/dawnchaos/dawnchaos_04.png b/projects/dawnchaos/dawnchaos_04.png new file mode 100644 index 0000000..7afa463 Binary files /dev/null and b/projects/dawnchaos/dawnchaos_04.png differ diff --git a/projects/dawnchaos/dawnchaos_05.png b/projects/dawnchaos/dawnchaos_05.png new file mode 100644 index 0000000..e4cd350 Binary files /dev/null and b/projects/dawnchaos/dawnchaos_05.png differ diff --git a/projects/dawnchaos/dawnchaos_06.png b/projects/dawnchaos/dawnchaos_06.png new file mode 100644 index 0000000..bd80253 Binary files /dev/null and b/projects/dawnchaos/dawnchaos_06.png differ diff --git a/projects/dawnchaos/dawnchaos_07.png b/projects/dawnchaos/dawnchaos_07.png new file mode 100644 index 0000000..720c44f Binary files /dev/null and b/projects/dawnchaos/dawnchaos_07.png differ diff --git a/projects/dawnchaos/dawnchaos_08.png b/projects/dawnchaos/dawnchaos_08.png new file mode 100644 index 0000000..873aed6 Binary files /dev/null and b/projects/dawnchaos/dawnchaos_08.png differ diff --git a/projects/dawnchaos/dawnchaos_09.png b/projects/dawnchaos/dawnchaos_09.png new file mode 100644 index 0000000..818c7d1 Binary files /dev/null and b/projects/dawnchaos/dawnchaos_09.png differ diff --git a/projects/dawnchaos/generate_thumbnails.tup b/projects/dawnchaos/generate_thumbnails.tup new file mode 100755 index 0000000..9b2b1ad --- /dev/null +++ b/projects/dawnchaos/generate_thumbnails.tup @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +set -euo pipefail + +for i in *.png; do + base=$(basename $i) + filename="${base%.*}" + echo ": $i |> !tup_preserve |>" + echo ": $i |> !mini |> ${filename}_mini_tmp.jpg" + echo ": ${filename}_mini_tmp.jpg |> !compress_jpg |> ${filename}_mini.jpg" +done + +#echo ": foreach *_tmp.jpg |> !compress_jpg |> %g.jpg" diff --git a/projects/dawnchaos/index.md b/projects/dawnchaos/index.md index 1548b07..83686b3 100644 --- a/projects/dawnchaos/index.md +++ b/projects/dawnchaos/index.md @@ -14,13 +14,13 @@ we do ourselves. As such, we were lacking best practices and we learned along the way. The development was quite hard, because at the time we had no programming skill. Moreover, our team quickly fell out, with one member quitting the school after a few months and another one struggling with programming. It -ended up being a two-persons project. +ended up being a two-person project. Nevertheless, this was a truly rewarding experience since I learned the basics of video game creation and DirectX programming. -GRAPHIC ENGINE +Graphic engine -------------- We had the choice between DirectX and OpenGL for developing our graphic engine. @@ -50,14 +50,14 @@ tweak the sprites size manually in order to make the game look as expected on screen. -PATHFINDING +Pathfinding ----------- For the pathfinding, I used the classic A*. Each tile of the map is enabled or not, make a boolean map on which I applied the pathfinding. -SOUND ENGINE +Sound engine ------------ "Sound engine" might sound a bit fancy for what was done. At first I thought I @@ -84,7 +84,7 @@ enough. The enemy goes back to making his rounds if he is almost dead or if the hero is getting away (the hero is of course faster than any enemy). -WHAT WAS DONE BY OTHERS +What was done by others ----------------------- My friend created a truly rich map editor that was used for making the game. He @@ -92,12 +92,27 @@ also created the elements of the world. He was then able to define position and rounds for the enemies directly from his editor. Our game engine only had to get his data from the editor in order to generate the levels. -At last, he was in charge for the management of the hero: life, equipment, etc. +He was also in charge for the management of the hero: life, equipment, etc. -LAST WORDS +Last words ---------- Our game was quite pretty but it was very slow due to the too detailled models used for the hero and the enemies. It lacks animation too. I really wanted to incorporate animation but I wasn't able to. + +Screenshots +----------- + + diff --git a/projects/dawnchaos/shot_01.png b/projects/dawnchaos/shot_01.png deleted file mode 100644 index 0f6733f..0000000 Binary files a/projects/dawnchaos/shot_01.png and /dev/null differ diff --git a/projects/dawnchaos/shot_02.png b/projects/dawnchaos/shot_02.png deleted file mode 100644 index 2e10819..0000000 Binary files a/projects/dawnchaos/shot_02.png and /dev/null differ diff --git a/rsync_excludes.txt b/rsync_excludes.txt index fa60237..27eb259 100644 --- a/rsync_excludes.txt +++ b/rsync_excludes.txt @@ -1,4 +1,4 @@ templates* tup.config README.html -*_temp.* +*_tmp.*