New to Dreamcast homebrew, question about engines

If you have any questions on programming, this is the place to ask them, whether you're a newbie or an experienced programmer. Discussion on programming in general is also welcome. We will help you with programming homework, but we will not do your work for you! Any porting requests must be made in Developmental Ideas.
b0b
DCEmu Fast Newbie
DCEmu Fast Newbie
Posts: 20
https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
Joined: Thu Mar 15, 2007 12:04 pm
Has thanked: 0
Been thanked: 1 time

Re: New to Dreamcast homebrew, question about engines

Post by b0b »

Arvex wrote: Mon Apr 13, 2020 12:49 pm I've written a few games with C. I'm more experienced with C#, but I had no expectation of using that language on the Dreamcast. I haven't written any kind of networking for games outside of a few Unity prototypes. That was something I was planning to learn over the course of this project.
unity has a lot of underlying stuff implemented already (for network support).
on the dreamcast - yes you have access to modem/lan, but there is only functionality to get it actually working on the hardware level. the overall design and implementation for network support in games is completely up to you.

and online multiplayer is a beast to handle. there are many different approaches for it, for different genres different solutions. as you want a racing game, with some kind of physics i suppose, the proper synchronisation between server and clients is a very difficult task to get right...
If you wanted to get started I would suggest to read the postmortems/papers on quake1->quake world clients and maybe starsiege: tribes on multiplayer clients (should be easy to google them). these are for fps-genre but you can get an idea where to go from there...
I will see what I can do with the Quake I engine. At least until Simulant reaches a point where I might be more tempted to use it.
keep in mind that id-engines are not that flexible. they are meant for a (indoor) fps genre - and that's that they do best (or did, considering the release dates). sure you can stretch it - as many mods have shown - but it's like using a sledgehammer to hang a picture :D
I am aware that the Dreamcast is older hardware and see that as a challenge. I know it's not a powerhouse, even among its own generation. I'm basing my expectations solely on games I've actually played on the Dreamcast. Maybe 60 FPS with such a game is a bit optimistic, but I won't know until I try.
don't get me wrong here - I'm not saying it's impossible.
60fps, good looking (yeah well for homebrew, mostly designer question) f-zero/wipeout clone is perfectly doable.
ThePerfectK wrote: Mon Apr 13, 2020 3:25 am I use this tool for a specific reason: it'll convert a modern OBJ 3D model into the ancient MD2 model format. This is the format that Quake 2 used, that blender no longer supports. This is done for a reason: implementing MD2 support is extremely easy compared to other model formats. Most of the format is just figuring out how to interpolate between poses mathematically. There are lots of tutorials online for doing this. This program by Rich Whitehouse uses std C library calls exclusively, so even though it's technically a "windows only" application, it runs just fine in WINE under linux, which is where I use it.
if you want animation support in your model. moreso - if you want *vertex animation* in your model, then MD2 (or some modification of it) is a good choice. if you don't need animations (static objects, scenery etc etc) - use something else :D
mrneo240 wrote: Mon Apr 13, 2020 1:58 pm I assure you GLdc is faster than most attempts at pvr
and i don't doubt it's faster than most attempts. we haven't seen a lot of the later ;)
but no real complaints here - it is actually pretty good
kazade
Insane DCEmu
Insane DCEmu
Posts: 145
Joined: Tue May 02, 2017 3:11 pm
Has thanked: 3 times
Been thanked: 34 times

Re: New to Dreamcast homebrew, question about engines

Post by kazade »

Just a minor thing about Simulant - it was written as a kinda Unity-style general-purpose engine. Swirling Blades is just the first real game I'm building with it, but it can do 2D or 3D games, using various culling systems (Quadtree, Octree, Spatial hash) - it was in development for 7 years before starting Swirling Blades :)

The sacrifice you make of course is it makes big executables and you pay for the flexibility in frames per second (which I'm working on).
User avatar
Arvex
DCEmu Cool Newbie
DCEmu Cool Newbie
Posts: 14
Joined: Thu Mar 26, 2020 4:43 pm
Location: USA
Has thanked: 1 time
Been thanked: 2 times
Contact:

Re: New to Dreamcast homebrew, question about engines

Post by Arvex »

I will admit, I'm new to making games completely from scratch, even with an engine, versus a more complete toolkit like Unity or Unreal Engine 4. I'm used to having physics built in and sometimes even having to regard it as an obstacle instead of an asset, so this is going to be new for me.

You might be getting the impression that I'm designing a game that might be a bit too much for me to handle and you're probably right. That's just how I motivate myself to learn new skills. I try to set high goals then learn what I need to in order to meet those goals, then execute on them. This is still all early planning for me. There are tools I need (DreamPi, SD card adapter, etc,) that I can't currently afford, before I can really dive into this project so it's mostly just planning right now so I know what skills to develop. Plus, I still need to finish my current projects before taking on a new one. I might even wait on Simulant to reach a point where I can use it before starting on this project and just do little 2D experiments in the meantime to get a feel for the network coding side of things once I can get a DreamPi.

I feel like the real hurdles to conquer will be the online play and terrain. With the speed I want the game to run at (vehicle speeds, not framerates), I doubt I could fit entire tracks into VRAM alone and will need to make code to cycle sections of the level into VRAM.

I am planning for physics calculations to be handled locally with the game only sending the positional and velocity data needed to do physics calculations for other player vehicles with the exception of situations that involve more than one player vehicle (collisions.) As long as it's in the ballpark (not making the player appear farther ahead than they really are,) vehicle position becomes less important the farther they are from crashing, after all.

I'm not sure if the engine from Quake I will be the best for this project, then. I've tried to build games off rigid systems before and found it to be frustrating. I was planning for this to be less track-based than something like Wipeout. I imagined something more like the canyons, caves and mountain races of Star Wars: Racer than a race track like what I've seen from Wipeout and F-Zero.

The vehicles themselves might have some animation. My prototype model has mechanical flaps that are supposed to pop up when given steering input to make it look like the vehicles steer and decelerate by air drag and reducing thrust. I was considering making some animations for pieces breaking off the vehicle if they are damaged. I wasn't sure if I was going to have them be part of the same model or be separate pieces that are manipulated by code instead of animation.
Post Reply