Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Newcomers AppGameKit Corner / Compter programming help with preparation.

Author
Message
Nickkall
6
Years of Service
User Offline
Joined: 19th Jul 2017
Location: Sydney, Australia
Posted: 3rd Aug 2017 01:11
Hi everyone.

I am a warehouse machinist who does gamemaking as a hobby. I have no formal training just reading guides and youtube and anything else I can find on the internet.

I have been on gamemaker studio for 5 or 6 years and enjoyed it but it seems that due to development of it stopping, it may be left behind in the future.

Gamemakers layout and format made it a little easier to organise and work with than agk. As such, i am having troubles staying organised and developing processes.

My question is, how do you organise work before beginning. Do you use flow charts? Or any other format or program to help create a flow. Is there a book i can buy, or a course I can do to teach me these secrets?

Thank you for reading and I look forward to you replies.

Nick
Dybing
12
Years of Service
User Offline
Joined: 12th Sep 2011
Location: Bergen, Norway
Posted: 3rd Aug 2017 01:52 Edited at: 3rd Aug 2017 01:57
I'd hazard to guess that everyone got their own process ranging from "seat of pants" improvised to "t's crossed and i's dotted" pre-planned.

I think best visually, so I sketch out how screens are supposed to look like - and how data is supposed to flow. From there on in, I set up the skeleton of how the app is organized, and flesh it out as I proceed. So plenty of empty functions in the start, with some comments on what it is supposed to do and perhaps a little print() just to notify that it is visited during run-time.

I also tend to spread my code over several files - where each have a certain responsibility. For instance:

- main : The initial setup and boilerplate stuff
- view : Organizing and displaying the various screens
- output : Nuts and bolts of displaying graphics
- text : Nuts and bolts of displaying Text
- input : Nuts and bolts of receiving user input
- fileIO : Saving and loading files
- httpIO : Sending and receiving to and from backend server
- structs : Where all datatypes are defined
- constants : Where all immutable data is filled in
- tests : Automated tests where necessary. I'm not religious about TDD

In the end though, it is all up to personal preference and experience. You develop your 'style' and process as you go - there is no correct recipe or secret to it.

There is one best-practice you should follow though, and that is what often is called clean code. In short:

- Have good explanatory variable, type and function names
- Be consistent in any naming and style choices
- Immutable can be free, mutable must be controlled
- Keep functions small, managing just the one thing or have just the one responsibility
- Don't repeat yourself
- If you keep your data well organized, functions nearly write themselves
- Simple is better than complex
- Readable is better than clever
Kevin Picone
21
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 3rd Aug 2017 07:16

Quote: " Do you use flow charts? Or any other format or program to help create a flow. "


Flow diagrams can be helpful in visualizing some design problems up front, but they're generally too much hassle to worry about the finer details of all inner workings of your programs.

I suspect the problem your having is making the determination of the how to represent in game entities (the stuff in your game or program) such as building their data representations through to handling movement / animation logic and interactions which is one of things where there's a lot of different approaches that ultimately produce the same result.

So initially it's often best to look at some really simple game, like some 80's coin op / or 8bit / 16bit game that has a small number of unique characters / entities within it, then work out what data these entities need and build up some logic that recreates the characters behavior. This will give you a feel for how programs flow and the types of logic errors that can occur, of which there's a number waiting to trap the new coder. But it's all part of learning.

For many years I kept note book next to the development computer which was full of diagrams and notes / code ideas everything in one place about the current project(s). That way It can't be lost because your HD fails or something and you can kick those ideas around up front, like the what things are needed, how those things will be represented, behaviors.. etc etc .. You'll end up with way more details than you can ever code normally.. .



PlayBASIC To HTML5/WEB - Convert PlayBASIC To Machine Code
Nickkall
6
Years of Service
User Offline
Joined: 19th Jul 2017
Location: Sydney, Australia
Posted: 3rd Aug 2017 12:43
Thank Dybing, Thanks Kevin.

