Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

XNA 3D RPG Engine - M!nty Xna Engine

Hello guys & girls, some of you may remember me(PinkMan) from previous RGSS related releases here @ RMXP.org. I've been here for some time now, watching the community progress, while lurking overtime I've noticed many changes. It's good to see more and more people learning and becoming more experienced in game-design, and programming.

For those who're interested in working on a more dedicated project. I would like to share a bit of information on my current engine. Hopefully some of you would like to help out, in the progression of this engine.


Engine Details
Windows Platform Support
XBox360 Platform Support - Community Dependent
Dynamic Structure
Graphics Configuration
Control Configuration
Online Support
Multi-Player Support

Engine Components - Completed Components are green.
Camera Structure Interface
Scene Management Interface
Scene Object Interface
Billboard Types
Scene Model Objects
Scene Ocean Shader
Volumetric clouds for the scene.
Sky Sphere
Scene Physics Interface
Physics System
Particle System
Compression/Decompression Data Types
3D Sound System
Shader Interface
Event System
Interpreted Scene Language
more..

Want to help?
  I am accepting help, this means if you have something you would like to see in the Engine, then let me know, and I will think about implementing it. Depending on its  difficulty. So feed back, and ideas are welcome!

  If you would like to help at a more direct & devoted standpoint, I am also accepting others to join in and be apart of the team.(currently this is just me.. programming) Below are some positions which require filling. :P
 
  • 3D Artist- This is a large position. A 3D game simply wouldn't feel right if everything was two dimensional. It's clear that behind every 3D game, there is a woman/man who works hard and creates beautiful 3D works of art. Using only polygons, and a sturdy mind, they can give any two dimensional object, give it depth, and bring it to life..
  • Concept Artist/Texture Artist - A game simply would not be entertaining without creative designs, and mind blowing art. This is another large Position, this requires the team member to undergo heavy thinking, while observing the world, and re-creating these beautiful details in life, in a finely tuned work of art. One must be creative, and observant to fill in this position.
  • Programmer - What is a virtual-game, without a programmer? This is a more difficult position, it requires a good deal of Logic, and Common Sense to get the job done. Whether its mathematics or lexical, it is up to you to get the job done!(of course most programmers look through the internet for resources, examples, to better understand something. and always remember to brush up on your math!)
  • Musician - Music and sound effects are one of the very incredible aspects to playing any game. No matter how well some games appear visually, or how fun they're during Game-Play. No game is complete, without fulling putting the player into the action, with in-game sound.

  Contact information is in the FAQ

Multimedia
https://mintexperiments.wordpress.com/
[10/09/08] Added New Video: High Quality Ocean Shader
[10/30/08] Added New Video: Ocean Shader Update, Post Processing
       - Based off of nvidias shader for ocean dynamics. Ocean Nodes are now procedurally animated as well.

The IP/Address above is 100% safe, don't be afraid. If to many become scared and less courageous I will post You-Tube links.

F.A.Q

Q: What is XNA?
A: A Content Management Pipeline

Q: What is an Engine?
A: This is what makes a game 'tick.'

