Start developing a game and don't sink into engine design?

You can talk about almost anything that you want to on this board.

Moderator: Moderators

User avatar
qbradq
Posts: 951
Joined: Wed Oct 15, 2008 11:50 am

Re: Start developing a game and don't sink into engine desig

Post by qbradq » Wed Oct 17, 2018 5:30 pm

I like to start with a 12 pack of colored pencils and a graphing notebook.

[Big image]

yaros
Posts: 145
Joined: Tue Aug 28, 2018 8:54 am
Location: Edmonton, Canada

Re: Start developing a game and don't sink into engine desig

Post by yaros » Fri Oct 19, 2018 8:31 am

Banshaku wrote:There is a good part that I had to stop so "working" is quite a loose term in that case even though I had the project all the time in the back of my head but now I can put a little bit of time on it, which is refreshing. At that pace, I will match the same schedule as duke nukem forever :lol:

As for little projects, it can be interpreted in many ways. For example, if you scope is quite big, trying to build everything in one shot is quite hard. In assembler, one bug sometime can make thing fails many places (especially when you refactor the names and now everything goes south by accident ^^;;) and hunting it on a huge scale is hard. For your situation, the little projects would be "units" that can be used in your goal projects, code that can be reused with ease. Those units could be the 4 way scrolling, handling meta-sprites format, compression of data, handling of music and sfx, AI, intro/cut scene management, fx with raster etc.

By separating in smaller units/projects with test assets, it will be easier to manage and you will have re-usable code for later. And isolating the feature will make it easier to debug, which is a plus.
So as of now my plan:
1. Add two screens and transition between them
2. Add barely prototype of the important interfaces
3. Add enemies and basic AI and combat mechanics

Use open game art and forget about being fancy.

P.S. Duke Nukem Forever eventually came out ;)
tokumaru wrote:Maybe use one of the emulators with Lua scripting (FCEUX, Mesen) and write most of the game in Lua? I don't know if you can manipulate the memory-mapped registers directly from Lua or how that works in regards to timing, but even if you have a ROM with just a vblank handler to dump buffers to the PPU, the rest of the logic could all be Lua.
Actually, I need to take a look at it. I was just thinking yesterday, that It would be cool if some emulator provided a programming interface, that I can plug my code in instead of the CPU and Memory and work with PPU/APU directly ignoring timings. Otherwise I need to program all simulation myself.

Brad just posted Lizard code, where PC version is developed on emulated ppu/apu layers. But I'm much more comfortable with C#, compared to C++ to use his code. Maybe I'll port it.
qbradq wrote:I like to start with a 12 pack of colored pencils and a graphing notebook.
I'm really bad at drawing by hand. I use Paint.net for that...

User avatar
qbradq
Posts: 951
Joined: Wed Oct 15, 2008 11:50 am

Re: Start developing a game and don't sink into engine desig

Post by qbradq » Sat Oct 20, 2018 3:30 pm

I could have said more :) I am on my phone so it's hard. When prototyping use the fastest thing that answers the questions you have. A lot of times drawing what you are thinking about is the fastest and easiest. Even if it's all straight lines and stock figures. That's what I start with :)

strat
Posts: 355
Joined: Mon Apr 07, 2008 6:08 pm
Location: Missouri

Re: Start developing a game and don't sink into engine desig

Post by strat » Sun Oct 21, 2018 6:52 pm

The Lua scripting feature of FCEUX provides access to NES cpu memory so it's definitely possible to prototype the gameplay on the Lua side. Though as Tokumaru hinted, the rom should still have a typical NMI update routine. A minimal loop looks like this:

Code: Select all

while(true) do
	emu.frameadvance()
	
	--game loop goes here
end

I'm not sure if it's possible to keep absolutely all the code in Lua; you'd probably have to poll the vblank flag instead of using an NMI.

User avatar
PypeBros
Posts: 34
Joined: Sat Nov 10, 2018 7:35 am

Re: Start developing a game and don't sink into engine desig

Post by PypeBros » Tue Nov 13, 2018 11:03 am

I'd be tempted to suggest the use of NDS / GBA as a platform to quickly prototype NES stuff. You would have tiled graphics, multi-track sound (including with pulse generators in the case of the GBA) and NES-like input. You would have access to high-level language and about 10x more CPU power.

Of course, this is said by someone who's been doing NDS development and no NES development so far, so better cross-check that with people who have first-hand experience.
Image - may the source be with you.

User avatar
gauauu
Posts: 696
Joined: Sat Jan 09, 2016 9:21 pm
Location: Central Illinois, USA
Contact:

Re: Start developing a game and don't sink into engine desig

Post by gauauu » Tue Nov 13, 2018 12:13 pm

PypeBros wrote:I'd be tempted to suggest the use of NDS / GBA as a platform to quickly prototype NES stuff. You would have tiled graphics, multi-track sound (including with pulse generators in the case of the GBA) and NES-like input. You would have access to high-level language and about 10x more CPU power.

Of course, this is said by someone who's been doing NDS development and no NES development so far, so better cross-check that with people who have first-hand experience.
There's a number of similarities between the platforms, but:

- If you just want a platform to test game ideas, something PC-based would be easier and allow more rapid development than GBA/DS.
- If you care about NES restrictions (palette issues, attributes, etc), then the GBA won't help you test that. Using Lua on an emulator would be a pretty good way to force yourself to use NES limitations but with a higher-level language.

