• Advertisement
Sign in to follow this  

Unity A New Game Programming Language Idea

This topic is 2380 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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 :D

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 :D

I'm currently open to all new ideas. Can i hear your thoughts about other features or things to research in? Thanks.

Share this post


Link to post
Share on other sites
Advertisement

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 :D

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 :D

I'm currently open to all new ideas. Can i hear your thoughts about other features or things to research in? Thanks.


I did something similar awhile ago but abandoned the project because after I really thought about it I realized it was pointless.

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites

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?


I switched my attention to just writing a video game library because I soon realize that the over head of a scripting language was just a wast when I could get C++ to do nearly as clean code with only minor compromise.

Share this post


Link to post
Share on other sites

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?


Because people have been trying to make the one last programming language for ages. It will be easy to use, it will run everywhere, it can be simple drag an drop... And none of them have ever come close. Programming is an exercise in competing trade-offs. A project with so many implications as a programming language only exacerbates those trade-offs.

Share this post


Link to post
Share on other sites
thanks for taking time to write this detailed reply :)


  • 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.[/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 :)

    • 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 - especially 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.[/quote]
      This is a point well taken. and will be discussed in detail with the team.

      • 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, and very well polished. A large scale, ambitious project will not help you graduate if you utterly fail to accomplish anything with it. [/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

        • 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!) [/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.

Share this post


Link to post
Share on other sites
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.

http://code.google.com/p/reda4/

you can see examples for making shaders in forth here http://forthsalon.appspot.com/

ApochPIQ have reason !, very goods points!

Too many languajes...

Share this post


Link to post
Share on other sites
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), 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 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!


[size="1"](PS: Sorry ApochPiQ & Telastyn for still not having replied to your replies to the Epoch thread, after you kindly replied to my questions sad.gif pretty embarrassed not to have made the time to do so...)

Share this post


Link to post
Share on other sites

I'm currently open to all new ideas. Can i hear your thoughts about other features or things to research in? Thanks.


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 ?

Share this post


Link to post
Share on other sites
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.
Just to elaborate on this: Epoch, ApochPiQ's language is fairly smooth. I still don't use it as I use my own. Which says everything, I think.

Share this post


Link to post
Share on other sites

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.

http://code.google.com/p/reda4/

you can see examples for making shaders in forth here http://forthsalon.appspot.com/

ApochPIQ have reason !, very goods points!

Too many languajes...


I will look into it. thanks.


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), 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 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!



A good advice :)



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 ?


Thanks

Share this post


Link to post
Share on other sites

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 :D

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 :D

I'm currently open to all new ideas. Can i hear your thoughts about other features or things to research in? Thanks.


Hi oamsath,

Visual Scripting is in high demand by many Game Dev Hobbyist who don't desire to code. In fact, its one of my motivators for developing The Super 3D Game Platform. I've looked into approaches used by Kodu, Kismet, Alice. What really caught my attention was LBP Logic Gates. Although not a Visual Scripting perse, LBP Logic Gates provides a interactive and visually entertaining way of creating conditional statements. That experience changed my perspective on editing in general and inspired me to start developing a unique type of 3D GUI system. A GUI system to support a serious Game Creation Suite that is fun to play.

The Game Creation Suite will also include Visual Scripting. I've written a Script Engine (its about the closest I want to get to writing a compiler) with a stack-based bytecode virtual machine. Based on that experience, my desire is to translate the Stack and a small Instruction Set into some form of visually entertaining and intuitive representation for the Visual Scripter.

Share this post


Link to post
Share on other sites
What you are describing isnt a 'language' but more like a game 'engine' with libraries and tools (and as you will probably find a half dozen different laguages/scripts used to define and crossreference and script the many aspects of a game).

Its a very large project that you might want to pare down to something you could accompilsh in you projects allowed time.

Maybe a state engine library for an existing language (hierarchical with exception fallthru mechanism) that would get you off the hook for having to recreate the the general program language part.

If you want to do a visual language the project might be better as a demonstration of why the complexity of game code gets out of hand very quickly and the limitations for a visual interface (being able to see so little logic at one view because of the logic non-density due to the 'visual' presentations overhead and clutter).

I looked at visual 'building block' logic for FSMs over 10 years ago and came to the conclusion that real logic of sufficient complexity quickly becomes unwieldy and visualization of sufficient amounts of a 'program' declined too much -- even with nifty visual navigation mechanisms helping.

Share this post


Link to post
Share on other sites

My idea is creating a new language for games, making game development easier. It will be object oriented

By "object oriented", do you mean similar to C++, similar to Smalltalk, or something more exotic? Please explain what you consider novel about your design. If it is like existing languages, how can it be better?

and supporting many high-level gaming features like:

auto-implementing state machines
[/quote]
How do you compete with existing state machine code generators? What if one doesn't want state machines?

an enhanced pipeline for loading resources (sounds, models, textures, ....)
[/quote]
Enhanced over what perceived shortcomings of current techniques? This seems a very mature area that doesn't allow significant technical progress.

