Coder Social home page Coder Social logo

apg's Introduction

Hello!

For more about me, my website is the best place to go.

Programming Languages: Python, Go, C++, RISC-V Assembly

Human Languages: ๐Ÿ‡ฌ๐Ÿ‡ง ๐Ÿ‡ฉ๐Ÿ‡ช

apg's People

Contributors

sgtcodfish avatar

Watchers

 avatar  avatar  avatar

apg's Issues

Use CRTP for Game class

This will be a breaking API change (similar to the Tmxrenderer change) but will ensure that we don't pay a virtual-function price for every frame.

Force SDL/GL/Logger init outside of SDLGame

Currently SDLGame handles the "magic" of initialising SDL (and the various SDL submodules), creating a window, creating a GL context and initialising the APG logger. This has two effects:

  • Nothing with APG can realistically be done before these things are initialised.
  • This forces a recursive "unique_ptr" bloat across the whole codebase, which makes initialisation much more complicated, adds overhead and exposes us to various nullptr bugs which wouldn't happen if the classes we were creating were just members.

By moving SDLGame's constructor logic out into a separate class which owns the SDL/GL context, we add an extra initialisation step before getting a working screen, but the gains outweigh the losses.

It might be possible to avoid a breaking API change by creating an entirely new game class, perhaps using CRTP... but it might be cleaner, given that APG is not widely used, to just break SDLGame.

Create a thread-safe resource manager

Currently there are too many concepts of ownership, split across different classes and resources. This could be centralised, for the resources where that makes sense - texture IDs, sound resource IDs, etc.

Test Builds on Different Browsers / OSes

Both WASM builds and native builds

Windows

  • Native
  • Edge
  • Chrome
  • Firefox

MacOS

  • Native
  • Safari
  • Chrome
  • Firefox

Linux (Debian)

  • Native
  • Chromium
  • Firefox

Linux (Ubuntu)

  • Native
  • Chromium
  • Firefox

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.