Welcome, Guest. Please Login or Register.  • Help
SMF Underground
+ SHMUP-DEV » SHMUP DEV FORUMS » Assistance
|-+ Moving away from Game Maker, any suggestion?

Pages: [1]   Go Down
0 Members and 1 Guest are viewing this topic. Topic Tools  
Read February 04, 2009, 12:47:46 AM #0
hima

Moving away from Game Maker, any suggestion?

Hello everyone.

After I've worked with game maker and finished many games/prototypes, I found that it's time for me to move to something else. I'm not really fond of the GM user interface and the data structure. More over, I think I like typing codes rather than having to click through the list of objects and find the right even to enter the code.

So my question is, do you have any suggestion on what should I move on to?  I have knowledge on C/C++ and Java, though I can't say I'm great at it. I've made a shmup engine in C++, but I'm still not comfortable with it , to be honest. ( By comfortable I mean writing a code like a breeze without having to stop and look at the documentation to recall the syntaxes. )  I would like to go for Ruby, but right now it's too slow for me  and I  want to try something else too.

With that said, I don't mind C++ though. I'm willing to learn, but my objective right now is to find a language that could help me with rapid prototype development.

I'm considering BlitzMax and Hot Soup Processor at the moment. I wonder if BlitzMax can handle more than 1,000 of bullets on screen? As for Hot Soup Processor, I've seen something like that and the fps doesn't drop. However, HSP is not object oriented and even though it has easy basic-like syntax, it would take me a while to learn and understand them. I guess the same goes with C, but I had experiences with C and am more comfortable with it than HSP or C++ :/  I've also looked at Java too, though personally I dislike the language...

I'm sure this may all come down to preference. But I just want some guideline. Don't wanna go blindly trying everything and ended up not master anything at all!  So, any suggestion or advices are greatly appreciated Smiley 

Thank you in advance.
Offline  
Read February 04, 2009, 02:26:53 AM #1
Owen Butler

Re: Moving away from Game Maker, any suggestion?

A useful process to help you decide might be to make a matrix.

Make a list of the features that you need on one side.  Make a list of the candidate tools on the other.  Mark the matrix with whether the language can get you the feature.  The choice might become clear as only one language might tick all the boxes.

The thing about recommending a language or toolset is that everyone has a different matrix of features they need.  For me, developing on OSX, easy portability is very important which takes out things like BlitzMax etc.  However, portability might not be important to you!
Offline  
Read February 04, 2009, 04:16:14 PM #2
worstplayer

Re: Moving away from Game Maker, any suggestion?

I'm considering BlitzMax and Hot Soup Processor at the moment. I wonder if BlitzMax can handle more than 1,000 of bullets on screen?
My tests start slowing down at around 7 000 with collision detection, and around 70 000 with just rendering. So i'd say it can.
Offline  
Read February 04, 2009, 04:57:11 PM #3
Pixel_Outlaw

Re: Moving away from Game Maker, any suggestion?

Using blitzmax too.

Using raw OpenGL (and gl lists for storing geometry) for rendering, I can get around 2700 quad shaped bullets on the screen all doing rectangle to rectangle collision detection with a player at 60 frames per second. Worstplayer, are you sure those numbers are correct? That seems pretty high.

I'm meaning to move away from Blitzmax at the moment but keep getting drawn back in because of how quickly I can work. There are many functions for handling media but most of the math for games is left up the the programmer. They have extensive graphic manipulation which seems to be faster than Game Maker but if you really want to get speed out of your rendering it also supports OpenGL 1.1 (which is outdated a bit).



This is what a very simple bullet may look like. They are called 'types'.

Code:

' create a linked list to store all instances of bullet

global bullet_list:Tlist = new Tlist

Type bullet
Field x:float, y:float, direction:float, speed:float

function create:bullet(x:float, y:float, direction:float, speed:float)
local temp:bullet = new bullet
temp.x=x
temp.y=y
temp.direction = direction
temp.speed = speed
listaddlast(bullet_list,temp)
endfunction

method move()

' calc x and y step based on direction and speed
x :+ cos(direction)*speed
y :+ sin(direction)*speed

if x < 0
destroy()
endif

if x > 640
destroy()
endif

if y < 0
destroy()
endif

if y > 480
destroy()
endif

endmethod

method destroy()
listremove(bullet_list,self)
endmethod

endtype


There may be errors I typed that from memory.



Aviator sunglasses are pretty much the shmups of the sunglasses world.
Offline  
Read February 04, 2009, 06:04:02 PM #4
worstplayer

Re: Moving away from Game Maker, any suggestion?

