Advanced Raycasting

0.8

By drummyfish, 3 weeks ago

Controls: D-Pad: [Arrows / WASD] - A: [J] - B: [K] - Menu: [U] - Home: [I]
Enjoy games at full speed with sound and lights on the Gamebuino META!
Emulator by aoneill

UPDATE:

Since a few people liked this, I have now ported all three demos plus the hello world program, made a GitLab repo


https://gitlab.com/drummyfish/gamebuino-raycasting ( this website doesn't support adding a GitLab repo, only GitHub :-[ )


and cleaned the code a bit. Hopefully it can be useful to someone who wants to make a game based on this.


The bin uploaded here is demo1, but you'll find all 4 bins in the GitLab repo.

--------------

Very WIP port of my raycasting demos from Pokitto as a proof of concept.


Hello all! Regarding the demo, please read this:


I am new here. I don't own Gamebuino yet, but am planning to buy it (probably Christmas). I do own other open consoles though. This is a super quick attempt at trying to run one of my demos on Gamebuino emulator. Don't take the source or the bin seriously, it's only a proof of concept ATM. On the Pokitto console, the demos look like this:





My wish is just that there is a raycasting engine for everyone to use, the sooner, the better.


Unless you want to wait for me to get my Gamebuino and finish some project I'm busy with right now, some experienced folk here should port this in a nice way. It should be easy. What you see I've been able to do within an hour, including setting up the Gamebuino environment and learning the API.


The demos can be found here. They use a C library I made for the demos, but I made it specifically so that it is portable, independent of any platform, fast and simple to use. I've already tested it on multiple very different platforms. No need to change anything in the library. Just take the frontend source code (*.cpp, *.hpp) and change the API calls to Gamebuino calls. Start with helloRay.cpp as it's a very basic program to show you how it all works. You can take inspiration in the source I uploaded here.


DO NOT FORGET TO ADD -O3 FLAG TO COMPILER FLAGS! (otherwise it's gonna be slow) If you don't know how, Google around a bit... it involves finding a file named platform.txt under some Gamebuino subfolder and editing the flags in there... then don't forget to check the compilation console output to see if it's actually using the flags (turn verbose compilation on in the Arduino IDE).


(To convert textures to the format used in the source code use the Python script in the original demos' repo, it's all documented in there.)


If you figure this out and wanna just make a game with it right now, by all means go ahead please! That's the goal here. It's all CC0, you do NOT need any permission or giving any credit (it's nice of course, but not needed), just take it and use it. (All on your own risk thought, no guarantees whatsoever.)


From a quick look it seemed like META is similar to Pokitto, so I think it should run comparably as fast (Pokitto has a bigger resolution and still I've been able to get as much as 60+ FPS). But if not, there are ways to lower the quality in order to improve performance -- e.g. if you disable floor texture coordinates and apply some horizontal subsampling, you should get this running reaaaaly fast.


PLEASE, if you do, share your code under some free and open source license. Thank you :-)

Last comments

drummyfish

NEW 3 weeks ago

 doom like game

There is a project, Freedoom, which offers free resources (sprites, textures, sounds, ...) for such a game. I suggest if anyone wants to make a doom clone, no need to start from scratch, just reuse these assets.

drummyfish

NEW 3 weeks ago

I've ported all the demos now! I can only upload 1 bin here, but you'll find all of them in my repo.

Party_Pete

NEW 3 weeks ago

I hope this engine takes off on Gamebuino!