Canis game engine for devember

Summary

After spending four years programming at a mobile game company using the Unity Game Engine. At the beginning of 2022, I started teaching game programming at Southern Arkansas University. Because of this, I have been learning more c++ and OpenGL so I can have a better understanding of how big game engines work. I am applying this to build a tower defense game and open-source game engine, Canis.

Reason the build the engine

  • Gain an understanding of how engines like Godot and Unity work under the hood
  • Build a small game using the engine and release it on steam
  • Learn how to structure data so that my code is more CPU cache friendly

Goals for devember

  • Release to prototype builds of my tower defense game
  • Create a getting started guide for canis
  • Write a collision overlap system
  • Release a devlog

Canis Engine found on GitHub user EricWRogers
Canis Demo found on GitHub user EricWRogers

5 Likes

Sounds awesome! Good luck.

1 Like

The simple version of the collision system is complete!

https://github.com/EricWRogers/canis/blob/develop/include/Canis/ECS/Systems/CollisionSystem.hpp

1 Like

I have moved the entities the new collision system.

1 Like

Today I worked on optimizing the renderer by removing some memory allocation in two loops and removing some clearing of OpenGL buffers where it was redundant. Reduced the number of triangles on the ground by removing the other four sides of the cube.

The screenshot was taken from my desktop where before these changes were made ran at 1955FPS and now runs at 2355!

2 Likes

That is some nice efficiencies gained. Ambient Occlusion added when?! j/k

1 Like

Thanks! After I complete this playable prototype I may look at different art styles. If the style I go with would look drastically better with ao I will look into adding it. I have read through this chapter and it sounds really cool.

1 Like

This week I added a card/deck system for the towers and made config files for the different entities.
That way when I make the first playable build next week people will be able to tweak the values.

1 Like

First pass on particle system

2 Likes