GDR Forum Index
Podcast Podcast
Dev Dev Logs
Search Search
RSS RSS
Register Register
Log in Log in
Reply to topic GDR Forum Index -> Game Developer's Refuge -> Development Log - RogueOpcode Page 1, 2, 3, 4  Next
View previous topic :: View next topic  
Author Message
xearthianx
Developer

Joined: 28 Sep 2006
Posts: 771
Location: USA! USA!
PostPosted: Wed Mar 17, 2010 12:14 pm    Post subject: Development Log - RogueOpcode Reply with quote

Yeah, so I'm not quite dead. Just super busy with school and a bunch of crazy personal stuff over the past year or so. The upshot: this semester I'm in CS583 - 3D Game Programming. To start getting familiar with XNA (yeah, not my choice) before having to worry about 3d rendering and math issues, we were assigned to complete a 2D game project.

This should look familiar to Paul if he still lurks around here...





The game is actually mostly done, so this isn't much of a dev log. I have to upload it tonight before midnight Pacific time for a grade, but I like it well enough that I might polish it up and throw in some finishing touches. I'll probably document that here. If anyone's interested I can put it somewheres and post a link when I'm done, for the hours of fun playing. It's in XNA, so apologies to my Lunix and Mac brethren.
_________________
Ionoclast Laboratories - Scientia et Dominatia!
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Gil
Developer

Joined: 14 Nov 2005
Posts: 2341
Location: Belgium
PostPosted: Wed Mar 17, 2010 1:45 pm    Post subject: Reply with quote

What are your thoughts on XNA?

It's not that I dislike it, but I don't think I really like it either.
_________________
PoV: I had to wear pants today. Fo shame!
View user's profile Send private message Visit poster's website
Bean
Admin

Joined: 20 Aug 2005
Posts: 3772

PostPosted: Wed Mar 17, 2010 3:04 pm    Post subject: Reply with quote

I think your the first person I've known to mess with XNA. Kinda interested in your thoughts on it as well.


-Bean
_________________
Kevin Reems | Nuclear Playground | Solid Driver
View user's profile Send private message Visit poster's website
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9442
Location: Not Finland
PostPosted: Wed Mar 17, 2010 3:31 pm    Post subject: Reply with quote

Ditto on the above posts. I have zero XNA experience, and although I have no desire to pick it up, it's always good to know what's out there.
View user's profile Send private message Visit poster's website
xearthianx
Developer

Joined: 28 Sep 2006
Posts: 771
Location: USA! USA!
PostPosted: Wed Mar 17, 2010 6:00 pm    Post subject: Reply with quote

I feel kinda guilty about saying this, but C# is really a super friendly environment to program in, for the most part. Where I was banging my head against the keyboard when they made me use Java in other courses, I almost feel guilty about how easy C# is. XNA is more of the same kinda stuff.

Basically you derive your custom Game class, and all your interesting code goes into the Initialize(), LoadContent(), Update() and Draw() methods. From there, it's pretty straight forward, and you can figure out most of the stuff you need with a combination of Intellisense and MSDN. As with anything .NET, it's a pretty HUGE library, so don't expect to master it overnight. The MSDN examples are actually rather good, but the documentation in general is as difficult to navigate as you will have come to expect.

There's also a feature called components whereby I think you can register your utility classes to automatically be called for the Update and Draw events. I don't fully understand that because I kinda skipped that chapter and I got along fine without it :-P
_________________
Ionoclast Laboratories - Scientia et Dominatia!
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
n29
Developer

Joined: 13 Sep 2005
Posts: 879

PostPosted: Wed Mar 17, 2010 6:35 pm    Post subject: Re: Development Log - LongWayDown [ R-R-R-Remix-mix-mix ] Reply with quote

xearthianx wrote:
Yeah, so I'm not quite dead. Just super busy with school and a bunch of crazy personal stuff over the past year or so.


Holy sh*t, it's the year 2010 and you're compiler course is using the Dragon book, that's really amazing. Good luck with that, I hope your instructor is a good lecturer because it can be a very dense book!

