PCEngineFans.com - The PC Engine and TurboGrafx-16 Community Forum
Tech and Homebrew => Turbo/PCE Game/Tool Development => Topic started by: soop on February 15, 2012, 04:01:58 AM
-
*edit* hang on, just to be clear, I mean coding for the PCE.
I have a rather bad habit of big ideas and very little results, but I've had an idea for a decent shooter in my head for a while. I think it's too complicated for a beginner*, but I think I might be interested in doing a little coding.
Does anybody have a few links to resources, maybe some stuff that was useful when you first started?
I don't think I'm gonna be able to cope with assembler, but something a bit higher level might be alright
*beginner to PCE, I've coded most of my life in various languages, so it's not like I'm a total newb - but I haven't actually coded a complete game.
-
Step 1 would be to get HuC installed, and try compiling some of the open source stuff on Zeograd.com
Step 2 would be to familiarize yourself with the innerworkings of HuC by reading the docs that come with it.
Past that, basic game design concepts, and good programming practices will be your BFF.
Any game design book would help (2D game programming for teens, for me!) and any decent C reference.
Just check out other peoples stuff to get a handle on whats going on.
-
Perfect, cheers Arkhan, I'll get on it
-
Well, on that note, how hard is it to get into HuC if you have very little programming experience in general? I did a little Pascal WAY back in high school and I did some Java in college. That's it. My thought is that trying to learn HuC would be so painful it wouldn't be worth the effort.
-
Well, on that note, how hard is it to get into HuC if you have very little programming experience in general? I did a little Pascal WAY back in high school and I did some Java in college. That's it. My thought is that trying to learn HuC would be so painful it wouldn't be worth the effort.
HuC is Small C.
It's like bootleg C. It's not hard to learn. It's easy.
The catch is as you delve farther and get more advanced, you start to realize that it's a piece of shit.
-
So why isn't there more effort being put into making it less shit? This is how people are going to get into the scene, and assembly can be quite difficult and daunting, especially for folks who aren't starting young.
Which is to say, a GOOD HuC implementation is probably the best way to get new people into the scene.
-
So why isn't there more effort being put into making it less shit? This is how people are going to get into the scene, and assembly can be quite difficult and daunting, especially for folks who aren't starting young.
You do know there's a what-needs-fixed thread about HuC? lol
also, the amount of time it would take to fix HuC would remove from the amount of time we could spend writing games.
The assembler isn't bad. Just the C compiler.
Which is to say, a GOOD HuC implementation is probably the best way to get new people into the scene.
The best way to get people involved is to provide other tools as well, like Squirrel, with instructions on how to use it. New recruits aren't going to notice HuC sucking. New releases and new happenings are how you draw attention and make people want to be a part of it.
a new tool doesn't do shit for anyone if there's nothing showing it off.
-
Arkhan, I think the scene needs both. It needs existing homebrew to get people interesting and it needs accessible tools so that others can enter the field. This is a chicken and egg conundrum.
-
Man... I wish I'd learned C back in the day. For some reason I just never liked it, which is crazy since I wanted to get into game programming (then, not now). Instead I learned 68000 assembler, Blitz Basic, Pascal and crazy scripty stuff like PHP Perl and AWK.
But yeah, I looked at the HuC man pages and it's like everything I want to know ... Isn't answered.
I think I'd need a tutorial rather than anything else.
-
Arkhan, I think the scene needs both. It needs existing homebrew to get people interesting and it needs accessible tools so that others can enter the field. This is a chicken and egg conundrum.
You're missing the point, lol.
The problems within HuC won't be noticed until you become advanced a bit and need more out of it. HuC on the surface is very accessible and very useful. Newcomers can use HuC just fine, and there are enough open-source'd little examples to show how things work and how to use it.
New people won't notice or be affected by the problems it has. The problems will come when people start wanting to f*ck with raster fx, or do really obnoxious games.
At that point though, with a machine like the PCE, it's expected that you get cracking with assembly. There's already a perfectly fine assembler.
To demonstrate this point further, look at the MSX homebrew scene. They have yearly competitions and game releases, and there's usually at least one new person.
They're typically just using an assembler and Z80 assembly.
We already have an easier to access platform than the MSX in that regard. What the hell more do you really want?
-
We already have an easier to access platform than the MSX in that regard. What the hell more do you really want?
I want arrays that don't suck : ) Arrays are DAMN useful. That's probably my biggest concern.
-
We already have an easier to access platform than the MSX in that regard. What the hell more do you really want?
I want arrays that don't suck : ) Arrays are DAMN useful. That's probably my biggest concern.
you're asking for stuff to give newcomers a leg up.
Newcomers aren't going to notice that arrays suck until they get to assembly. If they notice it immediately, they aren't new, and should just deal with it.
-
I don't know about arrays in games, but I used arrays as a beginner in Java all the time. They were crazy useful for all sorts of stuff. But I guess I should commit to doing some stuff with HuC before I bitch about it. Sometimes knowing too much is a barrier as much as a facilitator: ie knowing just enough to be dangerous (to oneself and others).
-
The arrays work in HuC. They're just f*cking slow. On the surface, you won't notice problems.
huc is accessible for anyone. It just requires ASM skills to get fast games. but hey, welcome to 8 bit machines.
-
And this f*cking compiler, not allow you to make a program > to 192 ko ..
-
Is there known issues with HuC crashing? Using XP, I've seen this happen while compiling and even when opening projects taken from zeroigar's domain.
I took the same files, and same HuC download and am trying it with Wine on Linux Mint and it hasn't crashed once yet....... hmm
-
Speaking of Assembly language, do you have any recommendations for books on 6502 assembly language?
-
I like Programming the 6502 by Rodney Zaks. His books are great.
Also, 6502 Assembly Language by Leventhal.
I have this other book about the CPUs as well but it costs more.
-
thanks for all of the info! I have been reading up and studying about doing some pce homebrew, wanting to learn 6502 assembly and HuC, but haven't mentioned it until now because I didn't want to be another one of those guys who starts a project and doesn't finish it. I'll definitely check those books out, thanks again!
-
Is there known issues with HuC crashing? Using XP, I've seen this happen while compiling and even when opening projects taken from zeroigar's domain.
I took the same files, and same HuC download and am trying it with Wine on Linux Mint and it hasn't crashed once yet....... hmm
I had similar problems on XP and I solved it by just recompiling HuC and PCEAS.
-
Is there known issues with HuC crashing? Using XP, I've seen this happen while compiling and even when opening projects taken from zeroigar's domain.
I took the same files, and same HuC download and am trying it with Wine on Linux Mint and it hasn't crashed once yet....... hmm
Are you using the 64bit Windows XP?
If you are, you have to make sure you have the right version of HuC. Otherwise, all kinds of dumb shit occurs.
-
thanks for all of the info! I have been reading up and studying about doing some pce homebrew, wanting to learn 6502 assembly and HuC, but haven't mentioned it until now because I didn't want to be another one of those guys who starts a project and doesn't finish it.
Now that you have, I'll preemptively go ahead and add your name to the list.
-
Maybe we should generate and sticky a post about which HuC download/release is needed on which platform, where to get that release, and where to go for documentation.
-
Documentation is a bit scarce... though if I get the chance sometime soon, I'd like to keep going with obeybrew, which is attempting to document the whole mess.
-
Documentation is a bit scarce... though if I get the chance sometime soon, I'd like to keep going with obeybrew, which is attempting to document the whole mess.
I think the way I work best is when I go through tutorials until I know enough to blaze my own trail. If anyone knows any good tutorials, feel free to link me :)
-
Good luck on that... I think the only one who even bothered attempting to write tutorials on using HuC was me, and that was ages ago... never finished them either. Tom started writing some tutorials on using the assembler, but he didn't get very far with that either.
EDIT: I dug up my old tutorial set and am converting it to mediawiki format for obeybrew. There were only 2 tutorials ever finished, but they're pretty solid.
-
Thanks! Link me when they're done, and I'll check it out :)
The idea I have is for a verical shooter, which I'd imagine wouldn't be too hard. The complicated stuff is the scoring system and some of the bosses. In fact, just in case nothing ever happens, I'll expalin the idea.
It was originally intended to be on the 360 with a different weapon for each face button (and represented by that colour). The PCE would have to have either 6 button support, or I to change and II to fire.
One of the bosses is 4 ships, each a different colour and each with a number. The colour (as with most enemies in the game) shows it's weakness to a particular weapon, whereas the number tells you which order to attack. If one of them gets hit out of order, the pattern resets, including any damage done to any of the 4 already deactivated. This goes on for a few rounds, getting harder.
The scoring system has a score multiplier that gets reset when an enemy escapes, giving you a vested interest in straining to get every enemy. I'd have to set it up to make sure that it's possible. BUT, the highest score possible (and this would be a secret) would be if you managed to complete the game without shooting a single bullet (well, without destroying a single enemy). This would also be possble, but phenominally difficult.
Got a few other ideas as well, generally for neat bosses. I think in a shooter, innovative bosses can make or break a game. I want it to be a thinking shooter, almost cryptic.
-
Maybe we should generate and sticky a post about which HuC download/release is needed on which platform, where to get that release, and where to go for documentation.
It's kind of common-sense dude, lol.
You either get the Win32 one, or the DOS one.
The docs for the PCE for the most part, suck. if I knew Japanese better, I'd translate the entire develo book and retype that shit, but screw that jive!
Some of the other docs are unclear, and obviously (and admittedly) lazily written. :-/
Obeybrew could use some tutorials. The best stuff I saw to learn off of was by uhhh Fagemul, maybe? Or Jycet or something. He had some sprite demo in HuC that spewed a bunch of sprites all over the screen. That's what I used to figure out and make Insanity happen.
http://zeograd.com/creation_download.php?lang=en&page=4 <<< This one.
-
I've converted the two original tutorials I did for the hucdoc project, and just added a third. The tutorials cover both C coding as well as HuC specific stuff. So far, I'm covering the basics... variables and loops mainly on the C side, and basic sprite handling, colors, and text display stuff on the HuC side. And I do it with a lot of corny, stupid attempts at humor to make it less boring. :)
-
And I do it with a lot of corny, stupid attempts at humor to make it less boring. :)
Love it. I remember doing that with my notes at school. Actually, I still comment code like that.
-
Most of the comments in my code are vulgar/politically incorrect
-
I usually use goofy variable names... "int ponyass, buttpower, xposofdoom;"
-
oh, i keep the variable names pretty standard, but sometimes use things like "enemyBeDead" or "rives" instead of lives, and shit.
my comments though, lol.
/* stupid wrapping bullshit */
/* this makes it so the f*ckin dickhead sprite stops being a retard and flying off screen */
my favorite comment recently has gotta be
/* this means the human has been gangraped by aliens and is a mutant bastard now. */
-
I've completed four tutorials as of now.
Tutorial 1 introduces the basic structure of a HuC program (introduces #include and main()) and shows how to use put_string(), some color bits, and loading a font.
Tutorial 2 introduces variables, put_number(), and basic C-style calculations.
Tutorial 3 introduces sprites, const arrays, nested for() loops, and random().
Tutorial 4 introduces joypad manipulation, basic background stuff, custom functions, basic logic, and pseudoinstructions.
I'm going to work on this more over the next few days. It's high time we had some good HuC tutorials, so I'll do what I can.
-
You should add in some explanation of the "how much data to load" for sprites.
-
I'm going to do that in tutorial 5.
-
Tutorial 5 is up and has that important detail. :)
-
Great tutorials. This is just what I was looking for. I even got Bonk sped up and jumping around. Can't wait for the next one.
http://www.2shared.com/file/SNnZ26tT/bonktest.html
-
Gonna have to look at these tutorials and play with HuC once I have some down time from applying for jobs.
-
Great tutorials. This is just what I was looking for. I even got Bonk sped up and jumping around. Can't wait for the next one.
http://www.2shared.com/file/SNnZ26tT/bonktest.html
And since you've mentioned Bonk, now I suddenly have new gameplay ideas for a new Bonk game. Crap...
-
I've converted the two original tutorials I did for the hucdoc project, and just added a third. The tutorials cover both C coding as well as HuC specific stuff. So far, I'm covering the basics... variables and loops mainly on the C side, and basic sprite handling, colors, and text display stuff on the HuC side. And I do it with a lot of corny, stupid attempts at humor to make it less boring. :)
This is why we love you (http://junk.tg-16.com/images/pcgs.html).
-
Heh, glad they're decent tutorials so far. I'm going to try to get the next one up within a couple of days... there's a lot of material to cover so it will take some time.
-
I see the new one is up and pretty in depth. Looks like I'll have to spend some time on it.
I was working on playing around.
Made a 3d rendered demo that is an animated background using NO sprites.
http://vecanti.net/demos/cube.pce
Don't think it is very useful but kind of fun to mess around with. Could have been way more colors, but just threw it together real fast. Maybe cool for a Demo Scene kind of effect.
Was trying an idea to do parallax with no sprites.
http://vecanti.net/demos/parallax.pce
Again, messy colors, but kind of funny.
-
That shits prty neet right thurrrr
:)
throw in some music with Squirrel! Make a demo!
has to have boom tzzz boom tzzzz drums.
-
thanks for all of the info! I have been reading up and studying about doing some pce homebrew, wanting to learn 6502 assembly and HuC, but haven't mentioned it until now because I didn't want to be another one of those guys who starts a project and doesn't finish it.
Now that you have, I'll preemptively go ahead and add your name to the list.
NOOOOO! Should've kept my mouth shut.
-
Excellent vecanti, TOR's tutorials are very good ...
But Rover must be careful to put spr_set(); in his tutos, else many people will forget to do, and in case of more than 1 sprite, :lol:...
-
I figure this is as good of a place as any to ask my stupid-noob HuC questions.
First thing's first, I copy the code from obeybrew for a "Hello world!"
Try to compile, I get the message "****** Could not open include file ******"
Well, I put the full path in there to see what that'd do, now I get a message saying it can't open .include "startup.asm"
Yeah, how do I get everything to point to the right place for libraries/etc?
-
Did you set the include paths, like it says in the instructions ???
-
No I did not. According to Zeograd's page I need to set PCE_INCLUDE with something like.
SET PCE_INCLUDE=c:\huc\include\pce
I'm unsure where/how to actually do this though...
-
Are you on PC?
You just right click my computer, click properties, go to advanced settings, edit the environment variables, and add it there as a variable...
http://www.windows7hacker.com/index.php/2010/05/how-to-addedit-environment-variables-in-windows-7/
Like this!
-
No I did not. According to Zeograd's page I need to set PCE_INCLUDE with something like.
SET PCE_INCLUDE=c:\huc\include\pce
I'm unsure where/how to actually do this though...
Did you set the include paths, like it says in the instructions ???
The process of adding environment variables and how to compile can be pretty odd and confusing to someone that regularly codes with an IDE (.net or eclipse), so don't feel embarrassed about asking questions here, there are a gaggle of good guys here that can help out.
With that said, I still have issues now and again with compiling an actual PCE file by using the command prompt or just dragging and dropping, so just keep plugging away and get through the tutorials. Lots of AMAZING softs can come of more and more peeps drumming out with HuC! :)
-
Yeah there are no such things as stupid questions.
Only stupid people... who are stupid enough to ask questions that aren't worth asking!
>_>
:)
Don't worry about asking about stuff. Especially with HuC, because HuC is a finnicky dickhead.
-
Thanks for all the help. Now that I've gotten it to compile I'ma run through a bunch of demos then perhaps program something on my own.
-
If you always have the command prompt open for HuC coding, then you can just type it out in the command prompt "SET PCE_INCLUDE=c:\huc\include\pce" once and be done with it for that shell instance. I use batch files a lot for my compiling/assembling. If you do the same, you can always put it in the batch file as well (put it as the first line).
-
Batch files:
http://www.dostips.com/DtCodeBatchFiles.php
Incase seieienbu doesn't know what they are!