|
O ye masters of programming(or just experienced) on TL, I have about 8 hours before I finalize my proposal document(s). I might make multiple proposals if I have time. And yes I will still have to discuss them with my supervisor.
Basing from what I have posted in this blog post by senff: http://www.teamliquid.net/blogs/viewblog.php?topic_id=76401
What I posted as a question (if you're reading this, ignore the questions here as I'm prolly rephrasing the stuff below after the spoiler):
+ Show Spoiler +I am doing my final semester of CS. Well, sort of. I am currently mulling over the decision to go for a programming project or industrial training as my elective. I would finish earlier if I went with the programming project but the catch is that I only have 14 weeks while taking industrial training would require me to stay back for another semester. And yeah, I still have 3 other subjects alongside the elective.
What are your thoughts on this? Do you think the stay back is worth the industrial training or should I just choose PP, finish, graduate, and get out in the real world, earn bigger moolah than being an intern?
Do you think I'd have enough time if I chose to make a 2D game as my programming project? would it be too much work to make the game multiplayer? I wonder if making a MUD would be just fine for a project?
I am obviously trying to get into the game industry.
My skill level would be having gone through a couple of 2D game programming books (WinAPI) but no fully self implemented games of my own yet (which is why I'm considering my first to be my programming project). Main languages are the popular 3 Cs and Java. Do I have enough time?
I haven't picked up DX yet. Trying to start in the next week or so(no matter which elective i choose).
I have decide to take up on doing a Programming Project. The scope will be on games. The most important help I ask from the programming gurus in this forum are their experiences on the estimation of time. Thus, I have narrowed down to a few different ideas on my choice for a project:
I have 14 weeks in a semester and 1 week has passed. I think I hope to finish the game in 10 weeks or maybe specifically weekends. So most of these questions are about "Do I have enough time?".
First of all, an RPG(maybe 2D): - Would it take too long to implement a multiplayer RPG ala diablo(connect to IP)? - Would doing a MUD be easier/faster? - Would a 3D RPG take more time than a 2D one?
Next, what about a handphone game (I'll prolly do a top down shooter with this one): - The advantage I read is that I could just show it to my potential employer in the interview on the spot. Is this easier? Would it be impressive to the employer given the technology? (So far I only know that I have to program for the MIDP 2.0 platform now)
Then, web-based game?: - I think this is sort of easy so I think I want to take up on going for a forum RPG if this sounds feasible. However, through past experiences of hanging around on the net, many forum RPG projects have failed or disappeared into oblivion. Anyone knows why? Is it because it is harder than expected? - Hmm... maybe is it because there doesn't seem to be a need due to the RPGs like http://www.kingdomofloathing.com ? - My idea is to have battles which are card-based aka MtG or GuildWars. So is it feasible?
One more idea: - I have one more idea in mind which I think could be way up there which is to just make a game on NPCs and work on the AI like Oblivion's Radiant AI? Behaviour stuff. This is too much work right? even in 2D?
Etc: - Is there a recommendation for a project that would help me(or the game programming world) in the working world of game programming? - If ye masters have a suggestion on taking things a different direction, please do not hesitate to post. I'm willing to listen.
Thanks.
EDIT: Agh, actually I already listed my qualifications but only in the quoted question i posted but I'll just post it here: I know the C/C++/C# and Java. I do know WinAPI Programming. I'll be trying to learn DirectX this week. With the direction I'm heading, I'm going for a game in C++/WinAPI... 2D or 3D(DX), haven't decided on that yet.
|
Germany2896 Posts
Go small. Making a polished game takes much longer than you'd expect. Do you want to use a gamemaker or a 3rd party engine or do you want to do everything yourself? Where do you want to get the graphics? How much programming practice do you have? What is your goal? A polished game, or just a techdemo? edit:For example my first game was a snakes clone. The game itself is 20kB, the menus, editor and other polishing takes another 60kB. (sizes are human typed sourcecode, not formular designer data and 3rd party stuff) I know this game is too simple for you, but it shows that polishing the game can take a significant part of the total work.
|
You really didnt give enough details
|
Do you want to use a gamemaker or a 3rd party engine or do you want to do everything yourself? Where do you want to get the graphics? How much programming practice do you have? What is your goal? A polished game, or just a techdemo?
I know at least the 3 Cs and Java. And enough WinAPI for 2D programming. I'm in my final semester(6th sem - 3rd year). Well, I'll be drawing the 2D graphics myself(not a pro). I would definitely go for a polished game unless I go for an RPG or doing the RnD game idea stuff.
You really didnt give enough details Tell me what I need to tell you.
edit:For example my first game was a snakes clone. The game itself is 20kB, the menus, editor and other polishing takes another 60kB. (sizes are human typed sourcecode, not formular designer data and 3rd party stuff) I know this game is too simple for you, but it shows that polishing the game can take a significant part of the total work. Ah yeah, thanks, I've forgotten about this point to take into consideration(making a menu, sounds, image resources). Maybe I'll do a fullscreen one? Hmm.. also depends on if I'm allowed third party engines. I've just fired this question at my lecturer. Awaiting reply now.
|
Germany2896 Posts
How much experience do you have with programming in practice? What is the most complex project you wrote so far? If you want to do the game without 3rd party stuff and you have no projects done yet, you should not go beyond sth like bomberman, a top down shooter etc. Bomberman is a nice concept because it is very extendable(You can include pacman oder loderunner style levels without significant changes to the codebase).
|
Make a Starcraft application please. You can make an application that runs one player's replay and runs it as if it were a FPVOD, that would be completely awesome.
|
On August 11 2008 17:00 MasterOfChaos wrote: How much experience do you have with programming in practice? What is the most complex project you wrote so far? If you want to do the game without 3rd party stuff and you have no projects done yet, you should not go beyond sth like bomberman, a top down shooter etc. Bomberman is a nice concept because it is very extendable(You can include pacman oder loderunner style levels without significant changes to the codebase).
I guess it's the motion sensor application on an IP camera. However it's in Java which I feel the coding would be quite different for C++. For C++, My best one would be some simple Hotel Reservation system but it's console based. So I guess I'm not too pro on the C++ side. I've coded/modified games based on a couple of beginners game programming books which is where i pick up my WinAPI programming :/ Hmm... I guess one scope narrowed down: I'll limit myself to 2D.
On August 11 2008 17:00 samachking wrote: Make a Starcraft application please. You can make an application that runs one player's replay and runs it as if it were a FPVOD, that would be completely awesome. I think that would require me to study about the StarCraft replay file architecture which I currently have zero knowledge of and also to know more about memory hacking techniques which prolly is in the realm of an advanced professional or more likely a specialist. You would best be asking that feature/program from MasterOfChaos here. I don't think I should waste my time on learning these stuff yet until I have a proper job. ^^
|
Alright! I'm allowed to use a third party engine. I guess I'll be surfing for engines for these few days. I will have to limit my time till the end of this week. I will start constructing one myself if I haven't found something I like. VROOM VROOM.
|
Bill307
Canada9103 Posts
I think the biggest advice I can give is this: choose a game genre that doesn't require a lot of in-game content! For something like an RPG, creating the game content -- art, storyline, dialog, monsters, etc. -- will consume FAR FAR FAR more time than the actual coding. Even for a game like a vertical shoot-em-up, if you want polished game content and not just random boring enemies and bullet patterns, then you'd still spend more time on the content than you do on the coding.
In my own experience... + Show Spoiler [lots of text] +In my own experience, I took a university course on 3D graphics and for my final project I proposed to make a vertical shoot-em-up game with a single level. (Kind of like this video, but easier.) I had about 3 weeks to do it. Most of the marks would be awarded for advanced techniques related to graphics, such as textures, shadows, particle systems, procedurally-generated terrain, etc. Prior to this, I had already learned how to use OpenGL, except for the new advanced technical features that I would have to implement. We also had code that allowed us to create and load simple meshes, sans textures (I had to add texture support myself). Although I had a bunch of other assignments due during those weeks, I spent most of my time in the graphics lab working on my game. A couple of the graphics techniques gave me trouble but for the most part it wasn't hard so much as time-consuming. Programming the game engine was easy. I thought out most of the design beforehand and had no trouble implementing it. A 2D shoot-em-up (with 2D and 3D graphics) has very simple game logic. The content, however, was surprisingly time-consuming. Making the model for the player's ship and finding suitable textures for it must have taken at least 5 hours. Making the 2D sprites for all the bullets took probably another 5 hours. Making a model for the "TestEnemy" was another several hours. And then there was the boss. This was where I wanted to spend most of my time. This model took extra long because I wanted to position the gun turrets to match the locations where bullets would be fired. And even though I chose to use patterns from other games rather than wasting time inventing my own, it still took me 1-2 hours per pattern, mostly tweaking it to look cool and adjusting the difficulty. Expect to spend a LOT of time tweaking things to make them look or feel just right. All things considered, the boss took me probably ~20 hours to make, and I didn't even get to make it as awesome as I wanted because I started running out of time despite pulling all-nighters. In the end, I was so short on time that I had to throw together a procedurally-generated landscape (just some sinusoidal grassy hills) in about 1 hour, and the results actually looked pretty good. Then I had 15 minutes left to make the rest of the level leading up to the boss. So I made my "TestEnemy", which was never supposed to be in the final game, come down randomly for about 15 seconds while the hills scrolled by below. And I threw in a single arch consisting of 3 rectangles to "decorate" the terrain. So yes, aside from the boss, I spent only 15 minutes on the level. I learned that making even a very simple game is a lot of work. I originally envisioned having a landscape with multiple buildings and various kinds of enemies that would have their own behaviour patterns, but making all of that content would've taken me another week, I think. So I felt disappointed in my end product. The only redeeming quality was that the boss was, for the most part, really cool and polished to the point where it was almost on-par with e.g. the boss in that video I linked to above. When I received my marks back, I found out that the markers were very impressed by the bullet patterns I'd done. (I'm guessing very few people outside of Japan have ever seen a shoot-em-up like that before.) My goal was to make them both visually stunning and easy-to-dodge, and I succeeded. Even though the level was a bland 15-minute hackjob, they didn't deduct marks because they realized that making a fully polished game is simply impossible to do in a few weeks. My half-polished game got the silver award for being the 2nd-best project. Now, whereas I had only a few weeks to work on my project, you'll have about 4x as long. I estimate that's enough to finish a simple shoot-em-up game with, say, 3-5 unique, polished, and fairly interesting stages.
Writing the game engine and all the other necessary graphics, sound, and input code can be done in about 3-5 weeks, that is assuming you already know how to draw the graphics to the screen, and are patient enough to think your design through without rushing off to implement it. I had it easy because my design worked well and I knew what I was doing, and I could give you some pointers too if you'd like. A bad design, on the other hand, could easily double the amount of time you spend on this part.
From there, I'd give you another 1-2 weeks for each stage. Of course, if the first part takes you longer than expected, then you can always make your game shorter or less interesting.
In general, you want to create a game with simple game logic and relatively little game content. This is definitely doable in 14 weeks. Just remember that if anything kills you, it won't be the code: it'll be the game content.
|
Bill307
Canada9103 Posts
Unless you're sorely desperate for experience in C or C++, don't use them. Use Java or C#. With Java you can use either Java2D, or OpenGL via JOGL: OpenGL can do 2D graphics pretty easily with orthographic projection, and you can also easily mix 2D and 3D graphics like I did. With C# you can use Microsoft's XNA Game Studio, which will save you some time compared to learning OpenGL and JOGL.
On the other hand, if you're doing this for the programming experience, then you might want to take the time to learn OpenGL. It may seem intimidating but it's actually quite easy. By the way, OpenGL is pretty much identical in Java with JOGL compared to C++. I can literally copy and paste my OpenGL code from C++ into Java, add "gl." or "GL." in a bunch of places, and it'll work the same.
|
Russian Federation4235 Posts
I've made a couple of lua-programmed mods, and I must say that what you're proposing is undoable by one man in that period of time. Recruit people for the content, and maybe (maybe) you will be there in time if you dump the AI part. An RPG is extremely content-based, so if I were you, I'd forfeit it and make a TBS instead. Seriously, it will save you a lot of time.
For reference purposes, the only thing I was about to implement in one of my mods was a hero-type unit (a familiar) for a HoMM-type game, with experience and learnable skills. It grew into thousands of lines of code and a fuckton of work that took like 2 months, and I didn't even make any artwork, only reskinned an existing model. One unit. Most of that was exception-handling, balance and interfacing (if some mechanism isn't obvious to the player, it doesn't work).
Now, if you're seriously into it, the first thing you should do is get a thick paperbook and document every single feature you want to do. Once that is down, expand the document, explaining (for every single thing) why it should be in your game. Then, expand it again, describing exactly how you want it done and how much time it is going to take. Naturally, you will have cross references appearing at this stage with code from one feature influencing another.
After you've done that, you will pretty much understand that alot of stuff needs to be dumped. Only keep the core features and continue with them, you will only let it grow if you have the time, which you won't.
|
Haha, yeah, doing a Touhou style shooter is exactly what I had in mind if I'm going that route. Thanks, Bill, your posts helped a lot. I'm currently reading up on a game design book for more ideas. Now criterias are: 2D and less in-game content.
EDIT: Thanks, BluzMan. I like this tip:
Once that is down, expand the document, explaining (for every single thing) why it should be in your game. Then, expand it again, describing exactly how you want it done and how much time it is going to take. Simple enough to keep in my head on what to write in my documentation. Obviously I will need to submit documentation.
And almost forgot to thank MasterOfChaos as well. Thanks!
|
Make Super Mario Bros. clone. It's actually pretty easy and you need to paint just few tiles. I did it with autogenerated levels b/c I was really lazy and I didn't want to waste my time with level design.
|
Germany2896 Posts
You should also look at the introversion games (defcon, darwinia, etc). They are masters in creating good games with minimal manually created content. When implementing I always begin with the code and implement the hardest things first, so I find out early if they work. Main disadvantage with that order is, that I usually don't have the motivation to finish the game once all interesting parts are done. But I code for codings sake, and not to for university. And from my experience with cs students with few practical experience: Don't overengineer it.
|
If you want any good ideas for simple but good games that i dont think require much coding, you can take a peak at ArmorGames. There's tons of cute games so you can actually grab an idea from there.
I hope you do good!
|
|
Thanks all. I've got my proposals ready.
First would be a transformable top down shooter(using keyboard and mouse) and the second would be a platformer (in the direction of castlevania). I'm pushing as far as I can with the attempts but still within the criteria limits(less content, 2D). Then I'm going to discuss with the supervisor and cut down on the overly ambitious stuff. This proposal is basically just another draft to narrow down the scope of the shooter features.
On August 12 2008 01:34 MasterOfChaos wrote: And from my experience with cs students with few practical experience: Don't overengineer it. Thanks for the advice. I'm going to try with rapid prototyping(read about it on gamasutra)... well not too rapid since this is my first time trying it.
I'll post updates.
|
|
|
|