Summary Files Commits Branches @commit @diff @stats
path: root / src / blog / mundus-first-shot-at-gamedev / index.du
blob: f5656fc0b73430fa1a6a0e963708c8c70f9cfd00 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
'def title Introduction - Mundus: My first shot at game development
'def  desc General background on Mundus

# {title}

{pagenav 2 min;21 July 2020;25 November 2020}

{pagination ;;;Timeline;./timeline.html}

{due_for_rework}

\n

:contents
:numbered
1. {url Timeline;./timeline.html}
2. {url User Interface;./user-interface.html}
    .numbered
    1. {url Main screen;./user-interface.html#main-screen}
    2. {url Create new game;./user-interface.html#create-new-game}
    3. {url Game Window;./user-interface.html#game-window}
    4. {url Map menu;./user-interface.html#map-menu}
    5. {url Inventory menu;./user-interface.html#inventory-menu}
    6. {url Crafting menu;./user-interface.html#crafting-menu}

3. {url Basic Concepts;./basic-concepts.html}
   .numbered
   1. {url Tiles;./basic-concepts.html#tiles}
   2. {url Layers and superlayers;./basic-concepts.html#layers-and-superlayers}
   3. {url Inventory;./basic-concepts.html#inventory}
   4. {url Crafting;./basic-concepts.html#crafting}
   5. {url Event logs;./basic-concepts.html#event-logs}



I have been toying with the idea of making a game ever since my first exposure to programming. The {url earliest piece of code;https://gitlab.com/Syndamia/Shower/-/tree/master/ARK%20(2015}) I ever wrote was about replicating a computer boot up sequence from the video game {url SOMA;https://store.steampowered.com/app/282140/SOMA/}. I developed it in 2015, solid 3 years before my first proper introduction to software development.

Five years later, in early 2020, I had to make a project for an exam. I (initially) had about a month to complete it and the only requirements were technical: utilize a database with at least x tables, employ a specific design pattern, etc. Fairly quickly I decided upon making a "minecraftian" game: 2D sandbox where you could fight, craft, build, eat and explore.

I called it {url Mundus;https://gitlab.com/Syndamia/Mundus} and it took me around 3 months to complete and consisted of more than 2000 lines of code. Although these metrics aren't very impressive in the real world, they were a monumental achievement for me. In the beginning I planned on developing it into a fully fledged game, but that never happened.

Nevertheless, this journey was very important to me, hence writing this multi-page article.

{b Link to the source code}: {url GitLab;https://gitlab.com/Syndamia/Mundus}

## Screenshots

<div style="display: flex; overflow-x: scroll; align-items: center">
	<img src="./img/small-game-window.png" style="height: 100%; flex: 1; margin-right: 0.5em">
	<img src="./img/map-menu.png" style="height: 100%; flex: 1; margin-right: 0.5em">
	<img src="./img/inventory-menu.png" style="height: 100%; flex: 1;">
</div>

{i Screenshots are made on Linux Mint Cinnamon with the Mint-Y theme}