Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

165 Neutral

About jillion

  • Rank

Personal Information

  • Interests
  1. jillion

    Engine UI

    I wrote a responsive UI for mine using just OpenGL, LUA, and elbow grease - and wouldn't recommend going down that path because responsive UI can be difficult to lay out correctly and optimize, in addition to having all the other engine junk running. If you just add some static click-state buttons (i.e. click inside the rectangle image) on the screen, that's easy. However if you're in C++ land I'd recommend you encapsulate your engine in Qt. Qt is very powerful, has tons of optimized pre-written stuff (even math) and works great as a foundation for game engines. If you don't trust it, you can also do something like @godofpen said and create a UI in C# (WPF, Winforms, Java AWT, maybe even native JS) and route button messages to your game process. However, if you plan on making a game that utilizes the same UI that you're coding for the engine, it might help to have the whole thing in one window like Unity. This is not to mention creating a separate "custom game UI Editor" outside of the engine UI itself. We;d hope you have a small team together before you tackle that dragon of a project. Now if someone knows how to host the game process itself inside of a Unity-like WPF window, that would be sweet because I haven't figured out how to do that yet.
  2. I'd forego the indexes and loop over a std::map if this is your first stab.  Store active/renderable/red as members on player. It won't be slow, unless you have like, a WoW sized player base.  Problem solved.  If/when you hit a performance issue, then make those index maps.
  3. tomd1013's reply is what you want.  As an additional point you can take a manual approach to update the view during the "step" event... for example: view[0].left = character.x - view[0].width/2 -- and set top,width,height in a similar way.  I'd do this to add manual effects like shake, or pan, or more creative effects.   Pardon any incorrect GML it's been a while.
  4. jillion

    Creating Open World

    Highly agree with Tangletail's reply.  Keep it simple.  Also point 4 slayemin's reply.  I did something similar for Castle World for example.  I split the world into AABB cells.  Each cell has a terrain mesh and game objects.  Start with the cell that the camera point is in, and recursively traverse neighbor cells.  Collide their bound boxes with the camera's view frustum to see if they are visible.  Then for that cell, draw the terrain mesh and all objects whose bound boxes intersect that cell.  This information is cached of course.  It works and it is very fast.   This is just an example.  There is no one solution.
  5. jillion

    Rendering Text for GUI

    I use the Sean Barrett's STB truetype library to parse TT files with OpenGL in C++, then update a quad buffer at runtime for drawing.  Fast and simple.  STB is excellent because it's one independent file.  Never tried to draw Kanji.  However.. there are probably better methods than this approach. I would try the solution in vstrakh's reply first.
  6. jillion

    c++ or c# for 2d and 3d game creation?

    If your goal is to write a game...and not a game engine... do like Kylotan said and get Unity.  In that case C# is your language.  If you write the engine (ill advised) I use C++ personally since it can be ported to all desktop and mobile systems for free.  But it is hard.  If you have never made a game before I would start with game maker & GML.  Matter of preference
  7. jillion

    How to use namespaces in structuring a project

    On a game engine I have never had a problem with a single wrapper namespace.   For a simple project < 3000 lines of code you probably don't need a namespace.  Also I recommend always wrapping your typedef enum's in their own namespace.   Bregma's answer above is also very interesting. ;P   Companies have their own way of doing things and adopt complex team-oriented practices that should not be used in individual projects.
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!