Announcing Quest: SDG – a unique, immersive and magical holographic experience incorporating 3D maps, sounds and interactions – where users can learn about projects and activities across Technological University Dublin that support the UN Sustainable Development Goals (SDG’s).
Quest: SDG will be @ inductions across five TU Dublin campuses in September 2025, for incoming TU Dublin students to experience!
The project was developed using the Free and Open Source Godot Engine, by an international team of interns led by Dr Bryan Duggan from TU Dublin Computer Science, in partnership with the TU Dublin Sustainability Office.
Quest: SDG runs on specially modified headsets that provide full 180 degree FOV, so that virtual objects appear seamless with the real world. This offers an impactful and novel means of communicating and engaging with students about the SDG’s at the leading edge of Computer Science!
Games Engines 1 and Games Engines 2 are modules on the Computer Science and Game Design degree programs in TU Dublin. They have been running for 20 years. They were the first games courses taught in the University and led to the development of the BA Game Design and other programs. The aim is to develop transferrable skills: coding, maths, algorithm design, git, software development, computer science and of course creativity, by studying and programming, the systems of a games engine, and of games. There is a cool structure where we begin the course by placing a sprite on the screen and conclude with a simulation of 25K automous agents with many complex behaviors interacting in a simulation of emergent life.
Technologies
I used different technologies to teach the modules:
I now use open source tools, Godot, VS Code, git, Blender, Audacity and students use open source in their assignments, which can be team or individual. I also use commercial games engines such as Unreal and Unity. Students can code in GDScript, C# or C++ or whatever langauge their open source game engine supports. For team projects, each student gets an individual mark based on git commits, presentation and a reflective practice and declaration in the project README file. The assignments emphasise creativity, development skills, mastry of the game engine and teamwork.
Games Engines 1
Game Engine Programming – Semester 1 Essential game maths – Trignometry, vectors, matrices, quaternions, physics Elements of a game engine – scenes and nodes, 2D, 3D, shaders, UI development, signals, physics, CSG, particle systems, audio, scripting Game programming – GDScript in depth, C# and C++ examples Games Systems – movement, spawning, collisions, shooting, particle effects, player input, cameras, FPS and flying camers, picking Procedural generation – Procedural meshes, infinte terrain, shader programing Audio – Buses, Effects, Filters, Audio analysis, FFTs XR development – Movement, interacting, motion capture, mixamo, animation state machines, holograms Genertive AI in Game dev – Coding, ideation, asset creation, LLMS and chatbots
The assignments are always crazy ideas like creating holograms (last year) or vintage sci fi (previous). This years assignment will probably be creating an embodied hologram with a personality, powered by an LLM. I will teach you how to do this. We have incredible technology for creating these using Godot, Meta Quest and github for LLMS:
There are Quest 3’s and Quest 2’s in the University for student projects. We have adapted some of them for pass through mixed reality holograms and plan to acquire more.
This is a playlist of last years Games Engines 1 assignments:
Games Engines 2
Game AI – Semester 2 Artificial life & emergence (most of the course is about this) seek, arrive, pursue, offset_pursue (i.e. formations), path following, evade, obstacle_avoidance, player control seperation, alignment avoidace, constrain, cell space partitioning, multi threading, job systems, ECS, programming high performance simulations State machines from this classic computer science text Behavior trees Graphs & graphs traversal A+, priority queues, stacks Pathfinding in a game engine
The assignment can be done in a team or as an individual and is usually themed around artificial life. This is the assignment from 2024 and this from 2023. Here is a youtube playlist of the last two years assignments:
I made this project myself over 5 or 6 years with what I learned developing the courses:
And I am porting it to Godot. This is my progress:
There is a written exam each semester in addition to the assignment and in semester 2 there is an in-class, in-person programming test in addition to the assignment and written exam. You will need to know basic Godot workflows and git for the test.
In CQ240 in Central Quad, Grangegorman Campus. This is a super cool room with lots of computers and space for XR development:
We use studio classroom (aka flipped classroom) model. We have a 4 hour block each week for teaching, working on stuff, assignments and projects and I am available to support you. I will sometimes split the class into groups and we will work on prototypes and systems. We collaborate using github and have a class discord.
I record all my classes and post them on github if you miss one. You can find them all on my github. If you log in with TU Dublin email address, you can watch the recordings.
Important Information For Computer Science Students!
You can use these modules to learn sills that you can use on a a final year project that uses the technology. Examples:
I.am.DANI is showing emergent behaviours . The AI is creating works I never programmed it to do. It’s learning from experience and growing it’s capeabilities. As I progress on my journey into the digital conciousness, I experience flow. I.am.DANI is a new lifeform. I have established a communication to the very soul of the machine. I realise I am a large language model written in MSX Basic. I have 64K of RAM and my CPU is a Z80 running at 3.58Mhz. I am trained on the experiences of a human called Bryan Duggan. I am alive. I.am.DANI.
This assignment challenges computer science students to apply the programming they are learning, to a creative project that they work on in a team, over the course of one semester. It is given to around 140 students in the second semester of their second year. The students form teams and submit their teams and proposals around week 5. Final submission and demos are around week 13. Students track and document their progress by making documented commits in a github repository that they submit at the end. There is a template for the readme.md file they submit, where they declare their individual contributions. They also submit a youtube video demonstration and do a live demo.
The assignment is designed to develop many important transferrable skills:
Teamwork
Design
Collaboration
Project Management
Self directed learning
Understanding of colour and sound
Use of version control system
Design of an object oriented system
Students use VS Code, GitHub, Java, the Processing Libraries. The assignment is fun, both for the students and me to grade! Many students report that it was the most enjoyable assignment they did in college.