Rewrite of Something from scratch

Overview

Build Status

Rewrite of Something from scratch

Objectives of the Rewrite

Migrating completely to OpenGL.

First iteration of Something was using pure SDL2 which was extremely limiting and didn't allow certain features that are available even in the oldest OpenGL versions.

I finally learnt enough OpenGL so I can implement a simple 2D engine in it.

Changing the Architecture to simplify piling features on top of the game.

Making the game state easily available to almost any part of the code almost at any time.

The only limitation is spliting the access into two distinct phases:

  • Update Phase -- the state is mutable by any part of the code that has a pointer to the Game object.
  • Render Phase -- the state is read-only.

The Game object becames the central communication hub between different parts of the system, similarly to a database in CRUD applications.

Quick Start

*NIX:

$ sudo apt install libglew-dev libsdl2-dev   # may vary depending on the distro
$ ./build.sh
$ ./something.debug

Windows (Visual Studio):

> setup_dependencies
> build_msvc
> something.debug

Windows (MSYS2):

> build_msys2.bat
> something.debug.exe
You might also like...
Software ray tracer written from scratch in C that can run on CPU or GPU with emphasis on ease of use and trivial setup
Software ray tracer written from scratch in C that can run on CPU or GPU with emphasis on ease of use and trivial setup

A minimalist and platform-agnostic interactive/real-time raytracer. Strong emphasis on simplicity, ease of use and almost no setup to get started with

A unix operating system written from scratch in c++
A unix operating system written from scratch in c++

A unix operating system made from scratch using c++

Example library and blog that explain how JSI modules are built from scratch in React Native

react-native-simple-jsi This is an example library that explains how anyone can build jsi modules from scratch in React Native. This code is written a

Support Vector Machines Implementation from scratch in C++

SVM C++ Samples These are sample programs of Support Vector Machines from scratch in C++. 1. Implementation Model Class Problem Decision Boundary Code

Engine-3D is a 3D-Graphics Renderer built from scratch in C++
Engine-3D is a 3D-Graphics Renderer built from scratch in C++

Engine3D Engine-3D is a 3D-Graphics Renderer built from scratch in C++, as an Undergraduate Computer Engineering Project for 5th Semester, assigned by

C++ OpenGL 3D Game Tutorial Series - Learn to code an OpenGL 3D Game in C++ from scratch
C++ OpenGL 3D Game Tutorial Series - Learn to code an OpenGL 3D Game in C++ from scratch

C++ OpenGL 3D Game Tutorial Series is a YouTube Tutorial Series, whose purpose is to help all those who want to take their first steps in the game dev

My first os built from scratch

Kernel project My first os built from scratch Contributors are welcome LICENSE TODO GDT IDT PS2 Keyboard PS2 Mouse PIT RTC Initrd Drawing on framebuff

C string.h library from scratch.

C string.h library from scratch.

This project is implementation of TFTP protocol from scratch

TFTP This project is implementation of TFTP protocol from scratch

This is a compiler written from scratch in C

C Compiler This is a compiler written from scratch in C, with fully supporting C18 as a goal. It can currently compile itself, and most simple program

Creating sepia, reflection, grayscale, and blur filters from scratch and returns a modified image

image-filter Created sepia, reflection, grayscale, and blur filters from scratch and returning a modified image Directories: images: contains sample i

Developing a Drone from scratch in ROS Gazebo
Developing a Drone from scratch in ROS Gazebo

Project Building a drone and developing its control system. Table of Contents Project Table of Contents About The Project Tech Stack File Structure Ge

Project for C programming class building a casino that includes blackjack, slots, and scratch offs.

Casino Project for C programming class building a casino that includes blackjack, slots, and scratch offs. Project description This project will requi

Building a basic logger from scratch using the C programming language.

Logger Building a basic logger from scratch using the C programming language. Compiling and Running the program: Using the gcc compiler: gcc example.c

Wireframe rasterizer built from scratch (using MLX) in C
Wireframe rasterizer built from scratch (using MLX) in C

Fils de Fer Project Goal This project is about creating a simplified graphic “wireframe” (“fils de fer” in French, hence the name of the project) repr