(I do think the GBA is a great system to get started with for learning console development, as it has many of the same general ideas as NES, but is much easier. But I'm just not convinced it would be advantageous for prototyping NES games.)

yaros
Posts: 145
Joined: Tue Aug 28, 2018 8:54 am
Location: Edmonton, Canada

Re: Start developing a game and don't sink into engine desig

Post by yaros » Wed Nov 14, 2018 10:57 am

I agree with you gauauu. To develop on NES I need to know NES. Learning another platform will make everything even harder, I would rather use something like godot instead then. For now I've decided just program on the NES directly. If I knew the system well enough, I could just use lua or NES-like graphics simulation layer. I spend an hour rendering metasprite from nesst, always getting lost when I need to check < or > for the variable, but by the other hand I learn from those issues.

User avatar
tokumaru
Posts: 11692
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Re: Start developing a game and don't sink into engine desig

Post by tokumaru » Wed Nov 14, 2018 12:24 pm

Most people developing for retro consoles don't do it because it's practical, or commercially viable, or just for the heck of targeting any old hardware. They do it because they love the consoles. For this reason, I think it's pointless to recommend they use another retro machine that happens to be "somewhat easier to program" in order to learn or prototype stuff. Easier or not, each machine has its own set of idiosyncrasies and will require effort to master, and hardly anyone will have the motivation to put that effort into something that isn't their actual goal.

If you're gonna go retro, don't waste your brain cells learning about a machine you have no interest in making something for, just learn the thing you actually want to learn. If you do feel the need to start with something simpler/faster, better go with something more modern on the PC, something popular with good support that you might even profit from in the future in case you decide to.

93143
Posts: 1146
Joined: Fri Jul 04, 2014 9:31 pm

Re: Start developing a game and don't sink into engine desig

Post by 93143 » Wed Nov 14, 2018 4:17 pm

PypeBros wrote:NDS
about 10x more CPU power
67 MHz ARM9 vs. 1.79 MHz 6502 is more like 300x more CPU power, isn't it? Probably more, considering few chips are as dependent on bus throughput as a 6502. Even the GBA's ARM7 should be way more powerful per MHz than the NES CPU...

User avatar
PypeBros
Posts: 34
Joined: Sat Nov 10, 2018 7:35 am

Re: Start developing a game and don't sink into engine desig

Post by PypeBros » Wed Nov 14, 2018 11:45 pm

something PC-based would be easier and allow more rapid development than GBA/DS.
I must really have trouble with getting started with multimedia programming on a PC, then ^^"
Image - may the source be with you.

8bitMicroGuy
Posts: 314
Joined: Sun Mar 08, 2015 12:23 pm
Location: Croatia

Re: Start developing a game and don't sink into engine desig

Post by 8bitMicroGuy » Thu Nov 15, 2018 5:48 am

qbradq wrote:I like to start with a 12 pack of colored pencils and a graphing notebook.

[Big image]
Am I the only one who did this as a kid 10 years ago in my sketchbook when I was still wondering what kind of magical mechanism is used for CPU opcode execution and collission detection? XD All without knowing that this was done way back before me!? WHY DO I ALWAYS INVENT THINGS THAT ALREADY EXIST WITHOUT KNOWING THAT THEY ALREADY EXIST!? XDDDDD

yaros
Posts: 145
Joined: Tue Aug 28, 2018 8:54 am
Location: Edmonton, Canada

Re: Start developing a game and don't sink into engine desig

Post by yaros » Thu Nov 15, 2018 10:30 am

PypeBros wrote:
something PC-based would be easier and allow more rapid development than GBA/DS.
I must really have trouble with getting started with multimedia programming on a PC, then ^^"
Using "DrawString" in GDI (windows) is much simpler than than setting up palettes, creating CHR banks and writing to nametable (NES). I'm not even talking about 2d engines. I'm trying to make something for NES because of the limitations. I am not an artist, and I will not make anything visually interesting for PC. I might make something visually interesting for NES dough.

But to be fair so far I made text-only dialogue system, and just made my first sprite animate and move around the screen. Not the greatest accomplishment.

Trevor_Miles
Posts: 2
Joined: Sun Nov 18, 2018 8:11 am

Re: Start developing a game and don't sink into engine desig

Post by Trevor_Miles » Sat Nov 24, 2018 6:58 am

Now the level of abstraction is so great that developers do not need to understand the source code of game engines so much. And in principle, this is happening in many areas that are now becoming more and more simplified. But this does not apply to such industries as machine learning and artificial intelligence, these issues often have to turn to https://do-it-solutions.com/
Last edited by Trevor_Miles on Mon Nov 26, 2018 1:30 pm, edited 1 time in total.

User avatar
Sumez
Posts: 920
Joined: Thu Sep 15, 2016 6:29 am
Location: Denmark (PAL)

Re: Start developing a game and don't sink into engine desig

Post by Sumez » Mon Nov 26, 2018 1:06 am

I think that's the level of abstraction that you need if you want to prototype something without digging too deep into complex engine design and optimization.

Personally, I use JavaScript for everything like this (such as tools, pipelines, etc.). I don't see that a lot, but I guess to me it's like what Python seems to be to a lot of other people. Something quick to setup and get results from immediately via a simple, effective framework.
It has the added bonus of a fully fledged visual interface via HTML, and a pixel-by-pixel graphical canvas. It even has GL support nowadays.

Post Reply