Q: What language is this coded in?
A: C-Sharp(C#)

Q: Contact Details?
A: Email: pinkmanonfire@gmail.com; MSN: pinkmanonfire@msn.com; AIM: minimoosedogs


XNA 3.0 Has been released; I will be re-coding the engine to work with 3.0. Very glad it's finally out! I can now work on a sound system; :D
 
A few questions, and comments.

If the project's only been in development for three weeks, exactly how old can your videos be?

Can't you post the videos on You Tube?  With online security becoming a larger issue by the year, posting a link to a domain that's an IP address seems fishy, how do I know it doesn't use a browser exploit, click jack experiments, or something similar?

Your comments about the multiplayer support.  Your multiscene rendering mechanism needs to be well load-balanced so that one view isn't prioritized over another, or you could utilize multi-core architecture (assuming the multi-player support allows multiple people on the same station). 

Proof read your posts, and use spell check.  'Their' and 'There', while phonetically identical, carry very different meanings.  'There will be a library for enabling network support' vs. 'Their will be a library for enabling network support' as an example.

Also you're not working in XNA, you're working in C#, XNA is merely a content management pipeline, which is to say that it makes getting your content in your game engine easier.  So you can focus on developing your game, not dealing with the trivialities of managing everything.  Such was the goal of C# in the realm of standard applications memory management, code structure, and so on when it comes to the managed architecture (which is largely attributed to the Common Language Infrastructure).

Also, engines themselves aren't 'used', they should be transparent to the user's experience.  You're thinking more along the lines of an easy to use Graphical User Interface (GUI). 

It's also not a good idea to mention support for something when you're not totally sure you can pull it off.  Namely the XBOX 360 support.  The only real changes that will occur in transitioning from one platform to another, since you're using a managed architecture, is creation of a new project targeting the XBOX 360 platform.  The reason for the new project is due to the references.  Conditional compilation arguments (IE. XBOX vs. WIN32 as said arguments) only account for which areas of the code are altered by them, the project references aren't yet defined in a simplistic enough manner to allow for conditional platform retargeting.  Hopefully such features will be possible later on down the line.

Also, including areas in a post that are marked 'ToDo' is generally silly (FAQs).  If there aren't any questions, there's no FAQ period.  No need to mention questions that aren't asked.  That's similar to posting a link to a demo version that isn't ready yet, and not uploaded, so you say 'Soon to come!'

Edit: Also, remember there are girls in this community as well, while I'm not one of them, they might be offended to be left out, or simply to be called a guy.
 
The second video is roughly two weeks old, while the first a week.

I can post my videos on YouTube, though I find it easier to drag and drop a file to a directory on my PC, than to wait for it to upload to some public 'secure' domain, just so you can feel safer.

I know this, and agree.

Proof Reading..? It's 11am, and have not slept. Not only that, though I am not a particular fan of 'proof reading' and assuring accurate grammar, and vocabulary. Personally, I really don't care. Though thanks for the heads up.

Sorry, I didn't think it'd be necessary to describe exactly what XNA is, or what I'm using. Though, I'll fix that if it is really such a bother.

Engines are not used? You cannot drive a car without an engine. Clearly the engine is not ment to be 'noticed' by the user, though rather create the world the user is interacting in. I figure most may have known this, though it's nice for you to point this out.

XBox360 support, would be a fairly simple modification to the windows source code. The reason I say 'maybe', is I do not have an XBox360 to ensure everything works. If I found another C# programmer, with experience in using the XNA Framework, if that individual was kind enough to test/implement this support, then an obvious reason arises from having put that there.

Hardly, I am leaving it up to people to create these FAQ. For instance you've already shown a few clear Questions, and Answers that others may derive from my post. So, now I will go back and clean these things. Though, only after I finished being lazy! :)

Good response by the way. Interesting how you point out every small detail you come across that did not seem appealing enough for you.
 
ninja#mint":1pdhkh86 said:
. . . Interesting how you point out every small detail you come across that did not seem appealing enough for you.
Well it's not so much that I'm trying to bash you because I believe I'm better than you are.  It's not that at all.  I merely pointed out the areas that might be ambiguous.  The thing that bothered me the most was the IP-address server.  I think there are still no-ip based dynamic IP-redirect service tools out there.  I also only pointed out the issues related to spelling and/or grammar due to a personal pet peeve of mine.  If someone's asking for help, they should at least ask in a moderately professional manner, that's just a preference of my own.

You pointed out that most of the things I found wrong were purely your own lack of interest, I just hope this lack of interest (laziness as you described) doesn't rub off on the final product.
 
Good to know, though I believe there was no pun-intended comments in your post. It's clear you're a self centered individual, which I admire to some distinct point. So, good day to you sir. :P

Edit: As usual, my skills in programming, and designing are not to be compared or referenced to my personal rationality, or beliefs.
 
ninja#mint, don't be a dick. Alexander Morou is clearly trying to help you with this. And since he's like the only person on this forum who does with with XNA stuff like this, you shouldn't want to alienate him.
 
I can definitely say that you've done better than me. I've never been able to get XNA to run successfully in more than one of my dev machines. Looking at your videos, I can say that you've done better than my current progress through SDL and OpenGL.

Oh, and if you want to alienate Alex, you can always come over the the cross-platform side of things. Like SDL and OpenGL. C# is cross-platform too, it's just that XNA isn't.

I do suggest using "Roadmap" instead of "Plan" in coding. Sometimes things don't go well, and code hates other bits if itself- Roadmap sounds more flexible and stops people from demanding it.

If you do find out how to embed Ruby, do share. I'd like to use it in my Engine as well.
 
@Cocoa: Well, I plan to embed ruby through the use of http://www.ironruby.net/.. So, I already have a library for this. You're working in C#? If you're using C++ I suggest downloading the C Source of Ruby, Compiling it, and then using that DLL in your application(create a wrapper, or just make specific calls to the API) you could interpret string types, etc.. In C# Iron-Ruby has the power to reflect code-wise on your current object-types(you can use a C# object, in your Ruby code.) Uh, I've fiddled with SDL and OpenGL in C++, but I never really got around to enjoying it, other than a Meta Blob api, Mandelbrot explorer, and the rendering of Strange Attractors(LOVE THESE THINGS!). I am liking XNA due to its large support in resources. :) SDL & OpenGL left me dead when it came to this. Either way, Direct X seems a better choice, have you ever tinkered with that, it takes a little more understanding, but it's quite a ways faster, more resources, and potentially prettier. Correct me if I'm wrong, though I believe XNA is a wrapper for DirectX? As for your problems compiling, XNA does require a video card that supports Pixel Shader 2.0 or greater. So, this may be the source of the problem. I am running on a 7300 gtx, very old video card, though it does support PS2.0, which makes me lucky.. :P I did try XNA before I had this card, and it wouldn't compile. That was when I was forced to use DirectX, and OpenGL w/ SDL. :P

@missingno: wasn't being a dick, I was acknowledging his comment "Well it's not so much that I'm trying to bash you because I believe I'm better than you are.  It's not that at all."; at which I deemed sarcastic(hard to tell through text though, the usual common miss interpretation).

XNA runs on Windows, Xbox360, and Zune. This does make it cross platform.
 
Not really- Windows/Xbox360/Zune are all implementations of Windows.

Xbox360 runs on a architecture specific version of Windows, and Zune is Windows Mobile..

I use OS X.
 
Well, you have a point.. sorta, I was just making it clear it is 'cross-platform'. Perhaps not Cross OS. :P
Though, I'm sure given enough time someone will come along and add support to XNA for mac. But then again, mac isn't much of a gaming OS. I say that given the little amount of games actually made to work on a mac specifically;

Never the less, thanks for pointing that out. ;)