That is excellent food for thought. Your two comments has had me googling stuff for the last 2 hours. I learnt heaps. And got me thinking. Thank you.

Nick
Supertino
6
Years of Service
User Offline
Joined: 22nd Jun 2017
Location: Behind you!
Posted: 3rd Aug 2017 16:23 Edited at: 3rd Aug 2017 16:25
So many projects I have started have grind to halt due to poor organisation.

Generally I create the same structure for most items and objects I need to handle in game and will usual have similar naming structure. such as;



I usualy have a single GameEvent manager to handle the flow, such as;



And finaly a simple main loop;

MikeHart
AGK Bronze Backer
20
Years of Service
User Offline
Joined: 9th Jun 2003
Location:
Posted: 9th Aug 2017 09:36
Nickkall wrote: "I have been on gamemaker studio for 5 or 6 years and enjoyed it but it seems that due to development of it stopping, it may be left behind in the future."


Hi Nickkall, where did you got the info that yoyogames will stop development of GMS? They just came out with GMS2, so I wondering.
Running Windows 7 Home, 64 bit, 8 GB ram, Athlon II X2 255, ATI Radeon HD 4200. Using AGK2 Tier 1.
PartTimeCoder
AGK Tool Maker
9
Years of Service
User Offline
Joined: 9th Mar 2015
Location: London UK
Posted: 9th Aug 2017 13:54
GM:S2 is on the market yes but GM:S1.4 has been dropped, removed from steam, no longer supported, nothing but a distant memory to yoyo now! lol
MikeHart
AGK Bronze Backer
20
Years of Service
User Offline
Joined: 9th Jun 2003
Location:
Posted: 9th Aug 2017 16:18
GMS1 is being supported to the middle of 2018. And right now on Humblebundle again. Just to set the record straight.
Running Windows 7 Home, 64 bit, 8 GB ram, Athlon II X2 255, ATI Radeon HD 4200. Using AGK2 Tier 1.
PartTimeCoder
AGK Tool Maker
9
Years of Service
User Offline
Joined: 9th Mar 2015
Location: London UK
Posted: 9th Aug 2017 17:54
Ok well it seemed to have disappeared from steam I had to jump through hoops to reinstall it and the rhetoric on the GMC seemed to be its been dropped but another year of support is good but it still does not inspire confidence in investing time in the program

MikeHart
AGK Bronze Backer
20
Years of Service
User Offline
Joined: 9th Jun 2003
Location:
Posted: 11th Aug 2017 08:18
PartTimeCoder wrote: "but it still does not inspire confidence in investing time in the program"


With a new version out, of course you have to evaluate your time spend with it.
Running Windows 7 Home, 64 bit, 8 GB ram, Athlon II X2 255, ATI Radeon HD 4200. Using AGK2 Tier 1.
GarBenjamin
AGK Developer
7
Years of Service
User Offline
Joined: 30th Nov 2016
Location: USA
Posted: 6th Sep 2017 16:15 Edited at: 6th Sep 2017 16:17
I hear the new version 2 is much superior to 1.4 but never used either so don't know firsthand. I can see how it would impact the userbase though.

This is one thing Mark Sibly did wrong IMO. He made a great product, got a decent size userbase and then just threw it all away by choosing to develop a completely new product instead of updating the product the customers had been using for years. Happened again and again. If there was now a Blitz3D 2017 I think his customerbase would be massive and money would not be a concern.

Of course sometimes a rewrite is necessary but try to keep it as close to the same user experience as the last product as possible. Because every time one product hits EOL and a new "better" product is released you lose some of the customers.
TI/994a (BASIC) -> C64 (BASIC/PASCAL/ASM/Others) -> Amiga (AMOS/BLITZ/ASM/C/Gamesmith) -> DOS (C/C++/Allegro) -> Windows (C++/C#/Monkey X/GL Basic/Unity/Others)

Login to post a reply

Server time is: 2024-04-25 03:11:36
Your offset time is: 2024-04-25 03:11:36