oamsath

Members
  • Content count

    7
  • Joined

  • Last visited

Community Reputation

100 Neutral

About oamsath

  • Rank
    Newbie
  1. A New DSL for Games

    [quote name='Chargh' timestamp='1313335579' post='4848994'] I'm working on the exact same thing, or at least it started out as the exact same thing and there are a few problems that I encountered with this design. First of, converting it to C++ (or C since that was my idea) forces you to program a standard library which is basically a C++ game engine (a huge task in itself), simplifying it into your language means simplifying it in C++ (or at least write the code that simplifies it) first so why not use C++? So I went of to create a scripting language, which turned out to be so low level (since the speedup that games need require you to a lot of stuff which C++ already does (pointer, classes (with inheritance) and the whole rendering library will just be extra). I then went on to write a assembler (which is more or less complete) and now I'm writing the intermediate compiler which will allow me to go [compiler written in c++] -> [intermediate compiler in my language in interpreter (in c++)] -> [assembler in my language (in interpreter in c++)], and then implement the compiler and end up with a language which is a lot slower then C++ and will never have any use in games. So I would ether go about writing a scripting language (or maybe a real programming language) if that is what you want to do (I think its fun), or write a library for C++. If you want to know more about creating a language I can really recommend the red dragon book, I'm a big fan of using free resources on the internet to learn things but when it comes to this kind of programming I have not been able to find something comparable on the internet for free (without resorting to the ancient profession of pirating, but that isn't quite the same without the boats and parrots). chargh, [/quote] I'm currently reading it it is college course material.
  2. A New DSL for Games

    [quote name='Sudi' timestamp='1313334667' post='4848988'] Really? I don't get your point. To write a game you have to understand how a programm works and how to implement certain mechanics. There are already alot of languages out there and to be honest from a user point of view i don't really see a difference. Certain languages have some cool extra features but in the end its all about creating objects and run functions on data. What you want to create a game is an API that allows you to quickly create certain behaviours. But that is already there its called a game engine. This engine implements interfaces to quickly load/display graphics, play sounds, process user input, send data across the network, save/load data from memory. Now you can create such APIs in all avaible languages. I don't really think there is a need for another language just for games. It doesn't make any sense. If you really want to make it easy for a person to create a game then ask that person which language he/she is comfortable with and then create an API in that language. Another way you could approach it which would really be easy for a beginner is a graphical way. basicly you have precoded stuff and you link it together. just like with unreal engine 3 it graphical scripting interface is really simple to grasp and makes it easy for someone to implement behaviour. [/quote] The difference between a library and a language is great. [list][*]if you had no experience what so ever to programming, and I gave you a language / IDE that you can learn in one week, to produce excellent 2D games (as an example), it handles all the complex stuff ![*]If I told you I will make a C++ library to handle these things, and you have to call it alone, you will spend months getting good in c++ before actually learning the features of my library.[/list]This is not about creating stunning 3D scenes and shader effects. It is about providing the normal person a wan to make games without having experience in advanced languages. if we take DarkBasic for example (although this is not the best example), of coarse most game companies will prefer working with Direct X or Unreal Script to produce their games, but a team of two or three students will prefer DarkBasic ALOT to make a casual game during a summer vacation.
  3. Hello. I've posted here a few weeks ago about an idea i was hammering. I've refined it and removed some unnecessary features as it wasn't really needed. I'm a last year computer science student and this idea is for my graduation project. It is about a new programming language for games. It will be written in C++. This new language is a DSL. this means that it will contain features specific to games only. Screen, Texture, Sound, and Model will be data types just like int, float, and double in other languages. The main focus will be on two things: 1- Easy to learn: I intend to have a learning curve of maximum one week. It will be very easy for starting programmers to develop good games with it. 2- Fast: this language will not be translated to executable files, but will be translated into C++ using OpenGL library for drawing, and then calling MingW compiler to build the executable. I know many people were dreaming about this idea. But all the existing languages didn't really focus on easy to learn rather that fast. I want to create THE BEGINNERS LANGUAGE for games. I've tested many aspects and an initial design and was ready to start this project. but an experienced friend of mine asked me this one question: [QUOTE]Him: Did you hear of a big Gaming Software company making a language just like yours? Me: none that I heard of.. Him: Why? Me: I don't know. how can I find out? Him: post on online forums and ask more experienced programmers.[/QUOTE] And here I'm. Really need your comments.
  4. [quote name='pabloreda' timestamp='1310686707' post='4835483'] HI I have a Languaje for making video game in progress but with diferent aproach. A derivative of nobody know languaje called ColorForth, has a very interesting properties, very small source code and other surprises. some ideas of forth languajes are in oposite direction from "normal" languajes. [url="http://code.google.com/p/reda4/"]http://code.google.com/p/reda4/[/url] you can see examples for making shaders in forth here [url="http://forthsalon.appspot.com/"]http://forthsalon.appspot.com/[/url] ApochPIQ have reason !, very goods points! Too many languajes... [/quote] I will look into it. thanks. [quote name='dublindan' timestamp='1310697353' post='4835541'] If my uni project experience is anything to go by, I would say its much more valuable (grade-wise) to make something flashy that is easy to understand, appeals to the person grading you and, as ApochPiQ said, is very polished, than it is to make something technically advanced, innovative or even useful. Also, as someone with similar interests (I guess everybody in this thread is interested in programming languages and compilers[size="2"]), let me say that developing a solid language and compiler is a tremendous amount of work. It always seems much easier and less effort than it turns out to be, but its also not impossible. I would advise you to split the project into modular chunks[/size] so that you can stop after any chunk and still have a fairly complete work. That way if you run out of time or lose interest, you are not left with something useless. This is worth doing regardless of the project, just in case you have unforeseeable problems or setbacks! [/quote] A good advice [quote name='6510' timestamp='1310710671' post='4835577'] Some things to research: - First of all, get the real reasons why software development in general is hard and often delayed. What is the responsibility of the programming language ? What are the special characteristics of game programming ? - Clearly differentiate between language and library features. - Scripting languages. Why have they become popular (look at UnrealScript) ? - Threading support ? Very important and ambitious. - Event support. - Test support ? Integration testing for multithreaded and distributed code is a real pain. Look at those useful but ugly mock frameworks. Could a programming language help ? - What has drag&drop to do with programming languages ? - What is the role of tools in the development environment ? [/quote] Thanks
  5. thanks for taking time to write this detailed reply [quote] [list][*]Give up the notion that anyone will ever use it, period. Nobody will. This is not meant to be disparaging, but just a realistic fact of programming. I've been working on a very ambitious programming language for years and nobody uses it except me. This is not to say that you shouldn't design it for other people's needs - just don't get your hopes up that anyone will care. If you can do this for your own enjoyment and education, so much the better; if you're only in it because you want to change the world, you're in for a very disappointing experience.[/list][/quote] I'm looking at this from the learning angle. Something bright to put on my CV and to prove to myself that I didn't waste college years. I'm not heading for then next big-seller [quote] [list][*]Scale your goals back as much as possible. The more you try to make your language do, the more difficult it will be to design and implement. Start with something simple - [i]especially[/i] if you are not already a world-class expert on language design and implementation. For instance, just making a language for state machines/AI scripting/etc. would be a challenge in and of itself, so why not start there? It's always easier to add more things to your project once you get a few features done, than it is to scale back when you realize you've bitten off far more than you can chew.[/list][/quote] This is a point well taken. and will be discussed in detail with the team. [quote] [list][*]Remember that you have to finish this for a graduation project. It does not behoove you to think big. You should focus on making something small, cool, [i]and very well polished[/i]. A large scale, ambitious project will not help you graduate if you utterly fail to accomplish anything with it.[/list] [/quote] Regarding the college part. I'm not proud of the next statement but here we go: the GP for any graduate isn't done for the college. it is done for himself. the college can pass ANY project. and i mean ANY. small MYSQL examples can pass . So even if i didn't finish it in 9 months. i can still work on it after graduation. this is a very ambitious project [quote] [list][*]You cannot achieve cross-platform support using abstraction and expect games to use it universally. This is the painful but vital lesson of Java, and to a lesser extent of the .Net ecosystem. At some point, games have to touch the hardware more or less directly, or as directly as possible. This is true on PCs but even moreso on consoles. If your tool gets in the way of working with low-level details, nobody will want it. Maybe it'll be nice for people who just want to crank out a game as fast as they can, but you're going to be competing with major players like XNA at that point, and I guarantee that an army of specialists can write a better game framework than you can. (Nothing personal!)[/list] [/quote] someone from college suggested that I make it for only 2D games to make sure it will be finished correctly. with leaving the door open for extending. And for the low-level details. I can ensure that most of the options are available through ready commands and implement them myself on other platforms. waiting for your reply.
  6. If you may, please be more elaborate. Perhaps showing me why you thought it was pointless? On a perfect assumption, if done correctly. it will serve as THE GAME PROGRAMMING LANGUAGE. one code to make for all platforms. the learning slope will be low, and it will produce results quickier. Why would you say other wise?
  7. Hello GameDev Community.. I'm currently pursuing Bachelor Degree in Computer Science, and currently brainstorming some ideas for my Graduation Project. My interests include Compiler Theory and Game programming. I've been using XNA for years and some OpenGL. I've came up with an idea that I'm hammering right now for flaws and things I may not have considered. and some friend suggested that I should post into forums concerning with games. and Here I'm My idea is creating a new language for games, making game development easier. It will be object oriented and supporting many high-level gaming features like: auto-implementing state machines an enhanced pipeline for loading resources (sounds, models, textures, ....) defining auto templates for screens, memory management, and other things. Another thing is that I'm fascinated with the drag and drop code snippets from x-code and unity IDE. I'm hoping that I can make my language as easy to write as that ! The idea that it will not be compiled into machine code but to existing class library i will make in c++ and open-GL. then use a c++ compiler to produce a ready game. This will enable future enhancements to include another compiler to objective-c and java for mobiles, and maybe to java-script or action-script for web. The same code for all platforms I'm currently open to all new ideas. Can i hear your thoughts about other features or things to research in? Thanks.