World of Ideas : Irrlicht-powered fighting game [BETA 2]
World of Ideas : Irrlicht-powered fighting game [BETA 2]
Hi!
I've just released the first beta version of a silly and irrlicht-powered versus fighting game, World of Ideas. This is a Mortal Kombat-style game with philosophers for characters. You can learn more (and download the beta) HERE.
You can see some screenshots here
EDIT: BETA 2 HAS JUST BEEN RELEASED
I've just released the first beta version of a silly and irrlicht-powered versus fighting game, World of Ideas. This is a Mortal Kombat-style game with philosophers for characters. You can learn more (and download the beta) HERE.
You can see some screenshots here
EDIT: BETA 2 HAS JUST BEEN RELEASED
Last edited by Agar on Mon Sep 11, 2006 8:53 pm, edited 3 times in total.
I won all battles before going to my bed
What can I say - I'm impressed, this was my favourite game stile like mortal arts fan. It's funny to play and graphics looks well.
Since I understod that heroes are philosophers even thougth that they are any kung-fu grand masters
From my not artist point of view models looks fine. Animations looks well and will waiting for news for your development.
What can I say - I'm impressed, this was my favourite game stile like mortal arts fan. It's funny to play and graphics looks well.
Since I understod that heroes are philosophers even thougth that they are any kung-fu grand masters
From my not artist point of view models looks fine. Animations looks well and will waiting for news for your development.
Last edited by etcaptor on Wed Jun 21, 2006 10:39 am, edited 1 time in total.
Greate game, only there's one small microsoft bug, i had to instal the newest version of framenetwork... that's not very kind
Compete or join in irrlichts monthly screenshot competition!
Blog/site: http://rex.4vandorp.eu
Company: http://www.islandworks.eu/, InCourse
Twitter: @strong99
Blog/site: http://rex.4vandorp.eu
Company: http://www.islandworks.eu/, InCourse
Twitter: @strong99
Yeah, I know. I never had the courage to learn C++ (I've had some fun modding Quake II and III, but I'm not good enough to write a program from scratch), so I praise C# as my own personal messiah (no C++ memory management and still the great syntax).strong99 wrote:Greate game, only there's one small microsoft bug, i had to instal the newest version of framenetwork... that's not very kind
But I'll learn C++ some day, I promise.
-
- Posts: 44
- Joined: Tue Jan 17, 2006 4:04 am
As you can read in the game PDF manual, animation key frames and models are based on models for the "The Specialists" mod for Half-Life.GueZt_Coders wrote:Very cool sets of animation sequence, did u make
the model and the animation key frame ?
Very well done.
World of Ideas : an Irrlicht-powered versus fighting game
trunks14 wrote:Oh so bad it's managed i'm not donwloading it, i dislike C# specially cuz i have to install the framework.
Yep maybe you will one day learn C++.
Yep maybe you will one day learn C#.
C# rocks.
How can installing .NET matter? If you compile C++ with VS 2005 and link multithreaded-dll, you will be installing all new C runtimes (msvcrt80.dll and friends) on machines that don't have it. How is that any different than installing .NET?
I'd rather have an app depend on .NET than install new C runtimes. You can always uninstall/reninstall .NET. Try fixing broken runtimes sometime.
-------------------------------------
IrrLua - a Lua binding for Irrlicht
http://irrlua.sourceforge.net/
IrrLua - a Lua binding for Irrlicht
http://irrlua.sourceforge.net/
Just downloaded and it worked great! Its good to see some .NET Irrlicht apps out there.
Just looking over the source code and will probably have a few ideas for you (not critiquing, just trying to point out any advice or tips where I see you can improve your app).
Just looking over the source code and will probably have a few ideas for you (not critiquing, just trying to point out any advice or tips where I see you can improve your app).
- You can use Application.StartupPath to get the directory where the .exe is at. Instead of parsing it out of the command line arguments, etc.
- I'd recommend moving to the App.config (XML) format instead of .ini. Its more standard now with .NET apps and much, much easier to read. You can define sections within them, etc. If you want to see some examples, just let me know.
- Not really a big deal, but you might want to look into the singleton pattern instead of using all those static properties, methods. You can delcare a single instance of a object rather than declare everything as static. Its just a little easier and less code, because you only declare 1 static variable instead of declaring everything static. I'll be glad to show you my main game class that is implemented that way (using C# 2.0 also).
- The options dialog cut off the OK/Cancel buttons on the bottom.
- I noticed you commented out the Joystick parts. I can't wait to see the game with the joystick implemented. I'm gonna have to find my old one and try it out again.
- I really like the Audio class and sounds, I may .. ahem .. use it for some ideas for my Irrlicht app.
- I also liked how you create a facade/adapter whatever there for your Engine, Video, Scene classes. I'm going to have to implement something like that in my game rather than working directly with Irrlicht objects from within my entities.
- Why did you go with each letter as a 3d object rather than use the Irrlicht font loading?
hi
Agar
great job man, i have read quickly your code source.
That great to see so fun projet into .net plateform and i hope that you will continue to do it :p
shurijo
Agar
great job man, i have read quickly your code source.
That great to see so fun projet into .net plateform and i hope that you will continue to do it :p
shurijo
i m curius to see how you do it ... if you can make a example it will be sure that it will be welcomI'd recommend moving to the App.config (XML) format instead of .ini. Its more standard now with .NET apps and much, much easier to read. You can define sections within them, etc. If you want to see some examples, just let me know.
design pattern is also available into framework 1.1, and if i remember based on the static oneNot really a big deal, but you might want to look into the singleton pattern instead of using all those static properties, methods. You can delcare a single instance of a object rather than declare everything as static. Its just a little easier and less code, because you only declare 1 static variable instead of declaring everything static. I'll be glad to show you my main game class that is implemented that way (using C# 2.0 also).
Right click on your project under visual studio, and select properties. There is a section under properties called "Application settings". In there you can enter key/value pairs of your config options.i m curius to see how you do it ... if you can make a example it will be sure that it will be welcomI'd recommend moving to the App.config (XML) format instead of .ini. Its more standard now with .NET apps and much, much easier to read. You can define sections within them, etc. If you want to see some examples, just let me know.
To access them from your code, IIRC you do:
Code: Select all
Application.Settings["Key"] = value
-------------------------------------
IrrLua - a Lua binding for Irrlicht
http://irrlua.sourceforge.net/
IrrLua - a Lua binding for Irrlicht
http://irrlua.sourceforge.net/
Thanks for your comments everyone. After so many nights without sleep spent on it, I'm glad to see this project is starting to get some serious attention (I had very positive feedback on a french videogame forum too Here's a link in case somebody here speaks our weird but beautiful tongue).
Now about your comments/critics/suggestions shurijo:
Seriously now, yeah, I think it would be better than my command-line thingy. I just hadn't thought about it.
- Precaching the mesh & texture in new IMesh and ITexture objects if these files were not precached already when another object was created (else it would just use the already precached ones, thus saving memory by automatically avoiding to load twice the same files)
- Create the node
- Tell the Audio class to loop an idle sound -whose 3D coordinates would be the same as the node's-
- Create a light source if the entity has one (for instance if it's a torch/lamp)
- Etc, etc...
That's what I'll do for future versions of the game.
Now about your comments/critics/suggestions shurijo:
Hmmm... I guess that's not complicated enough for me.shurijo wrote: You can use Application.StartupPath to get the directory where the .exe is at. Instead of parsing it out of the command line arguments, etc.
Seriously now, yeah, I think it would be better than my command-line thingy. I just hadn't thought about it.
The reason why I used INI files is because I'm used to their format and I never worked with XML before. Plus INI files can do anything I need for this project. Anyway if you've got some examples, sure, send them to me. I could always use some XML courses, it's gonna be useful some day, no matter if it's for this project or another one.shurijo wrote: I'd recommend moving to the App.config (XML) format instead of .ini. Its more standard now with .NET apps and much, much easier to read. You can define sections within them, etc. If you want to see some examples, just let me know.
Yeah, I know static classes are quite messy in this game. I didn't make the best use I could have done of them. It's just this project is my first one in a fully object-oriented language (I used to code in VB 6.0), so I guess my brain isn't used to think in an object-oriented way.shurijo wrote: Not really a big deal, but you might want to look into the singleton pattern instead of using all those static properties, methods. You can delcare a single instance of a object rather than declare everything as static. Its just a little easier and less code, because you only declare 1 static variable instead of declaring everything static. I'll be glad to show you my main game class that is implemented that way (using C# 2.0 also).
I wasn't aware of that. That's no big deal anyway as there will be an all-new options dialog in beta 2.shurijo wrote: The options dialog cut off the OK/Cancel buttons on the bottom.
I commented them out because I had some trouble with DirectInput (for some reason, the game won't start on any computer but mine if I add a reference to DInput). Now it's kinda fixed, as I've found that there are a few neat functions in WINMM.DLL that can handle game controllers very easily.shurijo wrote: I noticed you commented out the Joystick parts. I can't wait to see the game with the joystick implemented. I'm gonna have to find my old one and try it out again.
Yeah, the Bass library is very powerful (it can even handle 3d sounds for you guys with 5.1 systems) and easy to use. With just a little "wrapper class" like the one I wrote, buffering and playing sounds is a matter of a few lines of code.shurijo wrote: I really like the Audio class and sounds, I may .. ahem .. use it for some ideas for my Irrlicht app.
I like this idea too. The best way to do it would be to create some sort of "world" class which would be a facade between game code and Irrlicht. Then you'd just call some function in this class (for instance int CreateEntity("model.x", "texture.jpg", "idlesound.wav", ...), the returned int being the new entity's index number) and the "facade" class would do the rest:shurijo wrote: I also liked how you create a facade/adapter whatever there for your Engine, Video, Scene classes. I'm going to have to implement something like that in my game rather than working directly with Irrlicht objects from within my entities.
- Precaching the mesh & texture in new IMesh and ITexture objects if these files were not precached already when another object was created (else it would just use the already precached ones, thus saving memory by automatically avoiding to load twice the same files)
- Create the node
- Tell the Audio class to loop an idle sound -whose 3D coordinates would be the same as the node's-
- Create a light source if the entity has one (for instance if it's a torch/lamp)
- Etc, etc...
That's what I'll do for future versions of the game.
I didn't know Irrlicht had a "font loader" for 3D fonts. How does it work? Anyway, I gave up using 3D fonts in beta 2. The new menu is 2D only. By the way, Irrlicht's 2D fonts are messy. Most of the time, the fonts' border are not sharp (they're blurry, with strange artefacts). That's why I used my own font loader in beta 2 (which you can see on beta 2's screenshots on my website. Just look at the character's names.)shurijo wrote: Why did you go with each letter as a 3d object rather than use the Irrlicht font loading?
World of Ideas : an Irrlicht-powered versus fighting game
In 2.0, you just right click on the solution explorer and choose Add->New Item. Then choose Application Configuration.Yeurl wrote: shurijo
i m curius to see how you do it ... if you can make a example it will be sure that it will be welcomI'd recommend moving to the App.config (XML) format instead of .ini. Its more standard now with .NET apps and much, much easier to read. You can define sections within them, etc. If you want to see some examples, just let me know.
That creates the App.config file which is an XML file. Then you can add keys to that file by just double clicking on the App.Config and entering something like:
Code: Select all
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="VideoResolution" value="1024x768"/>
<add key="FullScreen" value="false"/>
<add key="Crosshair" value="Crosshair A"/>
</appSettings>
</configuration>
Then in your code, you just use:
Code: Select all
string videoResolution = ConfigurationManager.AppSettings["VideoResolution"].ToString();
string fullScreen = ConfigurationManager.AppSettings["FullScreen"].ToString();
string crosshair = ConfigurationManager.AppSettings["Crosshair"].ToString();
In .NET 1.1, you use Configuration.AppSettings instead of ConfigurationManager (Configuration.AppSettings was deprecated in the 2.0 release).
The difference with the singleton pattern and Agar's code is that his code has everything as static. It ends up with the same solution, but the implementation is different.Yeurl wrote: design pattern is also available into framework 1.1, and if i remember based on the static one
Here's my singleton Game class
Code: Select all
public class Game
{
private static Game instance;
#region declares
private ...
private ...;
private ...;
#endregion
public static Game Instance()
{
//use 'lazy initialization'
if (instance == null)
instance = new Game();
return instance;
}
private Game()
{
windowWidth = 1024;
windowHeight= 768;
windowFullScreen=false;
cursorName = "cursor1";
isRunning = false;
}
... more stuff ...
}
Then anywhere in the code, I use
Code: Select all
Game game = Game.Instance();
game.MyMethod(5);
//or you could use short form
Game.Instance().MyMethod(5);