Template library and blog that explain how JSI modules are built from scratch in React Native

react-native-jsi-template This is an example library that explains how anyone can build jsi modules from scratch in React Native. This code is written

A Minecraft like game with basic rendering, movement, block placement.. All made from scratch
A Minecraft like game with basic rendering, movement, block placement.. All made from scratch

Voxel-Game-Demo A Minecraft like game with basic rendering, movement, block placement.. All made from scratch Downlod Pre-compiled binaries (executabl

PastaOS is a simple open-source kernel written from scratch for didactic purposes

What is PastaOS? ================ PastaOS is a simple open-source kernel written from scratch for didactic purposes. The main goal of this project i

This repository is for my coding practice, making a text editor from scratch in C.

text-editor-practice This repository will contain my coding practice, making a text editor from scratch. I based this practice from this wonderful res

Comments
  • macOS OpenGL fixes

    macOS OpenGL fixes

    Leaving this as a draft PR, because:

    1. GLSL version needs to be #version 330 core, but @rexim's machine doesn't support it
    2. Not sure if this still works on Linux, because I don't have a linux machine with GPU

    Apart from that, these fixes allow the game to run on macOS (provided it builds -- see #54)

    opened by zhiayang 1
Owner
Tsoding
Recreational Programming
Tsoding
Well I'd like to test myself how good I am before making something massive :">

Pratice-Cpp Well I'd like to test myself how good I am before making something massive :"> Before I upload something special, that I'll release in my

Harshfeudal-Coding 2 May 6, 2022
Ghidra rewrite in C++ for better performance and usability

Ghidra Plus Plus A rewrite of all but the core decompiler in C++ in the name of performance and usability. UNDER DEVELOPMENT, things are currently bei

null 11 Mar 6, 2021
Repository for the taproot-based rewrite of our 2021 development platform

taproot-mdev2021 This is a blank project fully configured for use of Taproot. It is designed to be a starting point for your own RoboMaster software p

TAMU Robomasters 27 Dec 28, 2022
A rewrite of the old legacy software "depends.exe" in C# for Windows devs to troubleshoot dll load dependencies issues.

Dependencies - An open-source modern Dependency Walker Download here (If you're running an AV, use this download instead) NB : due to limitations on /

null 5.8k Dec 29, 2022
3D engine from scratch (without OpenGL or any other 3D graphics library)

Simple 3d engine based on SFML library. I tried to make this engine powerful and easy to understand.

Vectozavr 64 Dec 10, 2022
A simple Unix like operating system from scratch.

HOS-x86 an x86 operating system written from scratch How to Build? Currently you need NASM, GCC and QEMU to build the image file. Install the packages

Jayachandra Kasarla 15 Feb 7, 2021
This is the source code of SATCH a SAT solver written from scratch in C.

The main purpose of this solver is to provide a simple and clean code base for explaining and experimenting with SAT solvers. It is simpler than the source code of CaDiCaL and of Kissat in particular, while still featuring most important implementation techniques needed to obtain a state-of-the-art SAT solver

Armin Biere 73 Dec 16, 2022
Minimal Linux Live (MLL) is a tiny educational Linux distribution, which is designed to be built from scratch by using a collection of automated shell scripts. Minimal Linux Live offers a core environment with just the Linux kernel, GNU C library, and Busybox userland utilities.

Minimal Linux Live (MLL) is a tiny educational Linux distribution, which is designed to be built from scratch by using a collection of automated shell scripts. Minimal Linux Live offers a core environment with just the Linux kernel, GNU C library, and Busybox userland utilities.

John Davidson 1.3k Jan 8, 2023
This is an experimental OS-from-scratch project. Just for demonstration, not useful at all.

OS Playground This is an experimental OS-from-scratch project. Just for demonstration, not useful at all. Different from OS in other projects, this OS

null 5 Nov 5, 2022
A unix operating system made from scratch using c++

pranaos A unix operating system made from scratch using c++ Dependencies g++ version should be more than 10.0.0 ninja gcc compiler needed prana os is

Krisna Pranav 16 Nov 9, 2022