Yeah, i'm sure of those numbers.
http://www.mediafire.com/download.php?de0o1zxhdmn
(hit enter at any time to spawn 1000 extra bullets(Note: player's shots are not counted so don't shoot Smiley )
It uses Direct3D, and circle-to-circle collision detection.

Of course results may vary depending on your hardware.

I looked at your implementation of bullet, and i'd say the speed difference comes from
Code:
x :+ cos(direction)*speed
y :+ sin(direction)*speed
I use xspeed and yspeed instead of speed and direction, so it's simple addition instead of calculating sin and cos and multiplying and stuff.
Other than that, my implementation is almost the same.

EDIT: actually, i'm not sure about that render speed, but i'm too lazy to write a test right now.

EDIT2: Hima, forget about HSP. It's ridiculously slow and pain in the ass to program. Last time i checked it didn't even have local variables.
« Last Edit: February 04, 2009, 06:38:29 PM by worstplayer »
Offline  
Read February 04, 2009, 07:35:03 PM #5
Pixel_Outlaw

Re: Moving away from Game Maker, any suggestion?

That bullet was only a simple version. I too keep an x_speed and y_speed var in my bullets and only update "direction" as necessary avoiding trig as needed.

My movement code is usually

x :+ x_step
y :+ y_step

I only calculate them when needed but updating the direction only when needed.



Aviator sunglasses are pretty much the shmups of the sunglasses world.
Offline  
Read February 07, 2009, 01:23:12 AM #6
hima

Re: Moving away from Game Maker, any suggestion?

Thank you for all the advices , everyone! So I'm thinking about trying Blitzmax now and see if it'll work for me. However, one thing I found is that Blitzmax doesn't support 3D. So I was wondering if it's possible to do the 3d effect in our game? Something along the line of this

<a href="http://hima.gptouch.com/stuff/59.swf" target="_blank">http://hima.gptouch.com/stuff/59.swf</a>

Is it possible? I don't know anything about OpenGL but I'm willing to learn, since somehow I'm afraid that I can't avoid it anyway haha.
Offline  
Read February 07, 2009, 03:11:01 PM #7
worstplayer

Re: Moving away from Game Maker, any suggestion?

Blitzmax doesn't support 3D out of the box, but there's extremely easy to use open-source extension called miniB3D which adds basic 3D support. With said extension, writing something like that would take maybe 20 lines of code.

Soon to be released MiniB3D ext2 will add shaders, realtime shadows, post-processing effects and another next-gen stuff.
« Last Edit: February 07, 2009, 03:18:37 PM by worstplayer »
Offline  
Read August 16, 2009, 06:41:06 PM #8
Jason Doucette

Re: Moving away from Game Maker, any suggestion?

XNA / Game Studio 3.1 / C# is the way to go.  So easy to program for, and there are tons of examples to get you started.  And best thing is that you can play your game on the Xbox 360 console, and play it on a real TV.  It rocks.  And if other people like it, you'll make some cash in the meantime. Wink
Offline  
Read August 16, 2009, 07:48:38 PM #9
jakman4242

Re: Moving away from Game Maker, any suggestion?

Although I think Jason Doucette is overhyping XNA/C# a little bit more than he should be, I agree with him that it is a great environment to make your games with.

I tried it once, but I really didn't like it myself.

If I recall though, you have to pay out $100 to be able to make/play your games on the X360. Makes sense for Microsoft to do that, since most of the people probably didn't make their money back. Maybe it was just to distribute them on the Marketplace, and not restricting the playing. I have no idea, it's been a while.

I prefer straight C++. It's the industry standard, and that makes things convenient for the future I'm looking to.
Although C# features mostly what C++ does, it doesn't have the same low-level functionality and control C++ does. Which is why I like C++.

Now, I don't know much about BlitzMax, so I can't say much. But I think you should stick with GM for rapid prototyping, then move on to whatever language you choose afterwards. It's what I've done, and it's been working out very well for me.

I think you should stick with C++, it's quite the little powerhouse. Not to mention it's quite clean and efficient, too.


My game design blog -- A bit outdated, but you might like to take a read anyway~
Or read my new blog!~ (which I do update)
My blog.
Offline  
Read August 17, 2009, 02:52:09 AM #10
Yumil

Re: Moving away from Game Maker, any suggestion?

Although I think Jason Doucette is overhyping XNA/C# a little bit more than he should be, I agree with him that it is a great environment to make your games with.

I tried it once, but I really didn't like it myself.

If I recall though, you have to pay out $100 to be able to make/play your games on the X360. Makes sense for Microsoft to do that, since most of the people probably didn't make their money back. Maybe it was just to distribute them on the Marketplace, and not restricting the playing. I have no idea, it's been a while.
I too have fallen in love with XNA/C# and well with Torque X. You do get a lot of free things with your subscription(which btw, 1 full year is $100, but they offer free memberships if you do the dream build play contest and have a shorter subscription time as well). Free things like licenses for torque x, discount for sunburn, Softimage Mod Tool Pro license, and a discount for toon boom. Microsoft has really been a great help with getting the community together and supporting it.

After the first earnings report there was a lot blow up of some of the people using only community games to sell their product. It was a new thing, which pumped out a lot of nongame "games" and those tended to be more popular than the actual games. Also, people were overestimating how good their game was and became very disapointed in their sales. Slowly, community games(now indie games) has been getting some good coverage(heck ign reviews the new ones periodically), so their starting to be a larger user base that downloads the games. With the introduction of the cheaper price models, Im sure more impulse buys will be showing up. Anywho, it's not that everyone is doing bad, I think I remember seeing the sales reports on EZ Muze(one of those nongames) and it was rather high compared to other titles. Im sure titles like Miner Dig Deep as well are doing quite well with all their publicity.

Anywho, Microsoft has made it known that theyll continue to listen to the community and help it grow, so Im quite happy with XNA in general. Examples of it are the recent renaming of the service, implementation of the rating system, lower price points, and giving voucher codes to the makers so they can send em out to the media or whatever.

Plus C# makes things really easy:) The more I learn about it, the more I don't want to go back to C++.
Offline  
Read August 17, 2009, 01:37:55 PM #11
jakman4242

Re: Moving away from Game Maker, any suggestion?

<snip>

Plus C# makes things really easy:) The more I learn about it, the more I don't want to go back to C++.

May I ask why?  laugh
I'm curious, myself. I've read a few articles between the differences in the languages, but after I still liked C++ over C#.

Oh, and, you don't have to pay any fee to make games for Windows, X360, or Zune. But if you want to play them outside of your Windows PC then you will have needed to pay the $100 fee. I did a bit of looking yesterday, throwing this out there in case anyone who reads this is wondering Tongue


My game design blog -- A bit outdated, but you might like to take a read anyway~
Or read my new blog!~ (which I do update)
My blog.
Offline  
Read August 17, 2009, 04:48:59 PM #12
Yumil

Re: Moving away from Game Maker, any suggestion?

<snip>

Plus C# makes things really easy:) The more I learn about it, the more I don't want to go back to C++.

May I ask why?  laugh
I'm curious, myself. I've read a few articles between the differences in the languages, but after I still liked C++ over C#.

Oh, and, you don't have to pay any fee to make games for Windows, X360, or Zune. But if you want to play them outside of your Windows PC then you will have needed to pay the $100 fee. I did a bit of looking yesterday, throwing this out there in case anyone who reads this is wondering Tongue
Well the zune you dont need to be a member, just xbox. Honestly, .net compact framework and xbox can cause quite a few problems and if you are going to release a game on it, you absolutely need the membership to test your game on the xbox so you dont get shunned on the forums. You cant run a nonmarketplace game without it on the xbox.

As to why I say C# makes things easier, I'll just a few features I love.
Properties are amazing. At first I just used them to make things readonly, but after a while I learned that they are really powerful. Heck, I've been using it on references to make sure they are always set. I just make the get property check if the object it was referencing has been destroyed or if it is null and have it reset if it's suppose to be used for something. That way I never get a null reference exception and dont have to be constantly doing that in code. AND IT ALL HAPPENS when I try to get the reference:) Add to that that I can use properties to basically cast for me in the case of set. I had a case where I needed a vector4 for the shader code, while I wanted to use the color type for my C# code, a set property fixed me right up...and now you dont see me converting it all the time in code:)

