It's the best strategy he could manage, releasing a demo to public before finishing the work dissipates the energy too early and the final game will never show up
I find it fascinating because about 18 years ago I was making all the graphics for a game like this but set in space, 240 colour pallet 2D game and bit graphics but at a larger scale. I made hundreds of spaceships, little plannets, buildings inside and out and all sorts of units from primitive to modern day and futuristic bassed on the level of advancement for the humanoid races. I dont think I'll ever get the time or skills to bring My game to life but if any programmer wants to code My game that ould be cool.
Having written 6502 and 286 assembly, the 286 is much more cycle efficient than a 8088. I could say, closer to 6502, but handling 16 bits in one instruction, so fewer instructions needed. 1 mhz of 286 beats 1 mhz of 6502 any day.
I know a lot of ancient games used to use pre-baked way points into each map, so for long range travel, they knew how to get from A to B without having to do runtime pathfinding. You could still use any algorithm you wanted (even A*) if you only ran it once at design time in your map editor. That doesn't account for runtime terrain changes (i.e.building structures), but if you look at Warcraft 1 and 2 for example, the AI was programmed not to build in such a way that it couldn't path around it's own structures. And for enemy structures, it could just attack them. For a way point system, as long as there are 5 to 10 way points in each map and the units can use the "dumb" algorithm to get to a way point and then follow it from there to the macro point it needs. Once it gets to the prebaked macro way point, it can go back to dumb path finding to get to the micro destination. If you need a lot more way points, you can store them as a b-tree or quad-tree (which can be searched on a slow computer much faster than an array, it's how doom was able to run on such slow hardware).
It is strange that he made no comment about considering more sophisticated pathfinding solutions like this. Maybe he had reasons for not using pre-baked pathfinding, but it sounds like he never even considered the possibility.
Thanks, I was wondering how it was done. It makes so much sense. You know highway 101 takes you near the destination, so you first look for the ramp, drive down, take the exit, and then look around locally (just translating to my own lanugage :D )
Just remarked regarding waypoints before seeing this post. Your post is much more detailed and takes it a bit further. I played a lot of WC1 and 2 back in the day. I never thought much about that.
I was just playing Warcraft II and I gotta say your pathfinding looks way better. In WC when you try to send a squad of units across a bridge, one guy will block it and the rest will run in the opposite direction. So... great work!
For those who don’t know what he is talking about by 5 games when he only mentioned 4 in the video: in 2009, he made Planet X1 for the commodore Vic-20. It needs a 32k ram expansion
@@bland9876 It's fully playable, but he had planned to add stuff like 2 player mode and the ability to build defenses for your base. You can find an old video of him showing how the game works.
This is incredibly made, I wish more modern games had smart design like this. Sadly its harder with differing computer architectures but ive always wondered how far a modern pc could go with old school style techniques like this
Offering an in house emulator is just absolutely huge for indie and even more professional content production, having tools that are designed with the actual creator of the system to be machine accurate is an immeasurable aide to people who have access to a computer but may not have the funds to acquire the real x16 hardware. I know you do a LOT of work to make sure these are available for people who want them but having seen many of your update videos I understand why there may also be times when they simply aren't available. You knocked it out of the park with a modern micro with user developed content as a primary feature that also has power us nerds could only dream of having at home back in the 80's. Your effort and care for this niche is definitely apparent and I can't speak for everyone but I'm sure most would agree, it is very noticed and appreciated.
12:58 "The game becomes unplayable" ... it still looks pretty smooth to me. I remember playing Dune 2 on an Amiga 500, which slowed down to 1 FPS in heavy combat scenes. We still enjoyed it.
@@Iliek Or maybe he just has focus, good time management skills, self-control, and doesn't burn all his time doing moronic things like watching TikTok videos.
I really enjoy the explanation of pathfinding and how difficult it is. It's time like this when we realize memory plays such a massive role in how things work. If the unit just remembered past events, it could be trained to get the right answer much faster, but memory doesn't allow it. About 23 years ago (wow I'm old), I remember a bot for Counter-Strike 1.5 called nnbot - the Neural Network Bot. Unlike other bots, nnbot did not require waypoints. You didn't need to map out anything for it. Just let the bots play the map with you, and they would learn the map. They would remember things like where on the map they would see enemies, where they were when they got shot, where they were when they died, etc. They would eventually find hostages or find the target and then remember it for next time. It was incredible, but that kind of machine learning can only exist with memory and save files.
The pathfinding discussion reminds me of the Dune series, where it was frequently possible to trap both enemy units and your own by simply building a really long wall with multiple curves. A human player could just direct their units to intermediate points to bypass the pathing limitations, but enemy units would drive into a corner and get stuck or repeatedly drive back and forth along the same section of wall, removing the need to actually do anything to defend your base.
Where did I miss that your games were on Steam? For some reason i've never even thought to look there. Well thank you for saying so and X16 is already on my wishlist!
You're amazing!! So proud of you!!! Just incredible to watch you over the years and follow your journey through development as well as the upgrades to the studio, etc! Hope you have nothing but great success with all you do and have a wonderful weekend. Thank you for all you do. 😁
for an idea of how hard a problem pathfinding is, the whole reason "actions per second" is an important metric in esports RTS games is that Starcraft had pathfinding no better than this in 1998 and the best players got around this by clicking move many times a second to force a recalculation of the pathfinding each time so units wouldn't get stuck or head off in the wrong direction.
@@Loki- i haven't watched esports for a few years but last i checked LOL and SC2, people still care in modern titles even though it's not necessary for pathfinding any more. people will still click a spot on the ground to move 10 times a second to keep their apm high
Been following this channel & the CX16 project for awhile now. Just preordered the dev edition of the x16 a few days ago, really looking forward to Feb 2024 to get engrossed in the world of 8bit computers, as I was born in the days of Win2000.
While it's not exactly akin to the type of RTS games you are likely referring to, a modern rts game that I think is absolutely head and shoulders above the standard of today is "Gates of Hell: Ostfront". The game is a spiritual successor to the "Men of War" or "Soldiers" of the past and as such feature the "direct control" feature that made those previously mentioned games stand out from the crowd. The quality of everything from the models and sound design is exemplary and has recently been upgraded massively as part of the free content patch they've released in conjunction with the second full expansion to the game, "Liberation", which shifts the focus from the eastern front to the western front and includes America as a playable faction. The previous expansion was focused on the very seldom featured in video games, winter and continuation wars that took place in Finland and as such includes Finland as a playable faction. One thing to note is that each faction (where contextually appropriate) not only has differing armies for the early, mid and late periods of the war, but there are different load outs of troops, vehicles and equipment depending on the focus of your forces, be it "offensive", "defensive" or "irregulars" and in some instances/combinations a fourth option for "support" is availability. The game has a very healthy multiplayer scene and supports up to eight players in a 4 Vs 4 setup. This is also achievable in a singleplayer setup utilising bots. Speaking of singleplayer, each faction has a campaign to play through and a myriad of so called "skirmish" like missions to play. This is further expanded by the exceptional modding scene for the game. Which runs the gambit of entire campaigns, mods that add new factions (the best known likely being "Valour" which adds the UK, Japan, Hungary, Italy, France and Poland into the mix, all of which are supported for single player by further mods. Anyways I have been talking for too long. All that's left to say is that I highly recommend it. The developers are highly active with the support of the game, frequently releasing patches and listening to community feedback, in addition to their work towards the production of further expansions. It is imho fairly priced (as are the expansions, relative to the content they contain) and most certainly value for money. Sorry for the essay I ended up writing, but if you do check it out I don't think that you are going to regret it! All the best to you and have a great day!
im very happy you've decided to keep posting videos about your games. i love watching people create stuff and how they done it. and your game is 'unique' (in that other people make their games), and your desicions are unique too, so it's always interesting. your experince is educational and inspiring for people, even if they make games or not.
An unexpected treat. Thanks, David. An aside: I can't help wondering why we almost never see him in his actual studio these days. He's almost always in the room next door when we see him now. Not that I'm complaining! I just think it's curious.
There were a few 8-bit RTS games back in the day. I remember Carrier Command was downconverted from 16-bit and actually worked really well on a 128k Spectrum. One game worth retro-ing over is 1987's Nether Earth, released on the Spectrum 48, the Commodore 64 and the Amstrad CPC 464. It was a 3-D isometric game taking place over a strip of land, some 8 character squares wide. You had to build robots that went forth to capture and take over neutral and enemy robot factories, as well as battle the enemy robots. Of course the enemy was doing this at the same time. You had various types of robots to construct, and you had to balance time, resources and combat. It was way ahead of its time back then.
This game reminds me of Modem Wars on the C64 (back 1989) where you can play RTS with a friend with a modem. I think that would be a nice idea for the next update for this game and even have it work thru an emulator for us that don't have an X16. I guess you could downgrade the version to work for many old 8bit systems. Would be fun if there was a server and you can have duel matches sort of like those Command N Conquer... I liked Dune 2 RTS more honestly.... keep up the good work, impressed....
I'm a physicist and I have knowledge in CS. I watched all your videos even though I didn't live the time of 8 bit computers (I played the NS clone in Brazil master system). I just wanna say your videos are awesome.
Not gonna lie, these videos are kinda giving me ideas and making me want to get ahold of one of these old computers and try my own hand at making my own projects.
You should - I always wished to could make games for older systems, the Evercade Home Heroes is particularly great. New games for old systems is such a genius idea I love them all :)
12:32 As mentioned by some other commenters (including @fungo6631 ), the PC-Engine/Turbografx-16 was 65xx-based, and is broadly comparable to the Commander X16 in terms of performance, so it could be a port target. Its small 8 KB of general-purpose RAM could be a challenge, though its CD add-on the CD-ROM² System was fairly common and could supply what's required in addition to allowing a Red Book audio soundtrack. And if that couldn't do it, it has 2 additional (though rarer) RAM upgrades, the Super CD-ROM² System and the Arcade Card. (The latter two when combined with its failed high-end variant the Supergrafx form the most powerful "period" 8-bit computer.)
Seeing your text file manual I was taken back to the first time I saw the Civipedia in Civ1. It could be fun if your manual could be accessed from a pull-down menu (Planepedia), saving the game state and switching to the Manual application freeing resources.
It's probably been mentioned, but the BBC master turbo has a 4mhz 65c102 copro and up to 512kb of ram. But the gfx would be 160x256 in 16 colours but you could use an early 80s palette extender or a modern video nula to choose them from up to 4k colours. The original 2mhz 65sc02 would have to do the gfx and sound. There were also several mice available for it as it was marketed as a business machine.
I can't stop being amazed by you! I am especially pleased with your attention to small details, so that people would enjoy playing your game. I think this is how all games should be done :) Thank you!
Black Raven was a whole Warcraft clone with 32 levels (+many user levels) running on ZX Spectrum 128K (and colour version running on ATM-Turbo 2 from 1992), made in 1997 (colour version later). Its pathfinding was simple: a unit moves by the direction until it hits an obstacle. it tests which way it's shorter to get to the other side, and does so many steps in this way. then it again moves by the direction. its opensource.
Your path finding script suprized me, I remember how annoyning it was on older RTS game's (Warcraft 2, Age Of Empires etc). You know, You gave them a command to go a bit farther position to do something else in the same time... and units gets stuck (sometimes in quite random position)
I gotta get me one o dem x16's so's I can do my Metroidvania... Love what you're doing David - can't express enough how much a nerd king trophy this machine has earned you!
Nice! I hope someone ports this to MSDOS or some other systems, especially the Mega65 as you mentioned as that platform does seem to lack any specific software. Also it's just nice to see someone make a strategy game for these old computers. You see so many platformers or bullet hell arcade style games but very rarely does anyone ever make strategy games.
I really doubt there will be any Mega65 ports coming from Dave, this comes from the old days where a bunch of retrocomputer projects came thru his hands to be chosen as his "dream computer". In the very end he decided to build his own. I think that may give out the source code for whoever wants to do it, but I think that he prefers finishing other software for the Commander X16 or making other ports for real legacy hardware.
Another great entry. My suggestion for any update. When a unit can't find the way, instead of just simply saying, "I need help", how about it stays in character. Like if its a robotic unit, it says, "GPS malfunctioning, please assist", "Commander, it's my first day, how do I get there again?". I feel like you can add some humor, or at least keep the units in character with random responses like that.
As some one who has followed all the games you made and bought the snes and genesis copys of Petscii robots, i have to say thanks , you gotten me interested in game development on 80s and 90s tech , even though im only good with the music( ive done music for 9+ years now )and color side for now ( as a 21 year old gen z kid , you have inspired me and a others ) hope more people make games as complex as what youve made in the future
It gets better, looks like NEC even released an official mouse for the PC Engine back in 1992! (it's used by the Super CD-ROM² addon's UI and a few games including the transport management game A.III and the PC Engine port of Lemings) It's a ball mouse with 2 regular and 2 side buttons. I bet it's super rare so a PS/2 adapter would be needed, but it's at least plausible.
Looking forward to getting a x16, hopefully next year once I finally get moved and have some free time again. Also loved the song at the end which sounds very similiar to the chess scene in the 'Triton- Crystal Dream 2' scene.
Wow this is so awesome!! I love the graphics are so great, Love your sprites and nice choices for cutscenes too. This is more of a challenging project that modern coders could understand with memory, cpu and code limits for these older system. Keep doing what you do, and happy holidays to you and your family!
There are several thousands of ZX Spectrum NEXT users after their second Kickstarter campaign. And there are talks about the third one. That machine would run that game for sure (FPGA implemented up to 28 MHz Z80, 256 colour graphics, at least 768k of RAM). I know it runs another CPU but there was a ZX Spectrum conversion of your PETSCII Robots, maybe they could help. I've got my ZX Spectrum NEXT recently and as far as I enjoy the machine and the old software I think the native games for the platform are not that impressive. The RTS would be a hit in my opinion.
All the new KS2 Nexts are 2MB of RAM thanks to the stretch goals of the campaign being met but even KS1 models not upgraded should have no problems with a port of this game 🙂
The problem is the Next uses the Z80N processor. To port a 6502 game would require a ground up re-write. If some one is out there to do this then maybe David would be willing to support.
@@TheBroz The game has been ported to the 8086 processors which are very similar to the Z80 as the Z80 was an alternative to the 8080. The Z80N is a modified version of the Z80 with extra functionality that the Next makes use of.
Hey David, regarding the path finding algorithm, three different techniques come to mind: 1 - Main highway path: Predefine a "main highway path" across the level. Then, entities only have to "on-ramp" and "off-ramp" from/out of it by using the simpler greedy pathfinding algorithm you currently use. 2 - Sector&portal based: Dissect the map into convex regions (sectors) and store the connections between them (portals). Then, entites can A* on the sector graph and use the simpler greedy pathfind algorithm inside each sector (which is always convex, so the greedy pathfinding method always works). The main idea is that the number of sectors is way lower than the tiles on the map so you don't have to A* on the entire tile set. 3 - The fancy one, use a quadtree: precompute the quadtree of the walkable area of the map. To long to explain here, but you can search it online. This one is really fast. :-)
Thanks for the almost year end update. It is an amazing amount of work that has gone in to developing the game. The cycle counts of instructions between processors is interesting. I'm implementing a Forth like language for a 6809 processor. I think the 6809 at 2MHz would run faster than an equivalent implementation on a 68000 running at 10MHz. BTW, @11:52 the title of the guide in the rectangular box has a typo. "Refernce" should be "Reference". @11:55 in the answer to the second question "Therefor" should be "Therefore".
One suggestion to pathfinding is that when you click on a instance to move it, have the mouse "paint" a line as it is moved on map. If it stumbles into a wall, it stop panting (and clicking down will select the location where the line ends). This will force the player to kinda "roughly" paint the path you want the instance to take, and the line will always "snap" to habitable space. Once you are satisfyed with the path, you click down, and it will take exactly the path shown on-screen. Note that you dont need to paint the path at al, you could directly move to the target, then you will see a "string" from the instance you want to move, and to nearest "difficult obstacle". Then you have to move mouse back to that obstacle, then move mouse around that obstacle, and then try moving mouse to target again. When you see the wire being pulled all the way to target, then you know the pathfinding algoritm have found a suitable path. This should make it work with that "crazy" map perfectly, user just have to move mouse roughly inside the maze (not exactly, it just takes closes habitable space in the general direction of mouse pointer). This means the pathfinder algoritm will then work while selecting where the target should go, like the mouse is the target, the line is the instance that wants to move to target. This also means the player don't need to wait until the instance tries all possible random permutations, instead it will do it like 100x faster while painting, and once it found a path, it will be shown on screen. 3 advantages with this is: Player gets immediate feedback if a area is completely cordoned off, since the line will stop at a wall or a tree, and player has to "manouver around" it with the mouse before selecting the path. The second advantage is that the player will during target selection, also select the rough path, so they can if they want, avoid enemies. The third advantage is that instances never have to enter lost mode if map doesn't change, as the path have already been determited, The first disadvantage is that if map updates after path selection, then instances will be stuck. But here the "Im lost" mode could work out to have player to paint a new path. The second disadvantage is that you need to store in RAM, the whole path of all movement request queued up by player. But here you could propably work out a limitation that will feel OK, that prevents RAM from being overflooded with long path requests. Think how the "lasso tool" in photoshop work, but where the "lasso" is pulled against habitable space, so you only kind of roughly need to trace out the path, it will find the rest of itself, and if its a simpler image, you don't even need to trace out the path, just move the mouse to other end of image and it will find the path itself. For sprites, you need either 4 sprites (one with a line ending, one with line taking a left turn, one with line going straight, and one with line taking a right turn) if the sprites can be programmatically turned. If they can't be turned, you need 10 sprites, 4 turns any direction, 4 end-lines and 2 straight any direction.
The missile knows where it is at all times. It knows this because it knows where it isn't. By subtracting where it is from where it isn't, or where it isn't from where it is (whichever is greater), it obtains a difference, or deviation. The guidance subsystem uses deviations to generate corrective commands to drive the missile from a position where it is to a position where it isn't, and arriving at a position where it wasn't, it now is. Consequently, the position where it is, is now the position that it wasn't, and it follows that the position that it was, is now the position that it isn't.
SNES with mouse and option for 2P controller flat on the table for issuing commands like a keyboard would be neat in principle if straightforward to implement. Forgive me if you've already done or thought of this before.
I had no idea your games were on Steam too! The only one I actually got a physical copy of was Petscii Robots simply because I have a Sega Genesis I could actually play it on. Definitely gonna have to pick up the Planet X games on Steam too, been wanting to try those for a while now.
Always interesting, thanks. FWVLIW: -If you haven't already tried the old 'follow a wall' solution to path finding when stuck might work and not be too processor intensive. -Apart from having an 8 colour screen the BBC would have no trouble as v. fast CoPro's with lots of RAM are common on the system.
I am curious about the pathfinding algorithm, and I was curious if you had considered creating a queue of paths that need to be found and handle something like one per tick. It seems like it you did that you wouldn't actually need to run the pathfinding algorithm for every unit only the ones whose paths needs to be updated, and each path could be stored in one of 256 move queues which could be limited in size to something like the width of the map. And then only when the unit had finished going through all the elements of its pathing buffer would it need to add an entry in the queue to redo something like a bfs traversal of the map toward it's goal.
You do fantastic work, everything always looks way better than it should for the hardware its running on. You should leave the black and white version in as a little eater egg.
As someone who is trying to learn programming for the x16 I would love to see more technical breakdowns of the game like how did you optimise to get 60fps and what Vera tricks did you use etc?
I actually implemented an A* algorithm on the C64 as an exercise, and it's definitely never going to be fast enough for realtime use. You can amortize the costs over many frames which will help, but not for this amount of units.
For these kinds of games, I'd use Tower Defense Path Finding Algorithm. You get to calculate all the same kind of units simultaneously, and you can split the calculations over several steps as well.
Inspiring. I want to write a turn-based game for the NES someday, but I have a long way to go. I've messed around a little with programming for the Atari 2600, and boy this stuff is daunting.
Now I'm really starting to think David's secret plan is to recreate StarCraft on a 8-bit system. Which is an awesome plan. Jokes aside, great work! Really digging Planet X16.
Looks very nice! The IIgs has no tiles or sprites and would have to generate every graphics-feature in bitmap mode. 2.8MHz might not be enough to allow fluid animation like shown in your demonstration. Additional memory might help as pre-calculating certain graphics could reduce the load on the cpu (4mb is easily obtainable and 1Mb can be seen as normal). An accelerated IIgs is more realistic with 7MHz, 8MHz or even 15MHz creating a lot of needed headroom. The SNES is a good target in terms of 8bit retro-hardware. Its tile and sprite-support is very good but main memory is very limited and a bit of software tweaking or SNES specific tricks might be needed.
I am very interested, I'll take a look at running the game with the emulator. Might buy an X16 at some point since I am interested to see all the work you guys have done. The touch of a unit calling out for help when they get stuck is cute, loving that!
The 8 bit guy just casually dropping a video about the most complex game he ever made without any prior promotion. Legend.
It's the best strategy he could manage, releasing a demo to public before finishing the work dissipates the energy too early and the final game will never show up
Best kind of UA-cam. No hype. No Premier.
I find it fascinating because about 18 years ago I was making all the graphics for a game like this but set in space, 240 colour pallet 2D game and bit graphics but at a larger scale. I made hundreds of spaceships, little plannets, buildings inside and out and all sorts of units from primitive to modern day and futuristic bassed on the level of advancement for the humanoid races. I dont think I'll ever get the time or skills to bring My game to life but if any programmer wants to code My game that ould be cool.
Having written 6502 and 286 assembly, the 286 is much more cycle efficient than a 8088. I could say, closer to 6502, but handling 16 bits in one instruction, so fewer instructions needed. 1 mhz of 286 beats 1 mhz of 6502 any day.
Indeed. Otherwise, I would have compared it to a 32 Mhz 8088.
Tbh old assembly code always intrested me it would be cool to learn how to write and use it
Six day old comment??
lol no it doesn’t
Oh, my... let me just disagree :)
I know a lot of ancient games used to use pre-baked way points into each map, so for long range travel, they knew how to get from A to B without having to do runtime pathfinding.
You could still use any algorithm you wanted (even A*) if you only ran it once at design time in your map editor. That doesn't account for runtime terrain changes (i.e.building structures), but if you look at Warcraft 1 and 2 for example, the AI was programmed not to build in such a way that it couldn't path around it's own structures. And for enemy structures, it could just attack them.
For a way point system, as long as there are 5 to 10 way points in each map and the units can use the "dumb" algorithm to get to a way point and then follow it from there to the macro point it needs. Once it gets to the prebaked macro way point, it can go back to dumb path finding to get to the micro destination.
If you need a lot more way points, you can store them as a b-tree or quad-tree (which can be searched on a slow computer much faster than an array, it's how doom was able to run on such slow hardware).
Under rated comment
It is strange that he made no comment about considering more sophisticated pathfinding solutions like this. Maybe he had reasons for not using pre-baked pathfinding, but it sounds like he never even considered the possibility.
Thanks, I was wondering how it was done. It makes so much sense. You know highway 101 takes you near the destination, so you first look for the ramp, drive down, take the exit, and then look around locally (just translating to my own lanugage :D )
Just remarked regarding waypoints before seeing this post. Your post is much more detailed and takes it a bit further. I played a lot of WC1 and 2 back in the day. I never thought much about that.
What you're describing is a flow field, isn't it?
I was just playing Warcraft II and I gotta say your pathfinding looks way better. In WC when you try to send a squad of units across a bridge, one guy will block it and the rest will run in the opposite direction. So... great work!
For those who don’t know what he is talking about by 5 games when he only mentioned 4 in the video: in 2009, he made Planet X1 for the commodore Vic-20. It needs a 32k ram expansion
I don't think he really mentions x1 so I was like wtf did he start with x2 for?
@@bland9876 He probably doesn't mention X1 because he never quite finished it. I kind of hope he will one day, but I doubt it.
@@jokkemursula8731 oh he just left it as a tech demo?
@@bland9876 It's fully playable, but he had planned to add stuff like 2 player mode and the ability to build defenses for your base. You can find an old video of him showing how the game works.
This is incredibly made, I wish more modern games had smart design like this. Sadly its harder with differing computer architectures but ive always wondered how far a modern pc could go with old school style techniques like this
Offering an in house emulator is just absolutely huge for indie and even more professional content production, having tools that are designed with the actual creator of the system to be machine accurate is an immeasurable aide to people who have access to a computer but may not have the funds to acquire the real x16 hardware. I know you do a LOT of work to make sure these are available for people who want them but having seen many of your update videos I understand why there may also be times when they simply aren't available. You knocked it out of the park with a modern micro with user developed content as a primary feature that also has power us nerds could only dream of having at home back in the 80's. Your effort and care for this niche is definitely apparent and I can't speak for everyone but I'm sure most would agree, it is very noticed and appreciated.
12:58 "The game becomes unplayable" ... it still looks pretty smooth to me. I remember playing Dune 2 on an Amiga 500, which slowed down to 1 FPS in heavy combat scenes. We still enjoyed it.
Agreed. I don't mind the slowdown.
Your productivity never ceases to amaze me. Is there a moment when you're not doing stuff? Congrats on yet another amazing project
He's obsessed and will burn out
@@Iliek Dont you have somewhere else to whine? Edit: Nope, only your antisemitism and fake news you share. Nothing that makes you wonder.
@@Iliek Nice projection
@@Iliek Or maybe he just has focus, good time management skills, self-control, and doesn't burn all his time doing moronic things like watching TikTok videos.
@@Iliek well aren't you a lovely little prickly thorn. adorable!
I really enjoy the explanation of pathfinding and how difficult it is. It's time like this when we realize memory plays such a massive role in how things work. If the unit just remembered past events, it could be trained to get the right answer much faster, but memory doesn't allow it.
About 23 years ago (wow I'm old), I remember a bot for Counter-Strike 1.5 called nnbot - the Neural Network Bot. Unlike other bots, nnbot did not require waypoints. You didn't need to map out anything for it. Just let the bots play the map with you, and they would learn the map. They would remember things like where on the map they would see enemies, where they were when they got shot, where they were when they died, etc. They would eventually find hostages or find the target and then remember it for next time. It was incredible, but that kind of machine learning can only exist with memory and save files.
The pathfinding discussion reminds me of the Dune series, where it was frequently possible to trap both enemy units and your own by simply building a really long wall with multiple curves. A human player could just direct their units to intermediate points to bypass the pathing limitations, but enemy units would drive into a corner and get stuck or repeatedly drive back and forth along the same section of wall, removing the need to actually do anything to defend your base.
Where did I miss that your games were on Steam? For some reason i've never even thought to look there. Well thank you for saying so and X16 is already on my wishlist!
You're amazing!! So proud of you!!! Just incredible to watch you over the years and follow your journey through development as well as the upgrades to the studio, etc! Hope you have nothing but great success with all you do and have a wonderful weekend. Thank you for all you do. 😁
I am impressed by the bridge route finding. C&C I think was way worse in such situations.
Man, I love these gamedev-focused videos. So interesting!
for an idea of how hard a problem pathfinding is, the whole reason "actions per second" is an important metric in esports RTS games is that Starcraft had pathfinding no better than this in 1998 and the best players got around this by clicking move many times a second to force a recalculation of the pathfinding each time so units wouldn't get stuck or head off in the wrong direction.
So you mean apm **was** important. 👍
@@Loki- i haven't watched esports for a few years but last i checked LOL and SC2, people still care in modern titles even though it's not necessary for pathfinding any more. people will still click a spot on the ground to move 10 times a second to keep their apm high
I did the same with Warcraft/Starcraft. If I wanted my unit to go a specific path, I kept clicking 🫢
Great games 😬
2023 playing OpenRA, still playing harder to play smarter with pathfinding.:)
@@KX36 : If I recall correctly, at least in SC1 there was also a minor speed improvement with each click. Perhaps that continued into SC2?
This game looks awesome! You should be proud of all the hard work and problem solving you put into it.
Been following this channel & the CX16 project for awhile now. Just preordered the dev edition of the x16 a few days ago, really looking forward to Feb 2024 to get engrossed in the world of 8bit computers, as I was born in the days of Win2000.
As a longtime RTS fan, I'm always happy to see the genre getting some love.
Yeah Starcraft forever 🌟🌟🌟
While it's not exactly akin to the type of RTS games you are likely referring to, a modern rts game that I think is absolutely head and shoulders above the standard of today is "Gates of Hell: Ostfront". The game is a spiritual successor to the "Men of War" or "Soldiers" of the past and as such feature the "direct control" feature that made those previously mentioned games stand out from the crowd.
The quality of everything from the models and sound design is exemplary and has recently been upgraded massively as part of the free content patch they've released in conjunction with the second full expansion to the game, "Liberation", which shifts the focus from the eastern front to the western front and includes America as a playable faction. The previous expansion was focused on the very seldom featured in video games, winter and continuation wars that took place in Finland and as such includes Finland as a playable faction.
One thing to note is that each faction (where contextually appropriate) not only has differing armies for the early, mid and late periods of the war, but there are different load outs of troops, vehicles and equipment depending on the focus of your forces, be it "offensive", "defensive" or "irregulars" and in some instances/combinations a fourth option for "support" is availability.
The game has a very healthy multiplayer scene and supports up to eight players in a 4 Vs 4 setup. This is also achievable in a singleplayer setup utilising bots.
Speaking of singleplayer, each faction has a campaign to play through and a myriad of so called "skirmish" like missions to play.
This is further expanded by the exceptional modding scene for the game. Which runs the gambit of entire campaigns, mods that add new factions (the best known likely being "Valour" which adds the UK, Japan, Hungary, Italy, France and Poland into the mix, all of which are supported for single player by further mods.
Anyways I have been talking for too long. All that's left to say is that I highly recommend it. The developers are highly active with the support of the game, frequently releasing patches and listening to community feedback, in addition to their work towards the production of further expansions. It is imho fairly priced (as are the expansions, relative to the content they contain) and most certainly value for money.
Sorry for the essay I ended up writing, but if you do check it out I don't think that you are going to regret it! All the best to you and have a great day!
@@ens8502 been watching professional broodwar off and on since 2009. Also excited to see what StormGate brings to the table.
What is RTS? (Return from subroutine?)
@@herrbonk3635 real time strategy
Thank you for clarifying. I have heard so many other meanings of PCB on that other channel, I'd forgotten the true meaning.
Cool to see your games on steam, I'll be sure to pick them up in the future!
im very happy you've decided to keep posting videos about your games.
i love watching people create stuff and how they done it.
and your game is 'unique' (in that other people make their games), and your desicions are unique too, so it's always interesting.
your experince is educational and inspiring for people, even if they make games or not.
An unexpected treat. Thanks, David.
An aside: I can't help wondering why we almost never see him in his actual studio these days. He's almost always in the room next door when we see him now. Not that I'm complaining! I just think it's curious.
I think the studio was intended for working on hardware, and here it wasn't needed.
There were a few 8-bit RTS games back in the day. I remember Carrier Command was downconverted from 16-bit and actually worked really well on a 128k Spectrum. One game worth retro-ing over is 1987's Nether Earth, released on the Spectrum 48, the Commodore 64 and the Amstrad CPC 464. It was a 3-D isometric game taking place over a strip of land, some 8 character squares wide. You had to build robots that went forth to capture and take over neutral and enemy robot factories, as well as battle the enemy robots. Of course the enemy was doing this at the same time. You had various types of robots to construct, and you had to balance time, resources and combat. It was way ahead of its time back then.
This game reminds me of Modem Wars on the C64 (back 1989) where you can play RTS with a friend with a modem. I think that would be a nice idea for the next update for this game and even have it work thru an emulator for us that don't have an X16. I guess you could downgrade the version to work for many old 8bit systems. Would be fun if there was a server and you can have duel matches sort of like those Command N Conquer... I liked Dune 2 RTS more honestly.... keep up the good work, impressed....
Every time I'm scrolling through my recommendations and see an 8-bit guy video, I literally say "oooh"
I didn't think there would be a new game so quickly! Great work!
What a fantastic video! The units asking the player for help also adds some nice charm to the game
I'm a physicist and I have knowledge in CS. I watched all your videos even though I didn't live the time of 8 bit computers (I played the NS clone in Brazil master system). I just wanna say your videos are awesome.
Not gonna lie, these videos are kinda giving me ideas and making me want to get ahold of one of these old computers and try my own hand at making my own projects.
You should - I always wished to could make games for older systems, the Evercade Home Heroes is particularly great. New games for old systems is such a genius idea I love them all :)
its not easy these guys got a lot of experience
12:32 As mentioned by some other commenters (including @fungo6631 ), the PC-Engine/Turbografx-16 was 65xx-based, and is broadly comparable to the Commander X16 in terms of performance, so it could be a port target. Its small 8 KB of general-purpose RAM could be a challenge, though its CD add-on the CD-ROM² System was fairly common and could supply what's required in addition to allowing a Red Book audio soundtrack. And if that couldn't do it, it has 2 additional (though rarer) RAM upgrades, the Super CD-ROM² System and the Arcade Card. (The latter two when combined with its failed high-end variant the Supergrafx form the most powerful "period" 8-bit computer.)
David, this is fantastic work, I’m so impressed. I love following your channel.
Seeing your text file manual I was taken back to the first time I saw the Civipedia in Civ1. It could be fun if your manual could be accessed from a pull-down menu (Planepedia), saving the game state and switching to the Manual application freeing resources.
This looks really great David! Congrats on finishing it!
Thanks for the Steam love!
Pathfinding: one solution could be to have the ability to click out waypoints. If you hold down ctrl you get into multi-waypoint-mode.
Good job David. Cheers and Merry Christmas to you and your entire family.
"the most complex game ever created on a 6502 processor"
Right on Commander.
Thank you David excellent skills. Merry Christmas .
It's probably been mentioned, but the BBC master turbo has a 4mhz 65c102 copro and up to 512kb of ram. But the gfx would be 160x256 in 16 colours but you could use an early 80s palette extender or a modern video nula to choose them from up to 4k colours. The original 2mhz 65sc02 would have to do the gfx and sound. There were also several mice available for it as it was marketed as a business machine.
I can't stop being amazed by you! I am especially pleased with your attention to small details, so that people would enjoy playing your game. I think this is how all games should be done :)
Thank you!
Crazy what people have managed to do on old 8bit systems over the years. Awesome work!!
This is a new 8bit system running at 8mhz.
The X16 is actually a brand new system!
There is just so much better tooling nowadays. Better compilers/assemblers, emulators, proper image editing software, ...
Black Raven was a whole Warcraft clone with 32 levels (+many user levels) running on ZX Spectrum 128K (and colour version running on ATM-Turbo 2 from 1992), made in 1997 (colour version later). Its pathfinding was simple: a unit moves by the direction until it hits an obstacle. it tests which way it's shorter to get to the other side, and does so many steps in this way. then it again moves by the direction. its opensource.
Well done David!! Very fun and interesting to watch.
Your path finding script suprized me, I remember how annoyning it was on older RTS game's (Warcraft 2, Age Of Empires etc). You know, You gave them a command to go a bit farther position to do something else in the same time... and units gets stuck (sometimes in quite random position)
love the thumbnail and “catchy” title. hope it brings you more attention because you definitely deserve it ❤
I was stoked to see that a lot of your games made it to Steam, why not mention it earlier or have i missed it?
I gotta get me one o dem x16's so's I can do my Metroidvania...
Love what you're doing David - can't express enough how much a nerd king trophy this machine has earned you!
It's such a wonderful day when The 8-Bit Guy, Perifractic, Adrian Black, and danooct1 all post on the same day!
Fans of a certain age - always enthusiastic on that enhanced colour pallet and related bit depth etc
I actually really appreciate you putting it on Steam, as it makes it much easier to run through something like a Steam Deck.
Yo, I'm psyched with the Steam release. Finally will be able to play this here in Australia!
It is up. Also a discount bundle for the Planet X Trilogy.
Nice! I hope someone ports this to MSDOS or some other systems, especially the Mega65 as you mentioned as that platform does seem to lack any specific software. Also it's just nice to see someone make a strategy game for these old computers. You see so many platformers or bullet hell arcade style games but very rarely does anyone ever make strategy games.
I really doubt there will be any Mega65 ports coming from Dave, this comes from the old days where a bunch of retrocomputer projects came thru his hands to be chosen as his "dream computer".
In the very end he decided to build his own.
I think that may give out the source code for whoever wants to do it, but I think that he prefers finishing other software for the Commander X16 or making other ports for real legacy hardware.
@@PorcoZio79 Note that I said "someone".
you're an absolute legend. i look forward to future releases of this game. the plane and boat look neat! networking support when?
Nicely done man.. I really enjoy watching people keep 8bit alive. I love seeing how people do so much with so little in terms of hardware.
Awesome! Love all the details about the game design philosophy. Very cool video
Another great entry. My suggestion for any update.
When a unit can't find the way, instead of just simply saying, "I need help", how about it stays in character. Like if its a robotic unit, it says, "GPS malfunctioning, please assist", "Commander, it's my first day, how do I get there again?".
I feel like you can add some humor, or at least keep the units in character with random responses like that.
Totally awesome! I love both demakes and rts games. It's cool to see "new-retro" games!
As some one who has followed all the games you made and bought the snes and genesis copys of Petscii robots, i have to say thanks , you gotten me interested in game development on 80s and 90s tech , even though im only good with the music( ive done music for 9+ years now )and color side for now ( as a 21 year old gen z kid , you have inspired me and a others ) hope more people make games as complex as what youve made in the future
The first clip of moving units and the sound was sweet. Blew my mind.
It should be ported to the PC Engine, it also uses a 6502 based CPU and it runs at 7.16 MHz.
And has great sound and graphics.
pc engine homebrew is an unexplored frontier. that would be neat
Agreed!
It gets better, looks like NEC even released an official mouse for the PC Engine back in 1992! (it's used by the Super CD-ROM² addon's UI and a few games including the transport management game A.III and the PC Engine port of Lemings) It's a ball mouse with 2 regular and 2 side buttons. I bet it's super rare so a PS/2 adapter would be needed, but it's at least plausible.
@@rustkitty Might not be an issue if playing on MiSTer.
Looking forward to getting a x16, hopefully next year once I finally get moved and have some free time again. Also loved the song at the end which sounds very similiar to the chess scene in the 'Triton- Crystal Dream 2' scene.
Are we suuuuure that’s what PCB stands for? 😂 looks like an awesome project!
Wow this is so awesome!! I love the graphics are so great, Love your sprites and nice choices for cutscenes too. This is more of a challenging project that modern coders could understand with memory, cpu and code limits for these older system. Keep doing what you do, and happy holidays to you and your family!
There are several thousands of ZX Spectrum NEXT users after their second Kickstarter campaign. And there are talks about the third one. That machine would run that game for sure (FPGA implemented up to 28 MHz Z80, 256 colour graphics, at least 768k of RAM). I know it runs another CPU but there was a ZX Spectrum conversion of your PETSCII Robots, maybe they could help. I've got my ZX Spectrum NEXT recently and as far as I enjoy the machine and the old software I think the native games for the platform are not that impressive. The RTS would be a hit in my opinion.
Beat me to this comment, 100% agreed. There’s almost 10,000 Spectrum Nexts out there. Would love to see a port of this to the Next.
Another upvote for the Spectrum Next. It definitely has the power to run this game.
All the new KS2 Nexts are 2MB of RAM thanks to the stretch goals of the campaign being met but even KS1 models not upgraded should have no problems with a port of this game 🙂
The problem is the Next uses the Z80N processor. To port a 6502 game would require a ground up re-write. If some one is out there to do this then maybe David would be willing to support.
@@TheBroz The game has been ported to the 8086 processors which are very similar to the Z80 as the Z80 was an alternative to the 8080. The Z80N is a modified version of the Z80 with extra functionality that the Next makes use of.
Bringing the game to the X16 is most definitely a great achievement and proof of the impressive functionality of such a great 8-bit platform.
Immediately wishlisted it on Steam. Never played the original Planet X2 or Planet X3, but I'm very excited to play it and support your work further!
X2 and X3 are up there too. They are available as bundle w/ X16. PetSCII robots too.
Hey David, regarding the path finding algorithm, three different techniques come to mind:
1 - Main highway path: Predefine a "main highway path" across the level. Then, entities only have to "on-ramp" and "off-ramp" from/out of it by using the simpler greedy pathfinding algorithm you currently use.
2 - Sector&portal based: Dissect the map into convex regions (sectors) and store the connections between them (portals). Then, entites can A* on the sector graph and use the simpler greedy pathfind algorithm inside each sector (which is always convex, so the greedy pathfinding method always works). The main idea is that the number of sectors is way lower than the tiles on the map so you don't have to A* on the entire tile set.
3 - The fancy one, use a quadtree: precompute the quadtree of the walkable area of the map. To long to explain here, but you can search it online. This one is really fast. :-)
Did I see PAC man and Techmoan in the tile set
Thanks for the almost year end update. It is an amazing amount of work that has gone in to developing the game. The cycle counts of instructions between processors is interesting. I'm implementing a Forth like language for a 6809 processor. I think the 6809 at 2MHz would run faster than an equivalent implementation on a 68000 running at 10MHz. BTW, @11:52 the title of the guide in the rectangular box has a typo. "Refernce" should be "Reference". @11:55 in the answer to the second question "Therefor" should be "Therefore".
For the path finding algorithm I'd recommend looking into hierarchical A* path finding. Should be fast enough and will work very well.
I just started learning about how computers work and this stuff is amazing. Awesome video :)
One suggestion to pathfinding is that when you click on a instance to move it, have the mouse "paint" a line as it is moved on map. If it stumbles into a wall, it stop panting (and clicking down will select the location where the line ends).
This will force the player to kinda "roughly" paint the path you want the instance to take, and the line will always "snap" to habitable space. Once you are satisfyed with the path, you click down, and it will take exactly the path shown on-screen.
Note that you dont need to paint the path at al, you could directly move to the target, then you will see a "string" from the instance you want to move, and to nearest "difficult obstacle". Then you have to move mouse back to that obstacle, then move mouse around that obstacle, and then try moving mouse to target again. When you see the wire being pulled all the way to target, then you know the pathfinding algoritm have found a suitable path.
This should make it work with that "crazy" map perfectly, user just have to move mouse roughly inside the maze (not exactly, it just takes closes habitable space in the general direction of mouse pointer).
This means the pathfinder algoritm will then work while selecting where the target should go, like the mouse is the target, the line is the instance that wants to move to target. This also means the player don't need to wait until the instance tries all possible random permutations, instead it will do it like 100x faster while painting, and once it found a path, it will be shown on screen.
3 advantages with this is: Player gets immediate feedback if a area is completely cordoned off, since the line will stop at a wall or a tree, and player has to "manouver around" it with the mouse before selecting the path. The second advantage is that the player will during target selection, also select the rough path, so they can if they want, avoid enemies.
The third advantage is that instances never have to enter lost mode if map doesn't change, as the path have already been determited,
The first disadvantage is that if map updates after path selection, then instances will be stuck. But here the "Im lost" mode could work out to have player to paint a new path.
The second disadvantage is that you need to store in RAM, the whole path of all movement request queued up by player. But here you could propably work out a limitation that will feel OK, that prevents RAM from being overflooded with long path requests.
Think how the "lasso tool" in photoshop work, but where the "lasso" is pulled against habitable space, so you only kind of roughly need to trace out the path, it will find the rest of itself, and if its a simpler image, you don't even need to trace out the path, just move the mouse to other end of image and it will find the path itself.
For sprites, you need either 4 sprites (one with a line ending, one with line taking a left turn, one with line going straight, and one with line taking a right turn) if the sprites can be programmatically turned. If they can't be turned, you need 10 sprites, 4 turns any direction, 4 end-lines and 2 straight any direction.
The missile knows where it is at all times. It knows this because it knows where it isn't. By subtracting where it is from where it isn't, or where it isn't from where it is (whichever is greater), it obtains a difference, or deviation. The guidance subsystem uses deviations to generate corrective commands to drive the missile from a position where it is to a position where it isn't, and arriving at a position where it wasn't, it now is. Consequently, the position where it is, is now the position that it wasn't, and it follows that the position that it was, is now the position that it isn't.
SNES with mouse and option for 2P controller flat on the table for issuing commands like a keyboard would be neat in principle if straightforward to implement. Forgive me if you've already done or thought of this before.
Love what you do, mate. Ye gods, imagine if we'd had this game back in 1990 or so. I'd have flunked out of middle school.
I had no idea your games were on Steam too! The only one I actually got a physical copy of was Petscii Robots simply because I have a Sega Genesis I could actually play it on. Definitely gonna have to pick up the Planet X games on Steam too, been wanting to try those for a while now.
There is a bundle Planet X Trilogy. Also PetSCII robots too.
Always interesting, thanks.
FWVLIW:
-If you haven't already tried the old 'follow a wall' solution to path finding when stuck might work and not be too processor intensive.
-Apart from having an 8 colour screen the BBC would have no trouble as v. fast CoPro's with lots of RAM are common on the system.
It is adorable that tanks ask for help when they're lost.
I can't imagine what goes into creating a game-wow! That looks so cool-congratulations! Thanks for another great video!
Very nice! I think I preferred the more vibrant colors of the original tileset, but still looking good!
Would be cool a sequel for Windows 98, that could run in modern devices too, could be even 3d and multiplayer
I am curious about the pathfinding algorithm, and I was curious if you had considered creating a queue of paths that need to be found and handle something like one per tick.
It seems like it you did that you wouldn't actually need to run the pathfinding algorithm for every unit only the ones whose paths needs to be updated, and each path could be stored in one of 256 move queues which could be limited in size to something like the width of the map. And then only when the unit had finished going through all the elements of its pathing buffer would it need to add an entry in the queue to redo something like a bfs traversal of the map toward it's goal.
You do fantastic work, everything always looks way better than it should for the hardware its running on.
You should leave the black and white version in as a little eater egg.
As someone who is trying to learn programming for the x16 I would love to see more technical breakdowns of the game like how did you optimise to get 60fps and what Vera tricks did you use etc?
seconded.
This looks fantastic! Happy to see a Commander X16-specific "killer app" become available, and an RTS at that!
I actually implemented an A* algorithm on the C64 as an exercise, and it's definitely never going to be fast enough for realtime use. You can amortize the costs over many frames which will help, but not for this amount of units.
For these kinds of games, I'd use Tower Defense Path Finding Algorithm. You get to calculate all the same kind of units simultaneously, and you can split the calculations over several steps as well.
Inspiring. I want to write a turn-based game for the NES someday, but I have a long way to go. I've messed around a little with programming for the Atari 2600, and boy this stuff is daunting.
Now I'm really starting to think David's secret plan is to recreate StarCraft on a 8-bit system. Which is an awesome plan. Jokes aside, great work! Really digging Planet X16.
It does give off strong StarCraft vibes, yes. :)
Great ob david. Cant wait to play it
Just pre ordered an X16 so good timing!
Same. Rubbing my hands together for a month or so now
Amazing work.
EDIT: some old games would harcode in the map default paths units could follow for problematic areas where pathfinding wasn't enough.
Looks very nice!
The IIgs has no tiles or sprites and would have to generate every graphics-feature in bitmap mode. 2.8MHz might not be enough to allow fluid animation like shown in your demonstration. Additional memory might help as pre-calculating certain graphics could reduce the load on the cpu (4mb is easily obtainable and 1Mb can be seen as normal). An accelerated IIgs is more realistic with 7MHz, 8MHz or even 15MHz creating a lot of needed headroom. The SNES is a good target in terms of 8bit retro-hardware. Its tile and sprite-support is very good but main memory is very limited and a bit of software tweaking or SNES specific tricks might be needed.
Thank you for helping billy out with his apple 2 plus
OFF-TOPIC:
Why are your videos only 720p lately?
ED
Looks boarder-line 'muddy' like a bad 480p conversion.
Love the Techmoan map tile!
I was looking for someone who spotted that. There is an LGR one too.
There is a reasonable chance it will also work on a BBC Micro with a 6502 copro, 3MHz original or 274MHz PiTubeDirect.
I am very interested, I'll take a look at running the game with the emulator. Might buy an X16 at some point since I am interested to see all the work you guys have done.
The touch of a unit calling out for help when they get stuck is cute, loving that!
Planet X16 is starting to take shape!
Great job posting your comment before watching the video.The game is done.
Hope all of your stuff ends up on the Evercade !
Wake up babe, The 8-Bit Guy posted