(have you tried dual booting a windows os? I believe mac can do that now.)
 
I do run Windows XP on bootcamp.
But, XNA is not cross-platform. XNA is not coming to Mac, since it's a DirectX-based technology. Cross-platform is a term used for OSes AND Hardware. With OpenGL and SDL, you'll be able to run on most hardware and OS packages- Unlike XNA. Seeing as Xbox, Windows Mobile, and Windows are all implementations of the same thing- It's hardly cross-platform. You're close, it's cross-architecture.

In reality, most non-dotNet/XNA games will run on a Mac, thanks to Transgaming Cider. So in a way, ports are no longer required. Now, if you can get your application running on Windows, Mac OS X, PS3-Linux and GNU/Linux- Think about how much your audience has increased.
 
SDL & OpenGL simply do not cover my fancy;
"XNA is not coming to Mac, since it's a DirectX-based technology" Are you implying that mac doesn't support DirectX games?
Wouldn't this conflict with "non-dotNet/XNA games will run on a Mac"; being most new games use DirectX.

If Transgaming Cider supports DirectX Games on Mac, why would XNA not be functional on a Mac then? Curious, personally am a Windows fan. Don't know much about the mac. So hope you can help clearify that for me.

Project Notes
I've almost completed my new Ocean Shader using the Nvidia Water technique to apply Wave Animation, still realtime reflection, and much more pleasing to the eyes. :) A sort of World Lighting has been implemented now, and 'Sparkels' will be alive soon. Once I fix a few bugs I will create a new video for everyone to see, then its back to work on the volumetric clouds. :)
 
Transgaming Cider is an emulation layer, of sorts. It uses it's own custom DirectX-to-OpenGL translators. So, yes, in a sense, Mac does not support DirectX. Of course, that equates to DirectX10-to-OpenGL not being able to be used in Cider as well.

XNA also requires the usage of dotNet technology, which the Mac cannot run. You would need to compile/build your project in the Mono Framework to achieve a framework similar to dotNet. Of course, last time I checked, an XNA alternative isn't in Mono.

SDL and OpenGL might not cover your fancy, but it's the only item I know of where you can port it to all OSes without any code change.
 
Nice to see you know what you're talking about Cocoa. Anyways, SDL & OpenGL are good for those who's goal is to produce something which is cross-platform.