Did you know the creator of Allegro is (was?) an XNA developer at MS?
View user's profile Send private message
xearthianx
Developer

Joined: 28 Sep 2006
Posts: 771
Location: USA! USA!
PostPosted: Wed Mar 17, 2010 7:23 pm    Post subject: Re: Development Log - LongWayDown [ R-R-R-Remix-mix-mix ] Reply with quote

n29 wrote:
Holy sh*t, it's the year 2010 and you're compiler course is using the Dragon book, that's really amazing. Good luck with that, I hope your instructor is a good lecturer because it can be a very dense book!


Yeah, he's pretty good. He makes note of the in depth theoretical discussions, without belaboring them too much.

n29 wrote:
Did you know the creator of Allegro is (was?) an XNA developer at MS?


I want to say no to that, but it actually sounds kinda familiar... XNA is not a bad framework, as far as those things go. I certainly finished a game in record time, with it.
_________________
Ionoclast Laboratories - Scientia et Dominatia!
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Gil
Developer

Joined: 14 Nov 2005
Posts: 2341
Location: Belgium
PostPosted: Thu Mar 18, 2010 5:33 am    Post subject: Reply with quote

Well, first of all, it's on top of C#, so like xearthianx is saying, it's almost too easy in that respect. As with most C# stuff, this is geared towards rapid development and that's where I feel the catch.

Pros: Very quick to develop in, excellent for prototyping, lots of documentation

On the other hand, the whole application structure feels a bit muscled in. After a few hours with XNA I was fighting the existing structure to let me use custom components, such as my own scenegraph.

XNA is made to make XNA games, meaning you work their way or not at all. The problem gets apparent when you want to combine XNA with other technologies, custom engine pieces, etc.

So, for short games, I highly recommend it, but for big projects, I'll probably go for something that allows different approaches.
I like parts of it, I just can't use them, because they're hardwired to parts I don't like.
_________________
PoV: I had to wear pants today. Fo shame!
View user's profile Send private message Visit poster's website
Bean
Admin

Joined: 20 Aug 2005
Posts: 3772

PostPosted: Thu Mar 18, 2010 9:53 am    Post subject: Reply with quote

Nice summery. Guess I'll continue not using it, but it certainly has it's place.


-Bean
_________________
Kevin Reems | Nuclear Playground | Solid Driver
View user's profile Send private message Visit poster's website
xearthianx
Developer

Joined: 28 Sep 2006
Posts: 771
Location: USA! USA!
PostPosted: Thu Mar 18, 2010 1:49 pm    Post subject: Reply with quote

Fixed a crash bug. I wasn't checking if the highscore file existed, and it would throw an uncaught exception when I tried to load it. Woops :-P

Tweaked the particle effects for when you asplode, too. Looks way cooler now :)

Next up, particle streams for maneuvering thrusters!
_________________
Ionoclast Laboratories - Scientia et Dominatia!
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
xearthianx
Developer

Joined: 28 Sep 2006
Posts: 771
Location: USA! USA!
PostPosted: Thu Mar 25, 2010 8:21 am    Post subject: Reply with quote

Ok, new plan. I'm cleaning this bitch up and spamming it to every platform marketplace that'll take it. Huzzah! :)
_________________
Ionoclast Laboratories - Scientia et Dominatia!
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
PoV
Moderator

Joined: 21 Aug 2005
Posts: 10862
Location: Canadia
PostPosted: Thu Mar 25, 2010 8:38 am    Post subject: Reply with quote

xearthianx wrote:
Ok, new plan. I'm cleaning this bitch up and spamming it to every platform marketplace that'll take it. Huzzah! :)

Wooooooooooo!
_________________
Mike Kasprzak
'eh whatever. I used to make AAA and Indie games | Ludum Dare | Blog | Tweetar
View user's profile Send private message
Madgarden
Contributor

