<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=Game_Engines_2021W_Lecture_11</id>
	<title>Game Engines 2021W Lecture 11 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=Game_Engines_2021W_Lecture_11"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Game_Engines_2021W_Lecture_11&amp;action=history"/>
	<updated>2026-04-08T03:33:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Game_Engines_2021W_Lecture_11&amp;diff=22993&amp;oldid=prev</id>
		<title>Soma: Created page with &quot;&lt;pre&gt; Lecture 11 ----------   - Anil show and tell    - design plan    - what I&#039;ve got (it isn&#039;t much)  - planning for rest of course  - show and tell (everyone else)  I owe y...&quot;</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Game_Engines_2021W_Lecture_11&amp;diff=22993&amp;oldid=prev"/>
		<updated>2021-03-04T13:11:54Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;pre&amp;gt; Lecture 11 ----------   - Anil show and tell    - design plan    - what I&amp;#039;ve got (it isn&amp;#039;t much)  - planning for rest of course  - show and tell (everyone else)  I owe y...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Lecture 11&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
 - Anil show and tell&lt;br /&gt;
   - design plan&lt;br /&gt;
   - what I&amp;#039;ve got (it isn&amp;#039;t much)&lt;br /&gt;
 - planning for rest of course&lt;br /&gt;
 - show and tell (everyone else)&lt;br /&gt;
&lt;br /&gt;
I owe you all grades on your proposals&lt;br /&gt;
 - you all did pretty well&lt;br /&gt;
 - will post by next Tuesday&lt;br /&gt;
&lt;br /&gt;
(I have a paper deadline on Thursday night)&lt;br /&gt;
&lt;br /&gt;
Polytopia clone with cooperative multiplayer elements&lt;br /&gt;
&lt;br /&gt;
There&amp;#039;s a polytopia wiki if you&amp;#039;re more curious&lt;br /&gt;
 - mobile is free to play single player&lt;br /&gt;
&lt;br /&gt;
Simplified civilization game&lt;br /&gt;
 - control towns&lt;br /&gt;
 - towns produce units&lt;br /&gt;
 - towns grow by harvesting local resources, building structures&lt;br /&gt;
 - resources are represented using population and stars&lt;br /&gt;
 - takes place on isometric grid&lt;br /&gt;
   - each square has land type with optional structure or unit&lt;br /&gt;
   - only one unit per square, only one structure per square&lt;br /&gt;
 - gameplay is turn based&lt;br /&gt;
 - on player turn&lt;br /&gt;
    - select any tiles to be interacted with&lt;br /&gt;
    - choose actions for the tile&lt;br /&gt;
    - choose general actions (technology tree dev)&lt;br /&gt;
&lt;br /&gt;
Graphics look relatively simple (&amp;quot;low polygon&amp;quot;) but have lots of nice subtle touches&lt;br /&gt;
 - not going to try replicating this, at least for a while!&lt;br /&gt;
&lt;br /&gt;
Right now different players can only fight&lt;br /&gt;
 - peaceful interaction is limited to exchanging technologies&lt;br /&gt;
   when first meeting and otherwise ignoring each other&lt;br /&gt;
&lt;br /&gt;
Coop multiplayer mechanisms should be simple&lt;br /&gt;
 - identify encountered player as &amp;quot;ally&amp;quot;&lt;br /&gt;
    - once an ally, can&amp;#039;t attack until marked non-ally&lt;br /&gt;
 - allies can see each other&amp;#039;s territory&lt;br /&gt;
    - visibility is a big factor&lt;br /&gt;
 - team victory conditions&lt;br /&gt;
    - instead of one player to 10,000, 2 to 20,000 combined&lt;br /&gt;
      for example&lt;br /&gt;
 - ability to share tech (maybe not all at once)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to build basic world/mechanics in Godot?&lt;br /&gt;
&lt;br /&gt;
Two basic approaches&lt;br /&gt;
 - every square is a sprite&lt;br /&gt;
 - tilemaps&lt;br /&gt;
&lt;br /&gt;
Advantage of many sprites is each can be a different object with its own properties&lt;br /&gt;
&lt;br /&gt;
Advantage of tilemaps is lots of mechanisms for displaying/managing lots of tiles&lt;br /&gt;
&lt;br /&gt;
I decided to try tilemaps&lt;br /&gt;
 - I found you can layer tilemaps pretty easily&lt;br /&gt;
 - isometric tilemaps are well supported&lt;br /&gt;
 - I was already going to have to implement tile logic on my own&lt;br /&gt;
   - so I just have to maintain my own data structures for&lt;br /&gt;
     internal game state&lt;br /&gt;
&lt;br /&gt;
But, how do you programmatically control tile maps?&lt;br /&gt;
 - recognize tiles that have been clicked on&lt;br /&gt;
 - change tile state programamtically&lt;br /&gt;
&lt;br /&gt;
Most godot documentation/tutorials don&amp;#039;t focus on these tasks&lt;br /&gt;
 - they are there but you have to dig&lt;br /&gt;
 - don&amp;#039;t explain nuances&lt;br /&gt;
&lt;br /&gt;
What I learned&lt;br /&gt;
 - world_to_map does not respect translations of tiles&lt;br /&gt;
   - so if you translate, then all your transformations will not work&lt;br /&gt;
   - you&amp;#039;d have to manually apply the translation to the&lt;br /&gt;
     mouse clicks before mapping to map&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 - As you all know, simple misunderstandings/gaps in knowledge can lead to major difficulties&lt;br /&gt;
 - it is fine to be stumped&lt;br /&gt;
&lt;br /&gt;
Note that most of my game&amp;#039;s implementation won&amp;#039;t be directly supported by Godot&lt;br /&gt;
 - it makes the visual/interaction parts really simple to build&lt;br /&gt;
   (once you figure out how it works)&lt;br /&gt;
 - but game logic &amp;amp; state will be in regular code&lt;br /&gt;
&lt;br /&gt;
The big danger of working with a game engine is you think in their abstractions rather than your own&lt;br /&gt;
 - only make fit what should fit&lt;br /&gt;
 - but spend time thinking about how things will match&lt;br /&gt;
&lt;br /&gt;
Now for the rest of semester&lt;br /&gt;
----------------------------&lt;br /&gt;
&lt;br /&gt;
 - design principles&lt;br /&gt;
   - how to do iterative design&lt;br /&gt;
 - proposal issues&lt;br /&gt;
   - how to propose things&lt;br /&gt;
   - how to &amp;quot;be creative&amp;quot; while being focused&lt;br /&gt;
 - game AI&lt;br /&gt;
   - relationship to regular AI?&lt;br /&gt;
   - search, A* traversal&lt;br /&gt;
&lt;br /&gt;
Should we be sharing our projects on github with each other?&lt;br /&gt;
 - I think I can make a private &amp;quot;team&amp;quot; for us to share with&lt;br /&gt;
&lt;br /&gt;
In so many Godot tutorials, the code is horrific&lt;br /&gt;
 - they don&amp;#039;t follow good software design principles&lt;br /&gt;
 - hacked to get things to work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
</feed>