Add Dawn of Chaos screenshots
|
@ -13,6 +13,11 @@ HTML_TEMPLATE = main.html
|
||||||
%f | sed 's|%%webRoot%%|&(root)|g' > %o \
|
%f | sed 's|%%webRoot%%|&(root)|g' > %o \
|
||||||
|> %B.html
|
|> %B.html
|
||||||
|
|
||||||
|
# Images
|
||||||
|
!png = |> convert %f %o |> %B.png
|
||||||
!compress_png = |> zopflipng %f %o |>
|
!compress_png = |> zopflipng %f %o |>
|
||||||
!compress_jpg = |> cjpeg -quality 80 -progressive -outfile %o %f |>
|
!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 |>
|
||||||
|
|
|
@ -77,27 +77,6 @@ code {
|
||||||
background-color: var(--code-color);
|
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 {
|
ul.projects {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
|
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
|
||||||
|
@ -126,6 +105,26 @@ ul.projects a {
|
||||||
background-position: center;
|
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 {
|
#footer {
|
||||||
max-width: 800px;
|
max-width: 800px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
|
|
@ -8,5 +8,5 @@ title: Projects
|
||||||
<li><a href="projects/trailr/index.html" style="background-image: url(projects/trailr/thumb.jpg);">Trailr</a></li>
|
<li><a href="projects/trailr/index.html" style="background-image: url(projects/trailr/thumb.jpg);">Trailr</a></li>
|
||||||
<li><a href="projects/whereiscar/index.html" style="background-image: url(projects/whereiscar/thumb.png);">Where is my car?</a></li>
|
<li><a href="projects/whereiscar/index.html" style="background-image: url(projects/whereiscar/thumb.png);">Where is my car?</a></li>
|
||||||
<li><a href="projects/maestro/index.html" style="background-image: url(projects/maestro/thumb.png);">Maestro</a></li>
|
<li><a href="projects/maestro/index.html" style="background-image: url(projects/maestro/thumb.png);">Maestro</a></li>
|
||||||
<li><a href="projects/dawnchaos/index.html" style="background-image: url(projects/dawnchaos/thumb.jpg);">Dawn of Chaos</a></li>
|
<li><a href="projects/dawnchaos/index.html" style="background-image: url(projects/dawnchaos/blur_mini.jpg);">Dawn of Chaos</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
include_rules
|
include_rules
|
||||||
|
|
||||||
: index.md |> !html |>
|
: index.md |> !html |>
|
||||||
: shot_01.png |> !thumbnail |> thumb_temp.jpg
|
|
||||||
: thumb_temp.jpg |> !compress_jpg |> thumb.jpg
|
: dawnchaos_03.png |> !blur_mini |>
|
||||||
: foreach *.png |> !compress_png |> %g_opt.png
|
|
||||||
|
: foreach dawnchaos_*.png |> cp %f %o |> img/%g.png
|
||||||
|
: foreach dawnchaos_*.png |> !thumbnail |> img/%g_thumb.jpg
|
||||||
|
|
BIN
projects/dawnchaos/dawnchaos_01.png
Normal file
After Width: | Height: | Size: 634 KiB |
BIN
projects/dawnchaos/dawnchaos_02.png
Normal file
After Width: | Height: | Size: 624 KiB |
BIN
projects/dawnchaos/dawnchaos_03.png
Normal file
After Width: | Height: | Size: 604 KiB |
BIN
projects/dawnchaos/dawnchaos_04.png
Normal file
After Width: | Height: | Size: 410 KiB |
BIN
projects/dawnchaos/dawnchaos_05.png
Normal file
After Width: | Height: | Size: 454 KiB |
BIN
projects/dawnchaos/dawnchaos_06.png
Normal file
After Width: | Height: | Size: 443 KiB |
BIN
projects/dawnchaos/dawnchaos_07.png
Normal file
After Width: | Height: | Size: 470 KiB |
BIN
projects/dawnchaos/dawnchaos_08.png
Normal file
After Width: | Height: | Size: 478 KiB |
BIN
projects/dawnchaos/dawnchaos_09.png
Normal file
After Width: | Height: | Size: 456 KiB |
13
projects/dawnchaos/generate_thumbnails.tup
Executable file
|
@ -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"
|
|
@ -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
|
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
|
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
|
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
|
Nevertheless, this was a truly rewarding experience since I learned the basics
|
||||||
of video game creation and DirectX programming.
|
of video game creation and DirectX programming.
|
||||||
|
|
||||||
|
|
||||||
GRAPHIC ENGINE
|
Graphic engine
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
We had the choice between DirectX and OpenGL for developing our 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.
|
screen.
|
||||||
|
|
||||||
|
|
||||||
PATHFINDING
|
Pathfinding
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
For the pathfinding, I used the classic A*. Each tile of the map is enabled or
|
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.
|
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
|
"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).
|
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
|
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
|
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.
|
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
|
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
|
used for the hero and the enemies. It lacks animation too. I really wanted to
|
||||||
incorporate animation but I wasn't able to.
|
incorporate animation but I wasn't able to.
|
||||||
|
|
||||||
|
Screenshots
|
||||||
|
-----------
|
||||||
|
|
||||||
|
<ul class="screenshots">
|
||||||
|
<li><a href="img/01.png" style="background-image: url(img/01_thumb.jpg);"> </a></li>
|
||||||
|
<li><a href="img/02.png" style="background-image: url(img/02_thumb.jpg);"> </a></li>
|
||||||
|
<li><a href="img/03.png" style="background-image: url(img/03_thumb.jpg);"> </a></li>
|
||||||
|
<li><a href="img/04.png" style="background-image: url(img/04_thumb.jpg);"> </a></li>
|
||||||
|
<li><a href="img/05.png" style="background-image: url(img/05_thumb.jpg);"> </a></li>
|
||||||
|
<li><a href="img/06.png" style="background-image: url(img/06_thumb.jpg);"> </a></li>
|
||||||
|
<li><a href="img/07.png" style="background-image: url(img/07_thumb.jpg);"> </a></li>
|
||||||
|
<li><a href="img/08.png" style="background-image: url(img/08_thumb.jpg);"> </a></li>
|
||||||
|
<li><a href="img/09.png" style="background-image: url(img/09_thumb.jpg);"> </a></li>
|
||||||
|
</ul>
|
||||||
|
|
Before Width: | Height: | Size: 1 MiB |
Before Width: | Height: | Size: 706 KiB |
|
@ -1,4 +1,4 @@
|
||||||
templates*
|
templates*
|
||||||
tup.config
|
tup.config
|
||||||
README.html
|
README.html
|
||||||
*_temp.*
|
*_tmp.*
|
||||||
|
|