The managed nature of it and the garbage collecting is quite nice too. I absolutely think that manual memory management is a thing of the past.

You don't need forward declaration in your classes. You can arrange everything how you want. It pleases my eyes that I can organize it how I want.

The base keyword. You can call functions from your overriden parent. Like, say I have an update method in the base class that does some base functionality and then I override it. I dont have to copy the same base functionality I can call it with base.update() before or after I add my new code.

foreach is great for going through classes in a collection of a certain type. Say I have a collection of actors, some are player, some are enemy, some are neutral. I can use foreach to just iterate through the players.

Exceptions also have access to a stack trace, which is helpful.

I could go on and on, but I said Id just give you a few.
Offline  
Read August 17, 2009, 05:22:02 PM #13
kappa

Re: Moving away from Game Maker, any suggestion?

I'd recommend Java + Slick2D library they make an awesome combo, you get opengl accelerated graphics + you can embed your games in a browser if you need.

Or if you need 3d like your video above you can you Java + LWJGL for direct access to opengl or the jMonkeyEngine library for a solid 3d engine.
Offline  
Read August 17, 2009, 07:31:32 PM #14
Korenn

Re: Moving away from Game Maker, any suggestion?

As to why I say C# makes things easier, I'll just a few features I love.
I also think C# is a great working environment, and C# / XNA is great for game development.
Properties are amazing. At first I just used them to make things readonly, but after a while I learned that they are really powerful. Heck, I've been using it on references to make sure they are always set. I just make the get property check if the object it was referencing has been destroyed or if it is null and have it reset if it's suppose to be used for something. That way I never get a null reference exception and dont have to be constantly doing that in code. AND IT ALL HAPPENS when I try to get the reference:) Add to that that I can use properties to basically cast for me in the case of set. I had a case where I needed a vector4 for the shader code, while I wanted to use the color type for my C# code, a set property fixed me right up...and now you dont see me converting it all the time in code:)