Joined: 31 Aug 2005
Posts: 324
Location: Kitchener, ON, CA
PostPosted: Thu Apr 08, 2010 4:25 pm    Post subject: Reply with quote

Lerk lerk! ;)

Man I gotta try to get back here more often.
_________________
I know it sounds crazy, but it JUST MIGHT WORK
View user's profile Send private message Send e-mail AIM Address Yahoo Messenger MSN Messenger
xearthianx
Developer

Joined: 28 Sep 2006
Posts: 771
Location: USA! USA!
PostPosted: Mon Oct 11, 2010 12:05 am    Post subject: Reply with quote

October game-fest tie-in: I am porting this bitch to Android as we speak. I have a small team working on this with me. Screens as they materialize.
_________________
Ionoclast Laboratories - Scientia et Dominatia!
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
xearthianx
Developer

Joined: 28 Sep 2006
Posts: 771
Location: USA! USA!
PostPosted: Mon Oct 11, 2010 6:59 pm    Post subject: Reply with quote

Since "Long Way Down" is Madgarden's name, and this is really a different kinda game now anyways, I am renaming the project.

The open source version with GPL graphics and audio is going to be called "...In Space!" The free (as-in-beer) version for the Android marketplace will be called Null Sector, and is going to feature new, enhanced graphics, which may pave the way for a deluxe edition for a few bucks.
_________________
Ionoclast Laboratories - Scientia et Dominatia!
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
xearthianx
Developer

Joined: 28 Sep 2006
Posts: 771
Location: USA! USA!
PostPosted: Fri Oct 15, 2010 7:05 pm    Post subject: Reply with quote

A while back, my friend wrote a tiny game framework in Java to port the XNA game he wrote in that class to his Android phone. We've been expanding it and cleaning it up so we can support some of the more advanced features of LWD/C#, and also to scale nicely to different handset with different screens and such. This mostly has to do with timing and how things are rendered to the screen. Still need to figure out how to play audio :-P

My game code is completely ported to Java. Draws to the screen okay, but a lot of stuff is commented out until we finalize a relatively portable way to code things in Java.

PS
I hate Java. But this is a fun challenge.
_________________
Ionoclast Laboratories - Scientia et Dominatia!
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
xearthianx
Developer

Joined: 28 Sep 2006
Posts: 771
Location: USA! USA!
PostPosted: Sat Oct 16, 2010 3:16 pm    Post subject: Reply with quote

I decoupled logic and graphic updates, so their rates are no longer directly related. They're in completely separate threads, and the draw thread sleeps until at least one logic update has been crunched.

Also changed logic timing so it respects the specified logic rate if sufficient CPU resources exist; yields any extra CPU time; only redraws after at least one logic update; and drops frames without affecting logic speed when the system is overloaded, but doesn't totally starve graphic output.

I got close to 3000 sprites bouncing around the screen before it started to break a sweat.
_________________
Ionoclast Laboratories - Scientia et Dominatia!
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9442
Location: Not Finland
PostPosted: Sat Oct 16, 2010 3:32 pm    Post subject: Reply with quote

Java aside, how do you like Android development?
View user's profile Send private message Visit poster's website
xearthianx
Developer

Joined: 28 Sep 2006
Posts: 771
Location: USA! USA!
PostPosted: Sat Oct 16, 2010 8:08 pm    Post subject: Reply with quote

This is actually a kind of interesting question, on this project. Because testing and debugging a PC program is always tons faster than messing with an emulator or actually copying code to your phone, the framework we are developing is designed to abstract away all the platform details so you can just concentrate on making a game and have it work.

Most of the recent development has been on the J2SE/SWING backend, but we're working on normalizing the interfaces with the Android implementation in a way that makes logical sense, rather than bowing to the idiosyncrasies of any one platform. This isn't always 100% possible, though, so the Android side of things does present some rather stricter design limitations. For instance, any data files you want to read have to be in a folder called res in your project hierarchy. And you need to have a package spec that is at least 3 layers deep, I believe, which parallels the sensibilities of a domain name in reverse (com.ionoclast.inspace).

