   2D/3D game programming language
  Hey guysI've been wanting to write a compiler for my portfolio for a while now. The best idea I could think of for a my next project, was making simple language/compiler for begginer programers, to code games. A programming language made specifically for game developement and writting quick graphics scenes.I wanted a lot of opinions on it. Like whether people would be interested in using it, or would they just prefer to learn an all purpose language such as C/C++ etc.I know it has been done before, but I'm sure they missed out a lot of things. Does anyone have any feature suggestions on any ideas on how it would be more suitable to a user. If you where a use what would you want from it ect? Either specific features or general ideas. What sort of trade off between power and simplicity etc.Any other thoughts would be helpfulThanks yousilver   
  In my opinion it's better to learn a language like C++.But a compiler that can deal with all the things you need for games (integrated shader-language compiler, 3D-model viewer, etc.) would be useful.   ;  Yea, a lot of people who just want to code games spend a lot of time learning other stuff they don't need to know if they just want to make games. They got to learn c++ then they gota learn opengl, and then they gota learn a windowing API and all the other stuff needed for games. Having it all integrated into one language could save a lot of time.   ;  Personally, there are so many options available now for quick prototyping that I probably wouldn't be interested in learning yet another language.  Java, C#(XNA), Flash, Python, and the many libraries available for them, just to name a few.For beginners who want to get something done quickly, there are also options that include map editors, resource editors, WYSIWYG environments, etc., such as Gamemaker, that aren't necessarily built around a language.  These may appeal more to beginners, although they tend to be domain-specific.How game/genre specific do you want to get?  Are you targeting toward the absolute beginners, who don't want to spend a lot of time learning how to program or make graphic assets?  Or are you looking to explore novel language syntax/usage characteristics that might appeal to intermediate programmers?  Are you going to compile to machine code?  If so, is portability a concern?This is probably not what you are going for, but I always thought it would be interesting to implement an interactive fiction language, along the lines of TADS or HUGO.Hmmm... what about a language that has inherent support for 2d/3d objects, vectors, physics, collision, etc.?  Probably a lot of work, but if only 2d you could wrap something like Box2d.   ;  Excellent post laztrezort.The first project would be in 2D. But first prototyping all the basics of the language first.The original idea I had was to create a simple language that had inherent support for display, 2d/3d objects, vectors, physics, collision, etc. My first step would have just been to do the front end of the compiler first, (converting the language into an IR) and worring about the rest later. But this would require a lot of low level work on graphics and stuff, I wouldn't be able to use opengl etc.So I thought it would be smarter to make a language and a compiler which can utilise and intergrate all the different aspects of game developement, with the power of C++. When I was doing my A-Levels (before university) I wanted to make some games, and I wasted so much time just trying to get a programming language to work with a graphics API like opengl and a windowing language/GUI API like wxWidgets and an IDE. And then so much rewritting of basic game code for simple stuff like collisions etc.I hadn't heard of Box2D before, but from a quick google of it, it looks perfect for such a project. I am going to look into it.Thank youQuote:Original post by laztrezortPersonally, there are so many options available now for quick prototyping that I probably wouldn't be interested in learning yet another language.  Java, C#(XNA), Flash, Python, and the many libraries available for them, just to name a few.For beginners who want to get something done quickly, there are also options that include map editors, resource editors, WYSIWYG environments, etc., such as Gamemaker, that aren't necessarily built around a language.  These may appeal more to beginners, although they tend to be domain-specific.How game/genre specific do you want to get?  Are you targeting toward the absolute beginners, who don't want to spend a lot of time learning how to program or make graphic assets?  Or are you looking to explore novel language syntax/usage characteristics that might appeal to intermediate programmers?  Are you going to compile to machine code?  If so, is portability a concern?This is probably not what you are going for, but I always thought it would be interesting to implement an interactive fiction language, along the lines of TADS or HUGO.Hmmm... what about a language that has inherent support for 2d/3d objects, vectors, physics, collision, etc.?  Probably a lot of work, but if only 2d you could wrap something like Box2d.;  Making game development easier would require more than just a language.   ;  It wouldn't just be a language. It would intergrate everything required to make a game. Without having to spend time linking external libraries yourself.Quote:Original post by ZahlmanMaking game development easier would require more than just a language.;  While I'll concede with laztrezort that there'll likely be plenty of people who'd want to stick with the current languages they know, you mentioned this was for beginners(who'd have no prior experience in /anything/) and you wanted to do this anyway, so there is likely no stopping you. [wink]Now, I don't know what experience you have, so if you've written interpreters before, you can just ignore this. If you haven't written interpreters before, I'd suggest going with that first. For the purposes of your target audience, beginners, it likely wouldn't matter a whole lot if it is compiled or interpreted. I'm over 90% confident that even GameMaker itself doesn't compile the game, just throws all the data as resources or somesuch into an already compiled file containing the 'engine'. (Not sure how accurate that last statement is, as it is only from personal observations some time ago.) So unless you're ready for the problems most definately to be had by writing a compiler for a modern machine (I presume you're not going to be writing the compiler for an older machine that'd likely turn out to be an emulator?), I'd say go for the interpreter bit.As for the language, I'd argue it'd be best similiar to something along the lines of C#(or Java/Basic, I'm just partial to C# right now[grin]), with graphics based keywords thrown in. i.e., instead using a whileloop and checking against current clock time and last recorded clock time for fps, have something like gameloop 30 fps{/*code*/} or somesuch. Other keywords might be draw [image], etc.By an chance, though, is what you're wanting to make something like this, just for beginners? If so, you may want to have additional GUI elements for beginners to enter maths/data in a more beginner intuitive manner, then pop the code for them wherever the cursor was at, kind like, again, GameMaker.[Edit]Found it!Quote:You should note that Game Maker "disassembly" is not true disassembly. It is resource extraction.That pretty much seems to be inline with what I was saying earlier about it. [grin]   ;  I'm working on something kind of similar, so I can share a lot of thoughts:At the basic level, if you do nothing other than take care of all the window initialization, and you give the user access to high-level functions like "load_image", "draw_image", "is_key_pressed", then you're already making the user's life much easier. This is basically what love2d and Processing do. Those projects aren't about creating new languages though, Love uses Lua and Processing uses something like Java.Then if you want to talk about changing the language to help you, then I think there's a lot of opportunities to improve on C++. Some ideas: - When drawing, you often have to specify colors. So in Circa there is special syntax for colors, you can write #aab or #ff00ff. (Like in CSS) - Writing code to control multiple entities (like enemies) at once is hard. Having coroutine support (like Stackless Python or Lua) really goes a long way to making this easier, because you can write separate "threads", but not have to worry about most of the problems related to threading. This would be a great feature for a game language. - Along the same lines, I think the Actor model (see Erlang, Smalltalk) is a really good fit for games, but there aren't many game-appropriate languages that support this. - Also on the subject of time-based code, check out ">Urbi, which provides a bunch of language primitives for writing concurrent actions. Another interesting one from a syntax perspective is Chuck. - Being able to reload scripts on the fly is really nice for experimentation. There are different levels of how good your support for this can be. In Circa, I'm trying to do a really good job of this. - Visual editing of code is something that many people find fun, you might consider going down that road. Check out vvvv and Squeak. - One thing sorely missing in C++ is a way to do to introspection of data types. So, features like data serialization, synchronizing data over a network, or writing a run-time object browser, are annoying in C++. So in terms of ways that you can improve on C++, there is some low-hanging fruit.   ;  Hi guys, i'm gonna be completely honest, this is my 1st post, i registered right after reading this and i have to say, all these languages you guys are throwing out here, make completely no sense to me... yet of course. I finish high school about a month ago and quite frankly i'm bored as heck playing game after game. I had a passion since i played the Sims 3000 back in the day, and completely fell in love with amazement of how games can be made and have involved. I been spending my time still playing FPS games but i recently started reading an e-book called C++ Primer 4th Edition 2005, but it was just... really words that were hard to process with no prior knowledge of this language. Then i tried another book called C++ for Dummies, 5th edition 2004 and made my 1st app from the guide to convert Celsius into Fahrenheit, and i was blown, complete amazement, i'm about 40 pages of it in but still kinda difficult to remember whats happening. The point was, after reading this topic it would help if learning the necessary programs/languages in building a simple game that can possibly lead to better quality games, however they involve in this language barrier, like Si1ver said, people waste lots of time reading the wrong language or learning something else then needed, i personally don't wanna run into that problem. So yea, i guess you can say this is kinda me introduction about me and at the same time saying, hope to hear about your future program S1lver. And if anyone can suggest what i'm suppose to actually read and learn so i can have a foot down into making games, that would be useful, thanks in advance.   