fosstodon.org is one of the many independent Mastodon servers you can use to participate in the fediverse.
Fosstodon is an invite only Mastodon instance that is open to those who are interested in technology; particularly free & open source software. If you wish to join, contact us for an invite.

Administered by:

Server stats:

9.8K
active users

#agonlight

1 post1 participant0 posts today

Sprites and tiles proof of concept for #AgonLight - it'll support multiple tileset layers of up to 256 tiles each, sprites are currently drawn using the bitmap features. My build system optimally crops them and creates offsets around an origin point. At present it is mostly agnostic to the code running on the ez80, I wrote some trivial Forth to read files of compiled VDP commands and dump them to UART.

Pleased to have contributed to the new #ZealOS-8-bit release, version 0.5.0. For this one I will make a pre-built image for ease of use of #AgonLight so people can more easily try it out and contribute. In the meantime (or if you're using Zeal 8bit hardware!) you can grab the latest sources and build your own from github.com/Zeal8bit/Zeal-8-bit

GitHubRelease Zeal 8-bit OS Release v0.5.0 · Zeal8bit/Zeal-8-bit-OSZeal 8-bit OS is still a beta version, so it is not complete and may still have bugs. The Operating System is divided in two parts: the kernel, common to all targets and the targets implementation....

Working on making my telnet for #AgonLight more sane, it's a little better than it was but still has a lot of problems. It's hard to test something when the results depend on the network traffic flow at the time, and many components out of my control. Anyway, for a first time I did manage to get some almost readable data from @Wintermute_BBS RC BBS - thanks for having this running! It feels awesome having an #ez80 talking to a #z80 on the other side of the world!

Tilemap Game Engine Development – Agon Light C Programming

In this video, I’ll show you how I built a tilemap system from scratch in C for the Agon Light, and integrated it into my existing game engine. Getting the physics engine to handle collisions with the tilemap was no easy task, but I’ll walk you through how I made it work. On top of that, I explore some game design, sketching out ideas for where the game is heading.

https://youtu.be/qKVcIFhsZY0

Last time I made a basic physics engine that could cope with collisions against different physics bodies. This time I’ve been adding the ability to have a level that is made from tiles, some of which are solid.

Making a tilemap for a game is a traditional way to represent the game’s background and scenery. Testing for collisions with tiles is quite an easy thing to do, but does require more care when a physics library is involved. Normally the sprites simply look up their position in the tilemap and if there’s a solid tile under them, the sprite system moves the sprite to the closest edge before drawing it.

With a physics engine the physics system also needs to know about the tilemap. However what I didn’t want to do was tightly couple the sprite system, physics system and tilemap system together. What I chose to do was make the sprite system in control of everything, and it works out when to call the physics code, or when to move the sprites out of collision with the tilemap.

After a few false starts that did have some amusing bugs I managed to make it work.

This is one of those programming challenges that seems impossible to achieve, and for a while I did wonder whether I’d created a mess that I couldn’t solve. However with some careful redesigning of the code I made it all work in a very satisfying manner.

To save a lot of time and effort I used the tile editing tool Tiled which exports its data as easy to read XML files

By reading this in with some custom Python code, I was able to create my own map data file format for reading into the game

The remaining task was to test it on the hardware. Unfortunately this is where I encountered several showstopping bugs to do with loading graphics which needed solving

and then a severe performance issue which lead me down the path of dirty rectangle optimisation.

By the end I had a robust and reasonably performant sprite system that had physics and a tilemap.

Now I have the majority of the basic game engine working, I can focus on designing an actual game, and then starting to make parts of it. It’s still a complete work in progress and I am sure things will continue to evolve over time.

#AgonLight #CProgramming #GameDesign #Programming

ncot.uk/?p=2237

🧑‍💻Tilemap Game Engine Development – Agon Light C Programming💾
In this video, I’ll show you how I built a tilemap system from scratch in C for the Agon Light, and integrated it into my existing game engine. Getting the physics engine to handle collisions with the tilemap was no easy task, but I’ll walk you through how I made it work. On to
Read More 👉ncot.uk/tilemap-game-engine-de
#AgonLight #CProgramming #GameDesign #Programming

Continuing to build on my #AgonLight Telnet using the @olimex UEXT wifi module, I can now #telnet to a number of #BBS services over the internet and use my font of choice while doing it. There's still a bit to go, but I wouldn't have gotten here without all of the cool features @stevesims keeps adding to the Agon VDP, and of course Nihirash who came up with a native #Gopher browser, as well as those who continue to run BBS's. Shoulders of giants in #retrocomputing - it really is a team sport!

Today's #retrocomputing has been working on the #AgonLight #fonts to find a good selection of distinct fonts that I could make available in an easy to use package primarily for #interactivefiction. While they don't support the accented characters, I'm pretty happy with the all-in-one binary I've built. I'll post some related IF/text adventure screenshots later. Thanks to @mrplado for his original code and @damieng for his excellent font selection!

I've improved the #AgonLight implementation of Daniel Martin's #TRS-OS to make a more authentic #trs80 experience. The main thing I wanted to improve was the display capabilities. Steps taken (with thanks) to get the authentic output:
1. Obtain + fix the correct font
2. Load the font into #Agon
3. Modify the VDP to allow buffered fonts in Terminal mode
4. Modify the bootstrap and terminal host software to support the new code and use all 8 bits.
5. Check out before and after
#retrocomputing

Writing a game the hard way – from scratch using C – Part 2

Join me on a journey as I attempt to write a game for my Agon Light using nothing but raw C programming. In this second episode I figure out how to make a very basic 2D rigid body physics system work.

It doesn’t matter if you don’t have an Agon Light, I’m bringing you along for the ride. We’ll be looking at how games deal with the objects they manipulate, and how to detect and resolve collisions in 2D.

The code for my game library that I’m building is available on Github
https://github.com/ncot-tech/agon-template

https://youtu.be/xwzg1wYYKrU

This video contains an example of how I implemented a very basic 2D rigid body physics system with collision detection and resolution.

The 2D physics uses basic Euler Integration and Newton’s laws of motion, as explained in many places online. Here are a few resources I came across

It also makes use of fixed point maths since the eZ80 in the Agon Light that I am using does not have an FPU.

#AgonLight #CProgramming #Graphics #Programming

https://ncot.uk/?p=2179

Got my Agon Light 2 computer recently and installed CP/M on it (github.com/julian-rose/Agon-CP). Great little machine, I am surprised how fast it is.
It self-compiles #T3X 16 times faster than a 4MHz Z80 (and clock speed is "only" 5 times faster). It even runs Evazor smoothly! I have added a CP/M binary to the Evazor archive in case you want to try it.
t3x.org/t3x/0/programs.html#ev
#agonlight, #retrocomputing, #CPM, #eZ80