As far a more pure android development goes, I've mostly dicked around with the AppInventor (which is pretty cool, by the way) and some basic productivity type applications. All in all I really like how componentized the API is (you ask for a service such as the camera, and whatever camera software the user has on their phone is able to fulfill your request). I have no idea what the "right" way to do multimedia and games on Android is, but I know it does software sprites decently fast even on the G1, and it's got GLES 1.0 for 3d stuff.
_________________
Ionoclast Laboratories - Scientia et Dominatia!
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Madgarden
Contributor

Joined: 31 Aug 2005
Posts: 324
Location: Kitchener, ON, CA
PostPosted: Sun Oct 17, 2010 5:23 pm    Post subject: Reply with quote

Cool, looking forward to some updated shots'n'stuff... good luck!
_________________
I know it sounds crazy, but it JUST MIGHT WORK
View user's profile Send private message Send e-mail AIM Address Yahoo Messenger MSN Messenger
Sirocco
Moderator

Joined: 19 Aug 2005
Posts: 9442
Location: Not Finland
PostPosted: Mon Oct 18, 2010 3:57 am    Post subject: Reply with quote

Changed thread name per request.
View user's profile Send private message Visit poster's website
xearthianx
Developer

Joined: 28 Sep 2006
Posts: 771
Location: USA! USA!
PostPosted: Mon Oct 18, 2010 12:21 pm    Post subject: Reply with quote

Wasted all day yesterday trying to get mp3s to play how I wanted in java (or at all). I think the solution has turned out to be an open source replacement for the java media framework.

Fuckin'-A
_________________
Ionoclast Laboratories - Scientia et Dominatia!
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Gil
Developer

Joined: 14 Nov 2005
Posts: 2341
Location: Belgium
PostPosted: Mon Oct 18, 2010 12:41 pm    Post subject: Reply with quote

I did the exact same thing last year and I remember working it out. I'll try if I can find the project.
_________________
PoV: I had to wear pants today. Fo shame!
View user's profile Send private message Visit poster's website
xearthianx
Developer

Joined: 28 Sep 2006
Posts: 771
Location: USA! USA!
PostPosted: Mon Oct 18, 2010 12:44 pm    Post subject: Reply with quote

Sweet!
_________________
Ionoclast Laboratories - Scientia et Dominatia!
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
xearthianx
Developer

Joined: 28 Sep 2006
Posts: 771
Location: USA! USA!
PostPosted: Wed Oct 20, 2010 10:54 pm    Post subject: Reply with quote

I found what seems to be a good and rather comprehensive tour of JavaSound, with example code for playing mp3s. This is going to take some work to do correctly, so I'm putting it on the back burner for now.

My partner whipped up a partition-based collision scheme, which seems to wrk so far. It should scale pretty nicely for large numbers of objects, but less nicely for large maps as it trades memory for computational efficiency. This can be improved later, but for now the point is to get something working to flesh out what kind of interfaces we need.

I have started working on GUI code. What I have come up with thus far seems like it strikes that balance, where it's simple enough to be easy to use but sophisticated enough to build just about any kind of GUI setup one could imagine. I mostly intend to use it for animated menus with a few toggles or text inputs, anyways, so it should be pretty quick to crank some of that out.

There was a thread in here a few weeks about about GUI tweaking (I think it was PoV's framework devlog) and I suggested some kind of visual editing facility to modify these things at runtime and store the results. I'm not sure if I'll need that, but Java's serialization interfaces may make the job of storing and loading configurations on disk much simpler for me.
_________________
Ionoclast Laboratories - Scientia et Dominatia!
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Reply to topic GDR Forum Index -> Game Developer's Refuge -> Development Log - RogueOpcode Page 1, 2, 3, 4  Next

Use this link to get a Sign-On Bonus when you get started!

All trademarks and copyrights on this page are owned by their respective owners. All comments owned by their respective posters.
phpBB code © 2001, 2005 phpBB Group. Other message board code © Kevin Reems.