defining auto templates for screens, memory management, and other things.
[/quote]
Please explain what valuable "templates" you want in your framework. What's the alternative if they don't fit the needs of the game?

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 !
[/quote]
Are you designing a language and framework, or an IDE? You would be wise to focus on the former.

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.
[/quote]
If you are committed to C++ and OpenGL, you are leaving out many platforms.

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 :D
[/quote]
This will never happen.
You are talking about a substantial standard library, and implementing it five or more times is an herculean, desperate and useless effort. You should focus on one platform (C++/OpenGL on proper computers) instead of making more compromises than you really need to in order to support different platforms that potential users aren't interested in.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
  • Advertisement
  • Popular Tags

  • Advertisement
  • Popular Now

  • Similar Content

    • By 3dmodelerguy
      So I am building a turn based rogue-like (think CDDA). The game is going to have a very large map (up to 1000's x 1000's) however to alleviate most of that I obviously can't render everything so there will just be render a certain radius around the player and just load in and out data as the player moves.
      The next major system I am prototyping is making interactive tiles destructible and pretty much everything will be destructible besides basic landscape (cars, doors, windows, structures, etc. will be destructible)
      While I am only rendering a certain amount of tiles around the player, I want to keep the amount of colliders active at one time to be as small as possible for performance and currently the tilemap tool I use automatically merges colliders together.
      So instead of creating a separate colliders for each of these tiles and having the destructible behavior tied to that object (which my tilemap tool would allow me to do) I was thinking that I would store an array of all the X and Y locations for the interactive tilemap layer and let the tilemap manage the colliders. 
      Then when I hit a collider on the interactive tilemap layer, instead of of getting the behavior for how to deal with the destruction for that tile from that game object, I would pull it from the array I mentioned earlier based on the tile I attempt to interact with which I already have.
      Does this sound like a good approach? Any other recommendations would be welcomed.
    • By NDraskovic
      Hey guys,
      I have a really weird problem. I'm trying to get some data from a REST service. I'm using the following code:
       
      private void GetTheScores() { UnityWebRequest GetCommand = UnityWebRequest.Get(url); UnityWebRequestAsyncOperation operation = GetCommand.SendWebRequest(); if (!operation.webRequest.isNetworkError) { ResultsContainer rez = JsonUtility.FromJson<ResultsContainer>(operation.webRequest.downloadHandler.text); Debug.Log("Text: " + operation.webRequest.downloadHandler.text); } } The problem is that when I'm in Unity's editor, the request doesn't return anything (operation.webRequest.downloadHandler.text is empty, the Debug.Log command just prints "Text: "), but when I enter the debug mode and insert a breakpoint on that line, then it returns the text properly. Does anyone have an idea why is this happening?
      The real problem I'm trying to solve is that when I receive the text, I can't get the data from the JSON. The markup is really simple:
      [{"id":1,"name":"Player1"},{"id":2,"name":"Player2"}] and I have an object that should accept that data:
      [System.Serializable] public class ResultScript { public int id; public string name; } There is also a class that should accept the array of these objects (which the JSON is returning):
      [System.Serializable] public class ResultsContainer { public ResultScript[] results; } But when I run the code (in the debug mode, to get any result) I get an error: ArgumentException: JSON must represent an object type. I've googled it but none of the proposed solutions work for me.
      Also (regardless if I'm in the debug mode or not) when I try to do some string operations like removing or adding characters to the GET result, the functions return an empty string as a result
      Can you help me with any of these problems?
      Thank you
    • By nihitori
      The Emotional Music Vol. I pack focuses on beautiful and esoteric orchestral music, capable of creating truly emotive and intimate moods. It features detailed chamber strings, cello and piano as the main instruments, resulting in a subtle and elegant sound never before heard in video game royalty-free music assets.

      The pack includes 5 original tracks, as well as a total of 47 loops based on these tracks (long loops for simple use and short loops for custom / complex music layering).

      Unity Asset Store link: https://www.assetstore.unity3d.com/en/#!/content/107032
      Unreal Engine Marketplace link: https://www.unrealengine.com/marketplace/emotional-music-vol-i

      A 15 seconds preview of each main track is available on Soundcloud:
       
    • By RoKabium Games
      Another one of our new UI for #screenshotsaturday. This is the inventory screen for showing what animal fossils you have collected so far. #gamedev #indiedev #sama
    • By eldwin11929
      We're looking for programmers for our project.
      Our project is being made in Unity
      Requirements:
      -Skills in Unity
      -C#
      -Javascript
      -Node.js
      We're looking for programmers who can perform a variety of functions on our project.
      Project is a top-down hack-and-slash pvp dungeon-crawler like game. Game is entirely multiplayer based, using randomized dungeons, and a unique combat system with emphasis on gameplay.
      We have a GDD to work off of, and a Lead Programmer you would work under.
      Assignments may include:
      -Creating new scripts of varying degrees specific to the project (mostly server-side, but sometimes client-side)
      -Assembling already created monsters/characters with existing or non-existing code.
      -Creating VFX
      -Assembling already created environment models
      If interested, please contact: eldwin11929@yahoo.com
      This project is unpaid, but with royalties.
       
      ---
      Additional Project Info:
      Summary:
      Bassetune Reapers is a Player-verus-Player, competitive dungeon crawler. This basically takes on aspects of dungeon crawling, but with a more aggressive setting. Players will have the option to play as the "dungeon-crawlers" (called the 'Knights', or "Knight Class", in-game) or as the "dungeon" itself (literally called the 'Bosses', or "Boss Class", in-game). What this means is that players can choose to play as the people invading the dungeon, or as the dungeon-holders themselves.
      Key Features:
      -Intense, fast-paced combat
      -Multiple skills, weapons, and ways to play the game
      -Tons of different Bosses, Minibosses, creatures and traps to utilize throughout the dungeon
      -Multiple unique environments
      -Interesting, detailed lore behind both the game and world
      -Intricate RPG system
      -Ladder and ranking system
      -Lots of customization for both classes s of customization for both classes
  • Advertisement