I'm just curious. I don't really understand the process. I go to school and i'm learning Java, C++, and C, can someone bridge this gap for me lol. I'm really only on basic courses teaching applications that should work across all languages but using Java as the testing area. So like say I learn these languages, how advanced do I need to be in them before I could say make my own game or something? Is it the fact that it still needs a big team to make a game like Shenmue even though dreamcast tech is old? Do we have the technical abilities if I got a big team together of like 100 programmers in their spare time would we be able to make a high end game like Shenmue or NHL 2K-like game with what we know from the Katana SDK or WinCE? I want to know basically what i'm needing going forward. I would love to eventually sync up with a bunch of people and make our own game something we can all agree, maybe our own GTA-like game or port GTA 3 somehow even, something. I do understand porting is also a somewhat different game as well? Thank you for your time.
Learning a programming language is one thing, but you will need to learn what functionality the libraries you use provide and what the limitations are of the hardware you're developing on. I think a lot of people here will tell you to stay away from either the SEGA Katana SDK or the Windows Dragon SDK due to you not being a license holder. KallistiOS is a the only option for developing homebrew games and not getting into any legal issues. If you plan to use the Katana SDK, you will need the development kit to complement it as well as a PC capable of communicating with it. If you don't have the development kit you can always use the same homebrew tools to get your game up and running on a retail unit. Also, 100 programmers are not going to get you Shenmue. You need a few artists, too ;P. On a slightly more serious note, it's not strictly true that because the technology is old that you need less people today than you used to. Tools have gotten a lot better over the years but you still need people who are capable of wrangling the technical limitations and solving issues related to them. I am working on a game using the Katana SDK, though it is for my own edification of the development process with no plans to profit from it.
That's interesting. So I could program theoretically in lets say any one of these SDK Katana or whatever, I would be doing java or c++ that is somehow supported by the SDK that i'm using as well as knowing hardware limitations? Is there any need to translate that language at all over to whatevers SDK language? I do not plan to profit from anything either just curious as to how game programming actually works for any console really but Dreamcast because its my favorite system. Could you program a Shenmue graphics type game in any one of those SDKs, like the SDK doesn't really matter too much they all access all of the hardwares power type thing? Basically one man will never be able to make a game like NHL or Shenmue on his own though so you can only go so far by yourself in programming is something I've been learning a lot about in class like it really is better to team up you get so much more stuff done. I would love to one day though have a big team work on a game, maybe one day I can convince a bunch of programmers too and lets make something that pushes the 3d polygonal levels in a gta style game then or private gta 3 port would be cool no profiting obvs just to see what would've been if sega just held on another year be cool to port some stuff or make your own sandbox games and things.
You would need to write a JVM to support Java on the Dreamcast. C++ is supported, but the inherent overhead may be prohibitive if you plan on using it and the features of the language you want to exploit. You could create a game with one SDK, then port it to another. With the work involved, it would probably be a better idea to either branch development efforts using the other SDK or start over. The SDK matters in terms of what the libraries it provides offer you for getting the most out of the hardware. I have played with KallistiOS but haven't invested myself in it so I cannot speak for the capabilities of it. One person could create a game like NHL or Shenmue by themselves. It would just take most of their life to do so. Teaming up makes sense once one has acquired enough knowledge to be able to work in a team. For example; if one has written a 2D shoot-'em-up, this will have built up their knowledge to the point where they don't need to be constantly tutored while working in a team on a game of slightly larger scope.
The Dreamcast is kind of a strange system in that you could develop for it either with the WinCE SDK or the Katana SDK, this wasn't standard for consoles at the time. C++ was supported IIRC but was much slower than native C. I don't remember ever seeing a JVM. Also to keep in mind on the DC is that it has no real concept of threading with the Katana libraries, each of the major subsystems had its own processor that you had to control directly. I have never looked at KOS seriously, but we are at much different places in terms of skill set. Don't take this the wrong way, but I would probably look at getting started with one of the Xbox setups instead. The programming model is much closer to the PC and from what I understand Microsoft had official indie dev support so you are more likely to find support on the internet. Dreamcast programming is more embedded system design than traditional computer science, and if you try to push your knowledge too far at this point you will get overwhelmed and give up.
Really looking forward to seeing more of this in the future whenever you unveil it Multiplayer please if you can manage it
Thank you so much for your replies they've been interesting reads because I never fully understood that part of console game programming. I will probably not dabble in Dreamcast programming for a long time, I doubt I would have time but i'd like to have it somewhat in mind too as I go along in case I come across anything. The way my courses are right now i'm only in my 2nd programming class and what they do is Java as a teaching tool with something called BlueJ. So doing things like HashMaps with Arrays we started this class, made like a basic text dice game that rolls two random numbers between 1-5 stuff like that. I have many years to go actually lol but I was curious. Basically though once I pass this course I have C, C++, and Java courses to complete before I move on any further part of a Diploma but i'm only in the certificate part of that program right now kind of halfway to a couple certificates right now.
For Xbox programming, do you mean the Original Xbox, Xbox 360, or Xbox One? I think that you're right about going for the "easier" Xbox first, as the tools and development process give you less to worry about and you don't need to know more than what you already do for Windows PC development for the most part. Out of the three, I have only worked with the Original Xbox (and Xbox 360 with XNA, but that's pretty different) and really like working with it. I think there's scope for learning the ins-and-outs of the Dreamcast at a leisurely pace, though it's better to go in knowing how to make a game for a PC, such as GNU/Linux, Mac, or Windows. I do have multiplayer planned, though it is more focused on the singleplayer campaign. I really don't want to tack-on the multiplayer as an afterthought so I am working on incorporating it into the game proper. There's no harm in planning ahead =D.