The managed nature of it and the garbage collecting is quite nice too. I absolutely think that manual memory management is a thing of the past.
Interesting. I avoid properties like the plague, because they cause more boxing than you really want to know. The garbage collector on the xbox is non-generational and so bad, that coding anything performance based requires you to keep garbage generation to an absolute minimum.
You don't need forward declaration in your classes. You can arrange everything how you want. It pleases my eyes that I can organize it how I want.
true.

The base keyword. You can call functions from your overriden parent. Like, say I have an update method in the base class that does some base functionality and then I override it. I dont have to copy the same base functionality I can call it with base.update() before or after I add my new code.

foreach is great for going through classes in a collection of a certain type. Say I have a collection of actors, some are player, some are enemy, some are neutral. I can use foreach to just iterate through the players.

Exceptions also have access to a stack trace, which is helpful.
the functionality of the base keyword and exceptions are both in c++ and have been for years.
foreach is a nice coding shortcut, but it's a garbage creator if you're not careful.
Offline  
Read August 18, 2009, 07:23:00 AM #15
Yumil

Re: Moving away from Game Maker, any suggestion?

Aye, garbage collection on the 360 is abysmal, and I think I have made a post about it on this forum as well. Aye, you have to take special care that you are managing your objects well on the 360...and it's certainly caused me a head ache. Plus, you cant force it to collect at will(you can flag that you want it to, but there's no guarantee that it will happen).

I see I was wrong on the base part(though it's not as elegant, it is quite possible with C++), but there is no built in way with C++ to get a stack trace through the exception. Yes it can be done, but not without implementing it yourself. That's what I was getting at. Course, I could be wrong. Im wrong a lot. Perhaps I was working too hard at stuff before>.<
« Last Edit: August 18, 2009, 07:40:15 AM by Yumil »
Offline  
Read August 18, 2009, 11:37:36 AM #16
Korenn

Re: Moving away from Game Maker, any suggestion?

no, you're correct, stack tracing in c++ is an implementation nightmare. But it's possible to generate exceptions and catch them etc. So partial funcionality then Smiley
Offline  
Read August 18, 2009, 12:35:23 PM #17
TazMan47

Re: Moving away from Game Maker, any suggestion?

You might want to take a look at 3DRad now that it is FREE. I downloaded it myself and was very impressed.   Grin

http://www.3drad.com
Offline  
Read March 04, 2010, 05:10:29 AM #18
ChaoticHeartLD

Re: Moving away from Game Maker, any suggestion?

New to the community, but thought I would throw Unity out there.

The basic version is currently free, and is likely the best development software I have ever worked with. Very intuitive, excellent art pipeline, great community backing it, slick API, etc {all the usual stuff you hear}. Currently publishes for MAC/PC/Web from one build, with a universal web-player plugin; can also add on iPhone/iPod and Wii, if you feel like upgrading the license. No Xbox 360, currently, unfortunately.

Has minimal 2D support, though. You can get it to do 2D, but it is kind of like forcing it.

You get your choice of scripting languages from Unity JavaScript {close, but not exactly regular Js}, C#, and Boo.

If nothing else, considering it is free it is worth giving it a look. www.Unity3d.com
Offline  
Read October 17, 2010, 09:19:12 AM #19
Steiner

Re: Moving away from Game Maker, any suggestion?

If you want to go the c# route but dislike xna, you could try opentk + irrklang.net. It gives you full opengl and input support as well as a few nice math classes. Irrklang plays anything under the sun.
The downside is that you'll have to build your own framework for simple stuff like sprites first...
Offline  
Pages: [1]   Go Up
Jump to:  

Page created in 0.151 seconds with 17 queries.