My goal isn't really to excite *nix fans though. It's to provide a framework, based on an already easy to use language(C#), and already easy to understand framework(.Net), and an already easy to work with Content Pipeline(XNA). Its goal is to allow 'noobies' to create fully 3D environments, without having to much skill. An easy 'step' in the right direction. :)

Much like RMXP does, this will do. RMXP was a fairly large stepping stone for me, once I got past that, I begun work on much more complex software. Years have passed, and I'm doing quite well for my age. Sixteen, and programming at a college level. Beyond a college level in some cases, at an expert degree. :P I want my engine, to allow users to understand the concept behind 3D Game Programming, allowing them to better understand the way it differs from 2D, and in many ways allows them to find problems, and hopefully work to overcome them.

While all this would be just as entertaining and great on other platforms. I simply do not see myself doing it(to much work.) I'm sure there will be support in time to better handle DirectX(then XNA), if anything at least for other *nix distributions(*nix comes out w/ everything.. just takes time. :P) Anyhow, I gotta continue cleaning. Then am going back to my second project(Multi-Touch Surface).

When I finish with that, I have some ideas, and formulas I've been working on mentally, I would like to try and implement into my engine, for instance the shading for my billboard clouds to make them appear more 3D. I am also expecting a fellow programmer to help out with the completion of my 'Best Quality' ocean effect. Then its onwards to working out a new Material/Post-Screen effect system. Which from looking at other systems, I've come up with a nice structure, to do this. :) Just a matter of implementing it.

Anyhow, would like to see more posts here by other members of the community. Need more feedback to further motivate me. :P
 
I generally use C, wxWidgets and SDL/OpenGL, since I run in a Mac OS X and *nix environment. My PC runs Ubuntu, so I build there too.

However, I don't think C#, or .NET would matter- Since you're implementing Ruby as the Scripting Language. Unless you're keeping it there for fun- That case the users would be coding in C# anyway.
 
Not sure yet if, whether I am going to use C# or Ruby.

Doing other projects as well, and yet cocoa you're the only person keeping a fair conversation.
Really need to get more work done here, and post more details, so I can interest people better.
Perhaps start a blog for the engine.
 
Generally, this is a RMXP/RMVX forum, so people are going to be more interested in that.

Of course, if you can get a running CTP, I'm sure people will post more.
 
Ah, well that's going to be a while. :P In addition, working on some other engineering projects at the moment. Working a little physically now too, and coding online for money. But, I am doing what I can in my spare time.

I will try and get a sort of 'Demo' download running though, once I implement many more components, and make things a little more stable/appealing. Perhaps then I can give this project the attention it deserves. :P

Perhaps just a video of some procedural effects, with some music in the background. ie: pretty computer art. :P

Maybe I can work something in using Strange Attractors, or 3D Computational Fluid Dynamics. (maybe try to 'pwn' that nub Hydrophobia Engine: http://www.youtube.com/watch?v=VPqcoipnq4Y)

I really love my in-game water.

PS: Cocoa, sort of the wrong place for this, but read my PM, fairly ergent.
 
After a PM from ninja#mint, I've decided to ask a few questions:

Not to sound too silly; however, are you making an RPG Engine, or a generic game engine?  Hydrophobia is a game focused specifically about water-based environments, and focuses on using it as a game play element.  Most Role-Playing games don't do this, so saying you're going to 'pwn' a game that isn't even out yet by besting their professional efforts at fluid dynamics seems a bit misplaced.  What's the goal of focusing so much on water/ocean based effects, unless you're targeting a specific area.

If you're planning on using the features because you have a generic goal in mind, you'll need to ensure that you properly layer and abstract your overall architecture if you plan on adding such highly specialized features, because such functionality will probably require some form of predetermined information related to how the environment will interact with the fluids that are introduced into the system; they'll also probably require volumetric information on the areas containing the fluids so that it's properly placed (though certain shortcuts can be introduced to simplify this, such as regioning an area off and defining a plane at which the water levels off at, the game would propagate the fluid information on initial start-up).  The same things would naturally apply to save games.

The thing people also might want to know, before helping you, is: What are you going to use this engine for?

Are you going to make a game?
Make a development environment so others can make games from the engine?
Release the engine so other developers can make games from it using their own tools?

If you're making a game, what is the game about?
If you're making an IDE of sorts, what's your goal, what gap do you plan to fill by doing so?
If you're making an engine to release to others for whatever, why do you need 3D artists?

I hope you can understand that my questions are simply the first thoughts that came to mind when I read this topic.  They're not meant to dissuade you from continuing this project, but rather get a better grasp for myself, and others, to understand why you're doing this, and what, beyond an engine, you plan to accomplish. 
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top